From 1a52e39c22d522a8c4a23615f90b7f4560c2a9a2 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Tue, 8 Jun 2010 18:10:20 -0400 Subject: Fix zlib macro brokenness on osx with zlib 1.2.4 and higher. From the code: zlib 1.2.4 and 1.2.5 do some "clever" things with macros. Instead of saying "(defined(FOO) ? FOO : 0)" they like to say "FOO-0", on the theory that nobody will care if the compile outputs a no-such-identifier warning. Sorry, but we like -Werror over here, so I guess we need to define these. I hope that zlib 1.2.6 doesn't break these too. Possible fix for bug 1526. --- src/common/torgzip.c | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) (limited to 'src/common/torgzip.c') diff --git a/src/common/torgzip.c b/src/common/torgzip.c index 10bce33283..8a49b59e4f 100644 --- a/src/common/torgzip.c +++ b/src/common/torgzip.c @@ -13,20 +13,42 @@ #include #include #include -#ifdef _MSC_VER -#include "..\..\contrib\zlib\zlib.h" -#else -#include -#endif #include #ifdef HAVE_NETINET_IN_H #include #endif +#include "torint.h" #include "util.h" #include "log.h" #include "torgzip.h" +/* zlib 1.2.4 and 1.2.5 do some "clever" things with macros. Instead of + saying "(defined(FOO) ? FOO : 0)" they like to say "FOO-0", on the theory + that nobody will care if the compile outputs a no-such-identifier warning. + + Sorry, but we like -Werror over here, so I guess we need to define these. + I hope that zlib 1.2.6 doesn't break these too. +*/ +#ifndef _LARGEFILE64_SOURCE +#define _LARGEFILE64_SOURCE 0 +#endif +#ifndef _LFS64_LARGEFILE +#define _LFS64_LARGEFILE 0 +#endif +#ifndef _FILE_OFFSET_BITS +#define _FILE_OFFSET_BITS 0 +#endif +#ifndef off64_t +#define off64_t int64_t +#endif + +#ifdef _MSC_VER +#include "..\..\contrib\zlib\zlib.h" +#else +#include +#endif + /** Set to 1 if zlib is a version that supports gzip; set to 0 if it doesn't; * set to -1 if we haven't checked yet. */ static int gzip_is_supported = -1; -- cgit v1.2.3-54-g00ecf