Opened 5 years ago

Closed 5 years ago

Last modified 6 months ago

#15314 closed enhancement (fixed)

Upgrade zlib to 1.2.8

Reported by: hjiawei Owned by:
Priority: low Milestone:
Component: 3rdparty Version:
Keywords: Cc:
Blocked By: Blocking:
Patch: yes


I have updated zlib to 1.2.8 (released in April 2013) against the latest svn trunk by modifying zlib.bkl and overwritten src/zlib. Here is the diff file for zlib.bkl:

Index: zlib.bkl
--- zlib.bkl	(revision 74461)
+++ zlib.bkl	(working copy)
@@ -34,7 +34,10 @@
-            src/zlib/gzio.c
+            src/zlib/gzlib.c
+            src/zlib/gzread.c
+            src/zlib/gzwrite.c
+            src/zlib/gzclose.c

Currently, only MSW port is tested and compiled without problems. Hope this diff file is helpful for the next great release.

Attachments (1)

zlib.7z download (90.0 KB) - added by hjiawei 5 years ago.

Download all attachments as: .zip

Change History (7)

comment:1 Changed 5 years ago by vadz

  • Priority changed from normal to low
  • Status changed from new to confirmed
  • Summary changed from 3rd-party library zlib 1.2.8 to Upgrade zlib to 1.2.8

The main problem with upgrading is actually importing the sources properly into svn. I probably won't have time to do this before 3.0 but OTOH the changes between 1.2.3 and 1.2.8 seem to be pretty minor, so this is probably not a problem.

Changed 5 years ago by hjiawei

comment:2 Changed 5 years ago by hjiawei

  • Patch set

Based on the file structure in src/zlib, I have created a patch using the latest zlib 1.2.8. MSW port is tested using MSVC 2010/2012 and TDM-GCC 4.7.1 to create static and dynamic packages. Here is a list of files being changed. All files are from the official 1.2.8 package directly without any modifications. Hope this will make the update easier.

M       ChangeLog
M       FAQ
M       INDEX
M       README
M       adler32.c
M       algorithm.txt
M       compress.c
M       crc32.c
M       crc32.h
M       deflate.c
M       deflate.h
M       example.c
A       gzclose.c
A       gzguts.h
D       gzio.c
A       gzlib.c
A       gzread.c
A       gzwrite.c
M       infback.c
M       inffast.c
M       inffast.h
M       inffixed.h
M       inflate.c
M       inflate.h
M       inftrees.c
M       inftrees.h
M       minigzip.c
M       trees.c
M       trees.h
M       uncompr.c
M       zconf.h
M       zlib.3
D       zlib.dsp
M       zlib.h
M       zutil.c
M       zutil.h

comment:3 Changed 5 years ago by God_Mark

Similar with ticket zlib 1.2.8 now comes with a prefix option witch should help eliminate any collisions with other built-in libraries.


  • 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.
  • Even better than compiling with -DZ_PREFIX would be to use configure to set
  • this permanently in zconf.h using "./configure --zprefix". */

#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */
# define Z_PREFIX_SET

comment:4 Changed 5 years ago by vadz

I've started upgrading zlib to 1.2.8 to use this "new" Z_PREFIX only to realize in the middle of the upgrade that it's not new at all (already present in 1.2.3 that we use) and doesn't allow to do what we want at all (it can be set or unset but not set to e.g. "wx_").

I'll still commit 1.2.8 sources but this is not really going to change anything.

comment:5 Changed 5 years ago by VZ

  • Resolution set to fixed
  • Status changed from confirmed to closed

(In [74903]) Upgrade bundled zlib to 1.2.8.

No real changes from wxWidgets point of view.

Closes #15314.

comment:6 Changed 6 months ago by Vadim Zeitlin <vadim@…>

In b8bc5955/git-wxWidgets:

Use zlib submodule with "wx_zlib_" prefix

This will allow projects to use static wxWidgets libraries and zlib
(either directly or indirectly, as can heppen e.g. via Boost.IOStreams)
at the same time without link conflicts.

See #15314.

Note: See TracTickets for help on using tickets.