From 51982fe882e5dcbdd5ec3b4e9ded5260c4e6ed66c1fe3afb3a16d7b95f7e0505 Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Mon, 5 Aug 2024 11:24:10 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openj9?expand=0&rev=121 --- .gitattributes | 23 + .gitignore | 1 + 1a6f6128aa2f639de1e33cae77a31f474ba6b1a9.zip | 3 + 254af5a0452934f62e3253c5565b183c682d3495.zip | 3 + 3f438d726eabae33b2687e565530272909ff37ad.zip | 3 + 840a9adba4548aa546e36c97a1150b7306a7e07b.zip | 3 + TestCryptoLevel.java | 72 ++ _constraints | 10 + a75ff73ce586d4105f89e83f0b3a80ca922e0d6f.zip | 3 + b0699311c7d9341f3d0ebf9a7a4b5546a7ca7004.zip | 3 + disable-doclint-by-default.patch | 58 ++ fix-build-with-gcc14.patch | 87 ++ java-1_8_0-openj9-rpmlintrc | 1 + java-1_8_0-openj9.changes | 299 ++++++ java-1_8_0-openj9.spec | 963 +++++++++++++++++++ java-atk-wrapper-security.patch | 24 + jconsole.desktop.in | 11 + libdwarf-fix.patch | 85 ++ multiple-pkcs11-library-init.patch | 74 ++ openj9-no-narrowing.patch | 21 + openj9-no-werror.patch | 48 + openj9-nogit.patch.in | 57 ++ openj9-openssl.patch | 13 + policytool.desktop.in | 11 + stringop-overflow.patch | 20 + system-lcms.patch | 99 ++ system-libjpeg.patch | 240 +++++ system-libpng.patch | 111 +++ 28 files changed, 2346 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 1a6f6128aa2f639de1e33cae77a31f474ba6b1a9.zip create mode 100644 254af5a0452934f62e3253c5565b183c682d3495.zip create mode 100644 3f438d726eabae33b2687e565530272909ff37ad.zip create mode 100644 840a9adba4548aa546e36c97a1150b7306a7e07b.zip create mode 100644 TestCryptoLevel.java create mode 100644 _constraints create mode 100644 a75ff73ce586d4105f89e83f0b3a80ca922e0d6f.zip create mode 100644 b0699311c7d9341f3d0ebf9a7a4b5546a7ca7004.zip create mode 100644 disable-doclint-by-default.patch create mode 100644 fix-build-with-gcc14.patch create mode 100644 java-1_8_0-openj9-rpmlintrc create mode 100644 java-1_8_0-openj9.changes create mode 100644 java-1_8_0-openj9.spec create mode 100644 java-atk-wrapper-security.patch create mode 100644 jconsole.desktop.in create mode 100644 libdwarf-fix.patch create mode 100644 multiple-pkcs11-library-init.patch create mode 100644 openj9-no-narrowing.patch create mode 100644 openj9-no-werror.patch create mode 100644 openj9-nogit.patch.in create mode 100644 openj9-openssl.patch create mode 100644 policytool.desktop.in create mode 100644 stringop-overflow.patch create mode 100644 system-lcms.patch create mode 100644 system-libjpeg.patch create mode 100644 system-libpng.patch diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/1a6f6128aa2f639de1e33cae77a31f474ba6b1a9.zip b/1a6f6128aa2f639de1e33cae77a31f474ba6b1a9.zip new file mode 100644 index 0000000..5bcd0dc --- /dev/null +++ b/1a6f6128aa2f639de1e33cae77a31f474ba6b1a9.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38371f6ef59ba89f89135dd5579d0952cc4d28adb452c25c194a248da70dc5fc +size 29265781 diff --git a/254af5a0452934f62e3253c5565b183c682d3495.zip b/254af5a0452934f62e3253c5565b183c682d3495.zip new file mode 100644 index 0000000..ae29e3b --- /dev/null +++ b/254af5a0452934f62e3253c5565b183c682d3495.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c01a2db59226a198abd2c6eae857ab1028c91b616fbf80ade639aaec2e21021 +size 11151844 diff --git a/3f438d726eabae33b2687e565530272909ff37ad.zip b/3f438d726eabae33b2687e565530272909ff37ad.zip new file mode 100644 index 0000000..7c9498f --- /dev/null +++ b/3f438d726eabae33b2687e565530272909ff37ad.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0111d7f31c26943620555f5495e00055569f04a24a7bc44ac96282bd7235269b +size 132769320 diff --git a/840a9adba4548aa546e36c97a1150b7306a7e07b.zip b/840a9adba4548aa546e36c97a1150b7306a7e07b.zip new file mode 100644 index 0000000..0126c67 --- /dev/null +++ b/840a9adba4548aa546e36c97a1150b7306a7e07b.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31b067d16c7c9538d99db1fb9aee79d0e208a0173f1c5deb93aaaf96e66c5cca +size 11172351 diff --git a/TestCryptoLevel.java b/TestCryptoLevel.java new file mode 100644 index 0000000..325a89c --- /dev/null +++ b/TestCryptoLevel.java @@ -0,0 +1,72 @@ +/* TestCryptoLevel -- Ensure unlimited crypto policy is in use. + Copyright (C) 2012 Red Hat, Inc. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as +published by the Free Software Foundation, either version 3 of the +License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see . +*/ + +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.lang.reflect.InvocationTargetException; + +import java.security.Permission; +import java.security.PermissionCollection; + +public class TestCryptoLevel +{ + public static void main(String[] args) + throws NoSuchFieldException, ClassNotFoundException, + IllegalAccessException, InvocationTargetException + { + Class cls = null; + Method def = null, exempt = null; + + try + { + cls = Class.forName("javax.crypto.JceSecurity"); + } + catch (ClassNotFoundException ex) + { + System.err.println("Running a non-Sun JDK."); + System.exit(0); + } + try + { + def = cls.getDeclaredMethod("getDefaultPolicy"); + exempt = cls.getDeclaredMethod("getExemptPolicy"); + } + catch (NoSuchMethodException ex) + { + System.err.println("Running IcedTea with the original crypto patch."); + System.exit(0); + } + def.setAccessible(true); + exempt.setAccessible(true); + PermissionCollection defPerms = (PermissionCollection) def.invoke(null); + PermissionCollection exemptPerms = (PermissionCollection) exempt.invoke(null); + Class apCls = Class.forName("javax.crypto.CryptoAllPermission"); + Field apField = apCls.getDeclaredField("INSTANCE"); + apField.setAccessible(true); + Permission allPerms = (Permission) apField.get(null); + if (defPerms.implies(allPerms) && (exemptPerms == null || exemptPerms.implies(allPerms))) + { + System.err.println("Running with the unlimited policy."); + System.exit(0); + } + else + { + System.err.println("WARNING: Running with a restricted crypto policy."); + System.exit(-1); + } + } +} diff --git a/_constraints b/_constraints new file mode 100644 index 0000000..03d1b24 --- /dev/null +++ b/_constraints @@ -0,0 +1,10 @@ + + + + 4096 + + + 20 + + + diff --git a/a75ff73ce586d4105f89e83f0b3a80ca922e0d6f.zip b/a75ff73ce586d4105f89e83f0b3a80ca922e0d6f.zip new file mode 100644 index 0000000..d315a7a --- /dev/null +++ b/a75ff73ce586d4105f89e83f0b3a80ca922e0d6f.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:859d1898f55b446a25d6f113cdb5f196a2fe51560fde0b596f553650e1855aeb +size 132810297 diff --git a/b0699311c7d9341f3d0ebf9a7a4b5546a7ca7004.zip b/b0699311c7d9341f3d0ebf9a7a4b5546a7ca7004.zip new file mode 100644 index 0000000..e476b10 --- /dev/null +++ b/b0699311c7d9341f3d0ebf9a7a4b5546a7ca7004.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a44313209419f44cc293f1d08b545d81fd84672a0813d6e7d632a79b19cb0efa +size 29189918 diff --git a/disable-doclint-by-default.patch b/disable-doclint-by-default.patch new file mode 100644 index 0000000..ee0e3ba --- /dev/null +++ b/disable-doclint-by-default.patch @@ -0,0 +1,58 @@ +Disable doclint by default + +OpenJDK 8 adds and enables doclint by default. This catches issues in +javadoc comments. It is too strict, breaks javadoc compilation and, in +general, breaks the build for old code known to build with previous +versions of OpenJDK. + +See: http://blog.joda.org/2014/02/turning-off-doclint-in-jdk-8-javadoc.html +See: https://lists.fedoraproject.org/pipermail/java-devel/2014-February/005150.html + +Author: Andrew John Hughes +Author: Emmanuel Bourg +--- jdk8/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java ++++ jdk8/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java +@@ -811,10 +811,9 @@ + doclintOpts.add(opt == null ? DocLint.XMSGS_OPTION : DocLint.XMSGS_CUSTOM_PREFIX + opt); + } + +- if (doclintOpts.isEmpty()) { +- doclintOpts.add(DocLint.XMSGS_OPTION); +- } else if (doclintOpts.size() == 1 +- && doclintOpts.get(0).equals(DocLint.XMSGS_CUSTOM_PREFIX + "none")) { ++ if (doclintOpts.isEmpty() || ++ (doclintOpts.size() == 1 ++ && doclintOpts.get(0).equals(DocLint.XMSGS_CUSTOM_PREFIX + "none"))) { + return; + } + +--- jdk8/langtools/test/tools/javadoc/doclint/DocLintTest.java ++++ jdk8/langtools/test/tools/javadoc/doclint/DocLintTest.java +@@ -130,12 +130,12 @@ + }; + + test(Collections.emptyList(), +- Main.Result.ERROR, +- EnumSet.of(Message.DL_ERR9A, Message.DL_WRN12A)); ++ Main.Result.OK, ++ EnumSet.of(Message.JD_WRN10, Message.JD_WRN13)); + + test(Arrays.asList(rawDiags), +- Main.Result.ERROR, +- EnumSet.of(Message.DL_ERR9, Message.DL_WRN12)); ++ Main.Result.OK, ++ EnumSet.of(Message.JD_WRN10, Message.JD_WRN13)); + + test(Arrays.asList("-Xdoclint:none"), + Main.Result.OK, +@@ -158,8 +158,8 @@ + EnumSet.of(Message.DL_WRN12)); + + test(Arrays.asList(rawDiags, "-private"), +- Main.Result.ERROR, +- EnumSet.of(Message.DL_ERR6, Message.DL_ERR9, Message.DL_WRN12)); ++ Main.Result.OK, ++ EnumSet.of(Message.JD_WRN10, Message.JD_WRN13)); + + test(Arrays.asList(rawDiags, "-Xdoclint:syntax", "-private"), + Main.Result.ERROR, diff --git a/fix-build-with-gcc14.patch b/fix-build-with-gcc14.patch new file mode 100644 index 0000000..1c04d57 --- /dev/null +++ b/fix-build-with-gcc14.patch @@ -0,0 +1,87 @@ +--- openjdk/jdk/src/share/bin/splashscreen_stubs.c ++++ openjdk/jdk/src/share/bin/splashscreen_stubs.c +@@ -61,11 +61,11 @@ typedef char* (*SplashGetScaledImageName_t)(const char* fileName, + #define INVOKEV(name) _INVOKE(name, ,;) + + int DoSplashLoadMemory(void* pdata, int size) { +- INVOKE(SplashLoadMemory, NULL)(pdata, size); ++ INVOKE(SplashLoadMemory, 0)(pdata, size); + } + + int DoSplashLoadFile(const char* filename) { +- INVOKE(SplashLoadFile, NULL)(filename); ++ INVOKE(SplashLoadFile, 0)(filename); + } + + void DoSplashInit(void) { +@@ -87,4 +87,4 @@ void DoSplashSetScaleFactor(float scaleFactor) { + char* DoSplashGetScaledImageName(const char* fileName, const char* jarName, + float* scaleFactor) { + INVOKE(SplashGetScaledImageName, NULL)(fileName, jarName, scaleFactor); +-} +\ No newline at end of file ++} +--- openjdk/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c ++++ openjdk/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c +@@ -2850,14 +2850,14 @@ Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeImage + pb = &data->pixelBuf; + + if (setPixelBuffer(env, pb, buffer) == NOT_OK) { +- freeArray(scale, numBands); ++ freeArray((void**)scale, numBands); + return data->abortFlag; // We already threw an out of memory exception + } + + // Allocate a 1-scanline buffer + scanLinePtr = (JSAMPROW)malloc(scanLineSize); + if (scanLinePtr == NULL) { +- freeArray(scale, numBands); ++ freeArray((void**)scale, numBands); + JNU_ThrowByName( env, + "java/lang/OutOfMemoryError", + "Writing JPEG Stream"); +@@ -2879,7 +2879,7 @@ Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeImage + JNU_ThrowByName(env, "javax/imageio/IIOException", buffer); + } + +- freeArray(scale, numBands); ++ freeArray((void**)scale, numBands); + free(scanLinePtr); + return data->abortFlag; + } +@@ -2928,7 +2928,7 @@ Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeImage + (*env)->ReleaseIntArrayElements(env, QtableSelectors, qsels, JNI_ABORT); + } + if (!success) { +- freeArray(scale, numBands); ++ freeArray((void**)scale, numBands); + free(scanLinePtr); + return data->abortFlag; + } +@@ -2949,7 +2949,7 @@ Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeImage + if (GET_ARRAYS(env, data, + (const JOCTET **)(&dest->next_output_byte)) == NOT_OK) { + (*env)->ExceptionClear(env); +- freeArray(scale, numBands); ++ freeArray((void**)scale, numBands); + free(scanLinePtr); + JNU_ThrowByName(env, + "javax/imageio/IIOException", +@@ -2987,7 +2987,7 @@ Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeImage + scanData = (*env)->GetIntArrayElements(env, scanInfo, NULL); + if (scanData == NULL) { + RELEASE_ARRAYS(env, data, (const JOCTET *)(dest->next_output_byte)); +- freeArray(scale, numBands); ++ freeArray((void**)scale, numBands); + free(scanLinePtr); + return data->abortFlag; + } +@@ -3086,7 +3086,7 @@ Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeImage + jpeg_abort((j_common_ptr)cinfo); + } + +- freeArray(scale, numBands); ++ freeArray((void**)scale, numBands); + free(scanLinePtr); + RELEASE_ARRAYS(env, data, NULL); + return data->abortFlag; diff --git a/java-1_8_0-openj9-rpmlintrc b/java-1_8_0-openj9-rpmlintrc new file mode 100644 index 0000000..fb4660a --- /dev/null +++ b/java-1_8_0-openj9-rpmlintrc @@ -0,0 +1 @@ +addFilter("executable-stack") diff --git a/java-1_8_0-openj9.changes b/java-1_8_0-openj9.changes new file mode 100644 index 0000000..f3d126d --- /dev/null +++ b/java-1_8_0-openj9.changes @@ -0,0 +1,299 @@ +------------------------------------------------------------------- +Thu May 23 17:21:33 UTC 2024 - Fridrich Strba + +- Update to OpenJDK 8u412 build 08 with OpenJ9 0.44.0 virtual + machine +- Including Oracle April 2024 CPU changes + * CVE-2024-21094 (bsc#1222986), CVE-2024-21011 (bsc#1222979), + CVE-2024-21085 (bsc#1222984), CVE-2024-21068 (bsc#1222983) + * OpenJ9 changes, see + https://eclipse.dev/openj9/docs/version0.44 +- Added patch: + * openj9-openssl.patch + + fix build with older openssl that does not define + SSL_R_UNEXPECTED_EOF_WHILE_READING + +------------------------------------------------------------------- +Mon May 6 17:41:21 UTC 2024 - Fridrich Strba + +- Added patch: + * fix-build-with-gcc14.patch + + fix build with gcc14 + + pointer/integer type precision + +------------------------------------------------------------------- +Thu Mar 7 12:44:28 UTC 2024 - Fridrich Strba + +- Removed patch: + * alternative-path-to-tzdb_dat.patch + + Remove the possibility to use the system timezone-java. It + creates more problems then it solves (bsc#1213470) + +------------------------------------------------------------------- +Tue Feb 20 15:43:24 UTC 2024 - Fridrich Strba + +- Use %patch -P N instead of deprecated %patchN. + +------------------------------------------------------------------- +Mon Feb 12 16:01:06 UTC 2024 - Fridrich Strba + +- Update to OpenJDK 8u402 build 06 with OpenJ9 0.43.0 virtual + machine +- Including Oracle January 2024 CPU changes + * CVE-2024-20918 (bsc#1218907), CVE-2024-20919 (bsc#1218903), + CVE-2024-20921 (bsc#1218905), CVE-2024-20926 (bsc#1218906), + CVE-2024-20945 (bsc#1218909), CVE-2024-20952 (bsc#1218911) + * OpenJ9 changes, see + https://www.eclipse.org/openj9/docs/version0.43/ + +------------------------------------------------------------------- +Wed Nov 22 18:19:11 UTC 2023 - Fridrich Strba + +- Update to OpenJDK 8u392 build 08 with OpenJ9 0.41.0 virtual + machine +- Including Oracle October 2023 CPU changes + * CVE-2023-22067 (bsc#1216379), CVE-2023-22081 (bsc#1216374) +- Including OpenJ9 0.41.0 fixes of CVE-2023-5676, bsc#1217214 + * For other OpenJ9 changes, see + https://www.eclipse.org/openj9/docs/version0.41 +- Removed patch: + * link-with-as-needed.patch + + big part not needed anymore besides one hunk integrated into + system-libjpeg.patch +- Modified patch: + * system-libjpeg.patch + + rediff and integrate one hunk from link-with-as-needed.patch + +------------------------------------------------------------------- +Tue Aug 15 07:06:29 UTC 2023 - Fridrich Strba + +- Update to OpenJDK 8u382 build 05 with OpenJ9 0.40.0 virtual + machine +- Including Oracle July 2023 CPU changes + * CVE-2023-22045 (bsc#1213481), CVE-2023-22049 (bsc#1213482) + * OpenJ9 changes, see + https://www.eclipse.org/openj9/docs/version0.40 +- Modified patch: + * stringop-overflow.patch + + rediff to changed context + +------------------------------------------------------------------- +Mon Aug 7 14:11:01 UTC 2023 - Fridrich Strba + +- Update to OpenJDK 8u372 build 07 with OpenJ9 0.38.0 virtual + machine +- Including Oracle April 2023 CPU changes + * CVE-2023-21930 (bsc#1210628), CVE-2023-21937 (bsc#1210631), + CVE-2023-21938 (bsc#1210632), CVE-2023-21939 (bsc#1210634), + CVE-2023-21954 (bsc#1210635), CVE-2023-21967 (bsc#1210636), + CVE-2023-21968 (bsc#1210637) + * OpenJ9 specific vulnerability: CVE-2023-2597 (bsc#1211615) + * OpenJ9 changes, see + https://www.eclipse.org/openj9/docs/version0.38 + +------------------------------------------------------------------- +Tue Mar 28 10:02:44 UTC 2023 - Fridrich Strba + +- Added patch: + * stringop-overflow.patch + + disable -Wstringop-overflow and fix build in Factory + +------------------------------------------------------------------- +Mon Mar 6 09:04:23 UTC 2023 - Fridrich Strba + +- Update to OpenJDK 8u362 build 09 with OpenJ9 0.36.0 virtual + machine +- Including Oracle January 2023 CPU changes + CVE-2023-21830 (bsc#1207249), CVE-2023-21843 (bsc#1207248) + * OpenJ9 changes, see + https://www.eclipse.org/openj9/docs/version0.36/ + +------------------------------------------------------------------- +Mon Oct 31 11:42:41 UTC 2022 - Fridrich Strba + +- Update to OpenJDK 8u352 build 08 with OpenJ9 0.35.0 virtual + machine + * Including Oracle October 2022 CPU changes + CVE-2022-21619 (bsc#1204473), CVE-2022-21626 (bsc#1204471), + CVE-2022-21624 (bsc#1204475), CVE-2022-21628 (bsc#1204472) + * Fixes OpenJ9 vulnerability bsc#1204703, CVE-2022-3676 + * OpenJ9 changes, see + https://www.eclipse.org/openj9/docs/version0.35 + +------------------------------------------------------------------- +Tue Aug 16 06:39:22 UTC 2022 - Fridrich Strba + +- Update to OpenJDK 8u345 build 01 with OpenJ9 0.33.0 virtual + machine + * Including Oracle July 2022 CPU changes + CVE-2022-21540 (bsc#1201694), CVE-2022-21541 (bsc#1201692), + CVE-2022-34169 (bsc#1201684) + * OpenJ9 changes, see + https://www.eclipse.org/openj9/docs/version0.33 +- Modified template patch: + * openj9-nogit.patch.in + + The git commit hash code became more generic, so redo the + template patch +- Added patch: + * openj9-no-narrowing.patch + + Fix narrowing conversion error + +------------------------------------------------------------------- +Tue Jul 12 07:06:17 UTC 2022 - Fridrich Strba + +- Update to OpenJDK 8u332 build 09 with OpenJ9 0.32.0 virtual + machine + * Fixes bsc#1198935, CVE-2021-41041: unverified methods can be + invoked using MethodHandles + * Including Oracle April 2022 CPU fixes + CVE-2022-21426 (bsc#1198672), CVE-2022-21434 (bsc#1198674), + CVE-2022-21443 (bsc#1198675), CVE-2022-21476 (bsc#1198671), + CVE-2022-21496 (bsc#1198673) + * OpenJ9 changes, see + https://www.eclipse.org/openj9/docs/version0.32 + +------------------------------------------------------------------- +Mon Feb 28 09:47:15 UTC 2022 - Fridrich Strba + +- Update to OpenJDK 8u322 build 04 with OpenJ9 0.30.0 virtual + machine + * including Oracle January 2022 CPU changes + CVE-2022-21248 (bsc#1194926), CVE-2022-21277 (bsc#1194930), + CVE-2022-21282 (bsc#1194933), CVE-2022-21291 (bsc#1194925), + CVE-2022-21293 (bsc#1194935), CVE-2022-21294 (bsc#1194934), + CVE-2022-21296 (bsc#1194932), CVE-2022-21299 (bsc#1194931), + CVE-2022-21305 (bsc#1194939), CVE-2022-21340 (bsc#1194940), + CVE-2022-21341 (bsc#1194941), CVE-2022-21360 (bsc#1194929), + CVE-2022-21365 (bsc#1194928), CVE-2022-21366 (bsc#1194927), + * OpenJ9 changes, see + https://www.eclipse.org/openj9/docs/version0.30 +- Added patch: + * libdwarf-fix.patch + + fix build with different versions of libdwarf + +------------------------------------------------------------------- +Tue Nov 2 11:29:15 UTC 2021 - Fridrich Strba + +- Update to OpenJDK 8u312 build 07 with OpenJ9 0.29.0 virtual + machine + * including Oracle July 2021 and October 2021 CPU changes + CVE-2021-2341 (bsc#1188564), CVE-2021-2369 (bsc#1188565), + CVE-2021-2388 (bsc#1188566), CVE-2021-35550 (bsc#1191901), + CVE-2021-35565 (bsc#1191909), CVE-2021-35556 (bsc#1191910), + CVE-2021-35559 (bsc#1191911), CVE-2021-35561 (bsc#1191912), + CVE-2021-35564 (bsc#1191913), CVE-2021-35567 (bsc#1191903), + CVE-2021-35578 (bsc#1191904), CVE-2021-35586 (bsc#1191914), + CVE-2021-35603 (bsc#1191906) + * OpenJ9 changes, see + https://www.eclipse.org/openj9/docs/version0.29 +- Remove the unneeded icedtea-sound provider +- Removed patches: + * jdk-gcc-warnings.patch + * maybe-uninitialized.patch + * omr-no-return-in-nonvoid-function.patch + + integrated upstream + +------------------------------------------------------------------- +Fri Jun 18 10:15:55 UTC 2021 - Fridrich Strba + +- Remove the forcing of DWARF version 4, since the libdwarf in + factory works correctly with this build and DWARF5 symbol format +- Expand supported architectures to aarch64 + +------------------------------------------------------------------- +Thu Jun 10 16:24:28 UTC 2021 - Fridrich Strba + +- Force DWARF version 4 when building with gcc >= 11 + * the internal omr tools set error with debugging information + in DWARF5 format + * fixes build in factory + +------------------------------------------------------------------- +Sun May 16 07:25:18 UTC 2021 - Fridrich Strba + +- Fix version typo in spec file + +------------------------------------------------------------------- +Fri May 14 08:55:58 UTC 2021 - Fridrich Strba + +- Update to OpenJDK 8u292 build 10 with OpenJ9 0.26.0 virtual + machine + * including Oracle April 2021 CPU changes (bsc#1185055, + CVE-2021-2163 and bsc#1185056, CVE-2021-2161) + * OpenJ9 changes, see + https://www.eclipse.org/openj9/docs/version0.26 +- Added patch: + * maybe-uninitialized.patch + + initialize variables in constructor + + fixes build with newer gcc + +------------------------------------------------------------------- +Tue Jan 26 07:28:09 UTC 2021 - Fridrich Strba + +- Update to OpenJDK 8u282 build 08 with OpenJ9 0.24.0 virtual + machine + * including Oracle January 2021 CPU changes (bsc#1181239) + * OpenJ9 changes, see + https://www.eclipse.org/openj9/docs/version0.24 +- Modified template patch: + * openj9-nogit.patch.in + + replace git runs by pre-fetched git hashes in new places + + remove hunks that are irrelevant in new sources + +------------------------------------------------------------------- +Mon Nov 2 09:07:50 UTC 2020 - Fridrich Strba + +- Update to OpenJDK 8u272 build 10 with OpenJ9 0.23.0 virtual + machine + * including Oracle July 2020 CPU changes (bsc#1174157) and + October 2020 CPU changes (bsc#1177943) + + fixes CVE-2020-14556, CVE-2020-14577, CVE-2020-14578, + CVE-2020-14579, CVE-2020-14581, CVE-2020-14583, + CVE-2020-14593, CVE-2020-14621, CVE-2020-14779, + CVE-2020-14781, CVE-2020-14782, CVE-2020-14792, + CVE-2020-14796, CVE-2020-14797, CVE-2020-14798 and + CVE-2020-14803 +- Removed patch: + * gcc10.patch + + not needed any more in this version +- Modified patches: + * java-atk-wrapper-security.patch + * openj9-no-werror.patch + * system-lcms.patch + + rediff to changed context +- Added patch: + * omr-no-return-in-nonvoid-function.patch + + fix build error on some systems + +------------------------------------------------------------------- +Fri Jun 26 09:12:17 UTC 2020 - Fridrich Strba + +- Added patches: + * gcc10.patch + + Fix dupplicate global pointer variables with gcc 10 + + openj9-no-werror.patch + + Do not build with warnings as errors the OpenJ9 parts, since + that would mean broken build with new warnings from gcc 10 + +------------------------------------------------------------------- +Fri Apr 24 06:26:21 UTC 2020 - Fridrich Strba + +- Update to OpenJDK 8u252 build 09 with OpenJ9 0.20.0 virtual + machine + * including Oracle April 2020 CPU changes (bsc#1169511) + + fixes: CVE-2020-2754, CVE-2020-2755, CVE-2020-2756, + CVE-2020-2757, CVE-2020-2773, CVE-2020-2781, CVE-2020-2800, + CVE-2020-2803, CVE-2020-2805 and CVE-2020-2830 + * OpenJ9 changes, + see https://www.eclipse.org/openj9/docs/version0.20 + +------------------------------------------------------------------- +Wed Apr 15 09:07:59 UTC 2020 - Fridrich Strba + +- The pack200 and unpack200 alternatives should be slaves of java + and not of javac, since they are part of JRE (bsc#1171352). + +------------------------------------------------------------------- +Mon Jan 27 11:50:27 UTC 2020 - Fridrich Strba + +- Initial packaging of OpenJDK 1.8.0_242-b08 with OpenJ9 0.18.1 diff --git a/java-1_8_0-openj9.spec b/java-1_8_0-openj9.spec new file mode 100644 index 0000000..9221af0 --- /dev/null +++ b/java-1_8_0-openj9.spec @@ -0,0 +1,963 @@ +# +# spec file for package java-1_8_0-openj9 +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +# ugly hack to prevent spec-cleaner from changing make -> make_build +%global make make +%{!?aarch64:%global aarch64 aarch64 arm64 armv8} +%global debug 0 +%global bootcycle 1 +# Convert an absolute path to a relative path. Each symbolic link is +# specified relative to the directory in which it is installed so that +# it will resolve properly within chrooted installations. +%global script 'use File::Spec; print File::Spec->abs2rel($ARGV[0], $ARGV[1])' +%global abs2rel perl -e %{script} +%global syslibdir %{_libdir} +# Standard JPackage naming and versioning defines. +%global updatever 422 +%global buildver b05 +%global root_repository https://github.com/ibmruntimes/openj9-openjdk-jdk8/archive +%global root_revision a75ff73ce586d4105f89e83f0b3a80ca922e0d6f +%global root_branch v0.46.0-release +%global omr_repository https://github.com/eclipse/openj9-omr/archive +%global omr_revision 840a9adba4548aa546e36c97a1150b7306a7e07b +%global omr_branch v0.46.0-release +%global openj9_repository https://github.com/eclipse/openj9/archive +%global openj9_revision 1a6f6128aa2f639de1e33cae77a31f474ba6b1a9 +%global openj9_branch v0.46.0-release +%global openj9_tag openj9-0.46.0 +# priority must be 6 digits in total +%global priority 1801 +%global javaver 1.8.0 +# Standard JPackage directories and symbolic links. +%global sdklnk java-%{javaver}-openj9 +%global archname %{sdklnk} +%global jrelnk jre-%{javaver}-openj9 +%global sdkdir %{sdklnk}-%{javaver} +%global jredir %{sdkdir}/jre +%global sdkbindir %{_jvmdir}/%{sdklnk}/bin +%global jrebindir %{_jvmdir}/%{jrelnk}/bin +%global jvmjardir %{_jvmjardir}/%{sdkdir} +%global jvmjarlink %{_jvmjardir}/%{sdklnk} +# Prevent brp-java-repack-jars from being run. +%global __jar_repack 0 +# cacert symlink +%global cacerts %{_jvmdir}/%{jredir}/lib/security/cacerts +# real file made by update-ca-certificates +%global javacacerts %{_var}/lib/ca-certificates/java-cacerts +# turn zero on non jit arches by default +%ifarch x86_64 +%global archinstall amd64 +%endif +%ifarch ppc64le +%global archinstall ppc64le +%endif +%ifarch s390x +%global archinstall s390x +%endif +%ifarch %{aarch64} +%global archinstall aarch64 +%endif +%if %{debug} +%global debugbuild slowdebug +%else +%global debugbuild release +%endif +%if %{bootcycle} +%global imagesdir build/%{debugbuild}/bootcycle-build/images +%global imagestarget bootcycle-images +%else +%global imagesdir build/%{debugbuild}/images +%global imagestarget images +%endif +%global bits 64 +Name: java-1_8_0-openj9 +Version: %{javaver}.%{updatever} +Release: 0 +Summary: OpenJDK 8 Runtime Environment with Eclipse OpenJ9 virtual machine +License: Apache-1.1 AND Apache-2.0 AND EPL-2.0 AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-only WITH Classpath-exception-2.0 AND LGPL-2.0-only AND MPL-1.0 AND MPL-1.1 AND SUSE-Public-Domain AND W3C +Group: Development/Languages/Java +URL: https://www.eclipse.org/openj9/ +# Sources from upstream OpenJDK8 project. +Source0: %{root_repository}/%{root_revision}.zip +Source1: %{omr_repository}/%{omr_revision}.zip +Source2: %{openj9_repository}/%{openj9_revision}.zip +# Desktop files. Adapated from IcedTea. +Source11: jconsole.desktop.in +Source12: policytool.desktop.in +# Ensure we aren't using the limited crypto policy +Source14: TestCryptoLevel.java +Source100: openj9-nogit.patch.in +Source1000: %{name}-rpmlintrc +# RPM/distribution specific patches +# Restrict access to java-atk-wrapper classes +Patch1: java-atk-wrapper-security.patch +# Allow multiple initialization of PKCS11 libraries +Patch2: multiple-pkcs11-library-init.patch +# Disable doclint for compatibility +Patch3: disable-doclint-by-default.patch +# Allow building with newer libdwarf +Patch4: libdwarf-fix.patch +# Fix build with gcc 13 +Patch31: stringop-overflow.patch +# Fix build with gcc 14 +Patch32: fix-build-with-gcc14.patch +# Patches for system libraries +Patch201: system-libjpeg.patch +Patch202: system-libpng.patch +Patch203: system-lcms.patch +Patch210: openj9-no-werror.patch +Patch211: openj9-openssl.patch +BuildRequires: alsa-lib-devel +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: binutils +BuildRequires: cmake +BuildRequires: cups-devel +BuildRequires: desktop-file-utils +BuildRequires: fdupes +BuildRequires: fontconfig +BuildRequires: freetype2-devel +BuildRequires: giflib-devel +BuildRequires: gtk2-devel +BuildRequires: java-ca-certificates +BuildRequires: libX11-devel +BuildRequires: libXi-devel +BuildRequires: libXinerama-devel +BuildRequires: libXt-devel +BuildRequires: libXtst-devel +BuildRequires: libdwarf-devel +BuildRequires: libelf-devel +BuildRequires: libjpeg-devel +BuildRequires: liblcms2-devel +BuildRequires: libnuma-devel +BuildRequires: libpng-devel +BuildRequires: libxslt +BuildRequires: nasm >= 2.11 +BuildRequires: openssl-devel +BuildRequires: pkgconfig +BuildRequires: unzip +BuildRequires: update-desktop-files +BuildRequires: xorg-x11-proto-devel +BuildRequires: zip +# Requires rest of java +Requires: %{name}-headless = %{version}-%{release} +Requires: fontconfig +# mozilla-nss has to be installed to prevent +# java.security.ProviderException: Could not initialize NSS +# ... +# java.io.FileNotFoundException: /usr/lib64/libnss3.so +#was bnc#634793 +Requires: mozilla-nss +Requires(post): file +Requires(post): java-ca-certificates +# Standard JPackage base provides. +Provides: java = %{javaver} +Provides: java-%{javaver} = %{version}-%{release} +Provides: java-openj9 = %{version}-%{release} +Provides: java-openjdk = %{version}-%{release} +Provides: jre = %{javaver} +Provides: jre-%{javaver} = %{version}-%{release} +Provides: jre-%{javaver}-openj9 = %{version}-%{release} +Provides: jre-%{javaver}-openjdk = %{version}-%{release} +Provides: jre-openj9 = %{version}-%{release} +Provides: jre-openjdk = %{version}-%{release} +# Standard JPackage extensions provides. +Provides: java-fonts = %{version} +# Required at least by fop +Provides: java-%{bits} = %{javaver} +Provides: java-%{javaver}-%{bits} +Provides: java-openjdk-%{bits} = %{version}-%{release} +Provides: jre-%{bits} = %{javaver} +Provides: jre-%{javaver}-%{bits} +Provides: jre-%{javaver}-openj9-%{bits} = %{version}-%{release} +Provides: jre-%{javaver}-openjdk-%{bits} = %{version}-%{release} +Provides: jre-openj9-%{bits} = %{version}-%{release} +Provides: jre-openjdk-%{bits} = %{version}-%{release} +Provides: jre1.3.x +Provides: jre1.4.x +Provides: jre1.5.x +Provides: jre1.6.x +Provides: jre1.7.x +Provides: jre1.8.x +ExclusiveArch: x86_64 ppc64le s390x aarch64 +%if 0%{?suse_version} < 1500 +BuildRequires: gcc7 +BuildRequires: gcc7-c++ +%else +BuildRequires: gcc >= 7 +BuildRequires: gcc-c++ >= 7 +%endif +%if %{bootcycle} +BuildRequires: java-devel >= 1.7 +BuildConflicts: java >= 9 +BuildConflicts: java-devel >= 9 +BuildConflicts: java-headless >= 9 +%else +BuildRequires: %{name}-devel +%endif + +%description +The OpenJDK 8 with Eclipse OpenJ9 virtual machine. Eclipse OpenJ9 +is a Java Virtual Machine for OpenJDK that is optimized for small +footprint, fast start-up, and high throughput. + +Supported architectures are ppc64le, s390x and x86_64 + +%package headless +Summary: OpenJDK 8 Runtime Environment with Eclipse OpenJ9 +# Require jpackage-utils for ownership of /usr/lib/jvm/ +Group: Development/Languages/Java +Requires: jpackage-utils +# Post requires update-alternatives to install tool update-alternatives. +Requires(post): update-alternatives +# Postun requires update-alternatives to uninstall tool update-alternatives. +Requires(postun): update-alternatives +# Standard JPackage base provides. +Provides: java-%{javaver}-headless = %{version}-%{release} +Provides: java-headless = %{javaver} +Provides: java-openj9-headless = %{version}-%{release} +Provides: java-openjdk-headless = %{version}-%{release} +Provides: jre-%{javaver}-headless = %{version}-%{release} +Provides: jre-%{javaver}-openj9-headless = %{version}-%{release} +Provides: jre-%{javaver}-openjdk-headless = %{version}-%{release} +Provides: jre-headless = %{javaver} +Provides: jre-openj9-headless = %{version}-%{release} +Provides: jre-openjdk-headless = %{version}-%{release} +# Standard JPackage extensions provides. +Provides: jaas = %{version} +Provides: java-sasl = %{version} +Provides: jce = %{version} +Provides: jdbc-stdext = 4.2 +Provides: jndi = %{version} +Provides: jndi-cos = %{version} +Provides: jndi-dns = %{version} +Provides: jndi-ldap = %{version} +Provides: jndi-rmi = %{version} +Provides: jsse = %{version} + +%description headless +The OpenJDK 8 runtime environment without audio and video support. + +Supported architectures are ppc64le, s390x and x86_64 + +%package devel +Summary: OpenJDK 8 Development Environment with Eclipse OpenJ9 +# Require base package. +Group: Development/Languages/Java +Requires: %{name} = %{version}-%{release} +# Post requires update-alternatives to install tool update-alternatives. +Requires(post): update-alternatives +# Postun requires update-alternatives to uninstall tool update-alternatives. +Requires(postun): update-alternatives +# Standard JPackage devel provides. +Provides: java-%{javaver}-devel = %{version} +Provides: java-devel = %{javaver} +Provides: java-devel-openj9 = %{version} +Provides: java-devel-openjdk = %{version} +Provides: java-sdk = %{javaver} +Provides: java-sdk-%{javaver} = %{version} +Provides: java-sdk-%{javaver}-openj9 = %{version} +Provides: java-sdk-%{javaver}-openjdk = %{version} +Provides: java-sdk-openj9 = %{version} +Provides: java-sdk-openjdk = %{version} + +%description devel +The OpenJDK 8 development tools. + +Supported architectures are ppc64le, s390x and x86_64 + +%package demo +Summary: OpenJDK 8 Demos +Group: Development/Languages/Java +Requires: %{name} = %{version}-%{release} + +%description demo +The OpenJDK 8 demos. + +%package src +Summary: OpenJDK 8 Source Bundle +Group: Development/Languages/Java +Requires: %{name} = %{version}-%{release} + +%description src +The OpenJDK 8 source bundle. + +%package javadoc +Summary: OpenJDK 8 API Documentation +Group: Development/Languages/Java +Requires: jpackage-utils +# Post requires update-alternatives to install javadoc alternative. +Requires(post): update-alternatives +# Postun requires update-alternatives to uninstall javadoc alternative. +Requires(postun): update-alternatives +# Standard JPackage javadoc provides. +Provides: java-%{javaver}-javadoc = %{version}-%{release} +Provides: java-javadoc = %{version}-%{release} +BuildArch: noarch + +%description javadoc +The OpenJDK 8 API documentation. + +%package accessibility +Summary: OpenJDK 8 accessibility connector +Group: Development/Languages/Java +Requires: %{name} = %{version}-%{release} +Requires: java-atk-wrapper + +%description accessibility +Enables accessibility support in OpenJDK 8 by using java-atk-wrapper. +This allows compatible at-spi2 based accessibility programs to work +for AWT and Swing-based programs. + +Please note, the java-atk-wrapper is still in beta, and OpenJDK 8 +itself is still being tuned to be working with accessibility features. +There are known issues with accessibility on, so please do not install +this package unless you really need to. + +%prep +%setup -q -n openj9-openjdk-jdk8-%{root_revision} -a 1 -a 2 + +# Set up the build tree using the subrepository tarballs +pwd +mv openj9-omr-%{omr_revision} omr +mv openj9-%{openj9_revision} openj9 + +cp openj9/LICENSE LICENSE.openj9 + +# Remove libraries that are linked +rm -rvf jdk/src/share/native/java/util/zip/zlib-* +find jdk/src/share/native/sun/awt/image/jpeg ! -name imageioJPEG.c ! -name jpegdecoder.c -type f -delete +rm -rvf jdk/src/share/native/sun/awt/libpng +rm -rvf jdk/src/share/native/sun/awt/giflib +rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/cms* +rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/lcms2* + +%patch -P 201 -p1 +%patch -P 202 -p1 +%patch -P 203 -p1 + +%patch -P 210 +%patch -P 211 -p1 + +%patch -P 1 -p1 +%patch -P 2 -p1 +%patch -P 3 -p1 +%patch -P 4 -p1 + +%patch -P 31 -p1 +%patch -P 32 -p1 + +cat %{SOURCE100} \ + | sed "s/@OPENJ9_SHA@/`expr substr '%{openj9_revision}' 1 7`/g" \ + | sed "s/@OPENJ9_BRANCH@/%{openj9_branch}/g" \ + | sed "s/@OPENJ9_TAG@/%{openj9_tag}/g" \ + | sed "s/@OPENJ9OMR_SHA@/`expr substr '%{omr_revision}' 1 7`/g" \ + | sed "s/@OPENJDK_SHA@/`expr substr '%{root_revision}' 1 7`/g" \ + | patch -p1 -u -l + +sed -i -e "s//`expr substr '%{omr_revision}' 1 7`/g" \ + omr/cmake/versions.cmake + +# Prepare desktop files +for file in %{SOURCE11} %{SOURCE12} ; do + OUTPUT_FILE=`basename $file | sed -e s:\.in$::g` + sed -e s:@JAVA_HOME@:%{_jvmdir}/%{sdkdir}:g $file > $OUTPUT_FILE + sed -i -e s:@VERSION@:%{javaver}.%{_arch}:g $OUTPUT_FILE +done + +%build +export ARCH_DATA_MODEL=64 + +(cd common/autoconf + bash ./autogen.sh +) + +EXTRA_CFLAGS="-Wno-error -Wno-maybe-uninitialized -fno-delete-null-pointer-checks -fno-lifetime-dse" +EXTRA_CPP_FLAGS="-Wno-error -Wno-maybe-uninitialized -std=gnu++98 -fno-delete-null-pointer-checks -fno-lifetime-dse" + +%ifarch ppc64le +EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing" +%endif + +bash configure \ +%if 0%{?suse_version} < 1500 + CPP=cpp-7 \ + CXX=g++-7 \ + CC=gcc-7 \ + NM=gcc-nm-7 \ +%endif + --disable-warnings-as-errors-omr \ + --disable-warnings-as-errors-openj9 \ + --enable-demos \ + --disable-zip-debug-info \ + --with-milestone="fcs" \ + --with-update-version=%{updatever} \ + --with-build-number=%{buildver} \ + --with-debug-level=%{debugbuild} \ + --with-conf-name=%{debugbuild} \ + --enable-unlimited-crypto \ + --with-zlib=system \ + --with-libjpeg=system \ + --with-giflib=system \ + --with-libpng=system \ + --with-lcms=system \ + --with-openssl=system \ + --with-stdc++lib=dynamic \ + --with-native-debug-symbols=internal \ + --with-boot-jdk=%{_sysconfdir}/alternatives/java_sdk + +%{make} \ + JAVAC_FLAGS=-g \ + LOG=trace \ + DEBUG_BINARIES=true \ + STRIP_POLICY=no_strip \ + POST_STRIP_CMD="" \ + WARNINGS_ARE_ERRORS="-Wno-error" \ + CFLAGS_WARNINGS_ARE_ERRORS="-Wno-error" \ + %{imagestarget} docs + +# remove redundant *diz and *debuginfo files +find %{imagesdir}/j2sdk-image -iname '*.diz' -exec rm {} \; +find %{imagesdir}/j2sdk-image -iname '*.debuginfo' -exec rm {} \; + +export JAVA_HOME=$(pwd)/%{imagesdir}/j2sdk-image + +# cacerts are generated in runtime in openSUSE +if [ -f %{imagesdir}/j2sdk-image/jre/lib/security/cacerts ]; then + rm %{imagesdir}/j2sdk-image/jre/lib/security/cacerts +fi + +# Check unlimited policy has been used +$JAVA_HOME/bin/javac -d . %{SOURCE14} +$JAVA_HOME/bin/java TestCryptoLevel + +%if 0 +# Check debug symbols are present and can identify code +SERVER_JVM="$JAVA_HOME/jre/lib/%{archinstall}/server/libjvm.so" +if [ -f "$SERVER_JVM" ] ; then + nm -aCl "$SERVER_JVM" | grep javaCalls.cpp +fi +CLIENT_JVM="$JAVA_HOME/jre/lib/%{archinstall}/client/libjvm.so" +if [ -f "$CLIENT_JVM" ] ; then + nm -aCl "$CLIENT_JVM" | grep javaCalls.cpp +fi +ZERO_JVM="$JAVA_HOME/jre/lib/%{archinstall}/zero/libjvm.so" +if [ -f "$ZERO_JVM" ] ; then + nm -aCl "$ZERO_JVM" | grep javaCalls.cpp +fi +%endif + +%install +export LANG=en_US.UTF-8 +#bnc#530046 +export STRIP_KEEP_SYMTAB=libjvm* +# skip /usr/lib/rpm/brp-check-bytecode-version: +export NO_BRP_CHECK_BYTECODE_VERSION=true + +pushd %{imagesdir}/j2sdk-image + + # Install main files. + install -d -m 755 %{buildroot}%{_jvmdir}/%{sdkdir} + cp -a bin include lib src.zip %{buildroot}%{_jvmdir}/%{sdkdir} + install -d -m 755 %{buildroot}%{_jvmdir}/%{jredir} + cp -a jre/bin jre/lib %{buildroot}%{_jvmdir}/%{jredir} + + # Install extension symlinks. + install -d -m 755 %{buildroot}%{jvmjardir} + pushd %{buildroot}%{jvmjardir} + RELATIVE=$(%{abs2rel} %{_jvmdir}/%{jredir}/lib %{jvmjardir}) + ln -sf $RELATIVE/jsse.jar jsse-%{version}.jar + ln -sf $RELATIVE/jce.jar jce-%{version}.jar + ln -sf $RELATIVE/rt.jar jndi-%{version}.jar + ln -sf $RELATIVE/rt.jar jndi-ldap-%{version}.jar + ln -sf $RELATIVE/rt.jar jndi-cos-%{version}.jar + ln -sf $RELATIVE/rt.jar jndi-rmi-%{version}.jar + ln -sf $RELATIVE/rt.jar jaas-%{version}.jar + ln -sf $RELATIVE/rt.jar jdbc-stdext-%{version}.jar + ln -sf jdbc-stdext-%{version}.jar jdbc-stdext-3.0.jar + ln -sf $RELATIVE/rt.jar sasl-%{version}.jar + for jar in *-%{version}.jar + do + if [ x%{version} != x%{javaver} ] + then + ln -sf $jar $(echo $jar | sed "s|-%{version}.jar|-%{javaver}.jar|g") + fi + ln -sf $jar $(echo $jar | sed "s|-%{version}.jar|.jar|g") + done + popd + + # Install JCE policy symlinks. + install -d -m 755 %{buildroot}%{_jvmprivdir}/%{archname}/jce/vanilla + + # Install versionless symlinks. + pushd %{buildroot}%{_jvmdir} + ln -sf %{jredir} %{jrelnk} + ln -sf %{sdkdir} %{sdklnk} + popd + + pushd %{buildroot}%{_jvmjardir} + ln -sf %{sdkdir} %{jrelnk} + ln -sf %{sdkdir} %{sdklnk} + popd + + # Remove javaws man page + rm -f man/man1/javaws* + + # Install man pages. + install -d -m 755 %{buildroot}%{_mandir}/man1 + # These tree tools are not built, + # so disregard their manpages too. + rm -f man/man1/jhat.1* + rm -f man/man1/jinfo.1* + rm -f man/man1/jstatd.1* + for manpage in man/man1/* + do + # Convert man pages to UTF8 encoding. + iconv -f ISO_8859-1 -t UTF8 $manpage -o $manpage.tmp + mv -f $manpage.tmp $manpage + install -m 644 -p $manpage %{buildroot}%{_mandir}/man1/$(basename \ + $manpage .1)-%{sdklnk}.1 + done + + # Install demos and samples. + cp -a demo %{buildroot}%{_jvmdir}/%{sdkdir} + # enable short-circuit + mkdir -p sample/rmi + [ -f bin/java-rmi.cgi ] && mv bin/java-rmi.cgi sample/rmi + cp -a sample %{buildroot}%{_jvmdir}/%{sdkdir} + +popd + +# Install Javadoc documentation. +install -d -m 755 %{buildroot}%{_javadocdir} +cp -a build/%{debugbuild}/docs %{buildroot}%{_javadocdir}/%{sdklnk} + +# Install icons and menu entries. +for s in 16 24 32 48 ; do + install -D -p -m 644 \ + jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \ + %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps/java-%{javaver}-openj9.png +done + +# Install desktop files. +install -d -m 0755 %{buildroot}%{_datadir}/{applications,pixmaps} +install -d -m 0755 %{buildroot}/%{_jvmdir}/%{jredir}/lib/desktop/ +for d in jconsole policytool; do + install -m 0644 $d.desktop %{buildroot}/%{_jvmdir}/%{jredir}/lib/desktop/ + %suse_update_desktop_file %{buildroot}/%{_jvmdir}/%{jredir}/lib/desktop/$d.desktop +done + +# Find JRE directories. +find %{buildroot}%{_jvmdir}/%{jredir} -type d \ + | grep -v jre/lib/security \ + | sed 's|'%{buildroot}'|%dir |' \ + > %{name}.files.headless +# Find JRE files. +find %{buildroot}%{_jvmdir}/%{jredir} -type f -o -type l \ + | grep -v jre/lib/security \ + | sed 's|'%{buildroot}'||' \ + >> %{name}.files.all +#split %{name}.files to %{name}.files-headless and %{name}.files +#see https://bugzilla.redhat.com/show_bug.cgi?id=875408 +NOT_HEADLESS=\ +"%{_jvmdir}/%{jredir}/lib/%{archinstall}/libjsoundalsa.so +%{_jvmdir}/%{jredir}/lib/%{archinstall}/libsplashscreen.so +%{_jvmdir}/%{jredir}/lib/%{archinstall}/libawt_xawt.so +%{_jvmdir}/%{jredir}/lib/%{archinstall}/libjawt.so" +#filter %{name}.files from %{name}.files.all to %{name}.files-headless +ALL=`cat %{name}.files.all` +for file in $ALL ; do + INLCUDE="NO" ; + for blacklist in $NOT_HEADLESS ; do + # we can not match normally, because rpmbuild will evaluate !0 result as script failure + q=`expr match "$file" "$blacklist"` || : + l=`expr length "$blacklist"` || : + if [ $q -eq $l ]; then + INLCUDE="YES" ; + fi; + done + if [ "x$INLCUDE" = "xNO" ]; then + echo "$file" >> %{name}.files-headless + else + echo "$file" >> %{name}.files + fi +done +# Find demo directories. +find %{buildroot}%{_jvmdir}/%{sdkdir}/demo \ + %{buildroot}%{_jvmdir}/%{sdkdir}/sample -type d \ + | sed 's|'%{buildroot}'|%dir |' \ + > %{name}-demo.files + +# FIXME: remove SONAME entries from demo DSOs. See +# https://bugzilla.redhat.com/show_bug.cgi?id=436497 + +# Find non-documentation demo files. +find %{buildroot}%{_jvmdir}/%{sdkdir}/demo \ + %{buildroot}%{_jvmdir}/%{sdkdir}/sample \ + -type f -o -type l | sort \ + | grep -v README \ + | sed 's|'%{buildroot}'||' \ + >> %{name}-demo.files +# Find documentation demo files. +find %{buildroot}%{_jvmdir}/%{sdkdir}/demo \ + %{buildroot}%{_jvmdir}/%{sdkdir}/sample \ + -type f -o -type l | sort \ + | grep README \ + | sed 's|'%{buildroot}'||' \ + | sed 's|^|%doc |' \ + >> %{name}-demo.files + +# Create links which leads to separately installed java-atk-bridge and allow configuration +# links points to java-atk-wrapper - an dependence +# mvyskocil: links are handled in post, lets make ghost files there + touch %{buildroot}/%{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so + touch %{buildroot}/%{_jvmdir}/%{jredir}/lib/ext/java-atk-wrapper.jar + pushd %{buildroot}/%{_jvmdir}/%{jredir}/lib/ + echo "#Config file to enable java-atk-wrapper" > accessibility.properties + echo "" >> accessibility.properties + echo "assistive_technologies=org.GNOME.Accessibility.AtkWrapper" >> accessibility.properties + echo "" >> accessibility.properties + popd + +# fdupes links the files from JDK to JRE, so it breaks a JRE +# use it carefully :)) +%fdupes -s %{buildroot}/%{_jvmdir}/%{jredir}/ +%fdupes -s %{buildroot}/%{_jvmdir}/%{sdkdir}/demo +%fdupes -s %{buildroot}%{_javadocdir}/%{sdklnk} + +%post headless +ext=.gz +update-alternatives \ + --install %{_bindir}/java java %{jrebindir}/java %{priority} \ + --slave %{_jvmdir}/jre jre %{_jvmdir}/%{jrelnk} \ + --slave %{_jvmjardir}/jre jre_exports %{_jvmjardir}/%{jrelnk} \ + --slave %{_bindir}/keytool keytool %{jrebindir}/keytool \ + --slave %{_bindir}/orbd orbd %{jrebindir}/orbd \ + --slave %{_bindir}/policytool policytool %{jrebindir}/policytool \ + --slave %{_bindir}/rmid rmid %{jrebindir}/rmid \ + --slave %{_bindir}/rmiregistry rmiregistry %{jrebindir}/rmiregistry \ + --slave %{_bindir}/servertool servertool %{jrebindir}/servertool \ + --slave %{_bindir}/tnameserv tnameserv %{jrebindir}/tnameserv \ + --slave %{_bindir}/pack200 pack200 %{jrebindir}/pack200 \ + --slave %{_bindir}/unpack200 unpack200 %{jrebindir}/unpack200 \ + --slave %{_mandir}/man1/java.1$ext java.1$ext \ + %{_mandir}/man1/java-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \ + %{_mandir}/man1/keytool-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \ + %{_mandir}/man1/orbd-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \ + %{_mandir}/man1/policytool-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \ + %{_mandir}/man1/rmid-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \ + %{_mandir}/man1/rmiregistry-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/servertool.1$ext servertool.1$ext \ + %{_mandir}/man1/servertool-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/tnameserv.1$ext tnameserv.1$ext \ + %{_mandir}/man1/tnameserv-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/pack200.1$ext pack200.1$ext \ + %{_mandir}/man1/pack200-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \ + %{_mandir}/man1/unpack200-%{sdklnk}.1$ext \ + --slave %{_datadir}/applications/policytool.desktop policytool.desktop \ + %{_jvmdir}/%{jredir}/lib/desktop/policytool.desktop \ + || : + +update-alternatives \ + --install %{_jvmdir}/jre-openjdk \ + jre_openjdk %{_jvmdir}/%{jrelnk} %{priority} \ + --slave %{_jvmjardir}/jre-openjdk \ + jre_openjdk_exports %{_jvmjardir}/%{jrelnk} +update-alternatives \ + --install %{_jvmdir}/jre-%{javaver} \ + jre_%{javaver} %{_jvmdir}/%{jrelnk} %{priority} \ + --slave %{_jvmjardir}/jre-%{javaver} \ + jre_%{javaver}_exports %{_jvmjardir}/%{jrelnk} + +%postun headless +if [ $1 -eq 0 ] +then + if test -f /proc/sys/fs/binfmt_misc/jarexec + then + echo '-1' > /proc/sys/fs/binfmt_misc/jarexec + fi + update-alternatives --remove java %{jrebindir}/java + update-alternatives --remove jre_openjdk %{_jvmdir}/%{jrelnk} + update-alternatives --remove jre_%{javaver} %{_jvmdir}/%{jrelnk} +fi + +%posttrans headless +# bnc#781690#c11: don't trust user defined JAVA_HOME and use the current VM +# XXX: this might conflict between various versions of openjdk +export JAVA_HOME=%{_jvmdir}/%{jrelnk} + +# check if the java-cacerts is a valid keystore (bnc#781690) +if [ X"`%{_bindir}/file --mime-type -b %{javacacerts}`" \ + != "Xapplication/x-java-keystore;" ]; then + %{_sbindir}/update-ca-certificates +fi + +# remove the default empty cacert file, if it's installed +if [ 0`stat -c "%%s" %{cacerts} 2>/dev/null` = "032" ] ; then + rm -f %{cacerts} +fi + +# if cacerts does exists, neither does not contain/point to a +# valid keystore (bnc#781690) ... +if [ X"`%{_bindir}/file --mime-type -b -L %{cacerts}`" \ + != "Xapplication/x-java-keystore;" ]; then + # bnc#727223 + rm -f %{cacerts} + ln -s %{javacacerts} %{cacerts} +fi + +%post devel +ext=.gz +update-alternatives \ + --install %{_bindir}/javac javac %{sdkbindir}/javac %{priority} \ + --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdklnk} \ + --slave %{_jvmjardir}/java java_sdk_exports %{jvmjarlink} \ + --slave %{_bindir}/appletviewer appletviewer %{sdkbindir}/appletviewer \ + --slave %{_bindir}/extcheck extcheck %{sdkbindir}/extcheck \ + --slave %{_bindir}/jar jar %{sdkbindir}/jar \ + --slave %{_bindir}/jarsigner jarsigner %{sdkbindir}/jarsigner \ + --slave %{_bindir}/javadoc javadoc %{sdkbindir}/javadoc \ + --slave %{_bindir}/javah javah %{sdkbindir}/javah \ + --slave %{_bindir}/javap javap %{sdkbindir}/javap \ + --slave %{_bindir}/jconsole jconsole %{sdkbindir}/jconsole \ + --slave %{_bindir}/jdb jdb %{sdkbindir}/jdb \ + --slave %{_bindir}/jmap jmap %{sdkbindir}/jmap \ + --slave %{_bindir}/jps jps %{sdkbindir}/jps \ + --slave %{_bindir}/jrunscript jrunscript %{sdkbindir}/jrunscript \ + --slave %{_bindir}/jsadebugd jsadebugd %{sdkbindir}/jsadebugd \ + --slave %{_bindir}/jstack jstack %{sdkbindir}/jstack \ + --slave %{_bindir}/jstat jstat %{sdkbindir}/jstat \ + --slave %{_bindir}/native2ascii native2ascii %{sdkbindir}/native2ascii \ + --slave %{_bindir}/rmic rmic %{sdkbindir}/rmic \ + --slave %{_bindir}/schemagen schemagen %{sdkbindir}/schemagen \ + --slave %{_bindir}/serialver serialver %{sdkbindir}/serialver \ + --slave %{_bindir}/wsgen wsgen %{sdkbindir}/wsgen \ + --slave %{_bindir}/wsimport wsimport %{sdkbindir}/wsimport \ + --slave %{_bindir}/xjc xjc %{sdkbindir}/xjc \ + --slave %{_mandir}/man1/appletviewer.1$ext appletviewer.1$ext \ + %{_mandir}/man1/appletviewer-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/extcheck.1$ext extcheck.1$ext \ + %{_mandir}/man1/extcheck-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/jar.1$ext jar.1$ext \ + %{_mandir}/man1/jar-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/jarsigner.1$ext jarsigner.1$ext \ + %{_mandir}/man1/jarsigner-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/javac.1$ext javac.1$ext \ + %{_mandir}/man1/javac-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/javadoc.1$ext javadoc.1$ext \ + %{_mandir}/man1/javadoc-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/javah.1$ext javah.1$ext \ + %{_mandir}/man1/javah-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/javap.1$ext javap.1$ext \ + %{_mandir}/man1/javap-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \ + %{_mandir}/man1/jconsole-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \ + %{_mandir}/man1/jdb-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/jrunscript.1$ext jrunscript.1$ext \ + %{_mandir}/man1/jrunscript-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/jsadebugd.1$ext jsadebugd.1$ext \ + %{_mandir}/man1/jsadebugd-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/native2ascii.1$ext native2ascii.1$ext \ + %{_mandir}/man1/native2ascii-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \ + %{_mandir}/man1/rmic-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/schemagen.1$ext schemagen.1$ext \ + %{_mandir}/man1/schemagen-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \ + %{_mandir}/man1/serialver-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/wsgen.1$ext wsgen.1$ext \ + %{_mandir}/man1/wsgen-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/wsimport.1$ext wsimport.1$ext \ + %{_mandir}/man1/wsimport-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \ + %{_mandir}/man1/xjc-%{sdklnk}.1$ext \ + --slave %{_datadir}/applications/jconsole.desktop jconsole.desktop \ + %{_jvmdir}/%{jredir}/lib/desktop/jconsole.desktop \ + || : + +update-alternatives \ + --install %{_jvmdir}/java-openjdk \ + java_sdk_openjdk %{_jvmdir}/%{sdklnk} %{priority} \ + --slave %{_jvmjardir}/java-openjdk \ + java_sdk_openjdk_exports %{jvmjarlink} +update-alternatives \ + --install %{_jvmdir}/java-%{javaver} \ + java_sdk_%{javaver} %{_jvmdir}/%{sdklnk} %{priority} \ + --slave %{_jvmjardir}/java-%{javaver} \ + java_sdk_%{javaver}_exports %{jvmjarlink} + +%postun devel +if [ $1 -eq 0 ] +then + update-alternatives --remove javac %{sdkbindir}/javac + update-alternatives --remove java_sdk_openjdk %{_jvmdir}/%{sdklnk} + update-alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdklnk} +fi + +%post javadoc +# in some settings, the %{_javadocdir}/%{sdklnk}/api does not exist +# and the update-alternatives call ends up in error. So, filter this +# cases out. +if [ -d %{_javadocdir}/%{sdklnk}/api ] +then + update-alternatives \ + --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{sdklnk}/api \ + %{priority} +fi + +%postun javadoc +if [ $1 -eq 0 ] +then +# in some settings, the %{_javadocdir}/%{sdklnk}/api does not exist +# and the update-alternatives call ends up in error. So, filter this +# cases out. + if [ -d %{_javadocdir}/%{sdklnk}/api ] + then + update-alternatives --remove javadocdir %{_javadocdir}/%{sdklnk}/api + fi +fi + +%post accessibility +# create links to java-atk-wrapper +if [ ! -e %{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so ]; then + if [ -e %{_libdir}/java-atk-wrapper/libatk-wrapper.so ]; then + ln -sf %{_libdir}/java-atk-wrapper/libatk-wrapper.so %{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so + else + ln -sf %{_libdir}/java-atk-wrapper/libatk-wrapper.so.0 %{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so + fi +fi +if [ ! -e %{_jvmdir}/%{jredir}/lib/ext/java-atk-wrapper.jar ]; then + ln -sf %{_libdir}/java-atk-wrapper/java-atk-wrapper.jar %{_jvmdir}/%{jredir}/lib/ext/java-atk-wrapper.jar +fi + +%files -f %{name}.files +%dir %{_jvmdir}/%{jredir}/lib/%{archinstall} +%dir %{_datadir}/icons/hicolor +%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}-openj9.png + +%files headless -f %{name}.files-headless +%dir %{_jvmdir} +%dir %{_jvmdir}/%{jredir}/ +%dir %{_jvmdir}/%{jredir}/bin +%dir %{_jvmdir}/%{jredir}/lib +%dir %{_jvmdir}/%{jredir}/lib/%{archinstall} +%dir %{_jvmdir}/%{jredir}/lib/%{archinstall}/default +%dir %{_jvmdir}/%{jredir}/lib/%{archinstall}/jli +%dir %{_jvmdir}/%{jredir}/lib/%{archinstall}/j9vm +%dir %{_jvmdir}/%{jredir}/lib/%{archinstall}/server +%dir %{_jvmdir}/%{jredir}/lib/cmm +%dir %{_jvmdir}/%{jredir}/lib/ddr +%dir %{_jvmdir}/%{jredir}/lib/desktop +%dir %{_jvmdir}/%{jredir}/lib/ext +%dir %{_jvmdir}/%{jredir}/lib/images +%dir %{_jvmdir}/%{jredir}/lib/images/cursors +%dir %{_jvmdir}/%{jredir}/lib/management +%dir %{_jvmdir}/%{jredir}/lib/security +%dir %{_jvmdir}/%{jredir}/lib/security/policy +%dir %{_jvmdir}/%{jredir}/lib/security/policy/limited +%dir %{_jvmdir}/%{jredir}/lib/security/policy/unlimited +%dir %{_libdir}/jvm-exports +%dir %{_libdir}/jvm-private + +%doc %{imagesdir}/j2sdk-image/jre/ASSEMBLY_EXCEPTION +%license %{imagesdir}/j2sdk-image/jre/LICENSE LICENSE.openj9 +%doc %{imagesdir}/j2sdk-image/jre/THIRD_PARTY_README + +%dir %{_jvmdir}/%{sdkdir} +%{_jvmdir}/%{jrelnk} +%{_jvmjardir}/%{jrelnk} +%{_jvmprivdir}/* +%{jvmjardir} +%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.policy +%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.security +%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/blacklisted.certs +%{_mandir}/man1/java-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/jjs-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/keytool-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/orbd-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/pack200-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/policytool-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/rmid-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/rmiregistry-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/servertool-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/tnameserv-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/unpack200-%{sdklnk}.1%{?ext_man} +%{_jvmdir}/%{jredir}/lib/security/policy/limited/US_export_policy.jar +%{_jvmdir}/%{jredir}/lib/security/policy/limited/local_policy.jar +%{_jvmdir}/%{jredir}/lib/security/policy/unlimited/US_export_policy.jar +%{_jvmdir}/%{jredir}/lib/security/policy/unlimited/local_policy.jar +%ifnarch %{aarch64} +%{_jvmdir}/%{jredir}/lib/security/nss.fips.cfg +%endif + +%files devel +%dir %{_jvmdir}/%{sdkdir}/bin +%dir %{_jvmdir}/%{sdkdir}/include +%dir %{_jvmdir}/%{sdkdir}/lib +%{_jvmdir}/%{sdkdir}/bin/* +%{_jvmdir}/%{sdkdir}/include/* +%{_jvmdir}/%{sdkdir}/lib/* + +%{_jvmdir}/%{sdklnk} +%{_jvmjardir}/%{sdklnk} +%{_mandir}/man1/appletviewer-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/extcheck-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/idlj-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/jar-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/jarsigner-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/javac-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/javadoc-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/javah-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/javap-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/jconsole-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/jdb-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/jdeps-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/jrunscript-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/jsadebugd-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/native2ascii-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/rmic-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/schemagen-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/serialver-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/wsgen-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/wsimport-%{sdklnk}.1%{?ext_man} +%{_mandir}/man1/xjc-%{sdklnk}.1%{?ext_man} + +%files demo -f %{name}-demo.files + +%files src +%{_jvmdir}/%{sdkdir}/src.zip + +%files javadoc +%dir %{_javadocdir} +%dir %{_javadocdir}/%{sdklnk} +%{_javadocdir}/%{sdklnk}/* + +%files accessibility +%dir %{_jvmdir}/%{jredir}/lib/ext +%config(noreplace) %{_jvmdir}/%{jredir}/lib/accessibility.properties +%ghost %{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so +%ghost %{_jvmdir}/%{jredir}/lib/ext/java-atk-wrapper.jar + +%changelog diff --git a/java-atk-wrapper-security.patch b/java-atk-wrapper-security.patch new file mode 100644 index 0000000..6c79bdb --- /dev/null +++ b/java-atk-wrapper-security.patch @@ -0,0 +1,24 @@ +--- openjdk/jdk/src/share/lib/security/java.security-linux 2014-07-15 23:08:27.000000000 +0200 ++++ openjdk/jdk/src/share/lib/security/java.security-linux 2014-07-18 09:04:45.127566697 +0200 +@@ -227,7 +227,9 @@ + com.sun.activation.registries.,\ + jdk.jfr.events.,\ + jdk.jfr.internal.,\ +- jdk.management.jfr.internal. ++ jdk.management.jfr.internal.\ ++ org.GNOME.Accessibility.,\ ++ org.GNOME.Bonobo. + + # + # List of comma-separated packages that start with or equal this string +@@ -280,7 +282,9 @@ + com.sun.activation.registries.,\ + jdk.jfr.events.,\ + jdk.jfr.internal.,\ +- jdk.management.jfr.internal. ++ jdk.management.jfr.internal.\ ++ org.GNOME.Accessibility.,\ ++ org.GNOME.Bonobo. + + # + # Determines whether this properties file can be appended to diff --git a/jconsole.desktop.in b/jconsole.desktop.in new file mode 100644 index 0000000..27e9e0f --- /dev/null +++ b/jconsole.desktop.in @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=OpenJDK 8 Monitoring & Management Console +GenericName=OpenJDK Monitoring & Management Console +Comment=Monitor and manage OpenJDK applications for @VERSION@ +Exec=@JAVA_HOME@/bin/jconsole +Icon=java +Terminal=false +Type=Application +StartupWMClass=sun-tools-jconsole-JConsole +Categories=Development;Profiling; +Version=1.0 diff --git a/libdwarf-fix.patch b/libdwarf-fix.patch new file mode 100644 index 0000000..1f23ba6 --- /dev/null +++ b/libdwarf-fix.patch @@ -0,0 +1,85 @@ +--- a/omr/ddr/lib/ddr-scanner/dwarf/DwarfScanner.cpp ++++ b/omr/ddr/lib/ddr-scanner/dwarf/DwarfScanner.cpp +@@ -1497,6 +1497,13 @@ DwarfScanner::traverse_cu_in_debug_section(Symbol_IR *ir) + Dwarf_Half addressSize = 0; + Dwarf_Unsigned nextCUheader = 0; + Dwarf_Error error = NULL; ++#ifdef DW_LIBDWARF_VERSION_MAJOR ++ Dwarf_Half lengthSize = 0; ++ Dwarf_Half extensionSize = 0; ++ Dwarf_Sig8 typeSignature; ++ Dwarf_Unsigned typeOffset = 0; ++ Dwarf_Half nextCUheaderType = 0; ++#endif + + /* Go over each cu header. */ + while (DDR_RC_OK == rc) { +@@ -1504,7 +1511,11 @@ DwarfScanner::traverse_cu_in_debug_section(Symbol_IR *ir) + _typeOffsetMap.clear(); + _ir = &newIR; + ++#ifdef DW_LIBDWARF_VERSION_MAJOR ++ int ret = dwarf_next_cu_header_d(_debug, true, &cuHeaderLength, &versionStamp, &abbrevOffset, &addressSize, &lengthSize, &extensionSize, &typeSignature, &typeOffset, &nextCUheader, &nextCUheaderType, &error); ++#else + int ret = dwarf_next_cu_header(_debug, &cuHeaderLength, &versionStamp, &abbrevOffset, &addressSize, &nextCUheader, &error); ++#endif + if (DW_DLV_ERROR == ret) { + ERRMSG("Failed to get next dwarf CU header."); + rc = DDR_RC_ERROR; +@@ -1518,7 +1529,11 @@ DwarfScanner::traverse_cu_in_debug_section(Symbol_IR *ir) + Dwarf_Die childDie = NULL; + + /* Expect the CU to have a single sibling - a DIE */ ++#ifdef DW_LIBDWARF_VERSION_MAJOR ++ if (DW_DLV_ERROR == dwarf_siblingof_b(_debug, NULL, true, &cuDie, &error)) { ++#else + if (DW_DLV_ERROR == dwarf_siblingof(_debug, NULL, &cuDie, &error)) { ++#endif + ERRMSG("Getting sibling of CU: %s\n", dwarf_errmsg(error)); + rc = DDR_RC_ERROR; + break; +@@ -1617,12 +1632,20 @@ DwarfScanner::scanFile(OMRPortLibrary *portLibrary, Symbol_IR *ir, const char *f + } + + if (DDR_RC_OK == rc) { ++#ifdef DW_LIBDWARF_VERSION_MAJOR ++ unsigned int groupNumber = DW_GROUPNUMBER_ANY; ++#else + Dwarf_Unsigned access = DW_DLC_READ; ++#endif + Dwarf_Handler errhand = 0; + Dwarf_Ptr errarg = NULL; + intptr_t native_fd = omrfile_convert_omrfile_fd_to_native_fd(fd); + DwarfScanner::scanFileName = filepath; ++#ifdef DW_LIBDWARF_VERSION_MAJOR ++ res = dwarf_init_b((int)native_fd, groupNumber, errhand, errarg, &_debug, &error); ++#else + res = dwarf_init((int)native_fd, access, errhand, errarg, &_debug, &error); ++#endif + if (DW_DLV_OK != res) { + ERRMSG("Failed to initialize libDwarf scanning %s: %s\nExiting...\n", filepath, dwarf_errmsg(error)); + if (NULL != error) { +@@ -1640,7 +1663,11 @@ DwarfScanner::scanFile(OMRPortLibrary *portLibrary, Symbol_IR *ir, const char *f + + DEBUGPRINTF("Unloading libDwarf"); + ++#ifdef DW_LIBDWARF_VERSION_MAJOR ++ res = dwarf_finish(_debug); ++#else + res = dwarf_finish(_debug, &error); ++#endif + if (DW_DLV_OK != res) { + ERRMSG("Failed to Unload libDwarf: %s\nExiting...\n", dwarf_errmsg(error)); + if (NULL != error) { +@@ -1681,7 +1708,11 @@ DwarfScanner::getNextSibling(Dwarf_Die *die) + Dwarf_Error err = NULL; + + /* Get the next sibling and free the previous one if successful. */ ++#ifdef DW_LIBDWARF_VERSION_MAJOR ++ int ret = dwarf_siblingof_b(_debug, *die, true, &nextSibling, &err); ++#else + int ret = dwarf_siblingof(_debug, *die, &nextSibling, &err); ++#endif + if (DW_DLV_ERROR == ret) { + ERRMSG("Getting sibling of die:%s\n", dwarf_errmsg(err)); + } else if (DW_DLV_OK == ret) { diff --git a/multiple-pkcs11-library-init.patch b/multiple-pkcs11-library-init.patch new file mode 100644 index 0000000..15175de --- /dev/null +++ b/multiple-pkcs11-library-init.patch @@ -0,0 +1,74 @@ +# HG changeset patch +# User andrew +# Date 1352129932 0 +# Node ID e9c857dcb964dbfa5eef3a3590244cb4d999cf7a +# Parent 1406789608b76d0906881979335d685855f44190 +Allow multiple PKCS11 library initialisation to be a non-critical error. + +diff -r 1406789608b7 -r e9c857dcb964 src/share/classes/sun/security/pkcs11/Config.java +--- jdk8/jdk/src/share/classes/sun/security/pkcs11/Config.java Tue Oct 30 13:05:14 2012 +0000 ++++ jdk8/jdk/src/share/classes/sun/security/pkcs11/Config.java Mon Nov 05 15:38:52 2012 +0000 +@@ -52,6 +52,7 @@ + static final int ERR_HALT = 1; + static final int ERR_IGNORE_ALL = 2; + static final int ERR_IGNORE_LIB = 3; ++ static final int ERR_IGNORE_MULTI_INIT = 4; + + // same as allowSingleThreadedModules but controlled via a system property + // and applied to all providers. if set to false, no SunPKCS11 instances +@@ -980,6 +981,8 @@ + handleStartupErrors = ERR_IGNORE_LIB; + } else if (val.equals("halt")) { + handleStartupErrors = ERR_HALT; ++ } else if (val.equals("ignoreMultipleInitialisation")) { ++ handleStartupErrors = ERR_IGNORE_MULTI_INIT; + } else { + throw excToken("Invalid value for handleStartupErrors:"); + } +diff -r 1406789608b7 -r e9c857dcb964 src/share/classes/sun/security/pkcs11/SunPKCS11.java +--- jdk8/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java Tue Oct 30 13:05:14 2012 +0000 ++++ jdk8/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java Mon Nov 05 15:38:52 2012 +0000 +@@ -168,26 +168,37 @@ + String nssLibraryDirectory = config.getNssLibraryDirectory(); + String nssSecmodDirectory = config.getNssSecmodDirectory(); + boolean nssOptimizeSpace = config.getNssOptimizeSpace(); ++ int errorHandling = config.getHandleStartupErrors(); + + if (secmod.isInitialized()) { + if (nssSecmodDirectory != null) { + String s = secmod.getConfigDir(); + if ((s != null) && + (s.equals(nssSecmodDirectory) == false)) { +- throw new ProviderException("Secmod directory " +- + nssSecmodDirectory +- + " invalid, NSS already initialized with " +- + s); ++ String msg = "Secmod directory " + nssSecmodDirectory ++ + " invalid, NSS already initialized with " + s; ++ if (errorHandling == Config.ERR_IGNORE_MULTI_INIT || ++ errorHandling == Config.ERR_IGNORE_ALL) { ++ throw new UnsupportedOperationException(msg); ++ } else { ++ throw new ProviderException(msg); ++ } + } + } + if (nssLibraryDirectory != null) { + String s = secmod.getLibDir(); + if ((s != null) && + (s.equals(nssLibraryDirectory) == false)) { +- throw new ProviderException("NSS library directory " ++ String msg = "NSS library directory " + + nssLibraryDirectory + + " invalid, NSS already initialized with " +- + s); ++ + s; ++ if (errorHandling == Config.ERR_IGNORE_MULTI_INIT || ++ errorHandling == Config.ERR_IGNORE_ALL) { ++ throw new UnsupportedOperationException(msg); ++ } else { ++ throw new ProviderException(msg); ++ } + } + } + } else { diff --git a/openj9-no-narrowing.patch b/openj9-no-narrowing.patch new file mode 100644 index 0000000..8a17225 --- /dev/null +++ b/openj9-no-narrowing.patch @@ -0,0 +1,21 @@ +--- a/openj9/runtime/compiler/env/j9methodServer.cpp ++++ b/openj9/runtime/compiler/env/j9methodServer.cpp +@@ -2634,7 +2634,7 @@ TR_ResolvedRelocatableJ9JITServerMethod::validateMethodFieldAttributes(const TR_ + return equal; + } + +-TR_J9ServerMethod::TR_J9ServerMethod(TR_FrontEnd * fe, TR_Memory * trMemory, J9Class * aClazz, uintptr_t cpIndex) ++TR_J9ServerMethod::TR_J9ServerMethod(TR_FrontEnd * fe, TR_Memory * trMemory, J9Class * aClazz, int32_t cpIndex) + : TR_J9Method() + { + TR_ASSERT(cpIndex != -1, "cpIndex shouldn't be -1"); +--- a/openj9/runtime/compiler/env/j9methodServer.hpp ++++ b/openj9/runtime/compiler/env/j9methodServer.hpp +@@ -326,6 +326,6 @@ protected: + class TR_J9ServerMethod : public TR_J9Method + { + public: +- TR_J9ServerMethod(TR_FrontEnd *trvm, TR_Memory *, J9Class * aClazz, uintptr_t cpIndex); ++ TR_J9ServerMethod(TR_FrontEnd *trvm, TR_Memory *, J9Class * aClazz, int32_t cpIndex); + }; + #endif // J9METHODSERVER_H diff --git a/openj9-no-werror.patch b/openj9-no-werror.patch new file mode 100644 index 0000000..90ce1ee --- /dev/null +++ b/openj9-no-werror.patch @@ -0,0 +1,48 @@ +--- openj9/runtime/makelib/targets.mk.linux.inc.ftl 2020-04-15 02:48:00.000000000 +0200 ++++ openj9/runtime/makelib/targets.mk.linux.inc.ftl 2020-06-26 07:37:18.255678364 +0200 +@@ -459,18 +459,18 @@ + ifndef UMA_SUPPRESS_WARNINGS_AS_ERRORS + <#if uma.spec.processor.ppc> + <#if uma.spec.flags.env_gcc.enabled> +- CFLAGS += -Wreturn-type -Werror +- CXXFLAGS += -Wreturn-type -Werror ++ CFLAGS += -Wreturn-type ++ CXXFLAGS += -Wreturn-type + <#else> + CFLAGS += -qhalt=w + CXXFLAGS += -qhalt=w + + ifdef USE_PPC_GCC +- PPC_GCC_CXXFLAGS += -Wreturn-type -Werror ++ PPC_GCC_CXXFLAGS += -Wreturn-type + endif + <#else> +- CFLAGS += -Wimplicit -Wreturn-type -Werror +- CXXFLAGS += -Wreturn-type -Werror ++ CFLAGS += -Wimplicit -Wreturn-type ++ CXXFLAGS += -Wreturn-type + + endif + endif +--- omr/omrmakefiles/rules.linux.mk 2020-04-14 14:43:05.000000000 +0200 ++++ omr/omrmakefiles/rules.linux.mk 2020-06-26 08:19:16.264774446 +0200 +@@ -345,15 +345,15 @@ + ifeq ($(OMR_WARNINGS_AS_ERRORS),1) + ifeq (ppc,$(OMR_HOST_ARCH)) + ifeq (gcc,$(OMR_TOOLCHAIN)) +- GLOBAL_CFLAGS += -Wreturn-type -Werror +- GLOBAL_CXXFLAGS += -Wreturn-type -Werror ++ GLOBAL_CFLAGS += -Wreturn-type ++ GLOBAL_CXXFLAGS += -Wreturn-type + else + GLOBAL_CFLAGS += -qhalt=w + GLOBAL_CXXFLAGS += -qhalt=w + endif + else +- GLOBAL_CFLAGS+=-Wimplicit -Wreturn-type -Werror +- GLOBAL_CXXFLAGS+=-Wreturn-type -Werror ++ GLOBAL_CFLAGS+=-Wimplicit -Wreturn-type ++ GLOBAL_CXXFLAGS+=-Wreturn-type + endif + endif + diff --git a/openj9-nogit.patch.in b/openj9-nogit.patch.in new file mode 100644 index 0000000..3716c31 --- /dev/null +++ b/openj9-nogit.patch.in @@ -0,0 +1,57 @@ +--- a/closed/OpenJ9.gmk ++++ b/closed/OpenJ9.gmk +@@ -38,11 +38,11 @@ VersionPairs := + # ---------- + # $1 - repository display name + # $2 - variable name +-# $3 - root directory of git repository ++# $3 - variable value + # $4 - 'required' for a required repository, anything else for an optional one + GetVersion = $(eval $(call GetVersionHelper,$(strip $1),$(strip $2),$(strip $3),$(strip $4))) + define GetVersionHelper +- $2 := $$(if $(wildcard $3),$$(shell $(GIT) -C $3 rev-parse --short HEAD)) ++ $2 := $3 + ifneq (,$$($2)) + VersionLabelWidth := $(shell $(ECHO) "$1" | $(AWK) "{ width = length; print (width > $(VersionLabelWidth) ? width : $(VersionLabelWidth)) }") + VersionPairs += "$1" "$$($2)" +@@ -58,17 +58,17 @@ define ShowVersions + @$(PRINTF) " %-$(VersionLabelWidth)s - %s\n" $(VersionPairs) + endef # ShowVersions + +-$(call GetVersion, openjdk, OPENJDK_SHA, $(TOPDIR), required) +-$(call GetVersion, openj9, OPENJ9_SHA, $(OPENJ9_TOPDIR), required) +-$(call GetVersion, omr, OPENJ9OMR_SHA, $(OPENJ9OMR_TOPDIR), required) +-$(call GetVersion, openssl, OPENSSL_SHA, $(OPENSSL_DIR)) ++$(call GetVersion, openjdk, OPENJDK_SHA, @OPENJDK_SHA@, required) ++$(call GetVersion, openj9, OPENJ9_SHA, @OPENJ9_SHA@, required) ++$(call GetVersion, omr, OPENJ9OMR_SHA, @OPENJ9OMR_SHA@, required) ++$(call GetVersion, openssl, OPENSSL_SHA, @OPENSSL_SHA@ ) + + # Find OpenJ9 tag associated with current commit (suppressing stderr in case there is no such tag). +-OPENJ9_TAG := $(shell $(GIT) -C $(OPENJ9_TOPDIR) describe --exact-match HEAD 2>/dev/null) ++OPENJ9_TAG := @OPENJ9_TAG@ + ifneq (,$(OPENJ9_TAG)) + OPENJ9_VERSION_STRING := $(OPENJ9_TAG) + else +- OPENJ9_BRANCH := $(shell $(GIT) -C $(OPENJ9_TOPDIR) rev-parse --abbrev-ref HEAD) ++ OPENJ9_BRANCH := @OPENJ9_BRANCH@ + ifeq (,$(OPENJ9_BRANCH)) + $(error Could not determine OpenJ9 branch) + endif +diff --git a/closed/make/Main.gmk b/closed/make/Main.gmk +index d73fff3230..d17eea56b8 100644 +--- a/closed/make/Main.gmk ++++ b/closed/make/Main.gmk +@@ -35,9 +35,9 @@ clean-j9vm : + # Override definition from MakeBase.gmk for OpenJ9. + define GetSourceTips + $(PRINTF) "%s:%s\n" \ +- OpenJDK "$(shell $(GIT) -C $(TOPDIR) rev-parse --short HEAD)" \ +- OpenJ9 "$(shell $(GIT) -C $(OPENJ9_TOPDIR) rev-parse --short HEAD)" \ +- OMR "$(shell $(GIT) -C $(OPENJ9OMR_TOPDIR) rev-parse --short HEAD)" \ ++ OpenJDK "@OPENJDK_SHA@" \ ++ OpenJ9 "@OPENJ9_SHA@" \ ++ OMR "@OPENJ9OMR_SHA@" \ + > $@ + endef + diff --git a/openj9-openssl.patch b/openj9-openssl.patch new file mode 100644 index 0000000..ee392f5 --- /dev/null +++ b/openj9-openssl.patch @@ -0,0 +1,13 @@ +--- a/openj9/runtime/compiler/runtime/Listener.cpp ++++ b/openj9/runtime/compiler/runtime/Listener.cpp +@@ -44,6 +44,10 @@ + #include "runtime/CompileService.hpp" + #include "runtime/Listener.hpp" + ++#ifndef SSL_R_UNEXPECTED_EOF_WHILE_READING ++#define SSL_R_UNEXPECTED_EOF_WHILE_READING 294 ++#endif ++ + static bool + handleOpenSSLConnectionError(int connfd, SSL *&ssl, BIO *&bio, const char *errMsg, int ret, TR::CompilationInfo *compInfo) + { diff --git a/policytool.desktop.in b/policytool.desktop.in new file mode 100644 index 0000000..aca7f77 --- /dev/null +++ b/policytool.desktop.in @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=OpenJDK 8 Policy Tool +GenericName=OpenJDK Policy Tool +Comment=Manage OpenJDK policy files (@VERSION@) +Exec=@JAVA_HOME@/bin/policytool +Icon=java +Terminal=false +Type=Application +StartupWMClass=sun-security-tools-PolicyTool +Categories=Settings;DesktopSettings;Security; +Version=1.0 diff --git a/stringop-overflow.patch b/stringop-overflow.patch new file mode 100644 index 0000000..1e79fb3 --- /dev/null +++ b/stringop-overflow.patch @@ -0,0 +1,20 @@ +diff -urEbwB openj9-openjdk-jdk17.orig/omr/compiler/optimizer/OMRSimplifierHandlers.cpp openj9-openjdk-jdk17/omr/compiler/optimizer/OMRSimplifierHandlers.cpp +--- openj9-openjdk-jdk17.orig/omr/compiler/optimizer/OMRSimplifierHandlers.cpp 2023-03-28 09:18:57.979474249 +0200 ++++ openj9-openjdk-jdk17/omr/compiler/optimizer/OMRSimplifierHandlers.cpp 2023-03-28 09:49:47.316000333 +0200 +@@ -22,6 +22,9 @@ + #ifndef OMR_SIMPLIFIERHANDLERS_INCL + #define OMR_SIMPLIFIERHANDLERS_INCL + ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wstringop-overflow" ++ + #include "optimizer/OMRSimplifierHelpers.hpp" + #include "optimizer/SimplifierHandlers.hpp" + +@@ -17353,5 +17356,6 @@ + return node; + } + ++#pragma GCC diagnostic pop + + #endif diff --git a/system-lcms.patch b/system-lcms.patch new file mode 100644 index 0000000..a176a7d --- /dev/null +++ b/system-lcms.patch @@ -0,0 +1,99 @@ +--- jdk8/common/autoconf/libraries.m4 2014-09-26 08:49:01.572737814 +0200 ++++ jdk8/common/autoconf/libraries.m4 2014-09-26 08:50:22.896853996 +0200 +@@ -679,6 +679,46 @@ + + ############################################################################### + # ++ # Check for the lcms2 library ++ # ++ ++ AC_ARG_WITH(lcms, [AS_HELP_STRING([--with-lcms], ++ [use lcms2 from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])]) ++ ++ AC_CHECK_LIB(lcms2, cmsOpenProfileFromFile, ++ [ LCMS_FOUND=yes ], ++ [ LCMS_FOUND=no ]) ++ ++ AC_MSG_CHECKING([for which lcms to use]) ++ ++ DEFAULT_LCMS=bundled ++ ++ # ++ # If user didn't specify, use DEFAULT_LCMS ++ # ++ if test "x${with_lcms}" = "x"; then ++ with_lcms=${DEFAULT_LCMS} ++ fi ++ ++ if test "x${with_lcms}" = "xbundled"; then ++ USE_EXTERNAL_LCMS=false ++ AC_MSG_RESULT([bundled]) ++ elif test "x${with_lcms}" = "xsystem"; then ++ if test "x${LCMS_FOUND}" = "xyes"; then ++ USE_EXTERNAL_LCMS=true ++ AC_MSG_RESULT([system]) ++ else ++ AC_MSG_RESULT([system not found]) ++ AC_MSG_ERROR([--with-lcms=system specified, but no lcms found!]) ++ fi ++ else ++ AC_MSG_ERROR([Invalid value for --with-lcms: ${with_lcms}, use 'system' or 'bundled']) ++ fi ++ ++ AC_SUBST(USE_EXTERNAL_LCMS) ++ ++ ############################################################################### ++ # + # Check for the png library + # + +--- jdk8/jdk/make/lib/Awt2dLibraries.gmk 2014-09-26 08:49:00.981751504 +0200 ++++ jdk8/jdk/make/lib/Awt2dLibraries.gmk 2014-09-26 08:50:22.897853978 +0200 +@@ -669,8 +669,8 @@ + endif + + # TODO: Update awt lib path when awt is converted +-$(eval $(call SetupNativeCompilation,BUILD_LIBLCMS, \ +- LIBRARY := lcms, \ ++$(eval $(call SetupNativeCompilation,BUILD_LIBJAVALCMS, \ ++ LIBRARY := javalcms, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms, \ + LANG := C, \ +@@ -688,19 +688,19 @@ + LDFLAGS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \ + LDFLAGS_SUFFIX_solaris := -lawt -ljava -ljvm -lc, \ + LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm, \ +- LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm, \ ++ LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm -llcms2, \ + LDFLAGS_SUFFIX_aix := -lm -lawt -ljava -ljvm,\ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ +- -D "JDK_FNAME=lcms.dll" \ +- -D "JDK_INTERNAL_NAME=lcms" \ ++ -D "JDK_FNAME=javalcms.dll" \ ++ -D "JDK_INTERNAL_NAME=javalcms" \ + -D "JDK_FTYPE=0x2L", \ +- OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/liblcms, \ ++ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjavalcms, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +-BUILD_LIBRARIES += $(BUILD_LIBLCMS) ++BUILD_LIBRARIES += $(BUILD_LIBJAVALCMS) + +-$(BUILD_LIBLCMS): $(BUILD_LIBAWT) ++$(BUILD_LIBJAVALCMS): $(BUILD_LIBAWT) + + ########################################################################################## + +--- jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java 2014-09-26 08:49:00.646759264 +0200 ++++ jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java 2014-09-26 08:50:22.897853978 +0200 +@@ -207,7 +207,7 @@ + * disposer frameworks + */ + System.loadLibrary("awt"); +- System.loadLibrary("lcms"); ++ System.loadLibrary("javalcms"); + return null; + } + }); diff --git a/system-libjpeg.patch b/system-libjpeg.patch new file mode 100644 index 0000000..4fb3f6f --- /dev/null +++ b/system-libjpeg.patch @@ -0,0 +1,240 @@ +--- jdk8/common/autoconf/libraries.m4 2023-11-22 18:11:00.405573557 +0100 ++++ jdk8/common/autoconf/libraries.m4 2023-11-22 18:13:07.916625522 +0100 +@@ -609,11 +609,36 @@ + # Check for the jpeg library + # + ++ AC_ARG_WITH(libjpeg, [AS_HELP_STRING([--with-libjpeg], ++ [use libjpeg from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])]) ++ ++ AC_MSG_CHECKING([for which libjpeg to use]) ++ ++ # default is bundled ++ DEFAULT_LIBJPEG=bundled ++ ++ # ++ # if user didn't specify, use DEFAULT_LIBJPEG ++ # ++ if test "x${with_libjpeg}" = "x"; then ++ with_libjpeg=${DEFAULT_LIBJPEG} ++ fi ++ ++ AC_MSG_RESULT(${with_libjpeg}) ++ ++ if test "x${with_libjpeg}" = "xbundled"; then ++ USE_EXTERNAL_LIBJPEG=false ++ elif test "x${with_libjpeg}" = "xsystem"; then ++ AC_CHECK_HEADER(jpeglib.h, [], ++ [ AC_MSG_ERROR([--with-libjpeg=system specified, but jpeglib.h not found!])]) ++ AC_CHECK_LIB(jpeg, jpeg_CreateDecompress, [], ++ [ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])]) ++ + USE_EXTERNAL_LIBJPEG=true +- AC_CHECK_LIB(jpeg, main, [], +- [ USE_EXTERNAL_LIBJPEG=false +- AC_MSG_NOTICE([Will use jpeg decoder bundled with the OpenJDK source]) +- ]) ++ else ++ AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system' or 'bundled']) ++ fi ++ + AC_SUBST(USE_EXTERNAL_LIBJPEG) + + ############################################################################### +--- jdk8/jdk/make/lib/Awt2dLibraries.gmk 2023-11-22 18:11:00.615575289 +0100 ++++ jdk8/jdk/make/lib/Awt2dLibraries.gmk 2023-11-22 18:15:26.204333006 +0100 +@@ -702,18 +702,20 @@ + + ########################################################################################## + ++BUILD_LIBJAVAJPEG_DIR := $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg ++ + ifdef OPENJDK +- BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers ++ BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers + else +- BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers-closed +- BUILD_LIBJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg +- BUILD_LIBJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJPEG_CLOSED_SRC) ++ BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers-closed ++ BUILD_LIBJAVAJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg ++ BUILD_LIBJAVAJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJAVAJPEG_CLOSED_SRC) + endif + +-BUILD_LIBJPEG_REORDER := ++BUILD_LIBJAVAJPEG_REORDER := + ifeq ($(OPENJDK_TARGET_OS), solaris) + ifneq ($(OPENJDK_TARGET_CPU), x86_64) +- BUILD_LIBJPEG_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU) ++ BUILD_LIBJAVAJPEG_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU) + endif + endif + +@@ -728,37 +730,50 @@ + # $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \ + # \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) ) + # ifeq ($(CC_43_OR_NEWER), 1) +-# BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered ++# BUILD_LIBJAVAJPEG_CFLAGS_linux += -Wno-clobbered + # endif + #endif + +-$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG, \ +- LIBRARY := jpeg, \ ++ifeq ($(USE_EXTERNAL_LIBJPEG), true) ++ LIBJPEG_LIBS := -ljpeg ++ BUILD_LIBJAVAJPEG_INCLUDE_FILES := \ ++ imageioJPEG.c \ ++ jpegdecoder.c ++ BUILD_LIBJAVAJPEG_HEADERS := ++else ++ LIBJPEG_LIBS := ++ BUILD_LIBJAVAJPEG_INCLUDE_FILES := ++ BUILD_LIBJAVAJPEG_HEADERS := -I$(BUILD_LIBJAVAJPEG_DIR) ++endif ++ ++$(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG, \ ++ LIBRARY := javajpeg, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ +- SRC := $(BUILD_LIBJPEG_CLOSED_SRC) \ +- $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \ ++ SRC := $(BUILD_LIBJAVAJPEG_CLOSED_SRC) \ ++ $(BUILD_LIBJAVAJPEG_DIR), \ ++ INCLUDE_FILES := $(BUILD_LIBJAVAJPEG_INCLUDE_FILES), \ + LANG := C, \ + OPTIMIZATION := HIGHEST, \ + CFLAGS := $(CFLAGS_JDKLIB) \ +- $(BUILD_LIBJPEG_CLOSED_INCLUDES) \ +- -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \ +- MAPFILE := $(BUILD_LIBJPEG_MAPFILE), \ ++ $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \ ++ $(BUILD_LIBJAVAJPEG_HEADERS), \ ++ MAPFILE := $(BUILD_LIBJAVAJPEG_MAPFILE), \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_windows := $(WIN_JAVA_LIB) jvm.lib, \ +- LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \ ++ LDFLAGS_SUFFIX := $(LIBJPEG_LIBS) $(LDFLAGS_JDKLIB_SUFFIX), \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ +- -D "JDK_FNAME=jpeg.dll" \ +- -D "JDK_INTERNAL_NAME=jpeg" \ ++ -D "JDK_FNAME=javajpeg.dll" \ ++ -D "JDK_INTERNAL_NAME=javajpeg" \ + -D "JDK_FTYPE=0x2L", \ +- REORDER := $(BUILD_LIBJPEG_REORDER), \ ++ REORDER := $(BUILD_LIBJAVAJPEG_REORDER), \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjpeg, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +-$(BUILD_LIBJPEG): $(BUILD_LIBJAVA) ++$(BUILD_LIBJAVAJPEG): $(BUILD_LIBJAVA) + +-BUILD_LIBRARIES += $(BUILD_LIBJPEG) ++BUILD_LIBRARIES += $(BUILD_LIBJAVAJPEG) + + ########################################################################################## + +@@ -1197,6 +1212,13 @@ + GIFLIB_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/giflib + endif + ++ ifeq ($(USE_EXTERNAL_LIBJPEG), true) ++ LIBJPEG_LDFLAGS := -ljpeg ++ else ++ LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg ++ LIBJPEG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg ++ endif ++ + ifneq ($(OPENJDK_TARGET_OS), macosx) + LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen + else +@@ -1259,11 +1281,13 @@ + EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \ + LANG := C, \ + OPTIMIZATION := LOW, \ +- CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) $(GIFLIB_CFLAGS), \ ++ CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \ ++ $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS), \ + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ +- LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS), \ ++ LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) \ ++ $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS), \ + LDFLAGS_SUFFIX_solaris := -lc, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ +--- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java 2023-11-22 18:11:00.668909063 +0100 ++++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java 2023-11-22 18:13:07.916625522 +0100 +@@ -89,7 +89,7 @@ + java.security.AccessController.doPrivileged( + new java.security.PrivilegedAction() { + public Void run() { +- System.loadLibrary("jpeg"); ++ System.loadLibrary("javajpeg"); + return null; + } + }); +--- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java 2023-11-22 18:11:00.668909063 +0100 ++++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java 2023-11-22 18:13:07.916625522 +0100 +@@ -177,7 +177,7 @@ + java.security.AccessController.doPrivileged( + new java.security.PrivilegedAction() { + public Void run() { +- System.loadLibrary("jpeg"); ++ System.loadLibrary("javajpeg"); + return null; + } + }); +--- jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java 2023-11-22 18:11:00.855577269 +0100 ++++ jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java 2023-11-22 18:13:07.916625522 +0100 +@@ -56,7 +56,7 @@ + java.security.AccessController.doPrivileged( + new java.security.PrivilegedAction() { + public Void run() { +- System.loadLibrary("jpeg"); ++ System.loadLibrary("javajpeg"); + return null; + } + }); +--- jdk8/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c 2023-11-22 18:11:01.012245228 +0100 ++++ jdk8/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c 2023-11-22 18:13:07.919958884 +0100 +@@ -51,7 +51,7 @@ + + /* headers from the JPEG library */ + #include +-#include "jerror.h" ++#include + + #undef MAX + #define MAX(a,b) ((a) > (b) ? (a) : (b)) +--- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c 2023-11-22 18:11:01.028912033 +0100 ++++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c 2023-11-22 18:13:07.919958884 +0100 +@@ -25,9 +25,9 @@ + + #include "splashscreen_impl.h" + +-#include "jinclude.h" +-#include "jpeglib.h" +-#include "jerror.h" ++#include ++#include ++#include + + #include + +@@ -113,11 +113,11 @@ + if (cinfo->src == NULL) { /* first time for this JPEG object? */ + cinfo->src = (struct jpeg_source_mgr *) + (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, +- JPOOL_PERMANENT, SIZEOF(stream_source_mgr)); ++ JPOOL_PERMANENT, sizeof(stream_source_mgr)); + src = (stream_src_ptr) cinfo->src; + src->buffer = (JOCTET *) + (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, +- JPOOL_PERMANENT, INPUT_BUF_SIZE * SIZEOF(JOCTET)); ++ JPOOL_PERMANENT, INPUT_BUF_SIZE * sizeof(JOCTET)); + } + + src = (stream_src_ptr) cinfo->src; diff --git a/system-libpng.patch b/system-libpng.patch new file mode 100644 index 0000000..b350866 --- /dev/null +++ b/system-libpng.patch @@ -0,0 +1,111 @@ +--- jdk8/common/autoconf/libraries.m4 2014-09-26 08:45:01.057310067 +0200 ++++ jdk8/common/autoconf/libraries.m4 2014-09-26 08:46:38.602049970 +0200 +@@ -679,6 +679,47 @@ + + ############################################################################### + # ++ # Check for the png library ++ # ++ ++ AC_ARG_WITH(libpng, [AS_HELP_STRING([--with-libpng], ++ [use libpng from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])]) ++ ++ AC_CHECK_LIB(png, png_sig_cmp, ++ [ LIBPNG_FOUND=yes ], ++ [ LIBPNG_FOUND=no ]) ++ ++ AC_MSG_CHECKING([for which libpng to use]) ++ ++ # default is bundled ++ DEFAULT_LIBPNG=bundled ++ ++ # ++ # if user didn't specify, use DEFAULT_LIBPNG ++ # ++ if test "x${with_libpng}" = "x"; then ++ with_libpng=${DEFAULT_libpng} ++ fi ++ ++ ++ if test "x${with_libpng}" = "xbundled"; then ++ USE_EXTERNAL_LIBPNG=false ++ AC_MSG_RESULT([bundled]) ++ elif test "x${with_libpng}" = "xsystem"; then ++ if test "x${LIBPNG_FOUND}" = "xyes"; then ++ USE_EXTERNAL_LIBPNG=true ++ AC_MSG_RESULT([system]) ++ else ++ AC_MSG_RESULT([system not found]) ++ AC_MSG_ERROR([--with-libpng=system specified, but no libpng found!]) ++ fi ++ else ++ AC_MSG_ERROR([Invalid value of --with-libpng: ${with_libpng}, use 'system' or 'bundled']) ++ fi ++ AC_SUBST(USE_EXTERNAL_LIBPNG) ++ ++ ############################################################################### ++ # + # Check for the zlib library + # + +--- jdk8/common/autoconf/spec.gmk.in 2014-09-26 08:45:01.057310067 +0200 ++++ jdk8/common/autoconf/spec.gmk.in 2014-09-26 08:46:38.603049945 +0200 +@@ -555,6 +555,7 @@ + ENABLE_JFR=@ENABLE_JFR@ + ENABLE_INTREE_EC=@ENABLE_INTREE_EC@ + USE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@ ++USE_EXTERNAL_LIBPNG:=@USE_EXTERNAL_LIBPNG@ + USE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@ + USE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@ + LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@ +--- jdk8/jdk/make/lib/Awt2dLibraries.gmk 2014-09-26 08:45:00.475323552 +0200 ++++ jdk8/jdk/make/lib/Awt2dLibraries.gmk 2014-09-26 08:46:38.603049945 +0200 +@@ -1211,7 +1211,6 @@ + ifndef BUILD_HEADLESS_ONLY + LIBSPLASHSCREEN_DIRS := \ + $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg \ +- $(JDK_TOPDIR)/src/share/native/sun/awt/libpng \ + $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen + + ifeq ($(USE_EXTERNAL_LIBGIF), true) +@@ -1228,6 +1227,13 @@ + LIBJPEG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg + endif + ++ ifeq ($(USE_EXTERNAL_LIBPNG), true) ++ LIBPNG_LDFLAGS := -lpng ++ else ++ LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/image/libpng ++ LIBPNG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/libpng ++ endif ++ + ifneq ($(OPENJDK_TARGET_OS), macosx) + LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen + else +@@ -1291,12 +1297,12 @@ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \ +- $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS), \ ++ $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(LIBPNG_CFLAGS), \ + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) \ +- $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS), \ ++ $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS) $(LIBPNG_LDFLAGS), \ + LDFLAGS_SUFFIX_solaris := -lc, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ +--- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c 2014-09-26 08:45:00.414324966 +0200 ++++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c 2014-09-26 08:46:38.603049945 +0200 +@@ -25,8 +25,7 @@ + + #include "splashscreen_impl.h" + +-#include "../libpng/png.h" +- ++#include + #include + + #define SIG_BYTES 8