shithub: freetype+ttf2subf

Download patch

ref: da8a8b8bcf492544902e5a82bad1d0f5c156939c
parent: a25e85ed95dc855e42e6bb55138e27d362c5ea1e
author: Werner Lemberg <[email protected]>
date: Mon Jan 10 12:25:47 EST 2022

[zlib] Some organizational changes.

We now first apply zlib's `zlib2ansi` script, then FreeType's patch file.

* src/gzip/README.freetype: Updated.

* patches/0001-zlib-Fix-zlib-sources-to-compile-for-FreeType.patch: Renamed
to...
* patches/freetype-zlib.diff: This.
Clean up description, then regenerate it as follows:

  - Copy unmodified files from `zlib` repository.
  - Run `zlib2ansi` script.
  - Run `git diff -R > patches/freetype-zlib.diff.new`.
  - Insert patch description of old diff file, then replace old diff with
    new diff file.

git/fs: mount .git/fs: mount/attach disallowed
binary files a/src/gzip/README.freetype b/src/gzip/README.freetype differ
--- 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 */
--- a/src/gzip/patches/0001-zlib-Fix-zlib-sources-to-compile-for-FreeType.patch
+++ /dev/null
@@ -1,419 +1,0 @@
-From 2977ff0df909f939517e9857943938ff84201a26 Mon Sep 17 00:00:00 2001
-From: David Turner <[email protected]>
-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
-
--- /dev/null
+++ b/src/gzip/patches/freetype-zlib.diff
@@ -1,0 +1,386 @@
+[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/adler32.c: Do not define unused functions when `Z_FREETYPE`
+is set.
+
+* src/gzip/crc32.c (DO1, DO8): Undefine.  Already defined in `adler32.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: 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.
+
+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 3e3eb1794..ffced1ea7 100644
+--- b/src/gzip/crc32.c
++++ a/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 b/src/gzip/gzguts.h a/src/gzip/gzguts.h
+index 990a4d251..c81f8f392 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/inflate.c a/src/gzip/inflate.c
+index 3f7ea647b..7387e6f57 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)
+@@ -244,6 +246,8 @@ int ZEXPORT inflateInit_(
+     return inflateInit2_(strm, DEF_WBITS, version, stream_size);
+ }
+ 
++#ifndef Z_FREETYPE
++
+ int ZEXPORT inflatePrime(
+     z_streamp strm,
+     int bits,
+@@ -265,6 +269,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.
+@@ -1288,6 +1294,8 @@ int ZEXPORT inflateEnd(
+     return Z_OK;
+ }
+ 
++#ifndef Z_FREETYPE
++
+ int ZEXPORT inflateGetDictionary(
+     z_streamp strm,
+     Bytef *dictionary,
+@@ -1440,6 +1448,8 @@ int ZEXPORT inflateSync(
+     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 @@ int ZEXPORT inflateSyncPoint(
+     return state->mode == STORED && state->bits == 0;
+ }
+ 
++#if !Z_FREETYPE
++
+ int ZEXPORT inflateCopy(
+     z_streamp dest,
+     z_streamp source)
+@@ -1505,6 +1517,8 @@ int ZEXPORT inflateCopy(
+     return Z_OK;
+ }
+ 
++#endif  /* !Z_FREETYPE */
++
+ int ZEXPORT inflateUndermine(
+     z_streamp strm,
+     int subvert)
+@@ -1538,6 +1552,8 @@ int ZEXPORT inflateValidate(
+     return Z_OK;
+ }
+ 
++#ifndef Z_FREETYPE
++
+ long ZEXPORT inflateMark(
+     z_streamp strm)
+ {
+@@ -1559,3 +1575,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 a46cce6b6..92ea758e2 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.
+@@ -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 b/src/gzip/inftrees.h a/src/gzip/inftrees.h
+index baa53a0b1..c94eb78b5 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.
+@@ -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 b/src/gzip/zlib.h a/src/gzip/zlib.h
+index f09cdaf1e..1807c0645 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 */
+ 
+@@ -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));
+ /*
+@@ -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 b/src/gzip/zutil.h a/src/gzip/zutil.h
+index b079ea6a8..a38573878 100644
+--- b/src/gzip/zutil.h
++++ a/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));
--- a/src/gzip/zlib.h
+++ b/src/gzip/zlib.h
@@ -1771,6 +1771,7 @@
    len2.
 */
 
+
                         /* various hacks, don't look :) */
 
 /* deflateInit and inflateInit are macros to allow checking the zlib version
@@ -1778,7 +1779,6 @@
  */
 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,