[zlib] Fix zlib sources for compilation with FreeType We must ensure that they do not issue compiler errors or warnings when they are compiled as part of `src/gzip/ftgzip.c`. * src/gzip/gzguts.h (COPY): Rename to... (COPY__): ... this since `COPY` and `COPY_` conflict with enum values, which have the same name in `zlib.h`. * src/gzip/inflate.c, src/gzip/adler32.c, src/gzip/crc32.c, src/gzip/zutil.c: Omit unused function declarations and definitions when `Z_FREETYPE` is defined. * src/gzip/inffast.h (inflate_fast): Declare as static. * src/gzip/inftrees.c (inflate_copyright): Declare as static. * 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. (inflateInit2)[Z_FREETYPE]: Provide proper declaration. * 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/inftrees.h: Add header guard macros to prevent compiler errors. (inflate_table): Declare as static. diff --git b/src/gzip/adler32.c a/src/gzip/adler32.c index be5e8a247..aa032e1dd 100644 --- b/src/gzip/adler32.c +++ a/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( return adler32_z(adler, buf, len); } +#ifndef Z_FREETYPE + /* ========================================================================= */ local uLong adler32_combine_( uLong adler1, @@ -184,3 +188,5 @@ uLong ZEXPORT adler32_combine64( { return adler32_combine_(adler1, adler2, len2); } + +#endif /* !Z_FREETYPE */ diff --git b/src/gzip/crc32.c a/src/gzip/crc32.c index 3a52aa89d..6cd1b09d5 100644 --- b/src/gzip/crc32.c +++ a/src/gzip/crc32.c @@ -103,9 +103,11 @@ # define ARMCRC32 #endif +#ifndef Z_FREETYPE /* Local functions. */ local z_crc_t multmodp OF((z_crc_t a, z_crc_t b)); local z_crc_t x2nmodp OF((z_off64_t n, unsigned k)); +#endif /* Z_FREETYPE */ #if defined(W) && (!defined(ARMCRC32) || defined(DYNAMIC_CRC_TABLE)) local z_word_t byte_swap OF((z_word_t word)); @@ -544,6 +546,8 @@ local void braid(ltl, big, n, w) * generation above. */ +#ifndef Z_FREETYPE + /* Return a(x) multiplied by b(x) modulo p(x), where p(x) is the CRC polynomial, reflected. For speed, this requires that a not be zero. @@ -600,6 +604,8 @@ const z_crc_t FAR * ZEXPORT get_crc_table() return (const z_crc_t FAR *)crc_table; } +#endif /* Z_FREETYPE */ + /* ========================================================================= * Use ARM machine instructions if available. This will compute the CRC about * ten times faster than the braided calculation. This code does not check for @@ -1077,6 +1083,8 @@ unsigned long ZEXPORT crc32( return crc32_z(crc, buf, len); } +#ifndef Z_FREETYPE + /* ========================================================================= */ uLong ZEXPORT crc32_combine64( uLong crc1, @@ -1123,3 +1131,5 @@ uLong ZEXPORT crc32_combine_op( { return multmodp(op, crc1) ^ (crc2 & 0xffffffff); } + +#endif /* Z_FREETYPE */ diff --git b/src/gzip/gzguts.h a/src/gzip/gzguts.h index 57faf3716..4f09a52a7 100644 --- b/src/gzip/gzguts.h +++ a/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 b/src/gzip/inffast.h a/src/gzip/inffast.h index e5c1aa4ca..684ae878c 100644 --- b/src/gzip/inffast.h +++ a/src/gzip/inffast.h @@ -8,4 +8,4 @@ subject to change. Applications should only use zlib.h. */ -void ZLIB_INTERNAL inflate_fast OF((z_streamp strm, unsigned start)); +static void ZLIB_INTERNAL inflate_fast OF((z_streamp strm, unsigned start)); diff --git b/src/gzip/inflate.c a/src/gzip/inflate.c index c9e566b03..5117e2e26 100644 --- b/src/gzip/inflate.c +++ a/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( z_streamp strm) @@ -239,6 +241,8 @@ int ZEXPORT inflateInit2_( return ret; } +#ifndef Z_FREETYPE + int ZEXPORT inflateInit_( z_streamp strm, const char *version, @@ -268,6 +272,8 @@ int ZEXPORT inflatePrime( 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. @@ -1315,6 +1321,8 @@ int ZEXPORT inflateEnd( return Z_OK; } +#ifndef Z_FREETYPE + int ZEXPORT inflateGetDictionary( z_streamp strm, Bytef *dictionary, @@ -1593,3 +1601,5 @@ unsigned long ZEXPORT inflateCodesUsed( state = (struct inflate_state FAR *)strm->state; return (unsigned long)(state->next - state->codes); } + +#endif /* !Z_FREETYPE */ diff --git b/src/gzip/inflate.h a/src/gzip/inflate.h index f127b6b1f..c6f5a52e1 100644 --- b/src/gzip/inflate.h +++ a/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. @@ -124,3 +127,5 @@ struct inflate_state { int back; /* bits back of last unprocessed length/lit */ unsigned was; /* initial length of match */ }; + +#endif /* INFLATE_H */ diff --git b/src/gzip/inftrees.c a/src/gzip/inftrees.c index d8405a24c..dd4965e9a 100644 --- b/src/gzip/inftrees.c +++ a/src/gzip/inftrees.c @@ -8,7 +8,7 @@ #define MAXBITS 15 -const char inflate_copyright[] = +static const char inflate_copyright[] = " inflate 1.2.13 Copyright 1995-2022 Mark Adler "; /* If you use the zlib library in a product, an acknowledgment is welcome diff --git b/src/gzip/inftrees.h a/src/gzip/inftrees.h index f53665311..a2207efb1 100644 --- b/src/gzip/inftrees.h +++ a/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. @@ -57,6 +60,8 @@ typedef enum { DISTS } codetype; -int ZLIB_INTERNAL inflate_table OF((codetype type, unsigned short FAR *lens, +static 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 b/src/gzip/zlib.h a/src/gzip/zlib.h index 953cb5012..3f2f76e3c 100644 --- b/src/gzip/zlib.h +++ a/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 */ @@ -373,6 +375,7 @@ ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); deallocated). */ +#endif /* !Z_FREETYPE */ /* ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); @@ -534,6 +537,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, @@ -956,6 +961,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, @@ -980,6 +987,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)); @@ -1069,6 +1078,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)); @@ -1095,6 +1106,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)); @@ -1214,6 +1227,8 @@ ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); 27-31: 0 (reserved) */ +#endif /* !Z_FREETYPE */ + #ifndef Z_SOLO /* utility functions */ @@ -1765,6 +1780,8 @@ ZEXTERN uLong ZEXPORT crc32_combine_gen OF((z_off_t len2)); crc32_combine_op(). */ +#ifndef Z_FREETYPE + ZEXTERN uLong ZEXPORT crc32_combine_op OF((uLong crc1, uLong crc2, uLong op)); /* Give the same result as crc32_combine(), using op in place of len2. op is @@ -1822,6 +1839,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 @@ -1901,20 +1931,25 @@ 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)); ZEXTERN uLong ZEXPORT crc32_combine_gen OF((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)); ZEXTERN int ZEXPORT inflateUndermine OF((z_streamp, int)); ZEXTERN int ZEXPORT inflateValidate OF((z_streamp, int)); ZEXTERN unsigned long ZEXPORT inflateCodesUsed OF((z_streamp)); +#endif /* !Z_FREETYPE */ ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp)); +#ifndef Z_FREETYPE ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp)); #if defined(_WIN32) && !defined(Z_SOLO) ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path, @@ -1927,6 +1962,7 @@ ZEXTERN int ZEXPORTVA gzvprintf Z_ARG((gzFile file, va_list va)); # endif #endif +#endif /* !Z_FREETYPE */ #ifdef __cplusplus } diff --git b/src/gzip/zutil.c a/src/gzip/zutil.c index ef174ca64..542706ca0 100644 --- b/src/gzip/zutil.c +++ a/src/gzip/zutil.c @@ -10,6 +10,8 @@ # include "gzguts.h" #endif +#ifndef Z_FREETYPE + z_const char * const z_errmsg[10] = { (z_const char *)"need dictionary", /* Z_NEED_DICT 2 */ (z_const char *)"stream end", /* Z_STREAM_END 1 */ @@ -138,6 +140,8 @@ const char * ZEXPORT zError( return ERR_MSG(err); } +#endif /* !Z_FREETYPE */ + #if defined(_WIN32_WCE) && _WIN32_WCE < 0x800 /* The older Microsoft C Run-Time Library for Windows CE doesn't have * errno. We define it as a global variable to simplify porting. @@ -159,6 +163,8 @@ void ZLIB_INTERNAL zmemcpy( } while (--len != 0); } +#ifndef Z_FREETYPE + int ZLIB_INTERNAL zmemcmp( const Bytef* s1, const Bytef* s2, @@ -181,6 +187,7 @@ void ZLIB_INTERNAL zmemzero( *dest++ = 0; /* ??? to be unrolled */ } while (--len != 0); } +#endif /* !Z_FREETYPE */ #endif #ifndef Z_SOLO diff --git b/src/gzip/zutil.h a/src/gzip/zutil.h index 0bc7f4ecd..055ba8b62 100644 --- b/src/gzip/zutil.h +++ a/src/gzip/zutil.h @@ -53,8 +53,10 @@ typedef unsigned long ulg; # endif #endif +#ifndef Z_FREETYPE extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ /* (size given to avoid silly warnings with Visual C++) */ +#endif /* !Z_FREETYPE */ #define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)] @@ -188,6 +190,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) @@ -196,6 +200,8 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ ZEXTERN uLong ZEXPORT crc32_combine_gen64 OF((z_off_t)); #endif +#endif /* !Z_FREETYPE */ + /* common defaults */ #ifndef OS_CODE @@ -227,9 +233,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));