| From 2977ff0df909f939517e9857943938ff84201a26 Mon Sep 17 00:00:00 2001 |
| From: David Turner <david@freetype.org> |
| Date: Wed, 18 Aug 2021 00:17:35 +0200 |
| Subject: [zlib] Fix zlib sources to compile for FreeType |
| |
| Fix misc zlib sources to ensure that they do not issue compiler |
| warnings when they are compiled as part of src/gzip/ftgzip.c. |
| |
| * src/gzip/adler32.c: Do not define unused functions when Z_FREETYPE |
| is set. |
| |
| * src/gzip/crc32.c: Undefined DO1 and DO8 macros that are already |
| defined in adler32.c. |
| |
| * src/gzip/gzguts.h: Rename COPY macro to COPY__ since COPY and |
| COPY_ conflict with enum values with the same name in |
| zlib.h. |
| |
| * src/gzip/inflate.c, src/gzip/adler32.c: Omit unused function |
| declarations when Z_FREETYPE is defined. |
| |
| * src/gzip/zlib.h: Include "ftzconf.h" instead of "zconf.h" to |
| avoid conflicts with system-installed headers. Omit unused |
| function declarations when Z_FREETYPE is defined. |
| |
| * src/gzip/zutil.h: Use ft_memxxx() functions instead of memxxx(). |
| Omit unused function declarations when Z_FREETYPE is defined. |
| |
| * src/gzip/inflate.h, src/gzip/inftrees.h: Add header guard macros |
| to prevent compiler errors. |
| --- |
| src/gzip/adler32.c | 6 ++++++ |
| src/gzip/crc32.c | 2 ++ |
| src/gzip/gzguts.h | 2 +- |
| src/gzip/inflate.c | 18 ++++++++++++++++++ |
| src/gzip/inflate.h | 5 +++++ |
| src/gzip/inftrees.h | 5 +++++ |
| src/gzip/zlib.h | 39 ++++++++++++++++++++++++++++++++++++--- |
| src/gzip/zutil.h | 10 +++++++--- |
| 8 files changed, 80 insertions(+), 7 deletions(-) |
| |
| diff --git a/src/gzip/adler32.c b/src/gzip/adler32.c |
| index d0be4380a..a8242ba13 100644 |
| --- a/src/gzip/adler32.c |
| +++ b/src/gzip/adler32.c |
| @@ -7,7 +7,9 @@ |
| |
| #include "zutil.h" |
| |
| +#ifndef Z_FREETYPE |
| local uLong adler32_combine_ OF((uLong adler1, uLong adler2, z_off64_t len2)); |
| +#endif |
| |
| #define BASE 65521U /* largest prime smaller than 65536 */ |
| #define NMAX 5552 |
| @@ -139,6 +141,8 @@ uLong ZEXPORT adler32(adler, buf, len) |
| return adler32_z(adler, buf, len); |
| } |
| |
| +#ifndef Z_FREETYPE |
| + |
| /* ========================================================================= */ |
| local uLong adler32_combine_(adler1, adler2, len2) |
| uLong adler1; |
| @@ -184,3 +188,5 @@ uLong ZEXPORT adler32_combine64(adler1, adler2, len2) |
| { |
| return adler32_combine_(adler1, adler2, len2); |
| } |
| + |
| +#endif /* !Z_FREETYPE */ |
| diff --git a/src/gzip/crc32.c b/src/gzip/crc32.c |
| index 9580440c0..d67663a4e 100644 |
| --- a/src/gzip/crc32.c |
| +++ b/src/gzip/crc32.c |
| @@ -195,6 +195,8 @@ const z_crc_t FAR * ZEXPORT get_crc_table() |
| } |
| |
| /* ========================================================================= */ |
| +#undef DO1 |
| +#undef DO8 |
| #define DO1 crc = crc_table[0][((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8) |
| #define DO8 DO1; DO1; DO1; DO1; DO1; DO1; DO1; DO1 |
| |
| diff --git a/src/gzip/gzguts.h b/src/gzip/gzguts.h |
| index 990a4d251..a27f38998 100644 |
| --- a/src/gzip/gzguts.h |
| +++ b/src/gzip/gzguts.h |
| @@ -163,7 +163,7 @@ |
| |
| /* values for gz_state how */ |
| #define LOOK 0 /* look for a gzip header */ |
| -#define COPY 1 /* copy input directly */ |
| +#define COPY__ 1 /* copy input directly */ |
| #define GZIP 2 /* decompress a gzip stream */ |
| |
| /* internal gzip file state data structure */ |
| diff --git a/src/gzip/inflate.c b/src/gzip/inflate.c |
| index ac333e8c2..fa61003ce 100644 |
| --- a/src/gzip/inflate.c |
| +++ b/src/gzip/inflate.c |
| @@ -99,8 +99,10 @@ local int updatewindow OF((z_streamp strm, const unsigned char FAR *end, |
| #ifdef BUILDFIXED |
| void makefixed OF((void)); |
| #endif |
| +#ifndef Z_FREETYPE |
| local unsigned syncsearch OF((unsigned FAR *have, const unsigned char FAR *buf, |
| unsigned len)); |
| +#endif |
| |
| local int inflateStateCheck(strm) |
| z_streamp strm; |
| @@ -244,6 +246,8 @@ int stream_size; |
| return inflateInit2_(strm, DEF_WBITS, version, stream_size); |
| } |
| |
| +#ifndef Z_FREETYPE |
| + |
| int ZEXPORT inflatePrime(strm, bits, value) |
| z_streamp strm; |
| int bits; |
| @@ -265,6 +269,8 @@ int value; |
| return Z_OK; |
| } |
| |
| +#endif /* Z_FREETYPE */ |
| + |
| /* |
| Return state with length and distance decoding tables and index sizes set to |
| fixed code decoding. Normally this returns fixed tables from inffixed.h. |
| @@ -1288,6 +1294,8 @@ z_streamp strm; |
| return Z_OK; |
| } |
| |
| +#ifndef Z_FREETYPE |
| + |
| int ZEXPORT inflateGetDictionary(strm, dictionary, dictLength) |
| z_streamp strm; |
| Bytef *dictionary; |
| @@ -1440,6 +1448,8 @@ z_streamp strm; |
| return Z_OK; |
| } |
| |
| +#endif /* !Z_FREETYPE */ |
| + |
| /* |
| Returns true if inflate is currently at the end of a block generated by |
| Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP |
| @@ -1458,6 +1468,8 @@ z_streamp strm; |
| return state->mode == STORED && state->bits == 0; |
| } |
| |
| +#if !Z_FREETYPE |
| + |
| int ZEXPORT inflateCopy(dest, source) |
| z_streamp dest; |
| z_streamp source; |
| @@ -1505,6 +1517,8 @@ z_streamp source; |
| return Z_OK; |
| } |
| |
| +#endif /* !Z_FREETYPE */ |
| + |
| int ZEXPORT inflateUndermine(strm, subvert) |
| z_streamp strm; |
| int subvert; |
| @@ -1538,6 +1552,8 @@ int check; |
| return Z_OK; |
| } |
| |
| +#ifndef Z_FREETYPE |
| + |
| long ZEXPORT inflateMark(strm) |
| z_streamp strm; |
| { |
| @@ -1559,3 +1575,5 @@ z_streamp strm; |
| state = (struct inflate_state FAR *)strm->state; |
| return (unsigned long)(state->next - state->codes); |
| } |
| + |
| +#endif /* !Z_FREETYPE */ |
| diff --git a/src/gzip/inflate.h b/src/gzip/inflate.h |
| index a46cce6b6..92ea758e2 100644 |
| --- a/src/gzip/inflate.h |
| +++ b/src/gzip/inflate.h |
| @@ -3,6 +3,9 @@ |
| * For conditions of distribution and use, see copyright notice in zlib.h |
| */ |
| |
| +#ifndef INFLATE_H |
| +#define INFLATE_H |
| + |
| /* WARNING: this file should *not* be used by applications. It is |
| part of the implementation of the compression library and is |
| subject to change. Applications should only use zlib.h. |
| @@ -123,3 +126,5 @@ struct inflate_state { |
| int back; /* bits back of last unprocessed length/lit */ |
| unsigned was; /* initial length of match */ |
| }; |
| + |
| +#endif /* INFLATE_H */ |
| diff --git a/src/gzip/inftrees.h b/src/gzip/inftrees.h |
| index baa53a0b1..c94eb78b5 100644 |
| --- a/src/gzip/inftrees.h |
| +++ b/src/gzip/inftrees.h |
| @@ -3,6 +3,9 @@ |
| * For conditions of distribution and use, see copyright notice in zlib.h |
| */ |
| |
| +#ifndef INFTREES_H |
| +#define INFTREES_H |
| + |
| /* WARNING: this file should *not* be used by applications. It is |
| part of the implementation of the compression library and is |
| subject to change. Applications should only use zlib.h. |
| @@ -60,3 +63,5 @@ typedef enum { |
| int ZLIB_INTERNAL inflate_table OF((codetype type, unsigned short FAR *lens, |
| unsigned codes, code FAR * FAR *table, |
| unsigned FAR *bits, unsigned short FAR *work)); |
| + |
| +#endif /* INFTREES_H_ */ |
| diff --git a/src/gzip/zlib.h b/src/gzip/zlib.h |
| index f09cdaf1e..ff5ae736d 100644 |
| --- a/src/gzip/zlib.h |
| +++ b/src/gzip/zlib.h |
| @@ -31,7 +31,7 @@ |
| #ifndef ZLIB_H |
| #define ZLIB_H |
| |
| -#include "zconf.h" |
| +#include "ftzconf.h" |
| |
| #ifdef __cplusplus |
| extern "C" { |
| @@ -211,6 +211,8 @@ typedef gz_header FAR *gz_headerp; |
| |
| #define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ |
| |
| +#ifndef Z_FREETYPE |
| + |
| #define zlib_version zlibVersion() |
| /* for compatibility with versions < 1.0.2 */ |
| |
| @@ -246,7 +248,6 @@ ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); |
| this will be done by deflate(). |
| */ |
| |
| - |
| ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); |
| /* |
| deflate compresses as much data as possible, and stops when the input |
| @@ -373,6 +374,7 @@ ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); |
| deallocated). |
| */ |
| |
| +#endif /* !Z_FREETYPE */ |
| |
| /* |
| ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); |
| @@ -534,6 +536,8 @@ ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); |
| The following functions are needed only in some special applications. |
| */ |
| |
| +#ifndef Z_FREETYPE |
| + |
| /* |
| ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, |
| int level, |
| @@ -954,6 +958,8 @@ ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, |
| destination. |
| */ |
| |
| +#endif /* !Z_FREETYPE */ |
| + |
| ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); |
| /* |
| This function is equivalent to inflateEnd followed by inflateInit, |
| @@ -978,6 +984,8 @@ ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, |
| the windowBits parameter is invalid. |
| */ |
| |
| +#ifndef Z_FREETYPE |
| + |
| ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, |
| int bits, |
| int value)); |
| @@ -1067,6 +1075,8 @@ ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, |
| stream state was inconsistent. |
| */ |
| |
| +#endif /* !Z_FREETYPE */ |
| + |
| /* |
| ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, |
| unsigned char FAR *window)); |
| @@ -1093,6 +1103,8 @@ typedef unsigned (*in_func) OF((void FAR *, |
| z_const unsigned char FAR * FAR *)); |
| typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); |
| |
| +#ifndef Z_FREETYPE |
| + |
| ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, |
| in_func in, void FAR *in_desc, |
| out_func out, void FAR *out_desc)); |
| @@ -1212,6 +1224,8 @@ ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); |
| 27-31: 0 (reserved) |
| */ |
| |
| +#endif /* !Z_FREETYPE */ |
| + |
| #ifndef Z_SOLO |
| |
| /* utility functions */ |
| @@ -1739,6 +1753,8 @@ ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); |
| if (crc != original_crc) error(); |
| */ |
| |
| +#ifndef Z_FREETYPE |
| + |
| ZEXTERN uLong ZEXPORT crc32_z OF((uLong adler, const Bytef *buf, |
| z_size_t len)); |
| /* |
| @@ -1755,7 +1771,6 @@ ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); |
| len2. |
| */ |
| |
| - |
| /* various hacks, don't look :) */ |
| |
| /* deflateInit and inflateInit are macros to allow checking the zlib version |
| @@ -1763,6 +1778,7 @@ ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); |
| */ |
| ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, |
| const char *version, int stream_size)); |
| + |
| ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, |
| const char *version, int stream_size)); |
| ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, |
| @@ -1805,6 +1821,19 @@ ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, |
| ZLIB_VERSION, (int)sizeof(z_stream)) |
| #endif |
| |
| +#else /* Z_FREETYPE */ |
| + |
| + |
| +ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, |
| + const char *version, int stream_size)); |
| + |
| +# define inflateInit2(strm, windowBits) \ |
| + inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ |
| + (int)sizeof(z_stream)) |
| + |
| +#endif /* Z_FREETYPE */ |
| + |
| + |
| #ifndef Z_SOLO |
| |
| /* gzgetc() macro and its supporting function and exposed data structure. Note |
| @@ -1879,12 +1908,15 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ |
| |
| #else /* Z_SOLO */ |
| |
| +#ifndef Z_FREETYPE |
| ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); |
| ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); |
| +#endif |
| |
| #endif /* !Z_SOLO */ |
| |
| /* undocumented functions */ |
| +#ifndef Z_FREETYPE |
| ZEXTERN const char * ZEXPORT zError OF((int)); |
| ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); |
| ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table OF((void)); |
| @@ -1904,6 +1936,7 @@ ZEXTERN int ZEXPORTVA gzvprintf Z_ARG((gzFile file, |
| va_list va)); |
| # endif |
| #endif |
| +#endif /* !Z_FREETYPE */ |
| |
| #ifdef __cplusplus |
| } |
| diff --git a/src/gzip/zutil.h b/src/gzip/zutil.h |
| index b079ea6a8..a38573878 100644 |
| --- a/src/gzip/zutil.h |
| +++ b/src/gzip/zutil.h |
| @@ -185,6 +185,8 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ |
| #pragma warn -8066 |
| #endif |
| |
| +#ifndef Z_FREETYPE |
| + |
| /* provide prototypes for these when building zlib without LFS */ |
| #if !defined(_WIN32) && \ |
| (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0) |
| @@ -192,6 +194,8 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ |
| ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); |
| #endif |
| |
| +#endif /* !Z_FREETYPE */ |
| + |
| /* common defaults */ |
| |
| #ifndef OS_CODE |
| @@ -223,9 +227,9 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ |
| # define zmemcmp _fmemcmp |
| # define zmemzero(dest, len) _fmemset(dest, 0, len) |
| # else |
| -# define zmemcpy memcpy |
| -# define zmemcmp memcmp |
| -# define zmemzero(dest, len) memset(dest, 0, len) |
| +# define zmemcpy ft_memcpy |
| +# define zmemcmp ft_memcmp |
| +# define zmemzero(dest, len) ft_memset(dest, 0, len) |
| # endif |
| #else |
| void ZLIB_INTERNAL zmemcpy OF((Bytef* dest, const Bytef* source, uInt len)); |
| -- |
| 2.30.2 |
| |