summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/zlib/qtpatches.diff
blob: 28be579dc9dd9ab95ad95b2f952ba63af2fb9bfb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
diff --git a/src/ChangeLog b/src/ChangeLog
index b801a1031ec..686283a2aec 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,6 +1,10 @@
 
                 ChangeLog file for zlib
 
+Changes in 1.3.1 (Qt) (23 Jan 2024)
+- This is a stripped down copy of zlib that contains patches to
+  make it compile as part of Qt. See also "qtpatches.diff".
+
 Changes in 1.3.1 (22 Jan 2024)
 - Reject overflows of zip header fields in minizip
 - Fix bug in inflateSync() for data held in bit buffer
diff --git a/src/README b/src/README
index c5f917540b6..af6b4f32bf5 100644
--- a/src/README
+++ b/src/README
@@ -6,6 +6,9 @@ thread safe.  The data format used by the zlib library is described by RFCs
 http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and
 rfc1952 (gzip format).
 
+This is a stripped down copy of zlib that contains patches to make it compile
+as part of Qt. See also "qtpatches.diff".
+
 All functions of the compression library are documented in the file zlib.h
 (volunteer to write man pages welcome, contact zlib@gzip.org).  A usage example
 of the library is given in the file test/example.c which also tests that
diff --git a/src/gzguts.h b/src/gzguts.h
index eba72085bb7..5bf6b7d4813 100644
--- a/src/gzguts.h
+++ b/src/gzguts.h
@@ -3,6 +3,12 @@
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
+#include <qconfig.h>
+
+#ifdef QT_VISIBILITY_AVAILABLE
+#define HAVE_HIDDEN
+#endif
+
 #ifdef _LARGEFILE64_SOURCE
 #  ifndef _LARGEFILE_SOURCE
 #    define _LARGEFILE_SOURCE 1
diff --git a/src/zconf.h b/src/zconf.h
index 62adc8d8431..4e14507a22d 100644
--- a/src/zconf.h
+++ b/src/zconf.h
@@ -8,6 +8,9 @@
 #ifndef ZCONF_H
 #define ZCONF_H
 
+/* Since Qt Core must export these symbols, define Z_PREFIX to avoid clashes system zlib */
+#define Z_PREFIX
+
 /*
  * If you *really* need a unique prefix for all types and library functions,
  * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
@@ -139,6 +142,7 @@
 #  endif
 #  define zlibCompileFlags      z_zlibCompileFlags
 #  define zlibVersion           z_zlibVersion
+#  define z_errmsg              z_z_errmsg
 
 /* all zlib typedefs in zlib.h and zconf.h */
 #  define Byte                  z_Byte
@@ -433,7 +437,7 @@ typedef uLong FAR uLongf;
    typedef unsigned long z_crc_t;
 #endif
 
-#ifdef HAVE_UNISTD_H    /* may be set to #if 1 by ./configure */
+#if defined(HAVE_UNISTD_H) || !defined(WIN32)
 #  define Z_HAVE_UNISTD_H
 #endif
 
diff --git a/src/zlib.h b/src/zlib.h
index 8d4b932eaf6..2cff72ee865 100644
--- a/src/zlib.h
+++ b/src/zlib.h
@@ -33,11 +33,15 @@
 
 #include "zconf.h"
 
+#include <qglobal.h>
+#undef ZEXTERN
+#define ZEXTERN Q_CORE_EXPORT
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#define ZLIB_VERSION "1.3.1"
+#define ZLIB_VERSION "1.3.1 (Qt)"
 #define ZLIB_VERNUM 0x1310
 #define ZLIB_VER_MAJOR 1
 #define ZLIB_VER_MINOR 3
diff --git a/src/zutil.h b/src/zutil.h
index 48dd7febae6..71dd616ab8d 100644
--- a/src/zutil.h
+++ b/src/zutil.h
@@ -13,6 +13,12 @@
 #ifndef ZUTIL_H
 #define ZUTIL_H
 
+#include <qconfig.h>
+
+#ifdef QT_VISIBILITY_AVAILABLE
+#define HAVE_HIDDEN
+#endif
+
 #ifdef HAVE_HIDDEN
 #  define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
 #else
@@ -157,7 +163,7 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
 #  define OS_CODE 18
 #endif
 
-#ifdef __APPLE__
+#if defined(__APPLE__) && !defined(OS_CODE)
 #  define OS_CODE 19
 #endif