diff options
Diffstat (limited to '')
| -rw-r--r-- | ChangeLog | 4 | ||||
| -rwxr-xr-x | autogen.sh | 2 | ||||
| -rw-r--r-- | configure.ac | 2 | ||||
| -rw-r--r-- | contrib/ChangeLog | 5 | ||||
| -rwxr-xr-x | contrib/conf-w32ce-msc/build.mk | 253 | ||||
| -rw-r--r-- | contrib/conf-w32ce-msc/config.h | 314 | ||||
| -rw-r--r-- | src/ChangeLog | 27 | ||||
| -rw-r--r-- | src/Makefile.am | 3 | ||||
| -rw-r--r-- | src/ath-pthread.c | 8 | ||||
| -rw-r--r-- | src/ath.c | 13 | ||||
| -rw-r--r-- | src/ath.h | 4 | ||||
| -rw-r--r-- | src/data-compat.c | 4 | ||||
| -rw-r--r-- | src/data-fd.c | 4 | ||||
| -rw-r--r-- | src/data-mem.c | 4 | ||||
| -rw-r--r-- | src/data.c | 4 | ||||
| -rw-r--r-- | src/debug.c | 4 | ||||
| -rw-r--r-- | src/encrypt-sign.c | 3 | ||||
| -rw-r--r-- | src/engine-assuan.c | 4 | ||||
| -rw-r--r-- | src/engine-g13.c | 4 | ||||
| -rw-r--r-- | src/engine-gpg.c | 4 | ||||
| -rw-r--r-- | src/engine-gpgconf.c | 4 | ||||
| -rw-r--r-- | src/engine-gpgsm.c | 4 | ||||
| -rw-r--r-- | src/engine-uiserver.c | 4 | ||||
| -rw-r--r-- | src/gpgme.c | 4 | ||||
| -rw-r--r-- | src/posix-io.c | 9 | ||||
| -rw-r--r-- | src/posix-sema.c | 8 | ||||
| -rw-r--r-- | src/priv-io.h | 3 | ||||
| -rw-r--r-- | src/ttyname_r.c | 8 | ||||
| -rw-r--r-- | src/util.h | 8 | ||||
| -rw-r--r-- | src/vfs-create.c | 1 | ||||
| -rw-r--r-- | src/w32-ce.c | 3 | ||||
| -rw-r--r-- | src/w32-ce.h | 8 | ||||
| -rw-r--r-- | src/w32-glib-io.c | 8 | ||||
| -rw-r--r-- | src/w32-io.c | 10 | ||||
| -rw-r--r-- | src/w32-sema.c | 5 | ||||
| -rw-r--r-- | src/w32-util.c | 18 | 
36 files changed, 729 insertions, 46 deletions
@@ -1,3 +1,7 @@ +2010-11-02  Werner Koch  <[email protected]> + +	* configure.ac (AC_CHECK_HEADERS): Check for sys.time.h. +  2010-08-19  Werner Koch  <[email protected]>  	* configure.ac (AH_BOTTOM): Define GPG_ERR_ENABLE_ERRNO_MACROS. @@ -127,7 +127,7 @@ if [ "$myhost" = "w32" ]; then          fi      fi -    ./configure --enable-maintainer-mode  --prefix=${w32root}  \ +    $tsdir/configure --enable-maintainer-mode  --prefix=${w32root}  \              --host=${host} --build=${build} \              --with-gpg-error-prefix=${w32root} \              --with-libassuan-prefix=${w32root} "$@" diff --git a/configure.ac b/configure.ac index 8f4c77b4..5850aceb 100644 --- a/configure.ac +++ b/configure.ac @@ -774,7 +774,7 @@ AC_CHECK_FUNCS(getgid getegid)  # Replacement functions.  AC_REPLACE_FUNCS(stpcpy)  # Check for unistd.h for setenv replacement function. -AC_CHECK_HEADERS(unistd.h) +AC_CHECK_HEADERS([unistd.h sys/time.h])  AC_REPLACE_FUNCS(setenv)  # Assuan check for descriptor passing. diff --git a/contrib/ChangeLog b/contrib/ChangeLog new file mode 100644 index 00000000..406d1077 --- /dev/null +++ b/contrib/ChangeLog @@ -0,0 +1,5 @@ +2010-11-01  Werner Koch  <[email protected]> + +	* conf-w32ce-msc/config.h: New. +	* conf-w32ce-msc/build.mk: New. + diff --git a/contrib/conf-w32ce-msc/build.mk b/contrib/conf-w32ce-msc/build.mk new file mode 100755 index 00000000..4a77a99a --- /dev/null +++ b/contrib/conf-w32ce-msc/build.mk @@ -0,0 +1,253 @@ +# build.mk - Makefile to build libgpg-error using Visual-C +# Copyright 2010 g10 Code GmbH +# +# This file is free software; as a special exception the author gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. +# +# This file is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This is a helper make script to build libgpg-error for WindowsCE +# using the Microsoft Visual C compiler.   + +targetdir = /home/smb/xppro-gnu/src/gpgme/src +# The target build directory where we run the Visual C compiler/ This +# needs to be an absolute directory name.  Further we expect this +# structure of the tree: +#  +#   TARGET/src - Source directories:  One directory for each project +#         /bin - Installed DLLs +#         /lib - Installed import libs. +#         /include - Instaled header files. + +targetdir = /home/smb/xppro-gnu +targetsrc = $(targetdir)/src + +# Install directories (relative) +bindir = ../../../bin +libdir = ../../../lib +incdir = ../../../include + + +help: +	@echo "Run " +	@echo "  make -f ../contrib/conf-w32ce-msc/build.mk copy-source" +	@echo "on the POSIX system and then" +	@echo "  nmake -f build.mk all" +	@echo "  nmake -f build.mk install" +	@echo "on the Windows system" + +ce_defines = -DWINCE -D_WIN32_WCE=0x502 -DUNDER_CE \ +             -DWIN32_PLATFORM_PSPC -D_UNICODE -DUNICODE \ +             -D_CONSOLE -DARM -D_ARM_ +#-D_DEBUG -DDEBUG  + +CFLAGS = -nologo -W3 -fp:fast -Os $(ce_defines) \ +         -DHAVE_CONFIG_H -DDLL_EXPORT -D_CRT_SECURE_NO_WARNINGS \ +	 -I. -I$(incdir) -I$(incdir)/gpg-extra + +LDFLAGS = + +# Standard source files +sources = \ +	assuan-support.c    \ +	ath-pth.c	    \ +	ath-pthread.c	    \ +	ath.c		    \ +	ath.h		    \ +	context.h	    \ +	conversion.c	    \ +	data-compat.c	    \ +	data-fd.c	    \ +	data-mem.c	    \ +	data-stream.c	    \ +	data-user.c	    \ +	data.c		    \ +	data.h		    \ +	debug.c		    \ +	debug.h		    \ +	decrypt-verify.c    \ +	decrypt.c	    \ +	delete.c	    \ +	dirinfo.c	    \ +	edit.c		    \ +	encrypt-sign.c	    \ +	encrypt.c	    \ +	engine-assuan.c	    \ +	engine-backend.h    \ +	engine-g13.c	    \ +	engine-gpg.c	    \ +	engine-gpgconf.c    \ +	engine-gpgsm.c	    \ +	engine-uiserver.c   \ +	engine.c	    \ +	engine.h	    \ +	error.c		    \ +	export.c	    \ +	funopen.c	    \ +	genkey.c	    \ +	get-env.c	    \ +	getauditlog.c	    \ +	gpgconf.c	    \ +	gpgme-tool.c	    \ +	gpgme-w32spawn.c    \ +	gpgme.c		    \ +	import.c	    \ +	isascii.c	    \ +	kdpipeiodevice.h    \ +	key.c		    \ +	keylist.c	    \ +	memrchr.c	    \ +	op-support.c	    \ +	opassuan.c	    \ +	ops.h		    \ +	passphrase.c	    \ +	passwd.c	    \ +	priv-io.h	    \ +	progress.c	    \ +	putc_unlocked.c	    \ +	sema.h		    \ +	setenv.c	    \ +	sig-notation.c	    \ +	sign.c		    \ +	signers.c	    \ +	stpcpy.c	    \ +	trust-item.c	    \ +	trustlist.c	    \ +	ttyname_r.c	    \ +	util.h		    \ +	vasprintf.c	    \ +	verify.c	    \ +	version.c	    \ +	vfs-create.c	    \ +	vfs-mount.c	    \ +	w32-ce.c	    \ +	w32-ce.h	    \ +	w32-glib-io.c	    \ +	w32-io.c	    \ +	w32-sema.c	    \ +	w32-util.c	    \ +	wait-global.c	    \ +	wait-private.c	    \ +	wait-user.c	    \ +	wait.c		    \ +	wait.h              \ +	gpgme.def + +# The object files we need to create from sources. +objs = \ +	conversion.obj     \ +	get-env.obj  	   \ +	data.obj  	   \ +	data-fd.obj  	   \ +	data-stream.obj    \ +	data-mem.obj  	   \ +	data-user.obj  	   \ +	data-compat.obj    \ +	signers.obj  	   \ +	sig-notation.obj   \ +	wait.obj  	   \ +	wait-global.obj    \ +	wait-private.obj   \ +	wait-user.obj  	   \ +	op-support.obj     \ +	encrypt.obj  	   \ +	encrypt-sign.obj   \ +	decrypt.obj  	   \ +	decrypt-verify.obj \ +	verify.obj  	   \ +	sign.obj  	   \ +	passphrase.obj 	   \ +	progress.obj  	   \ +	key.obj  	   \ +	keylist.obj  	   \ +	trust-item.obj 	   \ +	trustlist.obj  	   \ +	import.obj  	   \ +	export.obj  	   \ +	genkey.obj  	   \ +	delete.obj  	   \ +	edit.obj  	   \ +	getauditlog.obj	   \ +	opassuan.obj  	   \ +	passwd.obj  	   \ +	engine.obj  	   \ +	engine-gpg.obj 	   \ +	engine-gpgsm.obj     \ +	assuan-support.obj   \ +	engine-assuan.obj    \ +	engine-gpgconf.obj   \ +	engine-g13.obj 	   \ +	vfs-mount.obj  	   \ +	vfs-create.obj 	   \ +	gpgconf.obj  	   \ +	w32-ce.obj  	   \ +	w32-util.obj  	   \ +	w32-sema.obj  	   \ +	w32-io.obj  	   \ +	dirinfo.obj  	   \ +	debug.obj  	   \ +	gpgme.obj  	   \ +	version.obj  	   \ +	error.obj  	   \ +	ath.obj  	   \ +	vasprintf.obj  	   \ +	ttyname_r.obj  	   \ +	stpcpy.obj  	   \ +	setenv.obj + + +# Sources files in this directory inclduing this Makefile +conf_sources = \ +	build.mk \ +	config.h + +# Source files built by running the standard build system. +built_sources = \ +	gpgme.h         \ +	status-table.h + + +copy-static-source: +	@if [ ! -f ./gpgme.c ]; then \ +           echo "Please cd to the src/ directory first"; \ +	   exit 1; \ +        fi +	cp -t $(targetsrc)/gpgme/src $(sources); +	cd ../contrib/conf-w32ce-msc ; \ +            cp -t $(targetsrc)/gpgme/src $(conf_sources) + + +copy-built-source: +	@if [ ! -f ./gpgme.h ]; then \ +           echo "Please build using ./autogen.sh --build-w32ce first"; \ +	   exit 1; \ +        fi +	cp -t $(targetsrc)/gpgme/src $(built_sources) + +copy-source: copy-static-source copy-built-source + + +.c.obj: +	$(CC) $(CFLAGS) -c $< + +all:  $(sources) $(conf_sources) $(built_sources) $(objs) +	link    /DLL /IMPLIB:libgpgme-11-msc.lib \ +                /OUT:libgpgme-11-msc.dll \ +		/DEF:gpgme.def /NOLOGO /MANIFEST:NO \ +		/NODEFAULTLIB:"oldnames.lib" /DYNAMICBASE:NO \ +	        $(objs) \ +		$(libdir)/libgpg-error-0-msc.lib \ +		$(libdir)/libassuan-0-msc.lib \ +		coredll.lib corelibc.lib ole32.lib oleaut32.lib uuid.lib \ +		commctrl.lib /subsystem:windowsce,5.02 + +# Note that we don't need to create the install directories because +# libgpg-error must have been build and installed prior to this +# package. +install: all +	copy /y gpgme.h $(incdir:/=\) +	copy /y libgpgme-11-msc.dll $(bindir:/=\) +	copy /y libgpgme-11-msc.lib $(libdir:/=\) diff --git a/contrib/conf-w32ce-msc/config.h b/contrib/conf-w32ce-msc/config.h new file mode 100644 index 00000000..d8ab5d7b --- /dev/null +++ b/contrib/conf-w32ce-msc/config.h @@ -0,0 +1,314 @@ +/* config.h for building with Visual-C for WindowsCE.  + * Copyright 2010 g10 Code GmbH + *  + * This file is free software; as a special exception the author gives + * unlimited permission to copy and/or distribute it, with or without + * modifications, as long as this notice is preserved. + *  + * This file is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY, to the extent permitted by law; without even the + * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* This file was originally created by running  + *   ./autogen.sh --build-w32ce + * on svn revision 1495 (gpgme 1.3.1-svn1495) and then adjusted to work + * with Visual-C. + */ + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "1.3.1-svn1495-msc1" + +/* Name of this package */ +#define PACKAGE "gpgme" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "[email protected]" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "gpgme" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "gpgme " PACKAGE_VERSION + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "gpgme" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + + + +/* Whether Assuan support is enabled */ +#define ENABLE_ASSUAN 1 + +/* Whether G13 support is enabled */ +#define ENABLE_G13 1 + +/* Whether GPGCONF support is enabled */ +#define ENABLE_GPGCONF 1 + +/* Whether GPGSM support is enabled */ +#define ENABLE_GPGSM 1 + +/* Defined if we are building with uiserver support. */ +/* #undef ENABLE_UISERVER */ + +/* Path to the G13 binary. */ +#define G13_PATH "c:\\gnupg\\g13.exe" + +/* Path to the GPGCONF binary. */ +#define GPGCONF_PATH "c:\\gnupg\\gpgconf.exe" + +/* version of the libassuan library */ +#define GPGME_LIBASSUAN_VERSION "2.0.2-svn381" + +/* Path to the GPGSM binary. */ +#define GPGSM_PATH "c:\\gnupg\\gpgsm.exe" + +/* The default error source for GPGME. */ +#define GPG_ERR_SOURCE_DEFAULT GPG_ERR_SOURCE_GPGME + +/* Path to the GnuPG binary. */ +#define GPG_PATH "c:\\gnupg\\gpg.exe" + +/* Define to 1 if you have the <dlfcn.h> header file. */ +/* #undef HAVE_DLFCN_H */ + +/* Defined if we run on some of the PCDOS like systems (DOS, Windoze. OS/2) +   with special properties like no file modes */ +#define HAVE_DOSISH_SYSTEM 1 + +/* Define to 1 if the system has the type `error_t'. */ +/* #undef HAVE_ERROR_T */ + +/* Define to 1 if you have the `fopencookie' function. */ +/* #undef HAVE_FOPENCOOKIE */ + +/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ +/* #undef HAVE_FSEEKO */ + +/* Define to 1 if you have the `funopen' function. */ +/* #undef HAVE_FUNOPEN */ + +/* Define to 1 if you have the `getegid' function. */ +/* #undef HAVE_GETEGID */ + +/* Define to 1 if you have the `getenv_r' function. */ +/* #undef HAVE_GETENV_R */ + +/* Define to 1 if you have the `getgid' function. */ +/* #undef HAVE_GETGID */ + +/* Define to 1 if you have the <inttypes.h> header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the <locale.h> header file. */ +/* #undef HAVE_LOCALE_H */ + +/* Define to 1 if you have the <memory.h> header file. */ +#define HAVE_MEMORY_H 1 + +/* Define if we have Pth. */ +/* #undef HAVE_PTH */ + +/* Define if we have pthread. */ +/* #undef HAVE_PTHREAD */ + +/* Define to 1 if you have the `setenv' function. */ +/* #undef HAVE_SETENV */ + +/* Define to 1 if you have the `setlocale' function. */ +/* #undef HAVE_SETLOCALE */ + +/* Define to 1 if you have the <stdint.h> header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the <stdlib.h> header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the `stpcpy' function. */ +/* #undef HAVE_STPCPY */ + +/* Define to 1 if you have the <strings.h> header file. */ +/* #undef HAVE_STRINGS_H */ + +/* Define to 1 if you have the <string.h> header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the <sys/select.h> header file. */ +/* #undef HAVE_SYS_SELECT_H */ + +/* Define to 1 if you have the <sys/stat.h> header file. */ +/* #undef HAVE_SYS_STAT_H */ + +/* Define to 1 if you have the <sys/types.h> header file. */ +/* #undef HAVE_SYS_TYPES_H */ + +/* Define to 1 if you have the <sys/uio.h> header file. */ +/* #undef HAVE_SYS_UIO_H */ + +/* Define if getenv() is thread-safe */ +/* #undef HAVE_THREAD_SAFE_GETENV */ + +/* Define to 1 if you have the `timegm' function. */ +/* #undef HAVE_TIMEGM */ + +/* Define if __thread is supported */ +/* #define HAVE_TLS 1 */ + +/* Define to 1 if you have the `ttyname_r' function. */ +/* #undef HAVE_TTYNAME_R */ + +/* Define to 1 if the system has the type `uintptr_t'. */ +#define HAVE_UINTPTR_T 1 + +/* Define to 1 if you have the <unistd.h> header file. */ +/* #define HAVE_UNISTD_H 1 */ + +/* Define to 1 if you have the `vasprintf' function. */ +/* #undef HAVE_VASPRINTF */ + +/* Defined if we run on a W32 CE API based system */ +#define HAVE_W32CE_SYSTEM 1 + +/* Defined if we run on a W32 API based system */ +#define HAVE_W32_SYSTEM 1 + +/* Define to the sub-directory in which libtool stores uninstalled libraries. +   */ +#define LT_OBJDIR ".libs/" + +/* used to implement the va_copy macro */ +/* #undef MUST_COPY_VA_BYVAL */ + +/* Min. needed G13 version. */ +#define NEED_G13_VERSION "2.1.0" + +/* Min. needed GPGCONF version. */ +#define NEED_GPGCONF_VERSION "2.0.4" + +/* Min. needed GPGSM version. */ +#define NEED_GPGSM_VERSION "1.9.6" + +/* Min. needed GnuPG version. */ +#define NEED_GPG_VERSION "1.4.0" + + +/* Separators as used in $PATH.  */ +#ifdef HAVE_DOSISH_SYSTEM +#define PATHSEP_C ';' +#else +#define PATHSEP_C ':' +#endif + + +/* The size of `unsigned int', as computed by sizeof. */ +#define SIZEOF_UNSIGNED_INT 4 + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Defined if descriptor passing is enabled and supported */ +/* #undef USE_DESCRIPTOR_PASSING */ + +/* Enable extensions on AIX 3, Interix.  */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable GNU extensions on systems that have them.  */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable threading extensions on Solaris.  */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions on HP NonStop.  */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable general extensions on Solaris.  */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif + + +/* Version of this package */ +#define VERSION PACKAGE_VERSION + +/* Number of bits in a file offset, on hosts where this is settable. */ +/* #undef _FILE_OFFSET_BITS */ + +/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ +/* #undef _LARGEFILE_SOURCE */ + +/* Define for large files, on AIX-style hosts. */ +/* #undef _LARGE_FILES */ + +/* Define to 1 if on MINIX. */ +/* #undef _MINIX */ + +/* Define to 2 if the system does not provide POSIX.1 features except with +   this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +/* #undef _POSIX_SOURCE */ + +/* To allow the use of GPGME in multithreaded programs we have to use +  special features from the library. +  IMPORTANT: gpgme is not yet fully reentrant and you should use it +  only from one thread.  */ +#ifndef _REENTRANT +# define _REENTRANT 1 +#endif + +/* Activate POSIX interface on MacOS X */ +/* #undef _XOPEN_SOURCE */ + +/* Define to a type to use for `error_t' if it is not otherwise available. */ +#define error_t int + +/* Define to `__inline__' or `__inline' if that's what the C compiler +   calls it, or to nothing if 'inline' is not supported under any name.  */ +#ifndef __cplusplus +#define inline __inline +#endif + +/* Define to `long int' if <sys/types.h> does not define. */ +/* #undef off_t */ + +/* Define to the type of an unsigned integer type wide enough to hold a +   pointer, if such a type exists, and if the system does not define it. */ +/* #undef uintptr_t */ + + +/* Definition of GCC specific attributes.  */ +#if __GNUC__ > 2  +# define GPGME_GCC_A_PURE  __attribute__ ((__pure__)) +#else +# define GPGME_GCC_A_PURE +#endif + +/* Under WindowsCE we need gpg-error's strerror macro.  */ +#define GPG_ERR_ENABLE_ERRNO_MACROS 1 + +/* snprintf is not part of oldnames.lib thus we redefine it here. */ +#define snprintf _snprintf + +/* We don't want warnings like this: + +   warning C4996: e.g. "The POSIX name for this item is +   deprecated. Instead, use the ISO C++ conformant name: _fileno" + +   warning C4018: '<' : signed/unsigned mismatch + +   warning C4244: '=' : conversion from 'time_t' to +                        'unsigned long', possible loss of data + + */ +#pragma warning(disable:4996 4018 4244) + + + diff --git a/src/ChangeLog b/src/ChangeLog index a868d6d9..7c6d4297 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,4 +1,29 @@ -2010-10-28  Marcus Brinkmann  <[email protected]> +2010-11-02  Werner Koch  <[email protected]> + +	* w32-io.c (handle_to_fd, fd_tohandle): Add.  We need them for W32. +	* w32-util.c (_WIN32_IE): Define to 0x0400. + +	* util.h [W32]: Include windows.h. +	* w32-sema.c: Do not include windows.h directly. +	* ath.c (ssize_t, pid_t)[_MSC_VER]: Add new types. +	* gpgme.c (gpgme_result_ref, gpgme_result_unref): Do not use a +	void pointer in pointer arithmetic. +	* w32-util.c: Include util.h prior to ath.h.  Don't include +	windows.h directly. +	(F_OK): Define if not defined. +	* w32-ce.c: Include string.h. +	(RegQueryValueExA): Use WINAPI modifier to match the declaration. +	* vfs-create.c: Include string.h because under W32CE with MSC we +	get a warning related to our strerror replacement. +	* encrypt-sign.c: Include stdlib.h, string.h and errno.h. +	* priv-io.h [W32CE]: Include w32-ce.h +	* w32-ce.h: Include winsock2.h and ws2tcpip.h. +	(_MSV_VER): Remove useless macro. +	(pid_t): Add typedef. + +	Guard all includes of unistd.h and sys/time.h. + +2010-10-28  Marcus Brinkmann  <[email protected]>  	* opassuan.c (gpgme_op_assuan_transact_ext): Fix uninitialized  	value use.  Reported by Marc Mutz. diff --git a/src/Makefile.am b/src/Makefile.am index e557c7bb..ecda9047 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -203,7 +203,8 @@ libgpgme_la_LDFLAGS = $(no_undefined) $(export_symbols) \  	$(libgpgme_version_script_cmd) -version-info \  	@LIBGPGME_LT_CURRENT@:@LIBGPGME_LT_REVISION@:@LIBGPGME_LT_AGE@  libgpgme_la_DEPENDENCIES = @LTLIBOBJS@ $(srcdir)/libgpgme.vers $(gpgme_deps) -libgpgme_la_LIBADD = $(gpgme_res) @LIBASSUAN_LIBS@ @LTLIBOBJS@ @GPG_ERROR_LIBS@ +libgpgme_la_LIBADD = $(gpgme_res) @LIBASSUAN_LIBS@ @LTLIBOBJS@ \ +	             @GPG_ERROR_LIBS@  libgpgme_pthread_la_LDFLAGS = $(no_undefined) $(export_symbols) \  	$(libgpgme_version_script_cmd) -version-info \ diff --git a/src/ath-pthread.c b/src/ath-pthread.c index d6422999..9684afb2 100644 --- a/src/ath-pthread.c +++ b/src/ath-pthread.c @@ -24,11 +24,15 @@  #include <stdlib.h>  #include <errno.h> -#include <unistd.h> +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif  #ifdef HAVE_SYS_SELECT_H  # include <sys/select.h>  #else -# include <sys/time.h> +# ifdef HAVE_SYS_TIME_H +#  include <sys/time.h> +# endif  #endif  #include <sys/types.h>  #include <sys/wait.h> @@ -23,17 +23,26 @@  #endif  #include <assert.h> -#include <unistd.h> +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif  #ifdef HAVE_SYS_SELECT_H  # include <sys/select.h>  #else -# include <sys/time.h> +# ifdef HAVE_SYS_TIME_H +#  include <sys/time.h> +# endif  #endif  #include <sys/types.h>  #ifndef HAVE_W32_SYSTEM  #include <sys/wait.h>  #endif +#ifdef _MSC_VER +  typedef long ssize_t; +  typedef int  pid_t; +#endif +  #include "ath.h" @@ -36,7 +36,9 @@  # ifdef HAVE_SYS_SELECT_H  #  include <sys/select.h>  # else -#  include <sys/time.h> +#  ifdef HAVE_SYS_TIME_H +#   include <sys/time.h> +#  endif  # endif  # include <sys/types.h>  # include <sys/socket.h> diff --git a/src/data-compat.c b/src/data-compat.c index 76d6cd00..0843ffd4 100644 --- a/src/data-compat.c +++ b/src/data-compat.c @@ -23,7 +23,9 @@  #endif  #include <errno.h> -#include <sys/time.h> +#ifdef HAVE_SYS_TIME_H +# include <sys/time.h> +#endif  #include <sys/stat.h>  #include <stdlib.h> diff --git a/src/data-fd.c b/src/data-fd.c index 47a0d990..1ada70f7 100644 --- a/src/data-fd.c +++ b/src/data-fd.c @@ -22,7 +22,9 @@  #include <config.h>  #endif -#include <unistd.h> +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif  #include <sys/types.h>  #include "debug.h" diff --git a/src/data-mem.c b/src/data-mem.c index 7be72bff..eda695a4 100644 --- a/src/data-mem.c +++ b/src/data-mem.c @@ -24,7 +24,9 @@  #include <errno.h>  #include <stdlib.h> -#include <unistd.h> +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif  #include <assert.h>  #include <string.h> @@ -23,7 +23,9 @@  #endif  #include <stdlib.h> -#include <unistd.h> +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif  #include <errno.h>  #include <string.h> diff --git a/src/debug.c b/src/debug.c index 6faf4aaf..754c8e11 100644 --- a/src/debug.c +++ b/src/debug.c @@ -26,7 +26,9 @@  #include <stdlib.h>  #include <string.h>  #include <stdarg.h> -#include <unistd.h> +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif  #include <ctype.h>  #include <errno.h>  #include <time.h> diff --git a/src/encrypt-sign.c b/src/encrypt-sign.c index 02af1797..3b862be8 100644 --- a/src/encrypt-sign.c +++ b/src/encrypt-sign.c @@ -22,6 +22,9 @@  #if HAVE_CONFIG_H  #include <config.h>  #endif +#include <stdlib.h> +#include <string.h> +#include <errno.h>  #include "gpgme.h"  #include "debug.h" diff --git a/src/engine-assuan.c b/src/engine-assuan.c index 73ece80d..e521d6d6 100644 --- a/src/engine-assuan.c +++ b/src/engine-assuan.c @@ -32,7 +32,9 @@  #include <string.h>  #include <sys/types.h>  #include <assert.h> -#include <unistd.h> +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif  #ifdef HAVE_LOCALE_H  #include <locale.h>  #endif diff --git a/src/engine-g13.c b/src/engine-g13.c index 8b2af4d7..f3119b5c 100644 --- a/src/engine-g13.c +++ b/src/engine-g13.c @@ -27,7 +27,9 @@  #include <string.h>  #include <sys/types.h>  #include <assert.h> -#include <unistd.h> +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif  #ifdef HAVE_LOCALE_H  #include <locale.h>  #endif diff --git a/src/engine-gpg.c b/src/engine-gpg.c index da66d4d7..f163f0fd 100644 --- a/src/engine-gpg.c +++ b/src/engine-gpg.c @@ -27,7 +27,9 @@  #include <string.h>  #include <assert.h>  #include <errno.h> -#include <unistd.h> +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif  #ifdef HAVE_LOCALE_H  #include <locale.h>  #endif diff --git a/src/engine-gpgconf.c b/src/engine-gpgconf.c index d3c47a75..cf4df568 100644 --- a/src/engine-gpgconf.c +++ b/src/engine-gpgconf.c @@ -26,7 +26,9 @@  #include <string.h>  #include <sys/types.h>  #include <assert.h> -#include <unistd.h> +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif  #include <fcntl.h> /* FIXME */  #include <errno.h> diff --git a/src/engine-gpgsm.c b/src/engine-gpgsm.c index 64be281c..8a9cd893 100644 --- a/src/engine-gpgsm.c +++ b/src/engine-gpgsm.c @@ -28,7 +28,9 @@  #include <string.h>  #include <sys/types.h>  #include <assert.h> -#include <unistd.h> +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif  #ifdef HAVE_LOCALE_H  #include <locale.h>  #endif diff --git a/src/engine-uiserver.c b/src/engine-uiserver.c index 9e910b6f..fec7d7df 100644 --- a/src/engine-uiserver.c +++ b/src/engine-uiserver.c @@ -31,7 +31,9 @@  #include <string.h>  #include <sys/types.h>  #include <assert.h> -#include <unistd.h> +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif  #include <locale.h>  #include <fcntl.h> /* FIXME */  #include <errno.h> diff --git a/src/gpgme.c b/src/gpgme.c index b6a518ff..7feb3be9 100644 --- a/src/gpgme.c +++ b/src/gpgme.c @@ -211,7 +211,7 @@ gpgme_result_ref (void *result)    if (! result)      return; -  data = result - sizeof (struct ctx_op_data); +  data = (void*)((char*)result - sizeof (struct ctx_op_data));    assert (data->magic == CTX_OP_DATA_MAGIC); @@ -229,7 +229,7 @@ gpgme_result_unref (void *result)    if (! result)      return; -  data = result - sizeof (struct ctx_op_data); +  data = (void*)((char*)result - sizeof (struct ctx_op_data));    assert (data->magic == CTX_OP_DATA_MAGIC); diff --git a/src/posix-io.c b/src/posix-io.c index 5c3def03..762051e7 100644 --- a/src/posix-io.c +++ b/src/posix-io.c @@ -28,8 +28,12 @@  #include <errno.h>  #include <signal.h>  #include <fcntl.h> -#include <unistd.h> -#include <sys/time.h> +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif +#ifdef HAVE_SYS_TIME_H +# include <sys/time.h> +#endif  #include <sys/types.h>  #include <sys/wait.h>  #ifdef HAVE_SYS_UIO_H @@ -37,7 +41,6 @@  #endif  #include <ctype.h>  #include <sys/resource.h> -#include <unistd.h>  #include "util.h"  #include "priv-io.h" diff --git a/src/posix-sema.c b/src/posix-sema.c index 4ec3abb0..7ab08dfd 100644 --- a/src/posix-sema.c +++ b/src/posix-sema.c @@ -29,8 +29,12 @@  #include <errno.h>  #include <signal.h>  #include <fcntl.h> -#include <unistd.h> -#include <sys/time.h> +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif +#ifdef HAVE_SYS_TIME_H +# include <sys/time.h> +#endif  #include <sys/types.h>  #include "util.h" diff --git a/src/priv-io.h b/src/priv-io.h index 89c750dd..2c9d1e70 100644 --- a/src/priv-io.h +++ b/src/priv-io.h @@ -23,6 +23,9 @@  #define IO_H  #ifdef HAVE_W32_SYSTEM +# ifdef HAVE_W32CE_SYSTEM +#  include "w32-ce.h" +# endif  # include <windows.h>  #else  # include <sys/socket.h> diff --git a/src/ttyname_r.c b/src/ttyname_r.c index 44876587..810c2175 100644 --- a/src/ttyname_r.c +++ b/src/ttyname_r.c @@ -24,10 +24,14 @@  #include <stdlib.h>  #include <errno.h>  #include <string.h> -#include <unistd.h> +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif -#warning ttyname is not thread-safe, and ttyname_r is missing +#ifdef __GNUC__ +# warning ttyname is not thread-safe, and ttyname_r is missing +#endif  int  ttyname_r (int fd, char *buf, size_t buflen) @@ -22,8 +22,12 @@  #ifndef UTIL_H  #define UTIL_H -#ifdef HAVE_W32CE_SYSTEM -#include "w32-ce.h" +#ifdef HAVE_W32_SYSTEM +# ifdef HAVE_W32CE_SYSTEM +#  include "w32-ce.h" +# else +#  include "windows.h" +# endif  #endif  /* For pid_t.  */ diff --git a/src/vfs-create.c b/src/vfs-create.c index 142549a1..d7fd24f1 100644 --- a/src/vfs-create.c +++ b/src/vfs-create.c @@ -23,6 +23,7 @@  #endif  #include <stdlib.h> +#include <string.h>  #include "gpgme.h"  #include "debug.h" diff --git a/src/w32-ce.c b/src/w32-ce.c index 57590fa9..076eaae5 100644 --- a/src/w32-ce.c +++ b/src/w32-ce.c @@ -22,6 +22,7 @@  #include <config.h>  #endif +#include <string.h>  #include <errno.h>  #include <assert.h> @@ -248,7 +249,7 @@ RegOpenKeyExA (HKEY hKey, LPCSTR lpSubKey, DWORD ulOptions,  } -LONG +LONG WINAPI  RegQueryValueExA (HKEY hKey, LPCSTR lpValueName, LPDWORD lpReserved,                    LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData)  { diff --git a/src/w32-ce.h b/src/w32-ce.h index 2b761d65..bcd5344c 100644 --- a/src/w32-ce.h +++ b/src/w32-ce.h @@ -24,8 +24,12 @@  #include <time.h>  #include <stdarg.h> -/* For getaddrinfo.  */ -#define _MSV_VER 0x401 +#ifdef _MSC_VER +typedef int pid_t; +#endif + +#include <winsock2.h> +#include <ws2tcpip.h> /* For getaddrinfo.  */  #include <windows.h> diff --git a/src/w32-glib-io.c b/src/w32-glib-io.c index ff21c3d8..6b7cd150 100644 --- a/src/w32-glib-io.c +++ b/src/w32-glib-io.c @@ -28,8 +28,12 @@  #include <assert.h>  #include <errno.h>  #include <fcntl.h> -#include <unistd.h> -#include <sys/time.h> +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif +#ifdef HAVE_SYS_TIME_H +# include <sys/time.h> +#endif  #include <sys/types.h>  #include <glib.h>  #include <windows.h> diff --git a/src/w32-io.c b/src/w32-io.c index 12d84373..d7abbf4c 100644 --- a/src/w32-io.c +++ b/src/w32-io.c @@ -28,11 +28,14 @@  #include <assert.h>  #include <errno.h>  #include <fcntl.h> -#include <sys/time.h> +#ifdef HAVE_SYS_TIME_H +# include <sys/time.h> +#endif  #include <sys/types.h> -#include <windows.h>  #include <io.h> +#include "util.h" +  #ifdef HAVE_W32CE_SYSTEM  #include <assuan.h>  #include <winioctl.h> @@ -42,7 +45,6 @@    CTL_CODE (FILE_DEVICE_STREAMS, 2051, METHOD_BUFFERED, FILE_ANY_ACCESS)  #endif -#include "util.h"  #include "sema.h"  #include "priv-io.h"  #include "debug.h" @@ -123,6 +125,8 @@ release_fd (int fd)  #define pid_to_handle(a) ((HANDLE)(a))  #define handle_to_pid(a) ((int)(a)) +#define fd_to_handle(a)  ((HANDLE)(a)) +#define handle_to_fd(a)  ((int)(a))  #define READBUF_SIZE 4096  #define WRITEBUF_SIZE 4096 diff --git a/src/w32-sema.c b/src/w32-sema.c index 6a5137dd..33961041 100644 --- a/src/w32-sema.c +++ b/src/w32-sema.c @@ -28,9 +28,10 @@  #include <assert.h>  #include <errno.h>  #include <fcntl.h> -#include <sys/time.h> +#ifdef HAVE_SYS_TIME_H +# include <sys/time.h> +#endif  #include <sys/types.h> -#include <windows.h>  #include <io.h>  #include "util.h" diff --git a/src/w32-util.c b/src/w32-util.c index e4820c19..cbbc1260 100644 --- a/src/w32-util.c +++ b/src/w32-util.c @@ -29,17 +29,22 @@  #include <assert.h>  #include <errno.h>  #include <stdint.h> -#include <sys/time.h> +#ifdef HAVE_SYS_TIME_H +# include <sys/time.h> +#endif  #include <sys/types.h>  #include <sys/stat.h> -#include <unistd.h> +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif  #include <fcntl.h> -#include <windows.h> -#include <shlobj.h>  #include <io.h> -#include "ath.h" +#define _WIN32_IE 0x0400 /* Required for SHGetSpecialFolderPathA.  */ +  #include "util.h" +#include <shlobj.h> +#include "ath.h"  #include "sema.h"  #include "debug.h" @@ -47,6 +52,9 @@  #ifndef HAVE_W32CE_SYSTEM  #define HAVE_ALLOW_SET_FOREGROUND_WINDOW 1  #endif +#ifndef F_OK +# define F_OK 0 +#endif  DEFINE_STATIC_LOCK (get_path_lock);  | 
