From c01cfaf2da8dacc4e6b1c1d1133237702276eb02 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Fri, 22 Jan 2010 18:55:16 +0000 Subject: Changes to build for W32CE - does not yet work, though. --- ChangeLog | 4 ---- NEWS | 2 +- configure.ac | 3 +-- doc/assuan.texi | 4 ++-- src/ChangeLog | 7 +++++++ src/assuan-pipe-connect.c | 6 +++++- src/setenv.c | 4 +++- src/system.c | 6 ++++-- 8 files changed, 23 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index da8537c..cc5c772 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,12 +1,8 @@ 2010-01-22 Werner Koch - * (libtool): - * configure.ac: Require libgpg-error 1.8. (HAVE_W32CE_SYSTEM): New am_defines and am_conditionals. - * ltmain.sh (wrappers_required): Don't set for mingw32ce. - * autogen.sh: Add option --build-w32ce. Remove --disable-shared from --build-w32. diff --git a/NEWS b/NEWS index ebd957d..d80c67a 100644 --- a/NEWS +++ b/NEWS @@ -1,7 +1,7 @@ Noteworthy changes in version 2.0.1 (unreleased) ------------------------------------------------ - * Under development. + Under development: * Support for WindowsCE. diff --git a/configure.ac b/configure.ac index 89d9dd5..b0cb330 100644 --- a/configure.ac +++ b/configure.ac @@ -145,7 +145,7 @@ case "${host}" in CFLAGS="$CFLAGS -fPIC -DPIC" fi ;; - *-mingw32de*) + *-mingw32ce*) have_dosish_system=yes have_w32_system=yes have_w32ce_system=yes @@ -295,7 +295,6 @@ AC_REPLACE_FUNCS(isascii) AC_REPLACE_FUNCS(putc_unlocked) AC_REPLACE_FUNCS(memrchr) AC_REPLACE_FUNCS(stpcpy) -# Check for unistd.h for setenv replacement function. AC_CHECK_HEADERS(unistd.h) AC_REPLACE_FUNCS(setenv) AC_REPLACE_FUNCS(vasprintf) diff --git a/doc/assuan.texi b/doc/assuan.texi index a20ea27..18f854e 100644 --- a/doc/assuan.texi +++ b/doc/assuan.texi @@ -921,7 +921,7 @@ Flags is the bit-wise OR of some (or none) of the following flags: If set and there is a need to start the server it will be started as a background process. This flag is useful under W32 systems, so that no new console is created and pops up a console window when starting the -server. +server. On W32CE systems this flag is ignored. @end table @item pid_t (*waitpid) (assuan_context_t ctx, pid_t pid, int action, int *status, int options) @@ -1087,7 +1087,7 @@ features only available with such servers. If set and there is a need to start the server it will be started as a background process. This flag is useful under W32 systems, so that no new console is created and pops up a console window when starting the -server. +server. On W32CE systems this flag is ignored. @end table @end deftypefun diff --git a/src/ChangeLog b/src/ChangeLog index d7df666..098f3f5 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,12 @@ 2010-01-22 Werner Koch + * setenv.c [W32CE]: Make it a dummy. + + * assuan-pipe-connect.c: Remove signal.h. + + * system.c (__assuan_spawn): Use CreateFileW. + (DETACHED_PROCESS) [W32CE]: Define to 0. + * assuan-socket.c (read_port_and_nonce): Replace ENOFILE by a proper ENOENT. diff --git a/src/assuan-pipe-connect.c b/src/assuan-pipe-connect.c index 690d810..0a04777 100644 --- a/src/assuan-pipe-connect.c +++ b/src/assuan-pipe-connect.c @@ -24,7 +24,11 @@ #include #include #include -#include +/* On Windows systems signal.h is not needed and even not supported on + WindowsCE. */ +#ifndef HAVE_DOSISH_SYSTEM +# include +#endif #include #include #include diff --git a/src/setenv.c b/src/setenv.c index debaa29..9f91124 100644 --- a/src/setenv.c +++ b/src/setenv.c @@ -20,6 +20,8 @@ # include #endif +#ifndef HAVE_W32CE_SYSTEM + #define setenv _assuan_setenv #define unsetenv _assuan_unsetenv #define clearenv _assuan_clearenv @@ -352,4 +354,4 @@ weak_alias (__unsetenv, unsetenv) weak_alias (__clearenv, clearenv) #endif - +#endif /*!HAVE_W32CE_SYSTEM*/ diff --git a/src/system.c b/src/system.c index 9e9f5cf..45f1d9a 100644 --- a/src/system.c +++ b/src/system.c @@ -632,7 +632,7 @@ __assuan_spawn (assuan_context_t ctx, pid_t *r_pid, const char *name, } if (!fdp || *fdp == ASSUAN_INVALID_FD) { - nullfd = CreateFile ("nul", GENERIC_WRITE, + nullfd = CreateFileW (L"nul", GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); if (nullfd == INVALID_HANDLE_VALUE) @@ -648,7 +648,9 @@ __assuan_spawn (assuan_context_t ctx, pid_t *r_pid, const char *name, else si.hStdError = fd; - +#ifdef HAVE_W32CE_SYSTEM +# define DETACHED_PROCESS (0) +#endif /* Note: We inherit all handles flagged as inheritable. This seems to be a security flaw but there seems to be no way of selecting handles to inherit. */ -- cgit v1.2.3