RFR: JDK-8150456: jdk 9 nightly build fails on Windows 32 bit
Erik Joelsson
erik.joelsson at oracle.com
Tue Feb 23 23:23:28 UTC 2016
It was concluded in that bug that the install failure was a consequence
of pack200 failing with the same error I saw. They actually run the
newly built pack200, so if the jvm is DOA, the install build will fail.
These errors were reported through different channels at the same time,
caused by the same change. I'm currently verifying that this fix really
does fix the install build, but I'm quite confident it does.
/Erik
On 2016-02-23 15:12, David Holmes wrote:
> Erik,
>
> There seems to be some confusion as there are two different problems
> on 32-bit windows. The build failure as reported in
>
> https://bugs.openjdk.java.net/browse/JDK-8150456
>
> is a build failure in the install phase. The fix you are proposing
> below fixes a runtime failure at VM initialization time.
>
> David
> -----
>
> On 24/02/2016 8:50 AM, Erik Joelsson wrote:
>> The windows 32 bit build is currently DOA.
>>
>> In JDK-8150203, the following build warning on Windows x64 was
>> eliminated:
>>
>> CRC32.c: warning LNK4197: export 'ZIP_CRC32' specified multiple times;
>> using first specification
>>
>> This warning is emitted because the function both has a JNIEXPORT
>> declaration and a link time -export:ZIP_CRC32. The change removed the
>> -export link flag which removed the warning.
>>
>> On Windows x86, removing the explicit -export link flag is causing
>> trouble. Just using JNIEXPORT (or really __declspec(dllexport)) is not
>> the same thing as the link flag -export. The first will export
>> _ZIP_CRC32 and the second ZIP_CRC32. In hotspot, jvm.dll will look for
>> the symbol ZIP_CRC32 and will fail without the -export link flag.
>>
>> My proposed fix is to readd the -export and remove the JNIEXPORT from
>> this function. This would mimic the pattern of the other exported
>> symbols in this library.
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8150456
>> Patch:
>> diff -r 9d536355b828 make/lib/CoreLibraries.gmk
>> --- a/make/lib/CoreLibraries.gmk Tue Feb 23 09:49:04 2016 +0100
>> +++ b/make/lib/CoreLibraries.gmk Tue Feb 23 23:49:10 2016 +0100
>> @@ -225,7 +225,7 @@
>> $(call SET_SHARED_LIBRARY_ORIGIN), \
>> LDFLAGS_windows := -export:ZIP_Open -export:ZIP_Close
>> -export:ZIP_FindEntry \
>> -export:ZIP_ReadEntry -export:ZIP_GetNextEntry \
>> - -export:ZIP_InflateFully, \
>> + -export:ZIP_InflateFully -export:ZIP_CRC32, \
>> LIBS_unix := -ljvm -ljava $(LIBZ), \
>> LIBS_solaris := -lc, \
>> LIBS_windows := jvm.lib $(WIN_JAVA_LIB), \
>> diff -r 9d536355b828 src/java.base/share/native/libzip/CRC32.c
>> --- a/src/java.base/share/native/libzip/CRC32.c Tue Feb 23 09:49:04 2016
>> +0100
>> +++ b/src/java.base/share/native/libzip/CRC32.c Tue Feb 23 23:49:10 2016
>> +0100
>> @@ -54,7 +54,7 @@
>> return crc;
>> }
>>
>> -JNIEXPORT jint JNICALL
>> +jint JNICALL
>> ZIP_CRC32(jint crc, const jbyte *buf, jint len)
>> {
>> return crc32(crc, (Bytef*)buf, len);
>>
>> /Erik
More information about the build-dev
mailing list