From d513a2d946270a2b1be8abbfe003e58397c2912d Mon Sep 17 00:00:00 2001 From: hniksic Date: Thu, 7 Jul 2005 07:48:01 -0700 Subject: [PATCH] [svn] Only define symbols in config-compiler.h, don't include headers. --- src/ChangeLog | 7 +++++++ src/mswindows.h | 13 +++++++++++++ windows/ChangeLog | 7 +++++++ windows/config-compiler.h | 34 +++++++++++++++++++--------------- 4 files changed, 46 insertions(+), 15 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 075f055b..e47f591a 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2005-07-07 Hrvoje Niksic + + * mswindows.h: Define an alias for stat and fstat, as requested by + config-compiler.h. + (gai_strerror): Define to windows_strerror if NEED_GAI_STRERROR is + defined. + 2005-07-06 Hrvoje Niksic * mswindows.h: Use strtoll where available. diff --git a/src/mswindows.h b/src/mswindows.h index 612dd949..34352877 100644 --- a/src/mswindows.h +++ b/src/mswindows.h @@ -98,6 +98,14 @@ __int64 str_to_int64 (const char *, char **, int); is equivalent to stat anyway. */ #define lstat stat +/* Define LFS aliases for stat and fstat. */ +#ifdef stat_alias +# define stat(f, b) stat_alias (f, b) +#endif +#ifdef fstat_alias +# define fstat(f, b) fstat_alias (f, b) +#endif + #define PATH_SEPARATOR '\\' /* Win32 doesn't support the MODE argument to mkdir. */ @@ -109,6 +117,11 @@ __int64 str_to_int64 (const char *, char **, int); const char *inet_ntop (int, const void *, char *, socklen_t); #endif +#ifdef NEED_GAI_STRERROR +# undef gai_strerror +# define gai_strerror windows_strerror +#endif + #ifndef INHIBIT_WRAP /* Winsock functions don't set errno, so we provide wrappers that do. */ diff --git a/windows/ChangeLog b/windows/ChangeLog index 1e6bcadd..506bfb74 100644 --- a/windows/ChangeLog +++ b/windows/ChangeLog @@ -1,3 +1,10 @@ +2005-07-07 Hrvoje Niksic + + * config-compiler.h (stat_alias): Don't directly redefine stat and + fstat here. Just define the alias symbols. + (gai_strerror): Just declare that it needs to be defined instead + of defining it directly. + 2005-07-07 Gisle Vanem * config-compiler.h: Define HAVE__BOOL, HAVE_INTTYPES_H, and diff --git a/windows/config-compiler.h b/windows/config-compiler.h index fbc199f9..6c526891 100644 --- a/windows/config-compiler.h +++ b/windows/config-compiler.h @@ -45,10 +45,6 @@ so, delete this exception statement from your version. */ contains most of the explanatory comments. Things that apply to *all* compilers, as well as things that are specific to Wget, belong in src/mswindows.h. */ - -/* For all compilers: must include *before* redefining - stat. */ -#include /* -------------------- */ /* MinGW (GCC) section. */ @@ -60,10 +56,11 @@ so, delete this exception statement from your version. */ #define LL(n) n##LL /* Transparently support statting large files, like POSIX's LFS API - does. All Windows compilers we support use _stati64 (but have - different names for 2nd argument type, see below), so we use - that. */ -#define stat(fname, buf) _stati64 (fname, buf) + does, by aliasing stat and fstat to their equivalents that do LFS. + Most Windows compilers we support use _stati64 (but have different + names for 2nd argument type, see below), so we use that. */ +#define stat_alias _stati64 +#define fstat_alias _fstati64 /* On Windows the 64-bit stat requires an explicitly different type for the 2nd argument, so we define a struct_stat macro that expands @@ -81,13 +78,16 @@ so, delete this exception statement from your version. */ /* MinGW 3.7 (or older) prototypes gai_strerror(), but is missing from all import libraries. */ #ifdef ENABLE_IPV6 -# undef gai_strerror -# define gai_strerror windows_strerror +# define NEED_GAI_STRERROR #endif /* MinGW and GCC support some POSIX and C99 features. */ -#define HAVE__BOOL 1 #define HAVE_INTTYPES_H 1 + +#define HAVE__BOOL 1 +#undef SIZEOF_LONG_LONG /* avoid redefinition warning */ +#define SIZEOF_LONG_LONG 8 + #define HAVE_STRTOLL 1 /* -------------------- */ @@ -99,7 +99,8 @@ so, delete this exception statement from your version. */ #define LL(n) n##I64 -#define stat(fname, buf) _stati64 (fname, buf) +#define stat_alias _stati64 +#define fstat_alias _fstati64 #define struct_stat struct _stati64 #define struct_fstat struct _stati64 @@ -117,9 +118,11 @@ so, delete this exception statement from your version. */ #define OS_TYPE "Windows-Borland" #define LL(n) n##I64 -#define stat(fname, buf) _stati64 (fname, buf) + +#define stat_alias _stati64 +#undef fstat_alias #define struct_stat struct stati64 -#define struct_fstat struct stat +#undef struct_fstat /* ------------------------------ */ /* Digital Mars Compiler section. */ @@ -132,7 +135,8 @@ so, delete this exception statement from your version. */ /* DMC supports 64-bit types, including long long, but not statting large files. */ -#undef stat +#undef stat_alias +#undef fstat_alias /* If left undefined, sysdep.h will define these to struct stat. */ #undef struct_stat #undef struct_fstat