On 22/02/2013 22:03, Martin Buchholz wrote:
Hi Alan, Xueming, build-ers,
I'd like you to do a code review.
I've finally figured out why fastdebug jdk occasionally gives
InternalError in the zip code.
Exception in thread "main" java.lang.InternalError
at java.util.zip.Inflater.init(Native Method)
at java.util.zip.Inflater.<init>(Inflater.java:101)
at java.util.zip.ZipFile.getInflater(ZipFile.java:448)
It's because:
- jdk changed structure size of z_stream struct
- making jdk zlib incompatible with stock zlib
- as a result of which, it is imperative to keep jdk zlib sequestered
from system zlib
- so need to not export zlib symbols from libzip.so
- so need to tell makefiles to use linker script unconditionally
http://cr.openjdk.java.net/~martin/webrevs/openjdk8/hide-zlib/
<http://cr.openjdk.java.net/%7Emartin/webrevs/openjdk8/hide-zlib/>
I see Sherman has created a bug for this but it turns out that someone
else running with fastdebug ran into issues too:
8006319: fastdebug libzip.so is linked with global symbols, allowing
symbols to be overridden
I see you are proposing to update make/java/zip/Makefile so that is the
old build. Looking at makefiles/CompileNativeLibraries.gmk (new build)
then it looks to me that it is using the map file. I haven't checking
the symbols in a fast debug build to double check so I'm curious if
you've seen this with a recent (new) build.
-Alan.