diff options
author | Nick Mathewson <nickm@torproject.org> | 2010-06-08 18:10:20 -0400 |
---|---|---|
committer | Roger Dingledine <arma@torproject.org> | 2011-10-26 07:30:11 -0400 |
commit | c5a3664f27379f5f6cc9a2b92032d50ab34550f8 (patch) | |
tree | cfb3b0f61032a85885f6de3dc6465b1aaf603894 | |
parent | ee545cd4cb32b2aa6a37285d0afcd1e4d11fa27c (diff) | |
download | tor-c5a3664f27379f5f6cc9a2b92032d50ab34550f8.tar.gz tor-c5a3664f27379f5f6cc9a2b92032d50ab34550f8.zip |
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.
-rw-r--r-- | changes/bug1526 | 3 | ||||
-rw-r--r-- | src/common/torgzip.c | 32 |
2 files changed, 30 insertions, 5 deletions
diff --git a/changes/bug1526 b/changes/bug1526 new file mode 100644 index 0000000000..bae7104451 --- /dev/null +++ b/changes/bug1526 @@ -0,0 +1,3 @@ + o Minor bugfixes: + - Build correctly on OSX with zlib 1.2.4 and higher with all warnings + enabled.
\ No newline at end of file diff --git a/src/common/torgzip.c b/src/common/torgzip.c index f5709aaf3c..95d5797c45 100644 --- a/src/common/torgzip.c +++ b/src/common/torgzip.c @@ -13,20 +13,42 @@ #include <stdlib.h> #include <stdio.h> #include <assert.h> -#ifdef _MSC_VER -#include "..\..\contrib\zlib\zlib.h" -#else -#include <zlib.h> -#endif #include <string.h> #ifdef HAVE_NETINET_IN_H #include <netinet/in.h> #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 <zlib.h> +#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; |