From: Bdale Garbee Date: Tue, 6 Mar 2012 05:13:51 +0000 (-0700) Subject: fix for mingw32 builds X-Git-Tag: debian/1.4-3~2 X-Git-Url: https://git.gag.com/?p=debian%2Fgzip;a=commitdiff_plain;h=c28fb32b29882d8ad5dfc8fc11e664199508bce8 fix for mingw32 builds --- diff --git a/debian/changelog b/debian/changelog index 2caa203..7bc895a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +gzip (1.4-3) UNRELEASED; urgency=low + + * patch from upstream for sys_stat.in.h to fix mingw32 builds, + closes: #653960 + + -- Bdale Garbee Mon, 05 Mar 2012 22:13:33 -0700 + gzip (1.4-2) unstable; urgency=low * patch to use DEB_HOST_ARCH in rules, closes: #644785 diff --git a/debian/patches/series b/debian/patches/series index 0c9a1ea..345aeaa 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,4 @@ getdtablesize-missing.diff rsyncable.diff zless-LESSOPEN.diff +sys_stat.in.h.diff diff --git a/debian/patches/sys_stat.in.h.diff b/debian/patches/sys_stat.in.h.diff new file mode 100644 index 0000000..146566b --- /dev/null +++ b/debian/patches/sys_stat.in.h.diff @@ -0,0 +1,42 @@ +diff --git a/lib/sys_stat.in.h b/lib/sys_stat.in.h +index e83ab1a..c71d44e 100644 +--- a/lib/sys_stat.in.h ++++ b/lib/sys_stat.in.h +@@ -500,14 +500,33 @@ extern int mknodat (int fd, char const *file, mode_t mode, dev_t dev) + /* We can't use the object-like #define stat rpl_stat, because of + struct stat. This means that rpl_stat will not be used if the user + does (stat)(a,b). Oh well. */ +-# undef stat +-# ifdef _LARGE_FILES ++# if defined _AIX && defined stat && defined _LARGE_FILES + /* With _LARGE_FILES defined, AIX (only) defines stat to stat64, + so we have to replace stat64() instead of stat(). */ +-# define stat stat64 + # undef stat64 + # define stat64(name, st) rpl_stat (name, st) +-# else /* !_LARGE_FILES */ ++# elif defined __MINGW32__ && defined stat ++# ifdef _USE_32BIT_TIME_T ++ /* The system headers define stat to _stat32i64. */ ++# undef _stat32i64 ++# define _stat32i64(name, st) rpl_stat (name, st) ++# else ++ /* The system headers define stat to _stat64. */ ++# undef _stat64 ++# define _stat64(name, st) rpl_stat (name, st) ++# endif ++# elif defined _MSC_VER && defined stat ++# ifdef _USE_32BIT_TIME_T ++ /* The system headers define stat to _stat32. */ ++# undef _stat32 ++# define _stat32(name, st) rpl_stat (name, st) ++# else ++ /* The system headers define stat to _stat64i32. */ ++# undef _stat64i32 ++# define _stat64i32(name, st) rpl_stat (name, st) ++# endif ++# else /* !(_AIX ||__MINGW32__ || _MSC_VER) */ ++# undef stat + # define stat(name, st) rpl_stat (name, st) + # endif /* !_LARGE_FILES */ + extern int stat (const char *name, struct stat *buf) _GL_ARG_NONNULL ((1, 2)); diff --git a/lib/sys_stat.in.h b/lib/sys_stat.in.h index e83ab1a..c71d44e 100644 --- a/lib/sys_stat.in.h +++ b/lib/sys_stat.in.h @@ -500,14 +500,33 @@ extern int mknodat (int fd, char const *file, mode_t mode, dev_t dev) /* We can't use the object-like #define stat rpl_stat, because of struct stat. This means that rpl_stat will not be used if the user does (stat)(a,b). Oh well. */ -# undef stat -# ifdef _LARGE_FILES +# if defined _AIX && defined stat && defined _LARGE_FILES /* With _LARGE_FILES defined, AIX (only) defines stat to stat64, so we have to replace stat64() instead of stat(). */ -# define stat stat64 # undef stat64 # define stat64(name, st) rpl_stat (name, st) -# else /* !_LARGE_FILES */ +# elif defined __MINGW32__ && defined stat +# ifdef _USE_32BIT_TIME_T + /* The system headers define stat to _stat32i64. */ +# undef _stat32i64 +# define _stat32i64(name, st) rpl_stat (name, st) +# else + /* The system headers define stat to _stat64. */ +# undef _stat64 +# define _stat64(name, st) rpl_stat (name, st) +# endif +# elif defined _MSC_VER && defined stat +# ifdef _USE_32BIT_TIME_T + /* The system headers define stat to _stat32. */ +# undef _stat32 +# define _stat32(name, st) rpl_stat (name, st) +# else + /* The system headers define stat to _stat64i32. */ +# undef _stat64i32 +# define _stat64i32(name, st) rpl_stat (name, st) +# endif +# else /* !(_AIX ||__MINGW32__ || _MSC_VER) */ +# undef stat # define stat(name, st) rpl_stat (name, st) # endif /* !_LARGE_FILES */ extern int stat (const char *name, struct stat *buf) _GL_ARG_NONNULL ((1, 2));