<AWT Dev> RFR: 8077982: giflib upgrade breaks system giflib builds with earlier versions

Andrew Hughes gnu.andrew at redhat.com
Tue Jun 2 16:26:35 UTC 2015

Bug: https://bugs.openjdk.java.net/browse/JDK-8081315
Webrev: http://cr.openjdk.java.net/~andrew/8081315/webrev.01/

In 8011278, the option was added to build OpenJDK with a system
installation of giflib, something we've been doing for many years
in the IcedTea project.

Following 8077982, the internal copy of giflib was upgraded to
version 5.1 and appropriate changes were made to the splashscreen
code to adapt to this version. However, these changes were made
unconditionally and, in the process, the build of OpenJDK with
a system version of giflib < 5 was broken.

This is because giflib 5.0 altered the signature of DGifOpen to
take an optional error code and the same change was made to
DGifCloseFile in 5.1. Such changes were made upstream to allow
the use of giflib from multi-threaded applications where a
shared error number may cause concurrency issues.

We adapted IcedTea to these changes in 2.3.7 (2013-02-20) and
2.5.5 (2015-04-14) using conditionals to allow the code to still
build on older versions. A slightly updated version of this
code forms the webrev included here. As can be seen from the patch,
the same code is largely retained for the in-tree giflib 5, with
the minor addition of checking for an error from DGifCloseFile.
However, the conditionals also allow the return of the older
code used prior to 8077982, so that older system giflibs can
still be used.

Does this look OK to push to client?

Andrew :)

Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)

PGP Key: ed25519/35964222 (hkp://keys.gnupg.net)
Fingerprint = 5132 579D D154 0ED2 3E04  C5A0 CFDA 0F9B 3596 4222

PGP Key: rsa4096/248BDC07 (hkp://keys.gnupg.net)
Fingerprint = EC5A 1F5E C0AD 1D15 8F1F  8F91 3B96 A578 248B DC07

More information about the awt-dev mailing list