Bug #817

zlib 1.2.6

Added by Daniel Kaneider over 9 years ago. Updated over 8 years ago.

Target version:
Start date:
19 Mar 2012
Due date:
% Done:


Estimated time:


Please upgrade the build files, especially (msvc64/zlib/zlib.vcproj), to use the newest zlib version.




Updated by Thomas Beutlich over 9 years ago

Daniel Kaneider wrote:

Please upgrade the build files, especially (msvc64/zlib/zlib.vcproj), to use the newest zlib version.


Better wait for 1.2.7 which is due soon. zlib 1.2.7 has better multi-platform compilation support whereas 1.2.6 cannot be compiled for x64 out of the box.


Updated by Robin Mills over 9 years ago

  • Assignee set to Robin Mills
  • Target version set to 0.24

I'll have a look at this after we've finished on 0.23.

The current msvc64 build environment provides its own vcproj to build Zlib (and expat and xmpsdk) and this was done because I didn't find a robust build environment for 64/32 builds of those libraries. By contrast msvc (32 bit only) used the projects provided by zlib and expat and required them to be built in a directory parallel to exiv2 (this is described exiv2/msvc/README-MSVC.txt).

I'll have to look at zlib 1.2.6 (and 1.2.7 if available) for exiv2 0.24. I personally prefer the "one stop" solution in msvc64.


Updated by Robin Mills over 9 years ago

I see that Expat was updated to 2.1.0 on 24 March 2012 I'll add an action to this bug report to investigate the build implications of using 2.1.0. This investigation doesn't imply that exiv2 will adopt Expat 2.1.0.


Updated by Thomas Beutlich over 9 years ago

zlib 1.2.7 was oficially released on 2nd of May 2012.


Updated by Robin Mills over 9 years ago

Thanks for letting me know about this. I'll take a look at 1.2.7 during May.


Updated by Robin Mills over 9 years ago

I've looked at this and it looks OK. For Mac, Linux, Cygwin this is pain free. I pulled down the code, built, linked and ran the test suite. Everything worked perfectly.

MinGW produces the following error when building expat-2.1.0:

/c/gnu.master/expat-2.1.0/xmlwf/xmlwf.c:626: undefined reference to `__getreent'

For DevStudio, Expat 2.1.0 does not provide x64 projects. Zlib provides project files for MSVC 9 and 10. I've only tried on 9 (2008) and that produced the following unimpressive result:

========== Build: 23 succeeded, 22 failed, 0 up-to-date, 0 skipped ==========

However, I'm not discouraged. I'll update the msvc64 development environment to support 1.2.7 and expat 2.1.0 this weekend and run the test suite. If everything passes, I'll submit the code to the trunk.

We only released 0.23 of exiv2 recently, so this is our "stable" build.

The trunk's msvc64 environment can be considered "experimental". If nobody raises an objection in the next few months, it will be the default for the exiv2 0.24 release. I'll update the notes in msvc64/ReadMe.txt to say how to build with earlier versions of zlib (1.2.3 and 1.2.5) and expat (2.0.1) The msvc64 tree can build 32 and 64 bit binaries using DevStudio 8, 9 and 10. (I've also successfully tested 11 beta).

Moving forward, I would like to discontinue support for the msvc build environment, so I don't intend to add support for zlib 1.2.7 and expat 2.1.0 to the projects in that branch. The main reason to retain the msvc build environment is to support DevStudio 7.1 (2003).

I don't intend to do anything concerning expat-2.1.0 on MinGW as the obviously work-around is to use 2.0.1. If somebody requires support for 2.1.0 on MinGW, they can report the issue to the expat team.

1) I'll build exiv2 with msvc64 and zlib1.2.7 and expat 2.1.0 and if it passes the test suite, submit to the trunk later this weekend.
2) Linux (and Mac, Cygwin) users can use zlib 1.2.7 and expat 2.1.0 if they wish.
3) MinGW users should continue to use zlib 1.2.5.


Updated by Daniel Kaneider over 9 years ago

Thanks for upgrading to the newest zlib/expat versions. msvc64 was the most important for me, and it can be confirmed to work.

Btw. both zlib and expat seem to use cmake for compilation, a possible way how to include them in the future.


Updated by Robin Mills over 9 years ago

Daniel. Thanks for the feedback. I'm glad this is working for you.

CMake support for Windows (and Xcode) is my top priority for exiv2 0.24. The existing CMakeList.txt files work well on Linux and produce something that runs on Xcode and DevStudio 2008 (although I need a change to zconf.h).

For MSVC, I hope to get everything to build (MSVC 7.1, 8, 9 and 10) in 32 and 64 bits in June and submit the changes to the repo. However build issues, or work or family matters may delay things.

The exiv2 project goal is to only support CMake at sometime in the future (0.25 at the soonest) and discontinue support for the msvc/msvc64 projects. Who knows, we might even dump the automake code as well. We'll see.

The testing of all those build versions (and running the test suite) is a time-consuming business. If you'd like to get involved, I'd appreciate your help. Especially with MSVC 10 which is due this year and for which I will have to purchase a license. If you have a valid license, perhaps you could perform the builds and run the test suite (on msvc64 and CMake builds).


Updated by Robin Mills over 9 years ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 100

Updated by Robin Mills over 9 years ago

  • Priority changed from High to Normal

Updated by Robin Mills over 9 years ago

I've submitted changes to enable CMake to build exiv2 with MSVC: SVN:2746. This builds 32/64 bit Static/Dynamic libraries and applications. The CMake environment takes advantage of the zlib 1.2.7 and expat 2.1.0 cmake support mentioned by Daniel. This is described in exiv2/README-CMAKE.


Updated by Robin Mills over 8 years ago

  • Status changed from Resolved to Closed

Fixed in 0.24.

Also available in: Atom PDF