It is reasonable for jni code to be built against the system zlib. Such jni code should not accidentally invoke the jdk bundled zlib. zlib includes support for symbol renaming (Z_PREFIX), but better is to build the jdk so that jni does not have direct access to the zlib functions under any name (but that might be a lot of work).
Martin On Mon, Aug 24, 2009 at 00:20, Florian Weimer <fwei...@bfk.de> wrote: > * Martin Buchholz: > > > 45 +#ifdef _LP64 > > 46 +typedef unsigned int uLong; /* 32 bits or more */ > > 47 +#else > > 48 typedef unsigned long uLong; /* 32 bits or more */ > > 49 +#endif > > This is guaranteed to break interoperability with the system zlib. If > you want to make such adjustments, you really have to rename all > functions to avoid name clashes. Such clashes materialize if you load > a DSO which contains code linked to the system zlib (usually via JNI). > > Technically, this is not a regression because OpenJDK's existing zlib > 1.1 code is incompatible with 1.2 zlibs used on most systems, so the > same problem happens. > > -- > Florian Weimer <fwei...@bfk.de> > BFK edv-consulting GmbH http://www.bfk.de/ > Kriegsstraße 100 tel: +49-721-96201-1 > D-76133 Karlsruhe fax: +49-721-96201-99 >