Compare commits
No commits in common. "c8-beta" and "c8" have entirely different histories.
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,2 +1,2 @@
|
|||||||
SOURCES/openjdk-shenandoah-jdk8u-shenandoah-jdk8u362-b08-4curve.tar.xz
|
SOURCES/shenandoah8u442-b06.tar.xz
|
||||||
SOURCES/tapsets-icedtea-3.15.0.tar.xz
|
SOURCES/tapsets-icedtea-3.15.0.tar.xz
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
71e5a111b66d7a8e4234d35117e0fd663d39f9ce SOURCES/openjdk-shenandoah-jdk8u-shenandoah-jdk8u362-b08-4curve.tar.xz
|
f5c84eb1dd6c8dba50a2ae89e01ec1d1b4f26fde SOURCES/shenandoah8u442-b06.tar.xz
|
||||||
7ae2cba67467825b2c2a5fec7aea041865023002 SOURCES/tapsets-icedtea-3.15.0.tar.xz
|
7ae2cba67467825b2c2a5fec7aea041865023002 SOURCES/tapsets-icedtea-3.15.0.tar.xz
|
||||||
|
1153
SOURCES/NEWS
1153
SOURCES/NEWS
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,34 @@
|
|||||||
Package of LTS OpenJDK 8
|
OpenJDK 8 is a Long-Term Support (LTS) release of the Java platform.
|
||||||
OpenJDK have release cadence of 6 months. but 3/4 of them are Short Term Supported for 6 months only. This package is designed to harbore them. Currently it is build on openJDK 10. LTSs (next is 11) will go as separate packages.
|
|
||||||
|
|
||||||
JDK8 is last LTS release of Java platform. It is bringing many cool improvements - http://openjdk.java.net/projects/jdk/8/ and is landing to your RHEL. Where it will be maintained for several years. You will always be allowed to install Used LTSs in build root, and alongside via alternatives.
|
For a list of major changes in OpenJDK 8 (java-1.8.0-openjdk), see the
|
||||||
|
upstream release page: https://openjdk.org/projects/jdk8/features
|
||||||
|
|
||||||
See announcement: http://mail.openjdk.java.net/pipermail/discuss/2017-September/004281.html
|
# Rebuilding the OpenJDK package
|
||||||
See java SIG plans: https://jvanek.fedorapeople.org/devconf/2018/changesInjavaReleaseProcess.pdf
|
|
||||||
|
|
||||||
|
The OpenJDK packages are now created from a single build which is then
|
||||||
|
packaged for different major versions of Red Hat Enterprise Linux
|
||||||
|
(RHEL). This allows the OpenJDK team to focus their efforts on the
|
||||||
|
development and testing of this single build, rather than having
|
||||||
|
multiple builds which only differ by the platform they were built on.
|
||||||
|
|
||||||
|
This does make rebuilding the package slightly more complicated than a
|
||||||
|
normal package. Modifications should be made to the
|
||||||
|
`java-1.8.0-openjdk-portable.specfile` file, which can be found with
|
||||||
|
this README file in the source RPM or installed in the documentation
|
||||||
|
tree by the `java-1.8.0-openjdk-headless` RPM.
|
||||||
|
|
||||||
|
Once the modified `java-1.8.0-openjdk-portable` RPMs are built, they
|
||||||
|
should be installed and will produce a number of tarballs in the
|
||||||
|
`/usr/lib/jvm` directory. The `java-1.8.0-openjdk` RPMs can then be
|
||||||
|
built, which will use these tarballs to create the usual RPMs found in
|
||||||
|
RHEL. The `java-1.8.0-openjdk-portable` RPMs can be uninstalled once
|
||||||
|
the desired final RPMs are produced.
|
||||||
|
|
||||||
|
Note that the `java-1.8.0-openjdk.spec` file has a hard requirement on
|
||||||
|
the exact version of java-1.8.0-openjdk-portable to use, so this will
|
||||||
|
need to be modified if the version or rpmrelease values are changed in
|
||||||
|
`java-1.8.0-openjdk-portable.specfile`.
|
||||||
|
|
||||||
|
To reduce the number of RPMs involved, the `fastdebug` and `slowdebug`
|
||||||
|
builds may be disabled using `--without fastdebug` and `--without
|
||||||
|
slowdebug`.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
diff --git a/common/autoconf/configure.ac b/common/autoconf/configure.ac
|
diff --git a/common/autoconf/configure.ac b/common/autoconf/configure.ac
|
||||||
index 151e5a109f8..a8761b500e0 100644
|
index 151e5a109f..a8761b500e 100644
|
||||||
--- a/common/autoconf/configure.ac
|
--- a/common/autoconf/configure.ac
|
||||||
+++ b/common/autoconf/configure.ac
|
+++ b/common/autoconf/configure.ac
|
||||||
@@ -212,6 +212,7 @@ LIB_SETUP_FREETYPE
|
@@ -212,6 +212,7 @@ LIB_SETUP_FREETYPE
|
||||||
@ -11,10 +11,10 @@ index 151e5a109f8..a8761b500e0 100644
|
|||||||
LIB_SETUP_ON_WINDOWS
|
LIB_SETUP_ON_WINDOWS
|
||||||
|
|
||||||
diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh
|
diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh
|
||||||
index 71fabf4dbb3..17f4f50673d 100644
|
index c6144b1968..9ac55d20d3 100644
|
||||||
--- a/common/autoconf/generated-configure.sh
|
--- a/common/autoconf/generated-configure.sh
|
||||||
+++ b/common/autoconf/generated-configure.sh
|
+++ b/common/autoconf/generated-configure.sh
|
||||||
@@ -651,6 +651,9 @@ LLVM_CONFIG
|
@@ -655,6 +655,9 @@ ENABLE_LIBFFI_BUNDLING
|
||||||
LIBFFI_LIBS
|
LIBFFI_LIBS
|
||||||
LIBFFI_CFLAGS
|
LIBFFI_CFLAGS
|
||||||
STATIC_CXX_SETTING
|
STATIC_CXX_SETTING
|
||||||
@ -24,15 +24,15 @@ index 71fabf4dbb3..17f4f50673d 100644
|
|||||||
LIBDL
|
LIBDL
|
||||||
LIBM
|
LIBM
|
||||||
LIBZIP_CAN_USE_MMAP
|
LIBZIP_CAN_USE_MMAP
|
||||||
@@ -1111,6 +1114,7 @@ with_fontconfig
|
@@ -1119,6 +1122,7 @@ with_fontconfig
|
||||||
with_fontconfig_include
|
with_fontconfig_include
|
||||||
with_giflib
|
with_giflib
|
||||||
with_zlib
|
with_zlib
|
||||||
+enable_sysconf_nss
|
+enable_sysconf_nss
|
||||||
with_stdc__lib
|
with_stdc__lib
|
||||||
with_msvcr_dll
|
with_libffi
|
||||||
with_msvcp_dll
|
with_libffi_include
|
||||||
@@ -1218,6 +1222,8 @@ FREETYPE_CFLAGS
|
@@ -1232,6 +1236,8 @@ FREETYPE_CFLAGS
|
||||||
FREETYPE_LIBS
|
FREETYPE_LIBS
|
||||||
ALSA_CFLAGS
|
ALSA_CFLAGS
|
||||||
ALSA_LIBS
|
ALSA_LIBS
|
||||||
@ -41,16 +41,16 @@ index 71fabf4dbb3..17f4f50673d 100644
|
|||||||
LIBFFI_CFLAGS
|
LIBFFI_CFLAGS
|
||||||
LIBFFI_LIBS
|
LIBFFI_LIBS
|
||||||
CCACHE'
|
CCACHE'
|
||||||
@@ -1871,6 +1877,8 @@ Optional Features:
|
@@ -1874,6 +1880,8 @@ Optional Features:
|
||||||
disable bundling of the freetype library with the
|
disable bundling of the freetype library with the
|
||||||
build result [enabled on Windows or when using
|
build result [enabled on Windows or when using
|
||||||
--with-freetype, disabled otherwise]
|
--with-freetype, disabled otherwise]
|
||||||
+ --enable-sysconf-nss build the System Configurator (libsysconf) using the
|
+ --enable-sysconf-nss build the System Configurator (libsysconf) using the
|
||||||
+ system NSS library if available [disabled]
|
+ system NSS library if available [disabled]
|
||||||
--enable-sjavac use sjavac to do fast incremental compiles
|
--enable-libffi-bundling
|
||||||
[disabled]
|
enable bundling of libffi.so to make the built JDK
|
||||||
--disable-precompiled-headers
|
runnable on more systems
|
||||||
@@ -2115,6 +2123,8 @@ Some influential environment variables:
|
@@ -2129,6 +2137,8 @@ Some influential environment variables:
|
||||||
linker flags for FREETYPE, overriding pkg-config
|
linker flags for FREETYPE, overriding pkg-config
|
||||||
ALSA_CFLAGS C compiler flags for ALSA, overriding pkg-config
|
ALSA_CFLAGS C compiler flags for ALSA, overriding pkg-config
|
||||||
ALSA_LIBS linker flags for ALSA, overriding pkg-config
|
ALSA_LIBS linker flags for ALSA, overriding pkg-config
|
||||||
@ -59,60 +59,7 @@ index 71fabf4dbb3..17f4f50673d 100644
|
|||||||
LIBFFI_CFLAGS
|
LIBFFI_CFLAGS
|
||||||
C compiler flags for LIBFFI, overriding pkg-config
|
C compiler flags for LIBFFI, overriding pkg-config
|
||||||
LIBFFI_LIBS linker flags for LIBFFI, overriding pkg-config
|
LIBFFI_LIBS linker flags for LIBFFI, overriding pkg-config
|
||||||
@@ -2879,6 +2889,52 @@ $as_echo "$ac_res" >&6; }
|
@@ -4109,6 +4119,11 @@ fi
|
||||||
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
|
|
||||||
|
|
||||||
} # ac_fn_c_check_header_compile
|
|
||||||
+
|
|
||||||
+# ac_fn_c_try_link LINENO
|
|
||||||
+# -----------------------
|
|
||||||
+# Try to link conftest.$ac_ext, and return whether this succeeded.
|
|
||||||
+ac_fn_c_try_link ()
|
|
||||||
+{
|
|
||||||
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
|
||||||
+ rm -f conftest.$ac_objext conftest$ac_exeext
|
|
||||||
+ if { { ac_try="$ac_link"
|
|
||||||
+case "(($ac_try" in
|
|
||||||
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
|
||||||
+ *) ac_try_echo=$ac_try;;
|
|
||||||
+esac
|
|
||||||
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
|
|
||||||
+$as_echo "$ac_try_echo"; } >&5
|
|
||||||
+ (eval "$ac_link") 2>conftest.err
|
|
||||||
+ ac_status=$?
|
|
||||||
+ if test -s conftest.err; then
|
|
||||||
+ grep -v '^ *+' conftest.err >conftest.er1
|
|
||||||
+ cat conftest.er1 >&5
|
|
||||||
+ mv -f conftest.er1 conftest.err
|
|
||||||
+ fi
|
|
||||||
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
|
||||||
+ test $ac_status = 0; } && {
|
|
||||||
+ test -z "$ac_c_werror_flag" ||
|
|
||||||
+ test ! -s conftest.err
|
|
||||||
+ } && test -s conftest$ac_exeext && {
|
|
||||||
+ test "$cross_compiling" = yes ||
|
|
||||||
+ test -x conftest$ac_exeext
|
|
||||||
+ }; then :
|
|
||||||
+ ac_retval=0
|
|
||||||
+else
|
|
||||||
+ $as_echo "$as_me: failed program was:" >&5
|
|
||||||
+sed 's/^/| /' conftest.$ac_ext >&5
|
|
||||||
+
|
|
||||||
+ ac_retval=1
|
|
||||||
+fi
|
|
||||||
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
|
|
||||||
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
|
|
||||||
+ # interfere with the next link command; also delete a directory that is
|
|
||||||
+ # left behind by Apple's compiler. We do this before executing the actions.
|
|
||||||
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
|
|
||||||
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
|
|
||||||
+ as_fn_set_status $ac_retval
|
|
||||||
+
|
|
||||||
+} # ac_fn_c_try_link
|
|
||||||
cat >config.log <<_ACEOF
|
|
||||||
This file contains any messages produced by compilers while
|
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
|
||||||
@@ -4049,6 +4105,11 @@ fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -124,7 +71,7 @@ index 71fabf4dbb3..17f4f50673d 100644
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
@@ -49304,6 +49365,157 @@ fi
|
@@ -50141,6 +50156,157 @@ fi
|
||||||
LIBS="$save_LIBS"
|
LIBS="$save_LIBS"
|
||||||
|
|
||||||
|
|
||||||
@ -246,7 +193,7 @@ index 71fabf4dbb3..17f4f50673d 100644
|
|||||||
+/* end confdefs.h. */
|
+/* end confdefs.h. */
|
||||||
+#include <nss3/pk11pub.h>
|
+#include <nss3/pk11pub.h>
|
||||||
+int
|
+int
|
||||||
+main ()
|
+main (void)
|
||||||
+{
|
+{
|
||||||
+SECMOD_GetSystemFIPSEnabled()
|
+SECMOD_GetSystemFIPSEnabled()
|
||||||
+ ;
|
+ ;
|
||||||
@ -283,10 +230,10 @@ index 71fabf4dbb3..17f4f50673d 100644
|
|||||||
#
|
#
|
||||||
# statically link libstdc++ before C++ ABI is stablized on Linux unless
|
# statically link libstdc++ before C++ ABI is stablized on Linux unless
|
||||||
diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
|
diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
|
||||||
index 6efae578ea9..0080846255b 100644
|
index 4ed8b4fdd6..caf293be72 100644
|
||||||
--- a/common/autoconf/libraries.m4
|
--- a/common/autoconf/libraries.m4
|
||||||
+++ b/common/autoconf/libraries.m4
|
+++ b/common/autoconf/libraries.m4
|
||||||
@@ -1067,3 +1067,63 @@ AC_DEFUN_ONCE([LIB_SETUP_ON_WINDOWS],
|
@@ -1216,3 +1216,63 @@ AC_DEFUN_ONCE([LIB_SETUP_ON_WINDOWS],
|
||||||
BASIC_DEPRECATED_ARG_WITH([dxsdk-include])
|
BASIC_DEPRECATED_ARG_WITH([dxsdk-include])
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
@ -351,12 +298,12 @@ index 6efae578ea9..0080846255b 100644
|
|||||||
+ AC_SUBST(USE_SYSCONF_NSS)
|
+ AC_SUBST(USE_SYSCONF_NSS)
|
||||||
+])
|
+])
|
||||||
diff --git a/common/autoconf/spec.gmk.in b/common/autoconf/spec.gmk.in
|
diff --git a/common/autoconf/spec.gmk.in b/common/autoconf/spec.gmk.in
|
||||||
index 506cf617087..7241593b1a4 100644
|
index 8da3ac32a0..4d081d1b84 100644
|
||||||
--- a/common/autoconf/spec.gmk.in
|
--- a/common/autoconf/spec.gmk.in
|
||||||
+++ b/common/autoconf/spec.gmk.in
|
+++ b/common/autoconf/spec.gmk.in
|
||||||
@@ -312,6 +312,10 @@ CUPS_CFLAGS:=@CUPS_CFLAGS@
|
@@ -317,6 +317,10 @@ ENABLE_LIBFFI_BUNDLING:=@ENABLE_LIBFFI_BUNDLING@
|
||||||
ALSA_LIBS:=@ALSA_LIBS@
|
LIBFFI_LIB_DIR:=@LIBFFI_LIB_DIR@
|
||||||
ALSA_CFLAGS:=@ALSA_CFLAGS@
|
LIBFFI_LIB_FILE:=@LIBFFI_LIB_FILE@
|
||||||
|
|
||||||
+USE_SYSCONF_NSS:=@USE_SYSCONF_NSS@
|
+USE_SYSCONF_NSS:=@USE_SYSCONF_NSS@
|
||||||
+NSS_LIBS:=@NSS_LIBS@
|
+NSS_LIBS:=@NSS_LIBS@
|
||||||
@ -366,7 +313,7 @@ index 506cf617087..7241593b1a4 100644
|
|||||||
|
|
||||||
# Source file for cacerts
|
# Source file for cacerts
|
||||||
diff --git a/common/bin/compare_exceptions.sh.incl b/common/bin/compare_exceptions.sh.incl
|
diff --git a/common/bin/compare_exceptions.sh.incl b/common/bin/compare_exceptions.sh.incl
|
||||||
index 3b79a526f56..d2a0e39b206 100644
|
index 3b79a526f5..d2a0e39b20 100644
|
||||||
--- a/common/bin/compare_exceptions.sh.incl
|
--- a/common/bin/compare_exceptions.sh.incl
|
||||||
+++ b/common/bin/compare_exceptions.sh.incl
|
+++ b/common/bin/compare_exceptions.sh.incl
|
||||||
@@ -280,6 +280,7 @@ ACCEPTED_SMALL_SIZE_DIFF="
|
@@ -280,6 +280,7 @@ ACCEPTED_SMALL_SIZE_DIFF="
|
||||||
@ -402,7 +349,7 @@ index 3b79a526f56..d2a0e39b206 100644
|
|||||||
./jre/lib/sparcv9/libunpack.so
|
./jre/lib/sparcv9/libunpack.so
|
||||||
./jre/lib/sparcv9/libverify.so
|
./jre/lib/sparcv9/libverify.so
|
||||||
diff --git a/common/nb_native/nbproject/configurations.xml b/common/nb_native/nbproject/configurations.xml
|
diff --git a/common/nb_native/nbproject/configurations.xml b/common/nb_native/nbproject/configurations.xml
|
||||||
index d2beed0b93a..3b6aef98d9a 100644
|
index d2beed0b93..3b6aef98d9 100644
|
||||||
--- a/common/nb_native/nbproject/configurations.xml
|
--- a/common/nb_native/nbproject/configurations.xml
|
||||||
+++ b/common/nb_native/nbproject/configurations.xml
|
+++ b/common/nb_native/nbproject/configurations.xml
|
||||||
@@ -53,6 +53,9 @@
|
@@ -53,6 +53,9 @@
|
||||||
@ -428,10 +375,10 @@ index d2beed0b93a..3b6aef98d9a 100644
|
|||||||
ex="false"
|
ex="false"
|
||||||
tool="0"
|
tool="0"
|
||||||
diff --git a/jdk/make/lib/SecurityLibraries.gmk b/jdk/make/lib/SecurityLibraries.gmk
|
diff --git a/jdk/make/lib/SecurityLibraries.gmk b/jdk/make/lib/SecurityLibraries.gmk
|
||||||
index b0b85d80448..47a41d7518d 100644
|
index 84abb7e76b..cb4531b880 100644
|
||||||
--- a/jdk/make/lib/SecurityLibraries.gmk
|
--- a/jdk/make/lib/SecurityLibraries.gmk
|
||||||
+++ b/jdk/make/lib/SecurityLibraries.gmk
|
+++ b/jdk/make/lib/SecurityLibraries.gmk
|
||||||
@@ -289,3 +289,34 @@ ifeq ($(OPENJDK_TARGET_OS), solaris)
|
@@ -303,3 +303,34 @@ ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||||
|
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@ -468,7 +415,7 @@ index b0b85d80448..47a41d7518d 100644
|
|||||||
+
|
+
|
||||||
diff --git a/jdk/make/mapfiles/libsystemconf/mapfile-vers b/jdk/make/mapfiles/libsystemconf/mapfile-vers
|
diff --git a/jdk/make/mapfiles/libsystemconf/mapfile-vers b/jdk/make/mapfiles/libsystemconf/mapfile-vers
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 00000000000..a65ceb3b78c
|
index 0000000000..a65ceb3b78
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/jdk/make/mapfiles/libsystemconf/mapfile-vers
|
+++ b/jdk/make/mapfiles/libsystemconf/mapfile-vers
|
||||||
@@ -0,0 +1,35 @@
|
@@ -0,0 +1,35 @@
|
||||||
@ -508,7 +455,7 @@ index 00000000000..a65ceb3b78c
|
|||||||
+ *;
|
+ *;
|
||||||
+};
|
+};
|
||||||
diff --git a/jdk/src/share/classes/java/security/Security.java b/jdk/src/share/classes/java/security/Security.java
|
diff --git a/jdk/src/share/classes/java/security/Security.java b/jdk/src/share/classes/java/security/Security.java
|
||||||
index 0db09da7061..813b907db3e 100644
|
index 0db09da706..813b907db3 100644
|
||||||
--- a/jdk/src/share/classes/java/security/Security.java
|
--- a/jdk/src/share/classes/java/security/Security.java
|
||||||
+++ b/jdk/src/share/classes/java/security/Security.java
|
+++ b/jdk/src/share/classes/java/security/Security.java
|
||||||
@@ -30,6 +30,8 @@ import java.util.*;
|
@@ -30,6 +30,8 @@ import java.util.*;
|
||||||
@ -640,7 +587,7 @@ index 0db09da7061..813b907db3e 100644
|
|||||||
/*
|
/*
|
||||||
diff --git a/jdk/src/share/classes/java/security/SystemConfigurator.java b/jdk/src/share/classes/java/security/SystemConfigurator.java
|
diff --git a/jdk/src/share/classes/java/security/SystemConfigurator.java b/jdk/src/share/classes/java/security/SystemConfigurator.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 00000000000..a24a0445db2
|
index 0000000000..a24a0445db
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/jdk/src/share/classes/java/security/SystemConfigurator.java
|
+++ b/jdk/src/share/classes/java/security/SystemConfigurator.java
|
||||||
@@ -0,0 +1,248 @@
|
@@ -0,0 +1,248 @@
|
||||||
@ -894,7 +841,7 @@ index 00000000000..a24a0445db2
|
|||||||
+}
|
+}
|
||||||
diff --git a/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java b/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
|
diff --git a/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java b/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 00000000000..5c30a8b29c7
|
index 0000000000..5c30a8b29c
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
|
+++ b/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
|
||||||
@@ -0,0 +1,31 @@
|
@@ -0,0 +1,31 @@
|
||||||
@ -930,7 +877,7 @@ index 00000000000..5c30a8b29c7
|
|||||||
+ boolean isPlainKeySupportEnabled();
|
+ boolean isPlainKeySupportEnabled();
|
||||||
+}
|
+}
|
||||||
diff --git a/jdk/src/share/classes/sun/misc/SharedSecrets.java b/jdk/src/share/classes/sun/misc/SharedSecrets.java
|
diff --git a/jdk/src/share/classes/sun/misc/SharedSecrets.java b/jdk/src/share/classes/sun/misc/SharedSecrets.java
|
||||||
index f065a2c685d..0dafe6f59cf 100644
|
index f065a2c685..0dafe6f59c 100644
|
||||||
--- a/jdk/src/share/classes/sun/misc/SharedSecrets.java
|
--- a/jdk/src/share/classes/sun/misc/SharedSecrets.java
|
||||||
+++ b/jdk/src/share/classes/sun/misc/SharedSecrets.java
|
+++ b/jdk/src/share/classes/sun/misc/SharedSecrets.java
|
||||||
@@ -31,6 +31,7 @@ import java.io.Console;
|
@@ -31,6 +31,7 @@ import java.io.Console;
|
||||||
@ -967,7 +914,7 @@ index f065a2c685d..0dafe6f59cf 100644
|
|||||||
}
|
}
|
||||||
diff --git a/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java b/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
|
diff --git a/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java b/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 00000000000..14d19450390
|
index 0000000000..14d1945039
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
|
+++ b/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
|
||||||
@@ -0,0 +1,290 @@
|
@@ -0,0 +1,290 @@
|
||||||
@ -1262,7 +1209,7 @@ index 00000000000..14d19450390
|
|||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java b/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
|
diff --git a/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java b/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
|
||||||
index fedcd7743ef..f9d70863bd1 100644
|
index fedcd7743e..f9d70863bd 100644
|
||||||
--- a/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
|
--- a/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
|
||||||
+++ b/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
|
+++ b/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
|
||||||
@@ -26,6 +26,9 @@
|
@@ -26,6 +26,9 @@
|
||||||
@ -1366,7 +1313,7 @@ index fedcd7743ef..f9d70863bd1 100644
|
|||||||
if (config.getHandleStartupErrors() == Config.ERR_IGNORE_ALL) {
|
if (config.getHandleStartupErrors() == Config.ERR_IGNORE_ALL) {
|
||||||
throw new UnsupportedOperationException
|
throw new UnsupportedOperationException
|
||||||
diff --git a/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java b/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
|
diff --git a/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java b/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
|
||||||
index 2e42d1d9fb0..1b7eed1c656 100644
|
index 2e42d1d9fb..1b7eed1c65 100644
|
||||||
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
|
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
|
||||||
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
|
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
|
||||||
@@ -49,6 +49,7 @@ package sun.security.pkcs11.wrapper;
|
@@ -49,6 +49,7 @@ package sun.security.pkcs11.wrapper;
|
||||||
@ -1493,7 +1440,7 @@ index 2e42d1d9fb0..1b7eed1c656 100644
|
|||||||
+}
|
+}
|
||||||
}
|
}
|
||||||
diff --git a/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java b/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
|
diff --git a/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java b/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
|
||||||
index ffee2c1603b..98119479823 100644
|
index ffee2c1603..9811947982 100644
|
||||||
--- a/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
|
--- a/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
|
||||||
+++ b/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
|
+++ b/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
|
||||||
@@ -33,8 +33,13 @@ import java.security.KeyStore.*;
|
@@ -33,8 +33,13 @@ import java.security.KeyStore.*;
|
||||||
@ -1532,7 +1479,7 @@ index ffee2c1603b..98119479823 100644
|
|||||||
"FIPS mode: KeyStore must be " +
|
"FIPS mode: KeyStore must be " +
|
||||||
"from provider " + SunJSSE.cryptoProvider.getName());
|
"from provider " + SunJSSE.cryptoProvider.getName());
|
||||||
diff --git a/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java b/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
|
diff --git a/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java b/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
|
||||||
index 820e10164fc..6fe2c29389f 100644
|
index 820e10164f..6fe2c29389 100644
|
||||||
--- a/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
|
--- a/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
|
||||||
+++ b/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
|
+++ b/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
|
||||||
@@ -31,6 +31,7 @@ import java.security.*;
|
@@ -31,6 +31,7 @@ import java.security.*;
|
||||||
@ -1630,7 +1577,7 @@ index 820e10164fc..6fe2c29389f 100644
|
|||||||
ProtocolVersion.TLS13,
|
ProtocolVersion.TLS13,
|
||||||
ProtocolVersion.TLS12,
|
ProtocolVersion.TLS12,
|
||||||
diff --git a/jdk/src/share/classes/sun/security/ssl/SunJSSE.java b/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
|
diff --git a/jdk/src/share/classes/sun/security/ssl/SunJSSE.java b/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
|
||||||
index 2845dc37938..52337a7b6cf 100644
|
index 2845dc3793..52337a7b6c 100644
|
||||||
--- a/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
|
--- a/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
|
||||||
+++ b/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
|
+++ b/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
|
||||||
@@ -30,6 +30,8 @@ import static sun.security.util.SecurityConstants.PROVIDER_VER;
|
@@ -30,6 +30,8 @@ import static sun.security.util.SecurityConstants.PROVIDER_VER;
|
||||||
@ -1659,7 +1606,7 @@ index 2845dc37938..52337a7b6cf 100644
|
|||||||
"sun.security.ssl.SSLContextImpl$TLSContext");
|
"sun.security.ssl.SSLContextImpl$TLSContext");
|
||||||
if (isfips == false) {
|
if (isfips == false) {
|
||||||
diff --git a/jdk/src/share/lib/security/java.security-aix b/jdk/src/share/lib/security/java.security-aix
|
diff --git a/jdk/src/share/lib/security/java.security-aix b/jdk/src/share/lib/security/java.security-aix
|
||||||
index 7a93d4e6b59..681a24b905d 100644
|
index 37bca2df46..730212b601 100644
|
||||||
--- a/jdk/src/share/lib/security/java.security-aix
|
--- a/jdk/src/share/lib/security/java.security-aix
|
||||||
+++ b/jdk/src/share/lib/security/java.security-aix
|
+++ b/jdk/src/share/lib/security/java.security-aix
|
||||||
@@ -287,6 +287,13 @@ package.definition=sun.,\
|
@@ -287,6 +287,13 @@ package.definition=sun.,\
|
||||||
@ -1677,7 +1624,7 @@ index 7a93d4e6b59..681a24b905d 100644
|
|||||||
# Determines the default key and trust manager factory algorithms for
|
# Determines the default key and trust manager factory algorithms for
|
||||||
# the javax.net.ssl package.
|
# the javax.net.ssl package.
|
||||||
diff --git a/jdk/src/share/lib/security/java.security-linux b/jdk/src/share/lib/security/java.security-linux
|
diff --git a/jdk/src/share/lib/security/java.security-linux b/jdk/src/share/lib/security/java.security-linux
|
||||||
index 145a84f94cf..789c19a8cba 100644
|
index 9bb8e992fb..a1b3943b11 100644
|
||||||
--- a/jdk/src/share/lib/security/java.security-linux
|
--- a/jdk/src/share/lib/security/java.security-linux
|
||||||
+++ b/jdk/src/share/lib/security/java.security-linux
|
+++ b/jdk/src/share/lib/security/java.security-linux
|
||||||
@@ -75,6 +75,14 @@ security.provider.7=com.sun.security.sasl.Provider
|
@@ -75,6 +75,14 @@ security.provider.7=com.sun.security.sasl.Provider
|
||||||
@ -1722,7 +1669,7 @@ index 145a84f94cf..789c19a8cba 100644
|
|||||||
# Determines the default key and trust manager factory algorithms for
|
# Determines the default key and trust manager factory algorithms for
|
||||||
# the javax.net.ssl package.
|
# the javax.net.ssl package.
|
||||||
diff --git a/jdk/src/share/lib/security/java.security-macosx b/jdk/src/share/lib/security/java.security-macosx
|
diff --git a/jdk/src/share/lib/security/java.security-macosx b/jdk/src/share/lib/security/java.security-macosx
|
||||||
index 35fa140d7a5..d4da666af3b 100644
|
index 7a765742e6..5abd95fff8 100644
|
||||||
--- a/jdk/src/share/lib/security/java.security-macosx
|
--- a/jdk/src/share/lib/security/java.security-macosx
|
||||||
+++ b/jdk/src/share/lib/security/java.security-macosx
|
+++ b/jdk/src/share/lib/security/java.security-macosx
|
||||||
@@ -290,6 +290,13 @@ package.definition=sun.,\
|
@@ -290,6 +290,13 @@ package.definition=sun.,\
|
||||||
@ -1740,7 +1687,7 @@ index 35fa140d7a5..d4da666af3b 100644
|
|||||||
# Determines the default key and trust manager factory algorithms for
|
# Determines the default key and trust manager factory algorithms for
|
||||||
# the javax.net.ssl package.
|
# the javax.net.ssl package.
|
||||||
diff --git a/jdk/src/share/lib/security/java.security-solaris b/jdk/src/share/lib/security/java.security-solaris
|
diff --git a/jdk/src/share/lib/security/java.security-solaris b/jdk/src/share/lib/security/java.security-solaris
|
||||||
index f79ba37ddb9..300132384a1 100644
|
index f0100336f5..2f4c6c2fd6 100644
|
||||||
--- a/jdk/src/share/lib/security/java.security-solaris
|
--- a/jdk/src/share/lib/security/java.security-solaris
|
||||||
+++ b/jdk/src/share/lib/security/java.security-solaris
|
+++ b/jdk/src/share/lib/security/java.security-solaris
|
||||||
@@ -288,6 +288,13 @@ package.definition=sun.,\
|
@@ -288,6 +288,13 @@ package.definition=sun.,\
|
||||||
@ -1758,7 +1705,7 @@ index f79ba37ddb9..300132384a1 100644
|
|||||||
# Determines the default key and trust manager factory algorithms for
|
# Determines the default key and trust manager factory algorithms for
|
||||||
# the javax.net.ssl package.
|
# the javax.net.ssl package.
|
||||||
diff --git a/jdk/src/share/lib/security/java.security-windows b/jdk/src/share/lib/security/java.security-windows
|
diff --git a/jdk/src/share/lib/security/java.security-windows b/jdk/src/share/lib/security/java.security-windows
|
||||||
index d70503ce95f..64db5a5cd1e 100644
|
index e51bdece13..b4a509753b 100644
|
||||||
--- a/jdk/src/share/lib/security/java.security-windows
|
--- a/jdk/src/share/lib/security/java.security-windows
|
||||||
+++ b/jdk/src/share/lib/security/java.security-windows
|
+++ b/jdk/src/share/lib/security/java.security-windows
|
||||||
@@ -290,6 +290,13 @@ package.definition=sun.,\
|
@@ -290,6 +290,13 @@ package.definition=sun.,\
|
||||||
@ -1777,7 +1724,7 @@ index d70503ce95f..64db5a5cd1e 100644
|
|||||||
# the javax.net.ssl package.
|
# the javax.net.ssl package.
|
||||||
diff --git a/jdk/src/solaris/native/java/security/systemconf.c b/jdk/src/solaris/native/java/security/systemconf.c
|
diff --git a/jdk/src/solaris/native/java/security/systemconf.c b/jdk/src/solaris/native/java/security/systemconf.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 00000000000..8dcb7d9073f
|
index 0000000000..8dcb7d9073
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/jdk/src/solaris/native/java/security/systemconf.c
|
+++ b/jdk/src/solaris/native/java/security/systemconf.c
|
||||||
@@ -0,0 +1,224 @@
|
@@ -0,0 +1,224 @@
|
||||||
|
2607
SOURCES/java-1.8.0-openjdk-portable.specfile
Normal file
2607
SOURCES/java-1.8.0-openjdk-portable.specfile
Normal file
File diff suppressed because it is too large
Load Diff
51
SOURCES/jdk8141590-bundle_libffi-followup.patch
Normal file
51
SOURCES/jdk8141590-bundle_libffi-followup.patch
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
commit 928f3bf4a3017931ecc7012688e62d8a03264e61
|
||||||
|
Author: Andrew Hughes <gnu.andrew@redhat.com>
|
||||||
|
AuthorDate: Thu Jan 16 17:40:36 2025 +0000
|
||||||
|
Commit: Andrew Hughes <gnu.andrew@redhat.com>
|
||||||
|
CommitDate: Thu Jan 16 22:50:24 2025 +0000
|
||||||
|
|
||||||
|
Search /usr/lib64 on architectures other than x86_64
|
||||||
|
|
||||||
|
diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh
|
||||||
|
index 587b4c2657..5aeebe49a3 100644
|
||||||
|
--- a/common/autoconf/generated-configure.sh
|
||||||
|
+++ b/common/autoconf/generated-configure.sh
|
||||||
|
@@ -4493,7 +4493,7 @@ VS_TOOLSET_SUPPORTED_2022=true
|
||||||
|
#CUSTOM_AUTOCONF_INCLUDE
|
||||||
|
|
||||||
|
# Do not change or remove the following line, it is needed for consistency checks:
|
||||||
|
-DATE_WHEN_GENERATED=1737049912
|
||||||
|
+DATE_WHEN_GENERATED=1737067804
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
#
|
||||||
|
@@ -50590,9 +50590,11 @@ $as_echo_n "checking for libffi lib file location... " >&6; }
|
||||||
|
as_fn_error $? "Could not locate libffi.so.? for bundling" "$LINENO" 5
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
- # Fallback on the default /usr/lib dir
|
||||||
|
+ # Fallback on the default /usr/lib and /usr/lib64 dirs
|
||||||
|
if test -e ${SYSROOT}/usr/lib/libffi.so.? ; then
|
||||||
|
LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/libffi.so.?"
|
||||||
|
+ elif test -e ${SYSROOT}/usr/lib64/libffi.so.? ; then
|
||||||
|
+ LIBFFI_LIB_FILE="${SYSROOT}/usr/lib64/libffi.so.?"
|
||||||
|
else
|
||||||
|
as_fn_error $? "Could not locate libffi.so.? for bundling" "$LINENO" 5
|
||||||
|
fi
|
||||||
|
diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
|
||||||
|
index 4ed8b4fdd6..6ab6dbc075 100644
|
||||||
|
--- a/common/autoconf/libraries.m4
|
||||||
|
+++ b/common/autoconf/libraries.m4
|
||||||
|
@@ -1121,9 +1121,11 @@ AC_DEFUN_ONCE([LIB_SETUP_STATIC_LINK_LIBSTDCPP],
|
||||||
|
AC_MSG_ERROR([Could not locate libffi.so.? for bundling])
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
- # Fallback on the default /usr/lib dir
|
||||||
|
+ # Fallback on the default /usr/lib and /usr/lib64 dirs
|
||||||
|
if test -e ${SYSROOT}/usr/lib/libffi.so.? ; then
|
||||||
|
LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/libffi.so.?"
|
||||||
|
+ elif test -e ${SYSROOT}/usr/lib64/libffi.so.? ; then
|
||||||
|
+ LIBFFI_LIB_FILE="${SYSROOT}/usr/lib64/libffi.so.?"
|
||||||
|
else
|
||||||
|
AC_MSG_ERROR([Could not locate libffi.so.? for bundling])
|
||||||
|
fi
|
763
SOURCES/jdk8141590-bundle_libffi.patch
Normal file
763
SOURCES/jdk8141590-bundle_libffi.patch
Normal file
@ -0,0 +1,763 @@
|
|||||||
|
diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh
|
||||||
|
index ad3f7f232e..587b4c2657 100644
|
||||||
|
--- a/common/autoconf/generated-configure.sh
|
||||||
|
+++ b/common/autoconf/generated-configure.sh
|
||||||
|
@@ -649,6 +649,9 @@ LLVM_LIBS
|
||||||
|
LLVM_LDFLAGS
|
||||||
|
LLVM_CFLAGS
|
||||||
|
LLVM_CONFIG
|
||||||
|
+LIBFFI_LIB_FILE
|
||||||
|
+LIBFFI_LIB_DIR
|
||||||
|
+ENABLE_LIBFFI_BUNDLING
|
||||||
|
LIBFFI_LIBS
|
||||||
|
LIBFFI_CFLAGS
|
||||||
|
STATIC_CXX_SETTING
|
||||||
|
@@ -1117,6 +1120,10 @@ with_fontconfig_include
|
||||||
|
with_giflib
|
||||||
|
with_zlib
|
||||||
|
with_stdc__lib
|
||||||
|
+with_libffi
|
||||||
|
+with_libffi_include
|
||||||
|
+with_libffi_lib
|
||||||
|
+enable_libffi_bundling
|
||||||
|
with_msvcr_dll
|
||||||
|
with_msvcp_dll
|
||||||
|
with_vcruntime_1_dll
|
||||||
|
@@ -1867,6 +1874,9 @@ Optional Features:
|
||||||
|
disable bundling of the freetype library with the
|
||||||
|
build result [enabled on Windows or when using
|
||||||
|
--with-freetype, disabled otherwise]
|
||||||
|
+ --enable-libffi-bundling
|
||||||
|
+ enable bundling of libffi.so to make the built JDK
|
||||||
|
+ runnable on more systems
|
||||||
|
--enable-sjavac use sjavac to do fast incremental compiles
|
||||||
|
[disabled]
|
||||||
|
--disable-precompiled-headers
|
||||||
|
@@ -1996,6 +2006,11 @@ Optional Packages:
|
||||||
|
force linking of the C++ runtime on Linux to either
|
||||||
|
static or dynamic, default is static with dynamic as
|
||||||
|
fallback
|
||||||
|
+ --with-libffi specify prefix directory for the libffi package
|
||||||
|
+ (expecting the libraries under PATH/lib and the
|
||||||
|
+ headers under PATH/include)
|
||||||
|
+ --with-libffi-include specify directory for the libffi include files
|
||||||
|
+ --with-libffi-lib specify directory for the libffi library
|
||||||
|
--with-msvcr-dll path to microsoft C runtime dll (msvcr*.dll)
|
||||||
|
(Windows only) [probed]
|
||||||
|
--with-msvcp-dll path to microsoft C++ runtime dll (msvcp*.dll)
|
||||||
|
@@ -2878,6 +2893,52 @@ $as_echo "$ac_res" >&6; }
|
||||||
|
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
|
||||||
|
|
||||||
|
} # ac_fn_c_check_header_compile
|
||||||
|
+
|
||||||
|
+# ac_fn_c_try_link LINENO
|
||||||
|
+# -----------------------
|
||||||
|
+# Try to link conftest.$ac_ext, and return whether this succeeded.
|
||||||
|
+ac_fn_c_try_link ()
|
||||||
|
+{
|
||||||
|
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||||||
|
+ rm -f conftest.$ac_objext conftest$ac_exeext
|
||||||
|
+ if { { ac_try="$ac_link"
|
||||||
|
+case "(($ac_try" in
|
||||||
|
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||||
|
+ *) ac_try_echo=$ac_try;;
|
||||||
|
+esac
|
||||||
|
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
|
||||||
|
+$as_echo "$ac_try_echo"; } >&5
|
||||||
|
+ (eval "$ac_link") 2>conftest.err
|
||||||
|
+ ac_status=$?
|
||||||
|
+ if test -s conftest.err; then
|
||||||
|
+ grep -v '^ *+' conftest.err >conftest.er1
|
||||||
|
+ cat conftest.er1 >&5
|
||||||
|
+ mv -f conftest.er1 conftest.err
|
||||||
|
+ fi
|
||||||
|
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||||
|
+ test $ac_status = 0; } && {
|
||||||
|
+ test -z "$ac_c_werror_flag" ||
|
||||||
|
+ test ! -s conftest.err
|
||||||
|
+ } && test -s conftest$ac_exeext && {
|
||||||
|
+ test "$cross_compiling" = yes ||
|
||||||
|
+ test -x conftest$ac_exeext
|
||||||
|
+ }; then :
|
||||||
|
+ ac_retval=0
|
||||||
|
+else
|
||||||
|
+ $as_echo "$as_me: failed program was:" >&5
|
||||||
|
+sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
+
|
||||||
|
+ ac_retval=1
|
||||||
|
+fi
|
||||||
|
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
|
||||||
|
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
|
||||||
|
+ # interfere with the next link command; also delete a directory that is
|
||||||
|
+ # left behind by Apple's compiler. We do this before executing the actions.
|
||||||
|
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
|
||||||
|
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
|
||||||
|
+ as_fn_set_status $ac_retval
|
||||||
|
+
|
||||||
|
+} # ac_fn_c_try_link
|
||||||
|
cat >config.log <<_ACEOF
|
||||||
|
This file contains any messages produced by compilers while
|
||||||
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
@@ -4432,7 +4493,7 @@ VS_TOOLSET_SUPPORTED_2022=true
|
||||||
|
#CUSTOM_AUTOCONF_INCLUDE
|
||||||
|
|
||||||
|
# Do not change or remove the following line, it is needed for consistency checks:
|
||||||
|
-DATE_WHEN_GENERATED=1716396030
|
||||||
|
+DATE_WHEN_GENERATED=1737049912
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
#
|
||||||
|
@@ -50215,8 +50276,70 @@ $as_echo "static" >&6; }
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
+
|
||||||
|
+# Check whether --with-libffi was given.
|
||||||
|
+if test "${with_libffi+set}" = set; then :
|
||||||
|
+ withval=$with_libffi;
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+# Check whether --with-libffi-include was given.
|
||||||
|
+if test "${with_libffi_include+set}" = set; then :
|
||||||
|
+ withval=$with_libffi_include;
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+# Check whether --with-libffi-lib was given.
|
||||||
|
+if test "${with_libffi_lib+set}" = set; then :
|
||||||
|
+ withval=$with_libffi_lib;
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+ # Check whether --enable-libffi-bundling was given.
|
||||||
|
+if test "${enable_libffi_bundling+set}" = set; then :
|
||||||
|
+ enableval=$enable_libffi_bundling;
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+ # Check if ffi is needed
|
||||||
|
if test "x$JVM_VARIANT_ZERO" = xtrue || test "x$JVM_VARIANT_ZEROSHARK" = xtrue; then
|
||||||
|
- # Figure out LIBFFI_CFLAGS and LIBFFI_LIBS
|
||||||
|
+ NEEDS_LIB_FFI=true
|
||||||
|
+ else
|
||||||
|
+ NEEDS_LIB_FFI=false
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ if test "x$NEEDS_LIB_FFI" = xfalse; then
|
||||||
|
+ if test "x${with_libffi}" != x || test "x${with_libffi_include}" != x || test "x${with_libffi_lib}" != x; then
|
||||||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libffi not used, so --with-libffi is ignored" >&5
|
||||||
|
+$as_echo "$as_me: WARNING: libffi not used, so --with-libffi is ignored" >&2;}
|
||||||
|
+ fi
|
||||||
|
+ LIBFFI_CFLAGS=
|
||||||
|
+ LIBFFI_LIBS=
|
||||||
|
+ else
|
||||||
|
+ LIBFFI_FOUND=no
|
||||||
|
+
|
||||||
|
+ if test "x${with_libffi}" = xno || test "x${with_libffi_include}" = xno || test "x${with_libffi_lib}" = xno; then
|
||||||
|
+ as_fn_error $? "It is not possible to disable the use of libffi. Remove the --without-libffi option." "$LINENO" 5
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ if test "x${with_libffi}" != x; then
|
||||||
|
+ LIBFFI_LIB_PATH="${with_libffi}/lib"
|
||||||
|
+ LIBFFI_LIBS="-L${with_libffi}/lib -lffi"
|
||||||
|
+ LIBFFI_CFLAGS="-I${with_libffi}/include"
|
||||||
|
+ LIBFFI_FOUND=yes
|
||||||
|
+ fi
|
||||||
|
+ if test "x${with_libffi_include}" != x; then
|
||||||
|
+ LIBFFI_CFLAGS="-I${with_libffi_include}"
|
||||||
|
+ LIBFFI_FOUND=yes
|
||||||
|
+ fi
|
||||||
|
+ if test "x${with_libffi_lib}" != x; then
|
||||||
|
+ LIBFFI_LIB_PATH="${with_libffi_lib}"
|
||||||
|
+ LIBFFI_LIBS="-L${with_libffi_lib} -lffi"
|
||||||
|
+ LIBFFI_FOUND=yes
|
||||||
|
+ fi
|
||||||
|
+ # Do not try pkg-config if we have a sysroot set.
|
||||||
|
+ if test "x$SYSROOT" = x; then
|
||||||
|
+ if test "x$LIBFFI_FOUND" = xno; then
|
||||||
|
+ # Figure out LIBFFI_CFLAGS and LIBFFI_LIBS
|
||||||
|
|
||||||
|
pkg_failed=no
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBFFI" >&5
|
||||||
|
@@ -50272,40 +50395,224 @@ fi
|
||||||
|
# Put the nasty error message in config.log where it belongs
|
||||||
|
echo "$LIBFFI_PKG_ERRORS" >&5
|
||||||
|
|
||||||
|
- as_fn_error $? "Package requirements (libffi) were not met:
|
||||||
|
-
|
||||||
|
-$LIBFFI_PKG_ERRORS
|
||||||
|
-
|
||||||
|
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
|
||||||
|
-installed software in a non-standard prefix.
|
||||||
|
-
|
||||||
|
-Alternatively, you may set the environment variables LIBFFI_CFLAGS
|
||||||
|
-and LIBFFI_LIBS to avoid the need to call pkg-config.
|
||||||
|
-See the pkg-config man page for more details.
|
||||||
|
-" "$LINENO" 5
|
||||||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||||
|
+$as_echo "no" >&6; }
|
||||||
|
+ LIBFFI_FOUND=no
|
||||||
|
elif test $pkg_failed = untried; then
|
||||||
|
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||||
|
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||||
|
-as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
|
||||||
|
-is in your PATH or set the PKG_CONFIG environment variable to the full
|
||||||
|
-path to pkg-config.
|
||||||
|
-
|
||||||
|
-Alternatively, you may set the environment variables LIBFFI_CFLAGS
|
||||||
|
-and LIBFFI_LIBS to avoid the need to call pkg-config.
|
||||||
|
-See the pkg-config man page for more details.
|
||||||
|
-
|
||||||
|
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
|
||||||
|
-See \`config.log' for more details" "$LINENO" 5; }
|
||||||
|
+ LIBFFI_FOUND=no
|
||||||
|
else
|
||||||
|
LIBFFI_CFLAGS=$pkg_cv_LIBFFI_CFLAGS
|
||||||
|
LIBFFI_LIBS=$pkg_cv_LIBFFI_LIBS
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||||
|
$as_echo "yes" >&6; }
|
||||||
|
- :
|
||||||
|
+ LIBFFI_FOUND=yes
|
||||||
|
+fi
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+ if test "x$LIBFFI_FOUND" = xno; then
|
||||||
|
+ for ac_header in ffi.h
|
||||||
|
+do :
|
||||||
|
+ ac_fn_cxx_check_header_mongrel "$LINENO" "ffi.h" "ac_cv_header_ffi_h" "$ac_includes_default"
|
||||||
|
+if test "x$ac_cv_header_ffi_h" = xyes; then :
|
||||||
|
+ cat >>confdefs.h <<_ACEOF
|
||||||
|
+#define HAVE_FFI_H 1
|
||||||
|
+_ACEOF
|
||||||
|
+
|
||||||
|
+ LIBFFI_FOUND=yes
|
||||||
|
+ LIBFFI_CFLAGS=
|
||||||
|
+ LIBFFI_LIBS=-lffi
|
||||||
|
+
|
||||||
|
+else
|
||||||
|
+ LIBFFI_FOUND=no
|
||||||
|
+
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+done
|
||||||
|
+
|
||||||
|
+ fi
|
||||||
|
+ if test "x$LIBFFI_FOUND" = xno; then
|
||||||
|
+
|
||||||
|
+ # Print a helpful message on how to acquire the necessary build dependency.
|
||||||
|
+ # ffi is the help tag: freetype, cups, pulse, alsa etc
|
||||||
|
+ MISSING_DEPENDENCY=ffi
|
||||||
|
+
|
||||||
|
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
|
||||||
|
+ cygwin_help $MISSING_DEPENDENCY
|
||||||
|
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
||||||
|
+ msys_help $MISSING_DEPENDENCY
|
||||||
|
+ else
|
||||||
|
+ PKGHANDLER_COMMAND=
|
||||||
|
+
|
||||||
|
+ case $PKGHANDLER in
|
||||||
|
+ apt-get)
|
||||||
|
+ apt_help $MISSING_DEPENDENCY ;;
|
||||||
|
+ yum)
|
||||||
|
+ yum_help $MISSING_DEPENDENCY ;;
|
||||||
|
+ port)
|
||||||
|
+ port_help $MISSING_DEPENDENCY ;;
|
||||||
|
+ pkgutil)
|
||||||
|
+ pkgutil_help $MISSING_DEPENDENCY ;;
|
||||||
|
+ pkgadd)
|
||||||
|
+ pkgadd_help $MISSING_DEPENDENCY ;;
|
||||||
|
+ esac
|
||||||
|
+
|
||||||
|
+ if test "x$PKGHANDLER_COMMAND" != x; then
|
||||||
|
+ HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ as_fn_error $? "Could not find libffi! $HELP_MSG" "$LINENO" 5
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libffi works" >&5
|
||||||
|
+$as_echo_n "checking if libffi works... " >&6; }
|
||||||
|
+ ac_ext=c
|
||||||
|
+ac_cpp='$CPP $CPPFLAGS'
|
||||||
|
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
|
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||||
|
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||||
|
+
|
||||||
|
+ OLD_CFLAGS="$CFLAGS"
|
||||||
|
+ CFLAGS="$CFLAGS $LIBFFI_CFLAGS"
|
||||||
|
+ OLD_LIBS="$LIBS"
|
||||||
|
+ LIBS="$LIBS $LIBFFI_LIBS"
|
||||||
|
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
+/* end confdefs.h. */
|
||||||
|
+#include <ffi.h>
|
||||||
|
+int
|
||||||
|
+main (void)
|
||||||
|
+{
|
||||||
|
+
|
||||||
|
+ ffi_call(NULL, NULL, NULL, NULL);
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
+ ;
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+_ACEOF
|
||||||
|
+if ac_fn_c_try_link "$LINENO"; then :
|
||||||
|
+ LIBFFI_WORKS=yes
|
||||||
|
+else
|
||||||
|
+ LIBFFI_WORKS=no
|
||||||
|
+
|
||||||
|
fi
|
||||||
|
+rm -f core conftest.err conftest.$ac_objext \
|
||||||
|
+ conftest$ac_exeext conftest.$ac_ext
|
||||||
|
+ CFLAGS="$OLD_CFLAGS"
|
||||||
|
+ LIBS="$OLD_LIBS"
|
||||||
|
+ ac_ext=cpp
|
||||||
|
+ac_cpp='$CXXCPP $CPPFLAGS'
|
||||||
|
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
|
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||||
|
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||||||
|
+
|
||||||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBFFI_WORKS" >&5
|
||||||
|
+$as_echo "$LIBFFI_WORKS" >&6; }
|
||||||
|
|
||||||
|
+ if test "x$LIBFFI_WORKS" = xno; then
|
||||||
|
+
|
||||||
|
+ # Print a helpful message on how to acquire the necessary build dependency.
|
||||||
|
+ # ffi is the help tag: freetype, cups, pulse, alsa etc
|
||||||
|
+ MISSING_DEPENDENCY=ffi
|
||||||
|
+
|
||||||
|
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
|
||||||
|
+ cygwin_help $MISSING_DEPENDENCY
|
||||||
|
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
||||||
|
+ msys_help $MISSING_DEPENDENCY
|
||||||
|
+ else
|
||||||
|
+ PKGHANDLER_COMMAND=
|
||||||
|
+
|
||||||
|
+ case $PKGHANDLER in
|
||||||
|
+ apt-get)
|
||||||
|
+ apt_help $MISSING_DEPENDENCY ;;
|
||||||
|
+ yum)
|
||||||
|
+ yum_help $MISSING_DEPENDENCY ;;
|
||||||
|
+ port)
|
||||||
|
+ port_help $MISSING_DEPENDENCY ;;
|
||||||
|
+ pkgutil)
|
||||||
|
+ pkgutil_help $MISSING_DEPENDENCY ;;
|
||||||
|
+ pkgadd)
|
||||||
|
+ pkgadd_help $MISSING_DEPENDENCY ;;
|
||||||
|
+ esac
|
||||||
|
+
|
||||||
|
+ if test "x$PKGHANDLER_COMMAND" != x; then
|
||||||
|
+ HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
|
||||||
|
+ fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
+ as_fn_error $? "Found libffi but could not link and compile with it. $HELP_MSG" "$LINENO" 5
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libffi should be bundled" >&5
|
||||||
|
+$as_echo_n "checking if libffi should be bundled... " >&6; }
|
||||||
|
+ if test "x$enable_libffi_bundling" = "x"; then
|
||||||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||||
|
+$as_echo "no" >&6; }
|
||||||
|
+ ENABLE_LIBFFI_BUNDLING=false
|
||||||
|
+ elif test "x$enable_libffi_bundling" = "xno"; then
|
||||||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, forced" >&5
|
||||||
|
+$as_echo "no, forced" >&6; }
|
||||||
|
+ ENABLE_LIBFFI_BUNDLING=false
|
||||||
|
+ elif test "x$enable_libffi_bundling" = "xyes"; then
|
||||||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, forced" >&5
|
||||||
|
+$as_echo "yes, forced" >&6; }
|
||||||
|
+ ENABLE_LIBFFI_BUNDLING=true
|
||||||
|
+ else
|
||||||
|
+ as_fn_error $? "Invalid value for --enable-libffi-bundling" "$LINENO" 5
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ # Find the libffi.so.X to bundle
|
||||||
|
+ if test "x${ENABLE_LIBFFI_BUNDLING}" = "xtrue"; then
|
||||||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libffi lib file location" >&5
|
||||||
|
+$as_echo_n "checking for libffi lib file location... " >&6; }
|
||||||
|
+ if test "x${LIBFFI_LIB_PATH}" != x; then
|
||||||
|
+ if test -e ${LIBFFI_LIB_PATH}/libffi.so.?; then
|
||||||
|
+ LIBFFI_LIB_FILE="${LIBFFI_LIB_PATH}/libffi.so.?"
|
||||||
|
+ else
|
||||||
|
+ as_fn_error $? "Could not locate libffi.so.? for bundling in ${LIBFFI_LIB_PATH}" "$LINENO" 5
|
||||||
|
+ fi
|
||||||
|
+ else
|
||||||
|
+ # If we don't have an explicit path, look in a few obvious places
|
||||||
|
+ if test "x${OPENJDK_TARGET_CPU}" = "xx86"; then
|
||||||
|
+ if test -e ${SYSROOT}/usr/lib/libffi.so.? ; then
|
||||||
|
+ LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/libffi.so.?"
|
||||||
|
+ elif test -e ${SYSROOT}/usr/lib/i386-linux-gnu/libffi.so.? ; then
|
||||||
|
+ LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/i386-linux-gnu/libffi.so.?"
|
||||||
|
+ else
|
||||||
|
+ as_fn_error $? "Could not locate libffi.so.? for bundling" "$LINENO" 5
|
||||||
|
+ fi
|
||||||
|
+ elif test "x${OPENJDK_TARGET_CPU}" = "xx86_64"; then
|
||||||
|
+ if test -e ${SYSROOT}/usr/lib64/libffi.so.? ; then
|
||||||
|
+ LIBFFI_LIB_FILE="${SYSROOT}/usr/lib64/libffi.so.?"
|
||||||
|
+ elif test -e ${SYSROOT}/usr/lib/x86_64-linux-gnu/libffi.so.? ; then
|
||||||
|
+ LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/x86_64-linux-gnu/libffi.so.?"
|
||||||
|
+ else
|
||||||
|
+ as_fn_error $? "Could not locate libffi.so.? for bundling" "$LINENO" 5
|
||||||
|
+ fi
|
||||||
|
+ else
|
||||||
|
+ # Fallback on the default /usr/lib dir
|
||||||
|
+ if test -e ${SYSROOT}/usr/lib/libffi.so.? ; then
|
||||||
|
+ LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/libffi.so.?"
|
||||||
|
+ else
|
||||||
|
+ as_fn_error $? "Could not locate libffi.so.? for bundling" "$LINENO" 5
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+ # Make sure the wildcard is evaluated
|
||||||
|
+ LIBFFI_LIB_FILE="$(ls ${LIBFFI_LIB_FILE})"
|
||||||
|
+ LIBFFI_LIB_DIR="$(dirname ${LIBFFI_LIB_FILE})"
|
||||||
|
+ LIBFFI_LIB_FILE="$(basename ${LIBFFI_LIB_FILE})"
|
||||||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${LIBFFI_LIB_FILE} in ${LIBFFI_LIB_DIR}" >&5
|
||||||
|
+$as_echo "${LIBFFI_LIB_FILE} in ${LIBFFI_LIB_DIR}" >&6; }
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+
|
||||||
|
if test "x$JVM_VARIANT_ZEROSHARK" = xtrue; then
|
||||||
|
# Extract the first word of "llvm-config", so it can be a program name with args.
|
||||||
|
set dummy llvm-config; ac_word=$2
|
||||||
|
diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
|
||||||
|
index 6efae578ea..4ed8b4fdd6 100644
|
||||||
|
--- a/common/autoconf/libraries.m4
|
||||||
|
+++ b/common/autoconf/libraries.m4
|
||||||
|
@@ -988,12 +988,161 @@ AC_DEFUN_ONCE([LIB_SETUP_STATIC_LINK_LIBSTDCPP],
|
||||||
|
fi
|
||||||
|
AC_SUBST(STATIC_CXX_SETTING)
|
||||||
|
|
||||||
|
+ AC_ARG_WITH(libffi, [AS_HELP_STRING([--with-libffi],
|
||||||
|
+ [specify prefix directory for the libffi package
|
||||||
|
+ (expecting the libraries under PATH/lib and the headers under PATH/include)])])
|
||||||
|
+ AC_ARG_WITH(libffi-include, [AS_HELP_STRING([--with-libffi-include],
|
||||||
|
+ [specify directory for the libffi include files])])
|
||||||
|
+ AC_ARG_WITH(libffi-lib, [AS_HELP_STRING([--with-libffi-lib],
|
||||||
|
+ [specify directory for the libffi library])])
|
||||||
|
+ AC_ARG_ENABLE(libffi-bundling, [AS_HELP_STRING([--enable-libffi-bundling],
|
||||||
|
+ [enable bundling of libffi.so to make the built JDK runnable on more systems])])
|
||||||
|
+
|
||||||
|
+ # Check if ffi is needed
|
||||||
|
if test "x$JVM_VARIANT_ZERO" = xtrue || test "x$JVM_VARIANT_ZEROSHARK" = xtrue; then
|
||||||
|
- # Figure out LIBFFI_CFLAGS and LIBFFI_LIBS
|
||||||
|
- PKG_CHECK_MODULES([LIBFFI], [libffi])
|
||||||
|
+ NEEDS_LIB_FFI=true
|
||||||
|
+ else
|
||||||
|
+ NEEDS_LIB_FFI=false
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ if test "x$NEEDS_LIB_FFI" = xfalse; then
|
||||||
|
+ if test "x${with_libffi}" != x || test "x${with_libffi_include}" != x || test "x${with_libffi_lib}" != x; then
|
||||||
|
+ AC_MSG_WARN([libffi not used, so --with-libffi is ignored])
|
||||||
|
+ fi
|
||||||
|
+ LIBFFI_CFLAGS=
|
||||||
|
+ LIBFFI_LIBS=
|
||||||
|
+ else
|
||||||
|
+ LIBFFI_FOUND=no
|
||||||
|
|
||||||
|
+ if test "x${with_libffi}" = xno || test "x${with_libffi_include}" = xno || test "x${with_libffi_lib}" = xno; then
|
||||||
|
+ AC_MSG_ERROR([It is not possible to disable the use of libffi. Remove the --without-libffi option.])
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ if test "x${with_libffi}" != x; then
|
||||||
|
+ LIBFFI_LIB_PATH="${with_libffi}/lib"
|
||||||
|
+ LIBFFI_LIBS="-L${with_libffi}/lib -lffi"
|
||||||
|
+ LIBFFI_CFLAGS="-I${with_libffi}/include"
|
||||||
|
+ LIBFFI_FOUND=yes
|
||||||
|
+ fi
|
||||||
|
+ if test "x${with_libffi_include}" != x; then
|
||||||
|
+ LIBFFI_CFLAGS="-I${with_libffi_include}"
|
||||||
|
+ LIBFFI_FOUND=yes
|
||||||
|
+ fi
|
||||||
|
+ if test "x${with_libffi_lib}" != x; then
|
||||||
|
+ LIBFFI_LIB_PATH="${with_libffi_lib}"
|
||||||
|
+ LIBFFI_LIBS="-L${with_libffi_lib} -lffi"
|
||||||
|
+ LIBFFI_FOUND=yes
|
||||||
|
+ fi
|
||||||
|
+ # Do not try pkg-config if we have a sysroot set.
|
||||||
|
+ if test "x$SYSROOT" = x; then
|
||||||
|
+ if test "x$LIBFFI_FOUND" = xno; then
|
||||||
|
+ # Figure out LIBFFI_CFLAGS and LIBFFI_LIBS
|
||||||
|
+ PKG_CHECK_MODULES([LIBFFI], [libffi], [LIBFFI_FOUND=yes], [LIBFFI_FOUND=no])
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+ if test "x$LIBFFI_FOUND" = xno; then
|
||||||
|
+ AC_CHECK_HEADERS([ffi.h],
|
||||||
|
+ [
|
||||||
|
+ LIBFFI_FOUND=yes
|
||||||
|
+ LIBFFI_CFLAGS=
|
||||||
|
+ LIBFFI_LIBS=-lffi
|
||||||
|
+ ],
|
||||||
|
+ [LIBFFI_FOUND=no]
|
||||||
|
+ )
|
||||||
|
+ fi
|
||||||
|
+ if test "x$LIBFFI_FOUND" = xno; then
|
||||||
|
+ HELP_MSG_MISSING_DEPENDENCY([ffi])
|
||||||
|
+ AC_MSG_ERROR([Could not find libffi! $HELP_MSG])
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ AC_MSG_CHECKING([if libffi works])
|
||||||
|
+ AC_LANG_PUSH(C)
|
||||||
|
+ OLD_CFLAGS="$CFLAGS"
|
||||||
|
+ CFLAGS="$CFLAGS $LIBFFI_CFLAGS"
|
||||||
|
+ OLD_LIBS="$LIBS"
|
||||||
|
+ LIBS="$LIBS $LIBFFI_LIBS"
|
||||||
|
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <ffi.h>],
|
||||||
|
+ [
|
||||||
|
+ ffi_call(NULL, NULL, NULL, NULL);
|
||||||
|
+ return 0;
|
||||||
|
+ ])],
|
||||||
|
+ [LIBFFI_WORKS=yes],
|
||||||
|
+ [LIBFFI_WORKS=no]
|
||||||
|
+ )
|
||||||
|
+ CFLAGS="$OLD_CFLAGS"
|
||||||
|
+ LIBS="$OLD_LIBS"
|
||||||
|
+ AC_LANG_POP(C)
|
||||||
|
+ AC_MSG_RESULT([$LIBFFI_WORKS])
|
||||||
|
+
|
||||||
|
+ if test "x$LIBFFI_WORKS" = xno; then
|
||||||
|
+ HELP_MSG_MISSING_DEPENDENCY([ffi])
|
||||||
|
+ AC_MSG_ERROR([Found libffi but could not link and compile with it. $HELP_MSG])
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ AC_MSG_CHECKING([if libffi should be bundled])
|
||||||
|
+ if test "x$enable_libffi_bundling" = "x"; then
|
||||||
|
+ AC_MSG_RESULT([no])
|
||||||
|
+ ENABLE_LIBFFI_BUNDLING=false
|
||||||
|
+ elif test "x$enable_libffi_bundling" = "xno"; then
|
||||||
|
+ AC_MSG_RESULT([no, forced])
|
||||||
|
+ ENABLE_LIBFFI_BUNDLING=false
|
||||||
|
+ elif test "x$enable_libffi_bundling" = "xyes"; then
|
||||||
|
+ AC_MSG_RESULT([yes, forced])
|
||||||
|
+ ENABLE_LIBFFI_BUNDLING=true
|
||||||
|
+ else
|
||||||
|
+ AC_MSG_ERROR([Invalid value for --enable-libffi-bundling])
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ # Find the libffi.so.X to bundle
|
||||||
|
+ if test "x${ENABLE_LIBFFI_BUNDLING}" = "xtrue"; then
|
||||||
|
+ AC_MSG_CHECKING([for libffi lib file location])
|
||||||
|
+ if test "x${LIBFFI_LIB_PATH}" != x; then
|
||||||
|
+ if test -e ${LIBFFI_LIB_PATH}/libffi.so.?; then
|
||||||
|
+ LIBFFI_LIB_FILE="${LIBFFI_LIB_PATH}/libffi.so.?"
|
||||||
|
+ else
|
||||||
|
+ AC_MSG_ERROR([Could not locate libffi.so.? for bundling in ${LIBFFI_LIB_PATH}])
|
||||||
|
+ fi
|
||||||
|
+ else
|
||||||
|
+ # If we don't have an explicit path, look in a few obvious places
|
||||||
|
+ if test "x${OPENJDK_TARGET_CPU}" = "xx86"; then
|
||||||
|
+ if test -e ${SYSROOT}/usr/lib/libffi.so.? ; then
|
||||||
|
+ LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/libffi.so.?"
|
||||||
|
+ elif test -e ${SYSROOT}/usr/lib/i386-linux-gnu/libffi.so.? ; then
|
||||||
|
+ LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/i386-linux-gnu/libffi.so.?"
|
||||||
|
+ else
|
||||||
|
+ AC_MSG_ERROR([Could not locate libffi.so.? for bundling])
|
||||||
|
+ fi
|
||||||
|
+ elif test "x${OPENJDK_TARGET_CPU}" = "xx86_64"; then
|
||||||
|
+ if test -e ${SYSROOT}/usr/lib64/libffi.so.? ; then
|
||||||
|
+ LIBFFI_LIB_FILE="${SYSROOT}/usr/lib64/libffi.so.?"
|
||||||
|
+ elif test -e ${SYSROOT}/usr/lib/x86_64-linux-gnu/libffi.so.? ; then
|
||||||
|
+ LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/x86_64-linux-gnu/libffi.so.?"
|
||||||
|
+ else
|
||||||
|
+ AC_MSG_ERROR([Could not locate libffi.so.? for bundling])
|
||||||
|
+ fi
|
||||||
|
+ else
|
||||||
|
+ # Fallback on the default /usr/lib dir
|
||||||
|
+ if test -e ${SYSROOT}/usr/lib/libffi.so.? ; then
|
||||||
|
+ LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/libffi.so.?"
|
||||||
|
+ else
|
||||||
|
+ AC_MSG_ERROR([Could not locate libffi.so.? for bundling])
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+ # Make sure the wildcard is evaluated
|
||||||
|
+ LIBFFI_LIB_FILE="$(ls ${LIBFFI_LIB_FILE})"
|
||||||
|
+ LIBFFI_LIB_DIR="$(dirname ${LIBFFI_LIB_FILE})"
|
||||||
|
+ LIBFFI_LIB_FILE="$(basename ${LIBFFI_LIB_FILE})"
|
||||||
|
+ AC_MSG_RESULT([${LIBFFI_LIB_FILE} in ${LIBFFI_LIB_DIR}])
|
||||||
|
+ fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
+ AC_SUBST(LIBFFI_CFLAGS)
|
||||||
|
+ AC_SUBST(LIBFFI_LIBS)
|
||||||
|
+ AC_SUBST(ENABLE_LIBFFI_BUNDLING)
|
||||||
|
+ AC_SUBST(LIBFFI_LIB_DIR)
|
||||||
|
+ AC_SUBST(LIBFFI_LIB_FILE)
|
||||||
|
+
|
||||||
|
if test "x$JVM_VARIANT_ZEROSHARK" = xtrue; then
|
||||||
|
AC_CHECK_PROG([LLVM_CONFIG], [llvm-config], [llvm-config])
|
||||||
|
|
||||||
|
diff --git a/common/autoconf/spec.gmk.in b/common/autoconf/spec.gmk.in
|
||||||
|
index 9573bb2cbd..8da3ac32a0 100644
|
||||||
|
--- a/common/autoconf/spec.gmk.in
|
||||||
|
+++ b/common/autoconf/spec.gmk.in
|
||||||
|
@@ -311,6 +311,11 @@ FONTCONFIG_CFLAGS:=@FONTCONFIG_CFLAGS@
|
||||||
|
CUPS_CFLAGS:=@CUPS_CFLAGS@
|
||||||
|
ALSA_LIBS:=@ALSA_LIBS@
|
||||||
|
ALSA_CFLAGS:=@ALSA_CFLAGS@
|
||||||
|
+LIBFFI_LIBS:=@LIBFFI_LIBS@
|
||||||
|
+LIBFFI_CFLAGS:=@LIBFFI_CFLAGS@
|
||||||
|
+ENABLE_LIBFFI_BUNDLING:=@ENABLE_LIBFFI_BUNDLING@
|
||||||
|
+LIBFFI_LIB_DIR:=@LIBFFI_LIB_DIR@
|
||||||
|
+LIBFFI_LIB_FILE:=@LIBFFI_LIB_FILE@
|
||||||
|
|
||||||
|
PACKAGE_PATH=@PACKAGE_PATH@
|
||||||
|
|
||||||
|
diff --git a/hotspot/make/Makefile b/hotspot/make/Makefile
|
||||||
|
index ad195763be..b9114cb99a 100644
|
||||||
|
--- a/hotspot/make/Makefile
|
||||||
|
+++ b/hotspot/make/Makefile
|
||||||
|
@@ -476,6 +476,8 @@ $(EXPORT_INCLUDE_DIR)/%: $(ZERO_BUILD_DIR)/../generated/jvmtifiles/%
|
||||||
|
# Unix
|
||||||
|
$(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(ZERO_BUILD_DIR)/%.$(LIBRARY_SUFFIX)
|
||||||
|
$(install-file)
|
||||||
|
+$(EXPORT_JRE_LIB_ARCH_DIR)/$(LIBFFI_LIB_FILE): $(LIBFFI_LIB_DIR)/$(LIBFFI_LIB_FILE)
|
||||||
|
+ $(install-file)
|
||||||
|
$(EXPORT_JRE_LIB_ARCH_DIR)/%.debuginfo: $(ZERO_BUILD_DIR)/%.debuginfo
|
||||||
|
$(install-file)
|
||||||
|
$(EXPORT_JRE_LIB_ARCH_DIR)/%.diz: $(ZERO_BUILD_DIR)/%.diz
|
||||||
|
diff --git a/hotspot/make/aix/makefiles/defs.make b/hotspot/make/aix/makefiles/defs.make
|
||||||
|
index b12c9c8df2..db10f6a68f 100644
|
||||||
|
--- a/hotspot/make/aix/makefiles/defs.make
|
||||||
|
+++ b/hotspot/make/aix/makefiles/defs.make
|
||||||
|
@@ -220,4 +220,7 @@ ADD_SA_BINARIES/zero =
|
||||||
|
|
||||||
|
EXPORT_LIST += $(ADD_SA_BINARIES/$(HS_ARCH))
|
||||||
|
|
||||||
|
+ifeq ($(ENABLE_LIBFFI_BUNDLING), true)
|
||||||
|
+ EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/$(LIBFFI_LIB_FILE)
|
||||||
|
+endif
|
||||||
|
|
||||||
|
diff --git a/hotspot/make/bsd/makefiles/defs.make b/hotspot/make/bsd/makefiles/defs.make
|
||||||
|
index 7cd21cc175..23436f12d8 100644
|
||||||
|
--- a/hotspot/make/bsd/makefiles/defs.make
|
||||||
|
+++ b/hotspot/make/bsd/makefiles/defs.make
|
||||||
|
@@ -364,6 +364,10 @@ ADD_SA_BINARIES/zero =
|
||||||
|
|
||||||
|
EXPORT_LIST += $(ADD_SA_BINARIES/$(HS_ARCH))
|
||||||
|
|
||||||
|
+ifeq ($(ENABLE_LIBFFI_BUNDLING), true)
|
||||||
|
+ EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/$(LIBFFI_LIB_FILE)
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
# Universal build settings
|
||||||
|
ifeq ($(OS_VENDOR), Darwin)
|
||||||
|
# Build universal binaries by default on Mac OS X
|
||||||
|
diff --git a/hotspot/make/linux/makefiles/defs.make b/hotspot/make/linux/makefiles/defs.make
|
||||||
|
index ec414639d2..0baa4f068d 100644
|
||||||
|
--- a/hotspot/make/linux/makefiles/defs.make
|
||||||
|
+++ b/hotspot/make/linux/makefiles/defs.make
|
||||||
|
@@ -333,4 +333,6 @@ ADD_SA_BINARIES/zero =
|
||||||
|
|
||||||
|
EXPORT_LIST += $(ADD_SA_BINARIES/$(HS_ARCH))
|
||||||
|
|
||||||
|
-
|
||||||
|
+ifeq ($(ENABLE_LIBFFI_BUNDLING), true)
|
||||||
|
+ EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/$(LIBFFI_LIB_FILE)
|
||||||
|
+endif
|
||||||
|
diff --git a/hotspot/make/solaris/makefiles/defs.make b/hotspot/make/solaris/makefiles/defs.make
|
||||||
|
index c88351c82b..cb838e854d 100644
|
||||||
|
--- a/hotspot/make/solaris/makefiles/defs.make
|
||||||
|
+++ b/hotspot/make/solaris/makefiles/defs.make
|
||||||
|
@@ -304,3 +304,7 @@ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar
|
||||||
|
+
|
||||||
|
+ifeq ($(ENABLE_LIBFFI_BUNDLING), true)
|
||||||
|
+ EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/$(LIBFFI_LIB_FILE)
|
||||||
|
+endif
|
||||||
|
diff --git a/hotspot/make/windows/makefiles/defs.make b/hotspot/make/windows/makefiles/defs.make
|
||||||
|
index 6b36f0e2bc..6f42c7ad37 100644
|
||||||
|
--- a/hotspot/make/windows/makefiles/defs.make
|
||||||
|
+++ b/hotspot/make/windows/makefiles/defs.make
|
||||||
|
@@ -300,6 +300,10 @@ ifeq ($(BUILD_WIN_SA), 1)
|
||||||
|
MAKE_ARGS += BUILD_WIN_SA=1
|
||||||
|
endif
|
||||||
|
|
||||||
|
+ifeq ($(ENABLE_LIBFFI_BUNDLING), true)
|
||||||
|
+ EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/$(LIBFFI_LIB_FILE)
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
# Propagate compiler and tools paths from configure to nmake.
|
||||||
|
# Need to make sure they contain \\ and not /.
|
||||||
|
ifneq ($(SPEC),)
|
||||||
|
diff --git a/jdk/make/Images.gmk b/jdk/make/Images.gmk
|
||||||
|
index 2e378c9134..0edefd7b5c 100644
|
||||||
|
--- a/jdk/make/Images.gmk
|
||||||
|
+++ b/jdk/make/Images.gmk
|
||||||
|
@@ -249,7 +249,8 @@ endif
|
||||||
|
|
||||||
|
ifneq ($(findstring $(OPENJDK_TARGET_OS), linux solaris),) # If Linux or Solaris
|
||||||
|
JDK_LIB_FILES += $(LIBRARY_PREFIX)jli$(SHARED_LIBRARY_SUFFIX) \
|
||||||
|
- $(LIBRARY_PREFIX)jawt$(SHARED_LIBRARY_SUFFIX)
|
||||||
|
+ $(LIBRARY_PREFIX)jawt$(SHARED_LIBRARY_SUFFIX) \
|
||||||
|
+ $(LIBFFI_LIB_FILE)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Find all files to copy from $(JDK_OUTPUTDIR)/lib
|
||||||
|
diff --git a/jdk/make/Import.gmk b/jdk/make/Import.gmk
|
||||||
|
index b115fa7f86..29fa2662a6 100644
|
||||||
|
--- a/jdk/make/Import.gmk
|
||||||
|
+++ b/jdk/make/Import.gmk
|
||||||
|
@@ -114,7 +114,7 @@ endef
|
||||||
|
#
|
||||||
|
# Import hotspot
|
||||||
|
#
|
||||||
|
-HOTSPOT_IMPORT_FILES := $(addprefix $(LIBRARY_PREFIX), jvm.* saproc.* jsig.* sawindbg.* jvm_db.* jvm_dtrace.*) \
|
||||||
|
+HOTSPOT_IMPORT_FILES := $(addprefix $(LIBRARY_PREFIX), jvm.* saproc.* jsig.* sawindbg.* jvm_db.* jvm_dtrace.* ffi.*) \
|
||||||
|
Xusage.txt sa-jdi.jar
|
||||||
|
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||||
|
diff --git a/make/devkit/Tools.gmk b/make/devkit/Tools.gmk
|
||||||
|
index c2460105b7..cf2ef251ac 100644
|
||||||
|
--- a/make/devkit/Tools.gmk
|
||||||
|
+++ b/make/devkit/Tools.gmk
|
||||||
|
@@ -82,8 +82,8 @@ RPM_LIST := \
|
||||||
|
libXi libXi-devel \
|
||||||
|
libXdmcp libXdmcp-devel \
|
||||||
|
libXau libXau-devel \
|
||||||
|
- libgcc
|
||||||
|
-
|
||||||
|
+ libgcc \
|
||||||
|
+ libffi libffi-devel
|
||||||
|
|
||||||
|
ifeq ($(ARCH),x86_64)
|
||||||
|
RPM_DIR ?= $(RPM_DIR_x86_64)
|
||||||
|
@@ -203,6 +203,18 @@ $(libs) : $(rpms)
|
||||||
|
@mkdir -p $(SYSROOT)/usr/lib
|
||||||
|
@touch $@
|
||||||
|
|
||||||
|
+##########################################################################################
|
||||||
|
+# Create links for ffi header files so that they become visible by default when using the
|
||||||
|
+# devkit.
|
||||||
|
+
|
||||||
|
+$(SYSROOT)/usr/include/ffi.h: $(rpms)
|
||||||
|
+ cd $(@D) && rm $(@F) && ln -s ../lib/libffi-*/include/$(@F) .
|
||||||
|
+
|
||||||
|
+$(SYSROOT)/usr/include/ffitarget.h: $(rpms)
|
||||||
|
+ cd $(@D) && rm $(@F) && ln -s ../lib/libffi-*/include/$(@F) .
|
||||||
|
+
|
||||||
|
+SYSROOT_LINKS += $(SYSROOT)/usr/include/ffi.h $(SYSROOT)/usr/include/ffitarget.h
|
||||||
|
+
|
||||||
|
##########################################################################################
|
||||||
|
|
||||||
|
# Define marker files for each source package to be compiled
|
||||||
|
@@ -479,7 +491,7 @@ rpms : $(rpms)
|
||||||
|
libs : $(libs)
|
||||||
|
sysroot : rpms libs
|
||||||
|
gcc : sysroot $(gcc) $(gccpatch)
|
||||||
|
-all : binutils gcc bfdlib $(PREFIX)/devkit.info
|
||||||
|
+all : binutils gcc bfdlib $(PREFIX)/devkit.info $(SYSROOT_LINKS)
|
||||||
|
|
||||||
|
# this is only built for host. so separate.
|
||||||
|
ccache : $(ccache)
|
286
SOURCES/jdk8186464-rh1433262-zip64_failure.patch
Normal file
286
SOURCES/jdk8186464-rh1433262-zip64_failure.patch
Normal file
@ -0,0 +1,286 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User sherman
|
||||||
|
# Date 1505950914 25200
|
||||||
|
# Wed Sep 20 16:41:54 2017 -0700
|
||||||
|
# Node ID 723486922bfe4c17e3f5c067ce5e97229842fbcd
|
||||||
|
# Parent c8ac05bbe47771b3dafa2e7fc9a95d86d68d7c07
|
||||||
|
8186464: ZipFile cannot read some InfoZip ZIP64 zip files
|
||||||
|
Reviewed-by: martin
|
||||||
|
|
||||||
|
diff --git openjdk.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java openjdk/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java
|
||||||
|
index 26e2a5bf9e9..2630c118817 100644
|
||||||
|
--- openjdk.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java
|
||||||
|
+++ openjdk/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java
|
||||||
|
@@ -92,6 +92,7 @@ public class ZipFileSystem extends FileSystem {
|
||||||
|
private final boolean createNew; // create a new zip if not exists
|
||||||
|
private static final boolean isWindows =
|
||||||
|
System.getProperty("os.name").startsWith("Windows");
|
||||||
|
+ private final boolean forceEnd64;
|
||||||
|
|
||||||
|
// a threshold, in bytes, to decide whether to create a temp file
|
||||||
|
// for outputstream of a zip entry
|
||||||
|
@@ -112,12 +113,13 @@ public class ZipFileSystem extends FileSystem {
|
||||||
|
if (this.defaultDir.charAt(0) != '/')
|
||||||
|
throw new IllegalArgumentException("default dir should be absolute");
|
||||||
|
|
||||||
|
+ this.forceEnd64 = "true".equals(env.get("forceZIP64End"));
|
||||||
|
this.provider = provider;
|
||||||
|
this.zfpath = zfpath;
|
||||||
|
if (Files.notExists(zfpath)) {
|
||||||
|
if (createNew) {
|
||||||
|
try (OutputStream os = Files.newOutputStream(zfpath, CREATE_NEW, WRITE)) {
|
||||||
|
- new END().write(os, 0);
|
||||||
|
+ new END().write(os, 0, forceEnd64);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new FileSystemNotFoundException(zfpath.toString());
|
||||||
|
@@ -1014,28 +1016,36 @@ public class ZipFileSystem extends FileSystem {
|
||||||
|
end.cenoff = ENDOFF(buf);
|
||||||
|
end.comlen = ENDCOM(buf);
|
||||||
|
end.endpos = pos + i;
|
||||||
|
- if (end.cenlen == ZIP64_MINVAL ||
|
||||||
|
- end.cenoff == ZIP64_MINVAL ||
|
||||||
|
- end.centot == ZIP64_MINVAL32)
|
||||||
|
- {
|
||||||
|
- // need to find the zip64 end;
|
||||||
|
- byte[] loc64 = new byte[ZIP64_LOCHDR];
|
||||||
|
- if (readFullyAt(loc64, 0, loc64.length, end.endpos - ZIP64_LOCHDR)
|
||||||
|
- != loc64.length) {
|
||||||
|
- return end;
|
||||||
|
- }
|
||||||
|
- long end64pos = ZIP64_LOCOFF(loc64);
|
||||||
|
- byte[] end64buf = new byte[ZIP64_ENDHDR];
|
||||||
|
- if (readFullyAt(end64buf, 0, end64buf.length, end64pos)
|
||||||
|
- != end64buf.length) {
|
||||||
|
- return end;
|
||||||
|
- }
|
||||||
|
- // end64 found, re-calcualte everything.
|
||||||
|
- end.cenlen = ZIP64_ENDSIZ(end64buf);
|
||||||
|
- end.cenoff = ZIP64_ENDOFF(end64buf);
|
||||||
|
- end.centot = (int)ZIP64_ENDTOT(end64buf); // assume total < 2g
|
||||||
|
- end.endpos = end64pos;
|
||||||
|
+ // try if there is zip64 end;
|
||||||
|
+ byte[] loc64 = new byte[ZIP64_LOCHDR];
|
||||||
|
+ if (end.endpos < ZIP64_LOCHDR ||
|
||||||
|
+ readFullyAt(loc64, 0, loc64.length, end.endpos - ZIP64_LOCHDR)
|
||||||
|
+ != loc64.length ||
|
||||||
|
+ !locator64SigAt(loc64, 0)) {
|
||||||
|
+ return end;
|
||||||
|
+ }
|
||||||
|
+ long end64pos = ZIP64_LOCOFF(loc64);
|
||||||
|
+ byte[] end64buf = new byte[ZIP64_ENDHDR];
|
||||||
|
+ if (readFullyAt(end64buf, 0, end64buf.length, end64pos)
|
||||||
|
+ != end64buf.length ||
|
||||||
|
+ !end64SigAt(end64buf, 0)) {
|
||||||
|
+ return end;
|
||||||
|
+ }
|
||||||
|
+ // end64 found,
|
||||||
|
+ long cenlen64 = ZIP64_ENDSIZ(end64buf);
|
||||||
|
+ long cenoff64 = ZIP64_ENDOFF(end64buf);
|
||||||
|
+ long centot64 = ZIP64_ENDTOT(end64buf);
|
||||||
|
+ // double-check
|
||||||
|
+ if (cenlen64 != end.cenlen && end.cenlen != ZIP64_MINVAL ||
|
||||||
|
+ cenoff64 != end.cenoff && end.cenoff != ZIP64_MINVAL ||
|
||||||
|
+ centot64 != end.centot && end.centot != ZIP64_MINVAL32) {
|
||||||
|
+ return end;
|
||||||
|
}
|
||||||
|
+ // to use the end64 values
|
||||||
|
+ end.cenlen = cenlen64;
|
||||||
|
+ end.cenoff = cenoff64;
|
||||||
|
+ end.centot = (int)centot64; // assume total < 2g
|
||||||
|
+ end.endpos = end64pos;
|
||||||
|
return end;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -1201,7 +1211,7 @@ public class ZipFileSystem extends FileSystem {
|
||||||
|
|
||||||
|
// sync the zip file system, if there is any udpate
|
||||||
|
private void sync() throws IOException {
|
||||||
|
- //System.out.printf("->sync(%s) starting....!%n", toString());
|
||||||
|
+ // System.out.printf("->sync(%s) starting....!%n", toString());
|
||||||
|
// check ex-closer
|
||||||
|
if (!exChClosers.isEmpty()) {
|
||||||
|
for (ExChannelCloser ecc : exChClosers) {
|
||||||
|
@@ -1292,7 +1302,7 @@ public class ZipFileSystem extends FileSystem {
|
||||||
|
}
|
||||||
|
end.centot = elist.size();
|
||||||
|
end.cenlen = written - end.cenoff;
|
||||||
|
- end.write(os, written);
|
||||||
|
+ end.write(os, written, forceEnd64);
|
||||||
|
}
|
||||||
|
if (!streams.isEmpty()) {
|
||||||
|
//
|
||||||
|
@@ -1849,8 +1859,8 @@ public class ZipFileSystem extends FileSystem {
|
||||||
|
long endpos;
|
||||||
|
int disktot;
|
||||||
|
|
||||||
|
- void write(OutputStream os, long offset) throws IOException {
|
||||||
|
- boolean hasZip64 = false;
|
||||||
|
+ void write(OutputStream os, long offset, boolean forceEnd64) throws IOException {
|
||||||
|
+ boolean hasZip64 = forceEnd64; // false;
|
||||||
|
long xlen = cenlen;
|
||||||
|
long xoff = cenoff;
|
||||||
|
if (xlen >= ZIP64_MINVAL) {
|
||||||
|
@@ -1875,8 +1885,8 @@ public class ZipFileSystem extends FileSystem {
|
||||||
|
writeShort(os, 45); // version needed to extract
|
||||||
|
writeInt(os, 0); // number of this disk
|
||||||
|
writeInt(os, 0); // central directory start disk
|
||||||
|
- writeLong(os, centot); // number of directory entires on disk
|
||||||
|
- writeLong(os, centot); // number of directory entires
|
||||||
|
+ writeLong(os, centot); // number of directory entries on disk
|
||||||
|
+ writeLong(os, centot); // number of directory entries
|
||||||
|
writeLong(os, cenlen); // length of central directory
|
||||||
|
writeLong(os, cenoff); // offset of central directory
|
||||||
|
|
||||||
|
diff --git openjdk.orig/jdk/src/share/native/java/util/zip/zip_util.c openjdk/jdk/src/share/native/java/util/zip/zip_util.c
|
||||||
|
index 5fd6fea049d..858e5814e92 100644
|
||||||
|
--- openjdk.orig/jdk/src/share/native/java/util/zip/zip_util.c
|
||||||
|
+++ openjdk/jdk/src/share/native/java/util/zip/zip_util.c
|
||||||
|
@@ -385,6 +385,9 @@ findEND64(jzfile *zip, void *end64buf, jlong endpos)
|
||||||
|
{
|
||||||
|
char loc64[ZIP64_LOCHDR];
|
||||||
|
jlong end64pos;
|
||||||
|
+ if (endpos < ZIP64_LOCHDR) {
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
if (readFullyAt(zip->zfd, loc64, ZIP64_LOCHDR, endpos - ZIP64_LOCHDR) == -1) {
|
||||||
|
return -1; // end64 locator not found
|
||||||
|
}
|
||||||
|
@@ -567,6 +570,7 @@ readCEN(jzfile *zip, jint knownTotal)
|
||||||
|
{
|
||||||
|
/* Following are unsigned 32-bit */
|
||||||
|
jlong endpos, end64pos, cenpos, cenlen, cenoff;
|
||||||
|
+ jlong cenlen64, cenoff64, centot64;
|
||||||
|
/* Following are unsigned 16-bit */
|
||||||
|
jint total, tablelen, i, j;
|
||||||
|
unsigned char *cenbuf = NULL;
|
||||||
|
@@ -594,13 +598,20 @@ readCEN(jzfile *zip, jint knownTotal)
|
||||||
|
cenlen = ENDSIZ(endbuf);
|
||||||
|
cenoff = ENDOFF(endbuf);
|
||||||
|
total = ENDTOT(endbuf);
|
||||||
|
- if (cenlen == ZIP64_MAGICVAL || cenoff == ZIP64_MAGICVAL ||
|
||||||
|
- total == ZIP64_MAGICCOUNT) {
|
||||||
|
- unsigned char end64buf[ZIP64_ENDHDR];
|
||||||
|
- if ((end64pos = findEND64(zip, end64buf, endpos)) != -1) {
|
||||||
|
- cenlen = ZIP64_ENDSIZ(end64buf);
|
||||||
|
- cenoff = ZIP64_ENDOFF(end64buf);
|
||||||
|
- total = (jint)ZIP64_ENDTOT(end64buf);
|
||||||
|
+ unsigned char end64buf[ZIP64_ENDHDR];
|
||||||
|
+ if ((end64pos = findEND64(zip, end64buf, endpos)) != -1) {
|
||||||
|
+ // end64 candidate found,
|
||||||
|
+ cenlen64 = ZIP64_ENDSIZ(end64buf);
|
||||||
|
+ cenoff64 = ZIP64_ENDOFF(end64buf);
|
||||||
|
+ centot64 = ZIP64_ENDTOT(end64buf);
|
||||||
|
+ // double-check
|
||||||
|
+ if ((cenlen64 == cenlen || cenlen == ZIP64_MAGICVAL) &&
|
||||||
|
+ (cenoff64 == cenoff || cenoff == ZIP64_MAGICVAL) &&
|
||||||
|
+ (centot64 == total || total == ZIP64_MAGICCOUNT)) {
|
||||||
|
+ // to use the end64 values
|
||||||
|
+ cenlen = cenlen64;
|
||||||
|
+ cenoff = cenoff64;
|
||||||
|
+ total = (jint)centot64;
|
||||||
|
endpos = end64pos;
|
||||||
|
endhdrlen = ZIP64_ENDHDR;
|
||||||
|
}
|
||||||
|
diff --git openjdk.orig/jdk/test/java/util/zip/ZipFile/ReadZip.java openjdk/jdk/test/java/util/zip/ZipFile/ReadZip.java
|
||||||
|
index ffe8a8ed712..9b380003893 100644
|
||||||
|
--- openjdk.orig/jdk/test/java/util/zip/ZipFile/ReadZip.java
|
||||||
|
+++ openjdk/jdk/test/java/util/zip/ZipFile/ReadZip.java
|
||||||
|
@@ -22,7 +22,7 @@
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* @test
|
||||||
|
- * @bug 4241361 4842702 4985614 6646605 5032358 6923692 6233323 8144977 8184993
|
||||||
|
+ * @bug 4241361 4842702 4985614 6646605 5032358 6923692 6233323 8144977 8184993 8186464
|
||||||
|
* @summary Make sure we can read a zip file.
|
||||||
|
@key randomness
|
||||||
|
* @run main/othervm ReadZip
|
||||||
|
@@ -31,12 +31,24 @@
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
+import java.net.URI;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
+import java.nio.file.FileSystem;
|
||||||
|
+import java.nio.file.FileSystems;
|
||||||
|
+import java.nio.file.Path;
|
||||||
|
import java.nio.file.Paths;
|
||||||
|
import java.nio.file.StandardCopyOption;
|
||||||
|
import java.nio.file.StandardOpenOption;
|
||||||
|
+import java.util.Collections;
|
||||||
|
+import java.util.HashMap;
|
||||||
|
+import java.util.List;
|
||||||
|
+import java.util.Map;
|
||||||
|
import java.util.zip.*;
|
||||||
|
|
||||||
|
+import sun.misc.IOUtils;
|
||||||
|
+
|
||||||
|
+import static java.nio.charset.StandardCharsets.US_ASCII;
|
||||||
|
+
|
||||||
|
public class ReadZip {
|
||||||
|
private static void unreached (Object o)
|
||||||
|
throws Exception
|
||||||
|
@@ -144,8 +156,6 @@ public class ReadZip {
|
||||||
|
newZip.delete();
|
||||||
|
}
|
||||||
|
|
||||||
|
-
|
||||||
|
-
|
||||||
|
// Throw a FNF exception when read a non-existing zip file
|
||||||
|
try { unreached (new ZipFile(
|
||||||
|
new File(System.getProperty("test.src", "."),
|
||||||
|
@@ -153,5 +163,54 @@ public class ReadZip {
|
||||||
|
+ String.valueOf(new java.util.Random().nextInt())
|
||||||
|
+ ".zip")));
|
||||||
|
} catch (FileNotFoundException fnfe) {}
|
||||||
|
+
|
||||||
|
+ // read a zip file with ZIP64 end
|
||||||
|
+ Path path = Paths.get(System.getProperty("test.dir", ""), "end64.zip");
|
||||||
|
+ try {
|
||||||
|
+ URI uri = URI.create("jar:" + path.toUri());
|
||||||
|
+ Map<String, Object> env = new HashMap<>();
|
||||||
|
+ env.put("create", "true");
|
||||||
|
+ env.put("forceZIP64End", "true");
|
||||||
|
+ try (FileSystem fs = FileSystems.newFileSystem(uri, env)) {
|
||||||
|
+ Files.write(fs.getPath("hello"), "hello".getBytes());
|
||||||
|
+ }
|
||||||
|
+ try (ZipFile zf = new ZipFile(path.toFile())) {
|
||||||
|
+ if (!"hello".equals(new String(IOUtils.readAllBytes(zf.getInputStream(new ZipEntry("hello"))),
|
||||||
|
+ US_ASCII)))
|
||||||
|
+ throw new RuntimeException("zipfile: read entry failed");
|
||||||
|
+ } catch (IOException x) {
|
||||||
|
+ throw new RuntimeException("zipfile: zip64 end failed");
|
||||||
|
+ }
|
||||||
|
+ try (FileSystem fs = FileSystems.newFileSystem(uri, Collections.emptyMap())) {
|
||||||
|
+ if (!"hello".equals(new String(Files.readAllBytes(fs.getPath("hello")))))
|
||||||
|
+ throw new RuntimeException("zipfs: read entry failed");
|
||||||
|
+ } catch (IOException x) {
|
||||||
|
+ throw new RuntimeException("zipfile: zip64 end failed");
|
||||||
|
+ }
|
||||||
|
+ } finally {
|
||||||
|
+ Files.deleteIfExists(path);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ // read a zip file created via "echo hello | zip dst.zip -", which uses
|
||||||
|
+ // ZIP64 end record
|
||||||
|
+ if (Files.notExists(Paths.get("/usr/bin/zip")))
|
||||||
|
+ return;
|
||||||
|
+ try {
|
||||||
|
+ Process zip = new ProcessBuilder("zip", path.toString().toString(), "-").start();
|
||||||
|
+ OutputStream os = zip.getOutputStream();
|
||||||
|
+ os.write("hello".getBytes(US_ASCII));
|
||||||
|
+ os.close();
|
||||||
|
+ zip.waitFor();
|
||||||
|
+ if (zip.exitValue() == 0 && Files.exists(path)) {
|
||||||
|
+ try (ZipFile zf = new ZipFile(path.toFile())) {
|
||||||
|
+ if (!"hello".equals(new String(IOUtils.readAllBytes(zf.getInputStream(new ZipEntry("-"))))))
|
||||||
|
+ throw new RuntimeException("zipfile: read entry failed");
|
||||||
|
+ } catch (IOException x) {
|
||||||
|
+ throw new RuntimeException("zipfile: zip64 end failed");
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ } finally {
|
||||||
|
+ Files.deleteIfExists(path);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
@ -7,10 +7,11 @@
|
|||||||
PR3533: HotSpot generates code with unaligned stack, crashes on SSE operations
|
PR3533: HotSpot generates code with unaligned stack, crashes on SSE operations
|
||||||
Summary: Enable -mstackrealign on x86 Linux as well as x86 Mac OS X
|
Summary: Enable -mstackrealign on x86 Linux as well as x86 Mac OS X
|
||||||
|
|
||||||
diff --git openjdk.orig///common/autoconf/flags.m4 openjdk///common/autoconf/flags.m4
|
diff --git a/common/autoconf/flags.m4 b/common/autoconf/flags.m4
|
||||||
--- openjdk.orig///common/autoconf/flags.m4
|
index 113bf367e2..bed030e8d1 100644
|
||||||
+++ openjdk///common/autoconf/flags.m4
|
--- a/common/autoconf/flags.m4
|
||||||
@@ -402,6 +402,21 @@
|
+++ b/common/autoconf/flags.m4
|
||||||
|
@@ -451,6 +451,21 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
|
||||||
AC_SUBST($2CXXSTD_CXXFLAG)
|
AC_SUBST($2CXXSTD_CXXFLAG)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -32,23 +33,32 @@ diff --git openjdk.orig///common/autoconf/flags.m4 openjdk///common/autoconf/fla
|
|||||||
if test "x$CFLAGS" != "x${ADDED_CFLAGS}"; then
|
if test "x$CFLAGS" != "x${ADDED_CFLAGS}"; then
|
||||||
AC_MSG_WARN([Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags])
|
AC_MSG_WARN([Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags])
|
||||||
fi
|
fi
|
||||||
diff --git openjdk.orig///common/autoconf/hotspot-spec.gmk.in openjdk///common/autoconf/hotspot-spec.gmk.in
|
diff --git a/common/autoconf/hotspot-spec.gmk.in b/common/autoconf/hotspot-spec.gmk.in
|
||||||
--- openjdk.orig///common/autoconf/hotspot-spec.gmk.in
|
index 3f86751d2b..f8a271383f 100644
|
||||||
+++ openjdk///common/autoconf/hotspot-spec.gmk.in
|
--- a/common/autoconf/hotspot-spec.gmk.in
|
||||||
@@ -112,7 +112,8 @@
|
+++ b/common/autoconf/hotspot-spec.gmk.in
|
||||||
RC:=@HOTSPOT_RC@
|
@@ -114,13 +114,14 @@ RC:=@HOTSPOT_RC@
|
||||||
|
# Retain EXTRA_{CFLAGS,CXXFLAGS,LDFLAGS,ASFLAGS} for the target flags to
|
||||||
EXTRA_CFLAGS=@LEGACY_EXTRA_CFLAGS@ $(NO_DELETE_NULL_POINTER_CHECKS_CFLAG) \
|
# maintain compatibility with the existing Makefiles
|
||||||
|
EXTRA_CFLAGS=@LEGACY_TARGET_CFLAGS@ $(NO_DELETE_NULL_POINTER_CHECKS_CFLAG) \
|
||||||
- $(NO_LIFETIME_DSE_CFLAG) $(CXXSTD_CXXFLAG)
|
- $(NO_LIFETIME_DSE_CFLAG) $(CXXSTD_CXXFLAG)
|
||||||
+ $(NO_LIFETIME_DSE_CFLAG) $(CXXSTD_CXXFLAG) \
|
+ $(NO_LIFETIME_DSE_CFLAG) $(CXXSTD_CXXFLAG) \
|
||||||
+ $(REALIGN_CFLAG)
|
+ $(REALIGN_CFLAG)
|
||||||
EXTRA_CXXFLAGS=@LEGACY_EXTRA_CXXFLAGS@
|
EXTRA_CXXFLAGS=@LEGACY_TARGET_CXXFLAGS@
|
||||||
EXTRA_LDFLAGS=@LEGACY_EXTRA_LDFLAGS@
|
EXTRA_LDFLAGS=@LEGACY_TARGET_LDFLAGS@
|
||||||
EXTRA_ASFLAGS=@LEGACY_EXTRA_ASFLAGS@
|
EXTRA_ASFLAGS=@LEGACY_TARGET_ASFLAGS@
|
||||||
diff --git openjdk.orig///common/autoconf/spec.gmk.in openjdk///common/autoconf/spec.gmk.in
|
# Define an equivalent set for the host flags (i.e. without sysroot options)
|
||||||
--- openjdk.orig///common/autoconf/spec.gmk.in
|
HOST_CFLAGS=@LEGACY_HOST_CFLAGS@ $(NO_DELETE_NULL_POINTER_CHECKS_CFLAG) \
|
||||||
+++ openjdk///common/autoconf/spec.gmk.in
|
- $(NO_LIFETIME_DSE_CFLAG) $(CXXSTD_CXXFLAG)
|
||||||
@@ -366,6 +366,7 @@
|
+ $(NO_LIFETIME_DSE_CFLAG) $(CXXSTD_CXXFLAG)
|
||||||
|
HOST_CXXFLAGS=@LEGACY_HOST_CXXFLAGS@
|
||||||
|
HOST_LDFLAGS=@LEGACY_HOST_LDFLAGS@
|
||||||
|
HOST_ASFLAGS=@LEGACY_HOST_ASFLAGS@
|
||||||
|
diff --git a/common/autoconf/spec.gmk.in b/common/autoconf/spec.gmk.in
|
||||||
|
index 9573bb2cbd..fe7efc130c 100644
|
||||||
|
--- a/common/autoconf/spec.gmk.in
|
||||||
|
+++ b/common/autoconf/spec.gmk.in
|
||||||
|
@@ -366,6 +366,7 @@ CXXFLAGS_JDKEXE:=@CXXFLAGS_JDKEXE@
|
||||||
|
|
||||||
NO_DELETE_NULL_POINTER_CHECKS_CFLAG=@NO_DELETE_NULL_POINTER_CHECKS_CFLAG@
|
NO_DELETE_NULL_POINTER_CHECKS_CFLAG=@NO_DELETE_NULL_POINTER_CHECKS_CFLAG@
|
||||||
NO_LIFETIME_DSE_CFLAG=@NO_LIFETIME_DSE_CFLAG@
|
NO_LIFETIME_DSE_CFLAG=@NO_LIFETIME_DSE_CFLAG@
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
diff --git openjdk.orig/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java openjdk/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java
|
|
||||||
index cf4becb7db..4ab2ac0a31 100644
|
|
||||||
--- openjdk.orig/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java
|
|
||||||
+++ openjdk/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java
|
|
||||||
@@ -189,6 +189,10 @@ final public class LdapCtxFactory implements ObjectFactory, InitialContextFactor
|
|
||||||
ctx = getLdapCtxFromUrl(
|
|
||||||
r.getDomainName(), url, new LdapURL(u), env);
|
|
||||||
return ctx;
|
|
||||||
+ } catch (AuthenticationException e) {
|
|
||||||
+ // do not retry on a different endpoint to avoid blocking
|
|
||||||
+ // the user if authentication credentials are wrong.
|
|
||||||
+ throw e;
|
|
||||||
} catch (NamingException e) {
|
|
||||||
// try the next element
|
|
||||||
lastException = e;
|
|
||||||
@@ -241,6 +245,10 @@ final public class LdapCtxFactory implements ObjectFactory, InitialContextFactor
|
|
||||||
for (String u : urls) {
|
|
||||||
try {
|
|
||||||
return getUsingURL(u, env);
|
|
||||||
+ } catch (AuthenticationException e) {
|
|
||||||
+ // do not retry on a different URL to avoid blocking
|
|
||||||
+ // the user if authentication credentials are wrong.
|
|
||||||
+ throw e;
|
|
||||||
} catch (NamingException e) {
|
|
||||||
ex = e;
|
|
||||||
}
|
|
@ -1,67 +0,0 @@
|
|||||||
# HG changeset patch
|
|
||||||
# User Andrew John Hughes <gnu_andrew@member.fsf.org>
|
|
||||||
# Date 1620365804 -3600
|
|
||||||
# Fri May 07 06:36:44 2021 +0100
|
|
||||||
# Node ID 39b62f35eca823b4c9a98bc1dc0cb9acb87360f8
|
|
||||||
# Parent 723b59ed1afe878c5cd35f080399c8ceec4f776b
|
|
||||||
PR3836: Extra compiler flags not passed to adlc build
|
|
||||||
|
|
||||||
diff --git openjdk.orig/hotspot/make/aix/makefiles/adlc.make openjdk/hotspot/make/aix/makefiles/adlc.make
|
|
||||||
--- openjdk.orig/hotspot/make/aix/makefiles/adlc.make
|
|
||||||
+++ openjdk/hotspot/make/aix/makefiles/adlc.make
|
|
||||||
@@ -69,6 +69,11 @@
|
|
||||||
CFLAGS_WARN = -w
|
|
||||||
CFLAGS += $(CFLAGS_WARN)
|
|
||||||
|
|
||||||
+# Extra flags from gnumake's invocation or environment
|
|
||||||
+CFLAGS += $(EXTRA_CFLAGS)
|
|
||||||
+LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
|
|
||||||
+ASFLAGS += $(EXTRA_ASFLAGS)
|
|
||||||
+
|
|
||||||
OBJECTNAMES = \
|
|
||||||
adlparse.o \
|
|
||||||
archDesc.o \
|
|
||||||
diff --git openjdk.orig/hotspot/make/bsd/makefiles/adlc.make openjdk/hotspot/make/bsd/makefiles/adlc.make
|
|
||||||
--- openjdk.orig/hotspot/make/bsd/makefiles/adlc.make
|
|
||||||
+++ openjdk/hotspot/make/bsd/makefiles/adlc.make
|
|
||||||
@@ -71,6 +71,11 @@
|
|
||||||
endif
|
|
||||||
CFLAGS += $(CFLAGS_WARN)
|
|
||||||
|
|
||||||
+# Extra flags from gnumake's invocation or environment
|
|
||||||
+CFLAGS += $(EXTRA_CFLAGS)
|
|
||||||
+LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
|
|
||||||
+ASFLAGS += $(EXTRA_ASFLAGS)
|
|
||||||
+
|
|
||||||
OBJECTNAMES = \
|
|
||||||
adlparse.o \
|
|
||||||
archDesc.o \
|
|
||||||
diff --git openjdk.orig/hotspot/make/linux/makefiles/adlc.make openjdk/hotspot/make/linux/makefiles/adlc.make
|
|
||||||
--- openjdk.orig/hotspot/make/linux/makefiles/adlc.make
|
|
||||||
+++ openjdk/hotspot/make/linux/makefiles/adlc.make
|
|
||||||
@@ -69,6 +69,11 @@
|
|
||||||
CFLAGS_WARN = $(WARNINGS_ARE_ERRORS)
|
|
||||||
CFLAGS += $(CFLAGS_WARN)
|
|
||||||
|
|
||||||
+# Extra flags from gnumake's invocation or environment
|
|
||||||
+CFLAGS += $(EXTRA_CFLAGS)
|
|
||||||
+LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
|
|
||||||
+ASFLAGS += $(EXTRA_ASFLAGS)
|
|
||||||
+
|
|
||||||
OBJECTNAMES = \
|
|
||||||
adlparse.o \
|
|
||||||
archDesc.o \
|
|
||||||
diff --git openjdk.orig/hotspot/make/solaris/makefiles/adlc.make openjdk/hotspot/make/solaris/makefiles/adlc.make
|
|
||||||
--- openjdk.orig/hotspot/make/solaris/makefiles/adlc.make
|
|
||||||
+++ openjdk/hotspot/make/solaris/makefiles/adlc.make
|
|
||||||
@@ -85,6 +85,10 @@
|
|
||||||
endif
|
|
||||||
CFLAGS += $(CFLAGS_WARN)
|
|
||||||
|
|
||||||
+# Extra flags from gnumake's invocation or environment
|
|
||||||
+CFLAGS += $(EXTRA_CFLAGS)
|
|
||||||
+ASFLAGS += $(EXTRA_ASFLAGS)
|
|
||||||
+
|
|
||||||
ifeq ("${Platform_compiler}", "sparcWorks")
|
|
||||||
# Enable the following CFLAGS addition if you need to compare the
|
|
||||||
# built ELF objects.
|
|
2596
SOURCES/jdk8328999-update_giflib_5.2.2.patch
Normal file
2596
SOURCES/jdk8328999-update_giflib_5.2.2.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -7,10 +7,11 @@
|
|||||||
8074839: Resolve disabled warnings for libunpack and the unpack200 binary
|
8074839: Resolve disabled warnings for libunpack and the unpack200 binary
|
||||||
Reviewed-by: dholmes, ksrini
|
Reviewed-by: dholmes, ksrini
|
||||||
|
|
||||||
diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.h openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.h
|
diff --git a/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.h b/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.h
|
||||||
--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.h
|
index bdaf95a2f6a..60c5b4f2a69 100644
|
||||||
+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.h
|
--- a/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.h
|
||||||
@@ -63,7 +63,7 @@
|
+++ b/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.h
|
||||||
|
@@ -63,7 +63,7 @@ struct bytes {
|
||||||
bytes res;
|
bytes res;
|
||||||
res.ptr = ptr + beg;
|
res.ptr = ptr + beg;
|
||||||
res.len = end - beg;
|
res.len = end - beg;
|
||||||
@ -19,10 +20,11 @@ diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.h openj
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
// building C strings inside byte buffers:
|
// building C strings inside byte buffers:
|
||||||
diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp
|
diff --git a/jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp b/jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp
|
||||||
--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp
|
index 5fbc7261fb3..4c002e779d8 100644
|
||||||
+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp
|
--- a/jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp
|
||||||
@@ -292,7 +292,7 @@
|
+++ b/jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp
|
||||||
|
@@ -292,7 +292,7 @@ Java_com_sun_java_util_jar_pack_NativeUnpack_getUnusedInput(JNIEnv *env, jobject
|
||||||
|
|
||||||
if (uPtr->aborting()) {
|
if (uPtr->aborting()) {
|
||||||
THROW_IOE(uPtr->get_abort_message());
|
THROW_IOE(uPtr->get_abort_message());
|
||||||
@ -31,16 +33,16 @@ diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp openj
|
|||||||
}
|
}
|
||||||
|
|
||||||
// We have fetched all the files.
|
// We have fetched all the files.
|
||||||
@@ -310,7 +310,7 @@
|
@@ -312,7 +312,7 @@ Java_com_sun_java_util_jar_pack_NativeUnpack_finish(JNIEnv *env, jobject pObj) {
|
||||||
JNIEXPORT jlong JNICALL
|
// There's no need to create a new unpacker here if we don't already have one
|
||||||
Java_com_sun_java_util_jar_pack_NativeUnpack_finish(JNIEnv *env, jobject pObj) {
|
// just to immediatly free it afterwards.
|
||||||
unpacker* uPtr = get_unpacker(env, pObj, false);
|
unpacker* uPtr = get_unpacker(env, pObj, /* noCreate= */ true);
|
||||||
- CHECK_EXCEPTION_RETURN_VALUE(uPtr, NULL);
|
- CHECK_EXCEPTION_RETURN_VALUE(uPtr, NULL);
|
||||||
+ CHECK_EXCEPTION_RETURN_VALUE(uPtr, 0);
|
+ CHECK_EXCEPTION_RETURN_VALUE(uPtr, 0);
|
||||||
size_t consumed = uPtr->input_consumed();
|
size_t consumed = uPtr->input_consumed();
|
||||||
|
// free_unpacker() will set the unpacker field on 'pObj' to null
|
||||||
free_unpacker(env, pObj, uPtr);
|
free_unpacker(env, pObj, uPtr);
|
||||||
return consumed;
|
@@ -323,6 +323,7 @@ JNIEXPORT jboolean JNICALL
|
||||||
@@ -320,6 +320,7 @@
|
|
||||||
Java_com_sun_java_util_jar_pack_NativeUnpack_setOption(JNIEnv *env, jobject pObj,
|
Java_com_sun_java_util_jar_pack_NativeUnpack_setOption(JNIEnv *env, jobject pObj,
|
||||||
jstring pProp, jstring pValue) {
|
jstring pProp, jstring pValue) {
|
||||||
unpacker* uPtr = get_unpacker(env, pObj);
|
unpacker* uPtr = get_unpacker(env, pObj);
|
||||||
@ -48,10 +50,11 @@ diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp openj
|
|||||||
const char* prop = env->GetStringUTFChars(pProp, JNI_FALSE);
|
const char* prop = env->GetStringUTFChars(pProp, JNI_FALSE);
|
||||||
CHECK_EXCEPTION_RETURN_VALUE(prop, false);
|
CHECK_EXCEPTION_RETURN_VALUE(prop, false);
|
||||||
const char* value = env->GetStringUTFChars(pValue, JNI_FALSE);
|
const char* value = env->GetStringUTFChars(pValue, JNI_FALSE);
|
||||||
diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp
|
diff --git a/jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp b/jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp
|
||||||
--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp
|
index 6fbc43a18ae..722c8baaff0 100644
|
||||||
+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp
|
--- a/jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp
|
||||||
@@ -142,31 +142,28 @@
|
+++ b/jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp
|
||||||
|
@@ -142,31 +142,28 @@ static const char* nbasename(const char* progname) {
|
||||||
return progname;
|
return progname;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,10 +104,11 @@ diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp open
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp
|
diff --git a/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp b/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp
|
||||||
--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp
|
index a585535c513..8df3fade499 100644
|
||||||
+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp
|
--- a/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp
|
||||||
@@ -222,9 +222,9 @@
|
+++ b/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp
|
||||||
|
@@ -225,9 +225,9 @@ struct entry {
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef PRODUCT
|
#ifdef PRODUCT
|
||||||
@ -116,7 +120,7 @@ diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp op
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -715,13 +715,13 @@
|
@@ -719,13 +719,13 @@ void unpacker::read_file_header() {
|
||||||
// Now we can size the whole archive.
|
// Now we can size the whole archive.
|
||||||
// Read everything else into a mega-buffer.
|
// Read everything else into a mega-buffer.
|
||||||
rp = hdr.rp;
|
rp = hdr.rp;
|
||||||
@ -134,7 +138,7 @@ diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp op
|
|||||||
abort("EOF reading fixed input buffer");
|
abort("EOF reading fixed input buffer");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -735,7 +735,7 @@
|
@@ -739,7 +739,7 @@ void unpacker::read_file_header() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
input.set(U_NEW(byte, add_size(header_size_0, archive_size, C_SLOP)),
|
input.set(U_NEW(byte, add_size(header_size_0, archive_size, C_SLOP)),
|
||||||
@ -143,7 +147,7 @@ diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp op
|
|||||||
CHECK;
|
CHECK;
|
||||||
assert(input.limit()[0] == 0);
|
assert(input.limit()[0] == 0);
|
||||||
// Move all the bytes we read initially into the real buffer.
|
// Move all the bytes we read initially into the real buffer.
|
||||||
@@ -958,13 +958,13 @@
|
@@ -962,13 +962,13 @@ void cpool::init(unpacker* u_, int counts[CONSTANT_Limit]) {
|
||||||
nentries = next_entry;
|
nentries = next_entry;
|
||||||
|
|
||||||
// place a limit on future CP growth:
|
// place a limit on future CP growth:
|
||||||
@ -159,18 +163,7 @@ diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp op
|
|||||||
|
|
||||||
// Note that this CP does not include "empty" entries
|
// Note that this CP does not include "empty" entries
|
||||||
// for longs and doubles. Those are introduced when
|
// for longs and doubles. Those are introduced when
|
||||||
@@ -982,8 +982,9 @@
|
@@ -3694,21 +3694,22 @@ void cpool::computeOutputIndexes() {
|
||||||
}
|
|
||||||
|
|
||||||
// Initialize *all* our entries once
|
|
||||||
- for (int i = 0 ; i < maxentries ; i++)
|
|
||||||
+ for (uint i = 0 ; i < maxentries ; i++) {
|
|
||||||
entries[i].outputIndex = REQUESTED_NONE;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
initGroupIndexes();
|
|
||||||
// Initialize hashTab to a generous power-of-two size.
|
|
||||||
@@ -3677,21 +3678,22 @@
|
|
||||||
|
|
||||||
unpacker* debug_u;
|
unpacker* debug_u;
|
||||||
|
|
||||||
@ -197,7 +190,7 @@ diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp op
|
|||||||
case CONSTANT_Signature:
|
case CONSTANT_Signature:
|
||||||
if (value.b.ptr == null)
|
if (value.b.ptr == null)
|
||||||
return ref(0)->string();
|
return ref(0)->string();
|
||||||
@@ -3711,26 +3713,28 @@
|
@@ -3728,26 +3729,28 @@ char* entry::string() {
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (nrefs == 0) {
|
if (nrefs == 0) {
|
||||||
@ -235,10 +228,11 @@ diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp op
|
|||||||
}
|
}
|
||||||
|
|
||||||
void print_cp_entries(int beg, int end) {
|
void print_cp_entries(int beg, int end) {
|
||||||
diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h
|
diff --git a/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h b/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h
|
||||||
--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h
|
index 4ec595333c4..aad0c971ef2 100644
|
||||||
+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h
|
--- a/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h
|
||||||
@@ -209,7 +209,7 @@
|
+++ b/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h
|
||||||
|
@@ -209,7 +209,7 @@ struct unpacker {
|
||||||
byte* rp; // read pointer (< rplimit <= input.limit())
|
byte* rp; // read pointer (< rplimit <= input.limit())
|
||||||
byte* rplimit; // how much of the input block has been read?
|
byte* rplimit; // how much of the input block has been read?
|
||||||
julong bytes_read;
|
julong bytes_read;
|
||||||
@ -247,10 +241,11 @@ diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h open
|
|||||||
|
|
||||||
// callback to read at least one byte, up to available input
|
// callback to read at least one byte, up to available input
|
||||||
typedef jlong (*read_input_fn_t)(unpacker* self, void* buf, jlong minlen, jlong maxlen);
|
typedef jlong (*read_input_fn_t)(unpacker* self, void* buf, jlong minlen, jlong maxlen);
|
||||||
diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/utils.cpp openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/utils.cpp
|
diff --git a/jdk/src/share/native/com/sun/java/util/jar/pack/utils.cpp b/jdk/src/share/native/com/sun/java/util/jar/pack/utils.cpp
|
||||||
--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/utils.cpp
|
index da39a589545..1281d8b25c8 100644
|
||||||
+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/utils.cpp
|
--- a/jdk/src/share/native/com/sun/java/util/jar/pack/utils.cpp
|
||||||
@@ -81,7 +81,7 @@
|
+++ b/jdk/src/share/native/com/sun/java/util/jar/pack/utils.cpp
|
||||||
|
@@ -81,7 +81,7 @@ void breakpoint() { } // hook for debugger
|
||||||
int assert_failed(const char* p) {
|
int assert_failed(const char* p) {
|
||||||
char message[1<<12];
|
char message[1<<12];
|
||||||
sprintf(message, "@assert failed: %s\n", p);
|
sprintf(message, "@assert failed: %s\n", p);
|
||||||
@ -259,10 +254,11 @@ diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/utils.cpp ope
|
|||||||
breakpoint();
|
breakpoint();
|
||||||
unpack_abort(message);
|
unpack_abort(message);
|
||||||
return 0;
|
return 0;
|
||||||
diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp
|
diff --git a/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp b/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp
|
||||||
--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp
|
index f58c94956c0..343da3e183b 100644
|
||||||
+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp
|
--- a/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp
|
||||||
@@ -84,7 +84,7 @@
|
+++ b/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp
|
||||||
|
@@ -84,7 +84,7 @@ void jar::init(unpacker* u_) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write data to the ZIP output stream.
|
// Write data to the ZIP output stream.
|
||||||
@ -271,7 +267,7 @@ diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp openj
|
|||||||
while (len > 0) {
|
while (len > 0) {
|
||||||
int rc = (int)fwrite(buff, 1, len, jarfp);
|
int rc = (int)fwrite(buff, 1, len, jarfp);
|
||||||
if (rc <= 0) {
|
if (rc <= 0) {
|
||||||
@@ -323,12 +323,12 @@
|
@@ -323,12 +323,12 @@ void jar::write_central_directory() {
|
||||||
// Total number of disks (int)
|
// Total number of disks (int)
|
||||||
header64[36] = (ushort)SWAP_BYTES(1);
|
header64[36] = (ushort)SWAP_BYTES(1);
|
||||||
header64[37] = 0;
|
header64[37] = 0;
|
||||||
@ -286,10 +282,11 @@ diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp openj
|
|||||||
|
|
||||||
PRINTCR((2, "writing zip comment\n"));
|
PRINTCR((2, "writing zip comment\n"));
|
||||||
// Write the comment.
|
// Write the comment.
|
||||||
diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h
|
diff --git a/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h b/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h
|
||||||
--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h
|
index 14ffc9d65bd..9877f6f68ca 100644
|
||||||
+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h
|
--- a/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h
|
||||||
@@ -68,8 +68,8 @@
|
+++ b/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h
|
||||||
|
@@ -68,8 +68,8 @@ struct jar {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Private Methods
|
// Private Methods
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
diff --git a/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java b/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java
|
diff --git a/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java b/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java
|
||||||
index e7b4763db53..e8ec8467e6a 100644
|
index e7b4763db53..0005e56f528 100644
|
||||||
--- a/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java
|
--- a/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java
|
||||||
+++ b/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java
|
+++ b/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java
|
||||||
@@ -31,6 +31,7 @@ import java.security.*;
|
@@ -31,6 +31,7 @@ import java.security.*;
|
||||||
@ -19,16 +19,17 @@ index e7b4763db53..e8ec8467e6a 100644
|
|||||||
*/
|
*/
|
||||||
private static final class TrustStoreDescriptor {
|
private static final class TrustStoreDescriptor {
|
||||||
private static final String fileSep = File.separator;
|
private static final String fileSep = File.separator;
|
||||||
@@ -76,7 +77,7 @@ final class TrustStoreManager {
|
@@ -76,7 +77,8 @@ final class TrustStoreManager {
|
||||||
GetPropertyAction.privilegedGetProperty("java.home") +
|
GetPropertyAction.privilegedGetProperty("java.home") +
|
||||||
fileSep + "lib" + fileSep + "security";
|
fileSep + "lib" + fileSep + "security";
|
||||||
private static final String defaultStore =
|
private static final String defaultStore =
|
||||||
- defaultStorePath + fileSep + "cacerts";
|
- defaultStorePath + fileSep + "cacerts";
|
||||||
+ KeyStoreUtil.getCacertsKeyStoreFile().getPath();
|
+ AccessController.doPrivileged((PrivilegedAction<String>) () ->
|
||||||
|
+ KeyStoreUtil.getCacertsKeyStorePath());
|
||||||
private static final String jsseDefaultStore =
|
private static final String jsseDefaultStore =
|
||||||
defaultStorePath + fileSep + "jssecacerts";
|
defaultStorePath + fileSep + "jssecacerts";
|
||||||
|
|
||||||
@@ -139,6 +140,10 @@ final class TrustStoreManager {
|
@@ -139,6 +141,10 @@ final class TrustStoreManager {
|
||||||
String storePropPassword = System.getProperty(
|
String storePropPassword = System.getProperty(
|
||||||
"javax.net.ssl.trustStorePassword", "");
|
"javax.net.ssl.trustStorePassword", "");
|
||||||
|
|
||||||
@ -39,117 +40,56 @@ index e7b4763db53..e8ec8467e6a 100644
|
|||||||
String temporaryName = "";
|
String temporaryName = "";
|
||||||
File temporaryFile = null;
|
File temporaryFile = null;
|
||||||
long temporaryTime = 0L;
|
long temporaryTime = 0L;
|
||||||
@@ -146,21 +151,22 @@ final class TrustStoreManager {
|
@@ -160,7 +166,7 @@ final class TrustStoreManager {
|
||||||
String[] fileNames =
|
|
||||||
new String[] {storePropName, defaultStore};
|
|
||||||
for (String fileName : fileNames) {
|
|
||||||
- File f = new File(fileName);
|
|
||||||
- if (f.isFile() && f.canRead()) {
|
|
||||||
- temporaryName = fileName;;
|
|
||||||
- temporaryFile = f;
|
|
||||||
- temporaryTime = f.lastModified();
|
|
||||||
-
|
|
||||||
- break;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- // Not break, the file is inaccessible.
|
|
||||||
- if (SSLLogger.isOn &&
|
|
||||||
+ if (fileName != null && !"".equals(fileName)) {
|
|
||||||
+ File f = new File(fileName);
|
|
||||||
+ if (f.isFile() && f.canRead()) {
|
|
||||||
+ temporaryName = fileName;;
|
|
||||||
+ temporaryFile = f;
|
|
||||||
+ temporaryTime = f.lastModified();
|
|
||||||
+
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ // Not break, the file is inaccessible.
|
|
||||||
+ if (SSLLogger.isOn &&
|
|
||||||
SSLLogger.isOn("trustmanager")) {
|
SSLLogger.isOn("trustmanager")) {
|
||||||
- SSLLogger.fine(
|
SSLLogger.fine(
|
||||||
- "Inaccessible trust store: " +
|
"Inaccessible trust store: " +
|
||||||
- storePropName);
|
- storePropName);
|
||||||
+ SSLLogger.fine(
|
|
||||||
+ "Inaccessible trust store: " +
|
|
||||||
+ fileName);
|
+ fileName);
|
||||||
+ }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
diff --git a/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java b/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
|
diff --git a/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java b/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
|
||||||
index fcc77786da1..f554f83a8b4 100644
|
index fcc77786da1..3a4388964cc 100644
|
||||||
--- a/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
|
--- a/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
|
||||||
+++ b/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
|
+++ b/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
|
||||||
@@ -33,7 +33,10 @@ import java.io.InputStreamReader;
|
@@ -41,6 +41,8 @@ import java.text.Collator;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.ResourceBundle;
|
||||||
|
|
||||||
import java.net.URL;
|
+import sun.security.util.SecurityProperties;
|
||||||
|
+
|
||||||
+import java.security.AccessController;
|
/**
|
||||||
import java.security.KeyStore;
|
* <p> This class provides several utilities to <code>KeyStore</code>.
|
||||||
+import java.security.PrivilegedAction;
|
*
|
||||||
+import java.security.Security;
|
@@ -54,6 +56,8 @@ public class KeyStoreUtil {
|
||||||
|
|
||||||
import java.security.cert.X509Certificate;
|
|
||||||
import java.text.Collator;
|
|
||||||
@@ -54,6 +57,33 @@ public class KeyStoreUtil {
|
|
||||||
|
|
||||||
private static final String JKS = "jks";
|
private static final String JKS = "jks";
|
||||||
|
|
||||||
+ private static final String PROP_NAME = "security.systemCACerts";
|
+ private static final String SYSTEM_CA_CERTS_PROP = "security.systemCACerts";
|
||||||
+
|
|
||||||
+ /**
|
|
||||||
+ * Returns the value of the security property propName, which can be overridden
|
|
||||||
+ * by a system property of the same name
|
|
||||||
+ *
|
|
||||||
+ * @param propName the name of the system or security property
|
|
||||||
+ * @return the value of the system or security property
|
|
||||||
+ */
|
|
||||||
+ @SuppressWarnings("removal")
|
|
||||||
+ public static String privilegedGetOverridable(String propName) {
|
|
||||||
+ if (System.getSecurityManager() == null) {
|
|
||||||
+ return getOverridableProperty(propName);
|
|
||||||
+ } else {
|
|
||||||
+ return AccessController.doPrivileged((PrivilegedAction<String>) () -> getOverridableProperty(propName));
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ private static String getOverridableProperty(String propName) {
|
|
||||||
+ String val = System.getProperty(propName);
|
|
||||||
+ if (val == null) {
|
|
||||||
+ return Security.getProperty(propName);
|
|
||||||
+ } else {
|
|
||||||
+ return val;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
+
|
||||||
/**
|
/**
|
||||||
* Returns true if the certificate is self-signed, false otherwise.
|
* Returns true if the certificate is self-signed, false otherwise.
|
||||||
*/
|
*/
|
||||||
@@ -96,20 +126,38 @@ public class KeyStoreUtil {
|
@@ -96,16 +100,30 @@ public class KeyStoreUtil {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+ /**
|
+ /**
|
||||||
+ * Returns the path to the cacerts DB
|
+ * Returns the path to the cacerts DB
|
||||||
+ */
|
+ */
|
||||||
+ public static File getCacertsKeyStoreFile()
|
+ public static String getCacertsKeyStorePath()
|
||||||
+ {
|
+ {
|
||||||
|
+ // Check system DB first, preferring system property over security one
|
||||||
|
+ String systemDB = SecurityProperties
|
||||||
|
+ .privilegedGetOverridable(SYSTEM_CA_CERTS_PROP);
|
||||||
|
+ if (systemDB != null && !"".equals(systemDB) &&
|
||||||
|
+ (new File(systemDB)).isFile()) {
|
||||||
|
+ return systemDB;
|
||||||
|
+ }
|
||||||
+ String sep = File.separator;
|
+ String sep = File.separator;
|
||||||
+ File file = null;
|
+ return System.getProperty("java.home") + sep
|
||||||
+ /* Check system cacerts DB first, preferring system property over security property */
|
+ + "lib" + sep + "security" + sep + "cacerts";
|
||||||
+ String systemDB = privilegedGetOverridable(PROP_NAME);
|
|
||||||
+ if (systemDB != null && !"".equals(systemDB)) {
|
|
||||||
+ file = new File(systemDB);
|
|
||||||
+ }
|
|
||||||
+ if (file == null || !file.exists()) {
|
|
||||||
+ file = new File(System.getProperty("java.home") + sep
|
|
||||||
+ + "lib" + sep + "security" + sep
|
|
||||||
+ + "cacerts");
|
|
||||||
+ }
|
|
||||||
+ if (file.exists()) {
|
|
||||||
+ return file;
|
|
||||||
+ }
|
|
||||||
+ return null;
|
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
/**
|
/**
|
||||||
@ -162,27 +102,21 @@ index fcc77786da1..f554f83a8b4 100644
|
|||||||
- File file = new File(System.getProperty("java.home") + sep
|
- File file = new File(System.getProperty("java.home") + sep
|
||||||
- + "lib" + sep + "security" + sep
|
- + "lib" + sep + "security" + sep
|
||||||
- + "cacerts");
|
- + "cacerts");
|
||||||
- if (!file.exists()) {
|
+ File file = new File(getCacertsKeyStorePath());
|
||||||
- return null;
|
if (!file.exists()) {
|
||||||
- }
|
return null;
|
||||||
KeyStore caks = null;
|
}
|
||||||
+ File file = getCacertsKeyStoreFile();
|
|
||||||
+ if (file == null) { return null; }
|
|
||||||
try (FileInputStream fis = new FileInputStream(file)) {
|
|
||||||
caks = KeyStore.getInstance(JKS);
|
|
||||||
caks.load(fis, null);
|
|
||||||
diff --git a/jdk/src/share/lib/security/java.security-aix b/jdk/src/share/lib/security/java.security-aix
|
diff --git a/jdk/src/share/lib/security/java.security-aix b/jdk/src/share/lib/security/java.security-aix
|
||||||
index bfe0c593adb..093bc09bf95 100644
|
index 681a24b905d..ecb8bc43a6c 100644
|
||||||
--- a/jdk/src/share/lib/security/java.security-aix
|
--- a/jdk/src/share/lib/security/java.security-aix
|
||||||
+++ b/jdk/src/share/lib/security/java.security-aix
|
+++ b/jdk/src/share/lib/security/java.security-aix
|
||||||
@@ -294,6 +294,13 @@ security.overridePropertiesFile=true
|
@@ -294,6 +294,12 @@ security.overridePropertiesFile=true
|
||||||
#
|
#
|
||||||
security.useSystemPropertiesFile=false
|
security.useSystemPropertiesFile=false
|
||||||
|
|
||||||
+#
|
+#
|
||||||
+# Specifies the system certificate store
|
+# Specifies the system certificate store
|
||||||
+# This property may be disabled using
|
+# This property may be disabled using an empty value
|
||||||
+# -Djava.security.disableSystemCACerts=true
|
|
||||||
+#
|
+#
|
||||||
+security.systemCACerts=${java.home}/lib/security/cacerts
|
+security.systemCACerts=${java.home}/lib/security/cacerts
|
||||||
+
|
+
|
||||||
@ -190,17 +124,16 @@ index bfe0c593adb..093bc09bf95 100644
|
|||||||
# Determines the default key and trust manager factory algorithms for
|
# Determines the default key and trust manager factory algorithms for
|
||||||
# the javax.net.ssl package.
|
# the javax.net.ssl package.
|
||||||
diff --git a/jdk/src/share/lib/security/java.security-linux b/jdk/src/share/lib/security/java.security-linux
|
diff --git a/jdk/src/share/lib/security/java.security-linux b/jdk/src/share/lib/security/java.security-linux
|
||||||
index 9d1c8fe8a8e..16c9281cc1f 100644
|
index 789c19a8cba..2546fdec9b2 100644
|
||||||
--- a/jdk/src/share/lib/security/java.security-linux
|
--- a/jdk/src/share/lib/security/java.security-linux
|
||||||
+++ b/jdk/src/share/lib/security/java.security-linux
|
+++ b/jdk/src/share/lib/security/java.security-linux
|
||||||
@@ -307,6 +307,13 @@ security.overridePropertiesFile=true
|
@@ -307,6 +307,12 @@ security.overridePropertiesFile=true
|
||||||
#
|
#
|
||||||
security.useSystemPropertiesFile=false
|
security.useSystemPropertiesFile=false
|
||||||
|
|
||||||
+#
|
+#
|
||||||
+# Specifies the system certificate store
|
+# Specifies the system certificate store
|
||||||
+# This property may be disabled using
|
+# This property may be disabled using an empty value
|
||||||
+# -Djava.security.disableSystemCACerts=true
|
|
||||||
+#
|
+#
|
||||||
+security.systemCACerts=${java.home}/lib/security/cacerts
|
+security.systemCACerts=${java.home}/lib/security/cacerts
|
||||||
+
|
+
|
||||||
@ -208,17 +141,16 @@ index 9d1c8fe8a8e..16c9281cc1f 100644
|
|||||||
# Determines the default key and trust manager factory algorithms for
|
# Determines the default key and trust manager factory algorithms for
|
||||||
# the javax.net.ssl package.
|
# the javax.net.ssl package.
|
||||||
diff --git a/jdk/src/share/lib/security/java.security-macosx b/jdk/src/share/lib/security/java.security-macosx
|
diff --git a/jdk/src/share/lib/security/java.security-macosx b/jdk/src/share/lib/security/java.security-macosx
|
||||||
index 19047c61097..43e034cdeaf 100644
|
index d4da666af3b..1a20027c02b 100644
|
||||||
--- a/jdk/src/share/lib/security/java.security-macosx
|
--- a/jdk/src/share/lib/security/java.security-macosx
|
||||||
+++ b/jdk/src/share/lib/security/java.security-macosx
|
+++ b/jdk/src/share/lib/security/java.security-macosx
|
||||||
@@ -297,6 +297,13 @@ security.overridePropertiesFile=true
|
@@ -297,6 +297,12 @@ security.overridePropertiesFile=true
|
||||||
#
|
#
|
||||||
security.useSystemPropertiesFile=false
|
security.useSystemPropertiesFile=false
|
||||||
|
|
||||||
+#
|
+#
|
||||||
+# Specifies the system certificate store
|
+# Specifies the system certificate store
|
||||||
+# This property may be disabled using
|
+# This property may be disabled using an empty value
|
||||||
+# -Djava.security.disableSystemCACerts=true
|
|
||||||
+#
|
+#
|
||||||
+security.systemCACerts=${java.home}/lib/security/cacerts
|
+security.systemCACerts=${java.home}/lib/security/cacerts
|
||||||
+
|
+
|
||||||
@ -226,17 +158,16 @@ index 19047c61097..43e034cdeaf 100644
|
|||||||
# Determines the default key and trust manager factory algorithms for
|
# Determines the default key and trust manager factory algorithms for
|
||||||
# the javax.net.ssl package.
|
# the javax.net.ssl package.
|
||||||
diff --git a/jdk/src/share/lib/security/java.security-solaris b/jdk/src/share/lib/security/java.security-solaris
|
diff --git a/jdk/src/share/lib/security/java.security-solaris b/jdk/src/share/lib/security/java.security-solaris
|
||||||
index 7eda556ae13..325937e97fb 100644
|
index 300132384a1..6299e0a3c7b 100644
|
||||||
--- a/jdk/src/share/lib/security/java.security-solaris
|
--- a/jdk/src/share/lib/security/java.security-solaris
|
||||||
+++ b/jdk/src/share/lib/security/java.security-solaris
|
+++ b/jdk/src/share/lib/security/java.security-solaris
|
||||||
@@ -295,6 +295,13 @@ security.overridePropertiesFile=true
|
@@ -295,6 +295,12 @@ security.overridePropertiesFile=true
|
||||||
#
|
#
|
||||||
security.useSystemPropertiesFile=false
|
security.useSystemPropertiesFile=false
|
||||||
|
|
||||||
+#
|
+#
|
||||||
+# Specifies the system certificate store
|
+# Specifies the system certificate store
|
||||||
+# This property may be disabled using
|
+# This property may be disabled using an empty value
|
||||||
+# -Djava.security.disableSystemCACerts=true
|
|
||||||
+#
|
+#
|
||||||
+security.systemCACerts=${java.home}/lib/security/cacerts
|
+security.systemCACerts=${java.home}/lib/security/cacerts
|
||||||
+
|
+
|
||||||
@ -244,17 +175,16 @@ index 7eda556ae13..325937e97fb 100644
|
|||||||
# Determines the default key and trust manager factory algorithms for
|
# Determines the default key and trust manager factory algorithms for
|
||||||
# the javax.net.ssl package.
|
# the javax.net.ssl package.
|
||||||
diff --git a/jdk/src/share/lib/security/java.security-windows b/jdk/src/share/lib/security/java.security-windows
|
diff --git a/jdk/src/share/lib/security/java.security-windows b/jdk/src/share/lib/security/java.security-windows
|
||||||
index dfa1a669aa9..92ef777e065 100644
|
index 64db5a5cd1e..823994f3466 100644
|
||||||
--- a/jdk/src/share/lib/security/java.security-windows
|
--- a/jdk/src/share/lib/security/java.security-windows
|
||||||
+++ b/jdk/src/share/lib/security/java.security-windows
|
+++ b/jdk/src/share/lib/security/java.security-windows
|
||||||
@@ -297,6 +297,13 @@ security.overridePropertiesFile=true
|
@@ -297,6 +297,12 @@ security.overridePropertiesFile=true
|
||||||
#
|
#
|
||||||
security.useSystemPropertiesFile=false
|
security.useSystemPropertiesFile=false
|
||||||
|
|
||||||
+#
|
+#
|
||||||
+# Specifies the system certificate store
|
+# Specifies the system certificate store
|
||||||
+# This property may be disabled using
|
+# This property may be disabled using an empty value
|
||||||
+# -Djava.security.disableSystemCACerts=true
|
|
||||||
+#
|
+#
|
||||||
+security.systemCACerts=${java.home}/lib/security/cacerts
|
+security.systemCACerts=${java.home}/lib/security/cacerts
|
||||||
+
|
+
|
@ -17,7 +17,7 @@ fi
|
|||||||
d=`mktemp -d`
|
d=`mktemp -d`
|
||||||
NW=$d/$f
|
NW=$d/$f
|
||||||
pushd $d
|
pushd $d
|
||||||
jar xf $ORIG
|
unzip $ORIG
|
||||||
cat $M
|
cat $M
|
||||||
# sed -i "s/Created-By.*/Created-By: 1.7.0/g" $M
|
# sed -i "s/Created-By.*/Created-By: 1.7.0/g" $M
|
||||||
sed -i "s/Created-By.*/Created-By: $2/g" $M
|
sed -i "s/Created-By.*/Created-By: $2/g" $M
|
@ -1,25 +0,0 @@
|
|||||||
diff --git openjdk.orig/jdk/src/share/lib/security/java.security-linux openjdk/jdk/src/share/lib/security/java.security-linux
|
|
||||||
--- openjdk.orig/jdk/src/share/lib/security/java.security-linux
|
|
||||||
+++ openjdk/jdk/src/share/lib/security/java.security-linux
|
|
||||||
@@ -226,7 +226,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
|
|
||||||
@@ -279,7 +281,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
|
|
@ -0,0 +1,13 @@
|
|||||||
|
--- openjdk/jdk/src/solaris/classes/sun/security/smartcardio/PlatformPCSC.java 2013-03-01 10:48:12.038189968 +0100
|
||||||
|
+++ openjdk/jdk/src/solaris/classes/sun/security/smartcardio/PlatformPCSC.java 2013-03-01 10:48:11.913188505 +0100
|
||||||
|
@@ -48,8 +48,8 @@
|
||||||
|
|
||||||
|
private final static String PROP_NAME = "sun.security.smartcardio.library";
|
||||||
|
|
||||||
|
- private final static String LIB1 = "/usr/$LIBISA/libpcsclite.so";
|
||||||
|
- private final static String LIB2 = "/usr/local/$LIBISA/libpcsclite.so";
|
||||||
|
+ private final static String LIB1 = "/usr/$LIBISA/libpcsclite.so.1";
|
||||||
|
+ private final static String LIB2 = "/usr/local/$LIBISA/libpcsclite.so.1";
|
||||||
|
private final static String PCSC_FRAMEWORK = "/System/Library/Frameworks/PCSC.framework/Versions/Current/PCSC";
|
||||||
|
|
||||||
|
PlatformPCSC() {
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user