From 2977ff0df909f939517e9857943938ff84201a26 Mon Sep 17 00:00:00 2001 From: David Turner 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