Merge branch 'c8' into a8-portable

This commit is contained in:
eabdullin 2025-01-23 11:24:16 +03:00
commit 27f5648000
15 changed files with 939 additions and 79 deletions

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
SOURCES/openjdk-21.0.5+11.tar.xz
SOURCES/openjdk-21.0.6+7.tar.xz
SOURCES/tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz

View File

@ -1,2 +1,2 @@
369c387555e8f6d25cc248e126e910c164aa4f05 SOURCES/openjdk-21.0.5+11.tar.xz
fad71f19631dab375285056d10d08374e869bb35 SOURCES/openjdk-21.0.6+7.tar.xz
c8281ee37b77d535c9c1af86609a531958ff7b34 SOURCES/tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz

View File

@ -0,0 +1,54 @@
From 7733d625ebdea5a6f323a0c5944fb8ab728d1b2b Mon Sep 17 00:00:00 2001
From: Andrew Hughes <gnu.andrew@redhat.com>
Date: Sat, 25 Nov 2023 17:29:36 +0000
Subject: [PATCH] Allow devkit to work with RHEL
---
make/devkit/Makefile | 2 +-
make/devkit/Tools.gmk | 10 +++++++++-
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/make/devkit/Makefile b/make/devkit/Makefile
index c85a7c21d29..8f69d23c325 100644
--- a/make/devkit/Makefile
+++ b/make/devkit/Makefile
@@ -58,7 +58,7 @@
COMMA := ,
os := $(shell uname -o)
-cpu := $(shell uname -p)
+cpu := $(shell uname -m)
# Figure out what platform this is building on.
me := $(cpu)-$(if $(findstring Linux,$(os)),linux-gnu)
diff --git a/make/devkit/Tools.gmk b/make/devkit/Tools.gmk
index 187320ca26e..001f4b1870c 100644
--- a/make/devkit/Tools.gmk
+++ b/make/devkit/Tools.gmk
@@ -62,6 +62,14 @@ ifeq ($(BASE_OS), OL)
BASE_URL := http://yum.oracle.com/repo/OracleLinux/OL6/4/base/$(ARCH)/
LINUX_VERSION := OL6.4
endif
+else ifeq ($(BASE_OS), RHEL)
+ ifeq ($(ARCH), aarch64)
+ BASE_URL := https://download.eng.brq.redhat.com/rhel-7/rel-eng/RHEL-7/latest-RHEL-ALT-7/compose/Server/$(ARCH)/os/Packages/
+ LINUX_VERSION := RHEL7.6
+ else
+ BASE_URL := https://download.eng.brq.redhat.com/rhel-7/rel-eng/RHEL-7/latest-RHEL-7/compose/Server/$(ARCH)/os/Packages/
+ LINUX_VERSION := RHEL7.9
+ endif
else ifeq ($(BASE_OS), Fedora)
ifeq ($(ARCH), riscv64)
DEFAULT_OS_VERSION := rawhide/68692
@@ -246,7 +254,7 @@ download-rpms:
# Only run this if rpm dir is empty.
ifeq ($(wildcard $(DOWNLOAD_RPMS)/*.rpm), )
cd $(DOWNLOAD_RPMS) && \
- wget -r -np -nd $(patsubst %, -A "*%*.rpm", $(RPM_LIST)) $(BASE_URL)
+ wget -r -e robots=off -np -nd $(patsubst %, -A "*%*.rpm", $(RPM_LIST)) $(BASE_URL)
endif
##########################################################################################
--
2.45.2

View File

@ -0,0 +1,50 @@
From e55afc691c0105623e04a6e76369cf1438afb874 Mon Sep 17 00:00:00 2001
From: Andrew Hughes <gnu.andrew@redhat.com>
Date: Fri, 8 Dec 2023 21:22:02 +0000
Subject: [PATCH] Disable multilib on x86_64
---
make/devkit/Tools.gmk | 13 +++----------
1 file changed, 3 insertions(+), 10 deletions(-)
diff --git a/make/devkit/Tools.gmk b/make/devkit/Tools.gmk
index 001f4b1870c..9ede781413d 100644
--- a/make/devkit/Tools.gmk
+++ b/make/devkit/Tools.gmk
@@ -225,13 +225,7 @@ RPM_LIST := \
##########################################################################################
# Define common directories and files
-# Ensure we have 32-bit libs also for x64. We enable mixed-mode.
-ifeq (x86_64,$(ARCH))
- LIBDIRS := lib64 lib
- CFLAGS_lib := -m32
-else
- LIBDIRS := lib
-endif
+LIBDIRS := lib
# Define directories
BUILDDIR := $(OUTPUT_ROOT)/$(HOST)/$(TARGET)
@@ -289,8 +283,7 @@ $(foreach p,GCC BINUTILS CCACHE MPFR GMP MPC GDB,$(eval $(call Download,$(p))))
RPM_ARCHS := $(ARCH) noarch
ifeq ($(ARCH),x86_64)
- # Enable mixed mode.
- RPM_ARCHS += i386 i686
+ RPM_ARCHS += i686
else ifeq ($(ARCH),i686)
RPM_ARCHS += i386
else ifeq ($(ARCH), armhfp)
@@ -526,7 +519,7 @@ ifeq ($(ARCH), armhfp)
$(BUILDDIR)/$(gcc_ver)/Makefile : CONFIG += --with-float=hard
endif
-ifneq ($(filter riscv64 ppc64 ppc64le s390x, $(ARCH)), )
+ifneq ($(filter riscv64 ppc64 ppc64le s390x x86_64, $(ARCH)), )
# We only support 64-bit on these platforms anyway
CONFIG += --disable-multilib
endif
--
2.45.2

View File

@ -0,0 +1,92 @@
From fbc27183b35df7778cf106450b144474f8e2a35c Mon Sep 17 00:00:00 2001
From: Andrew Hughes <gnu.andrew@redhat.com>
Date: Wed, 30 Oct 2024 00:42:06 +0000
Subject: [PATCH] Log devkit build to stdout
Resolves: OPENJDK-3071
---
make/devkit/Tools.gmk | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/make/devkit/Tools.gmk b/make/devkit/Tools.gmk
index 9ede781413d..b6f895f5a25 100644
--- a/make/devkit/Tools.gmk
+++ b/make/devkit/Tools.gmk
@@ -458,7 +458,7 @@ $(BUILDDIR)/$(binutils_ver)/Makefile \
--enable-multilib \
--enable-threads \
--enable-plugins \
- ) > $(@D)/log.config 2>&1
+ ) 2>&1 | tee $(@D)/log.config
@echo 'done'
$(BUILDDIR)/$(mpfr_ver)/Makefile \
@@ -473,7 +473,7 @@ $(BUILDDIR)/$(mpfr_ver)/Makefile \
--program-prefix=$(TARGET)- \
--enable-shared=no \
--with-gmp=$(PREFIX) \
- ) > $(@D)/log.config 2>&1
+ ) 2>&1 | tee $(@D)/log.config
@echo 'done'
$(BUILDDIR)/$(gmp_ver)/Makefile \
@@ -490,7 +490,7 @@ $(BUILDDIR)/$(gmp_ver)/Makefile \
--program-prefix=$(TARGET)- \
--enable-shared=no \
--with-mpfr=$(PREFIX) \
- ) > $(@D)/log.config 2>&1
+ ) 2>&1 | tee $(@D)/log.config
@echo 'done'
$(BUILDDIR)/$(mpc_ver)/Makefile \
@@ -506,7 +506,7 @@ $(BUILDDIR)/$(mpc_ver)/Makefile \
--enable-shared=no \
--with-mpfr=$(PREFIX) \
--with-gmp=$(PREFIX) \
- ) > $(@D)/log.config 2>&1
+ ) 2>&1 | tee $(@D)/log.config
@echo 'done'
# Only valid if glibc target -> linux
@@ -549,7 +549,7 @@ $(BUILDDIR)/$(gcc_ver)/Makefile \
--with-mpfr=$(PREFIX) \
--with-gmp=$(PREFIX) \
--with-mpc=$(PREFIX) \
- ) > $(@D)/log.config 2>&1
+ ) 2>&1 | tee $(@D)/log.config
@echo 'done'
# need binutils for gcc
@@ -571,7 +571,7 @@ ifeq ($(HOST), $(TARGET))
$(PATHPRE) $(ENVS) CFLAGS="$(CFLAGS)" $(GDB_CFG) \
$(CONFIG) \
--with-sysroot=$(SYSROOT) \
- ) > $(@D)/log.config 2>&1
+ ) 2>&1 | tee $(@D)/log.config
@echo 'done'
$(gdb): $(gcc)
@@ -593,7 +593,7 @@ $(BUILDDIR)/$(ccache_ver)/Makefile \
cd $(@D) ; \
$(PATHPRE) $(ENVS) $(CCACHE_CFG) \
$(CONFIG) \
- ) > $(@D)/log.config 2>&1
+ ) 2>&1 | tee $(@D)/log.config
@echo 'done'
gccpatch = $(TARGETDIR)/gcc-patched
@@ -641,9 +641,9 @@ endif
# Always need to build cross tools for build host self.
$(TARGETDIR)/%.done : $(BUILDDIR)/%/Makefile
$(info Building $(basename $@). Log in $(<D)/log.build)
- $(PATHPRE) $(ENVS) $(MAKE) $(BUILDPAR) -f $< -C $(<D) $(MAKECMD) $(MAKECMD.$(notdir $@)) > $(<D)/log.build 2>&1
+ $(PATHPRE) $(ENVS) $(MAKE) $(BUILDPAR) -f $< -C $(<D) $(MAKECMD) $(MAKECMD.$(notdir $@)) 2>&1 | tee $(<D)/log.build
@echo -n 'installing...'
- $(PATHPRE) $(MAKE) $(INSTALLPAR) -f $< -C $(<D) $(INSTALLCMD) $(MAKECMD.$(notdir $@)) > $(<D)/log.install 2>&1
+ $(PATHPRE) $(MAKE) $(INSTALLPAR) -f $< -C $(<D) $(INSTALLCMD) $(MAKECMD.$(notdir $@)) 2>&1 | tee $(<D)/log.install
@mkdir -p $(@D)
@touch $@
@echo 'done'
--
2.45.2

View File

@ -0,0 +1,41 @@
From 3d81d23118aab95214e24ccc81eff61ac245a1ac Mon Sep 17 00:00:00 2001
From: Thomas Fitzsimmons <fitzsim@redhat.com>
Date: Wed, 20 Mar 2024 13:01:47 -0400
Subject: [PATCH] devkit: Remove .comment sections from sysroot objects
Otherwise the comment sections of C runtime objects, including those
in static libraries like libc_nonshared.a, contribute RPM package
version strings to the .comment section in devkit-produced binaries
and libraries. These RPM package strings change frequently, even
across minor toolchain updates. Their presence interferes when
comparing binaries built with devkits that use different sysroot RPM
package sets.
---
make/devkit/Tools.gmk | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/make/devkit/Tools.gmk b/make/devkit/Tools.gmk
index b6f895f5a25..37ea1a6a287 100644
--- a/make/devkit/Tools.gmk
+++ b/make/devkit/Tools.gmk
@@ -324,6 +324,9 @@ $(foreach p,$(RPM_FILE_LIST),$(eval $(call unrpm,$(p))))
# have it anyway, but just to make sure...
# Patch libc.so and libpthread.so to force linking against libraries in sysroot
# and not the ones installed on the build machine.
+# Remove comment sections from static libraries and C runtime objects
+# to prevent leaking RHEL-specific package versions into
+# devkit-produced binaries.
$(libs) : $(rpms)
@echo Patching libc and pthreads
@(for f in `find $(SYSROOT) -name libc.so -o -name libpthread.so`; do \
@@ -333,6 +336,7 @@ $(libs) : $(rpms)
-e 's|/lib/||g' ) > $$f.tmp ; \
mv $$f.tmp $$f ; \
done)
+ @find $(SYSROOT) -name '*.[ao]' -exec objcopy --remove-section .comment '{}' ';'
@mkdir -p $(SYSROOT)/usr/lib
@touch $@
--
2.45.2

View File

@ -0,0 +1,35 @@
From c370e1194c707f3f6c470e147ec497cc4e76957e Mon Sep 17 00:00:00 2001
From: Thomas Fitzsimmons <fitzsim@redhat.com>
Date: Fri, 22 Mar 2024 16:03:17 -0400
Subject: [PATCH] Tools.gmk: Configure binutils with
--enable-deterministic-archives
---
make/devkit/Tools.gmk | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/make/devkit/Tools.gmk b/make/devkit/Tools.gmk
index 37ea1a6a287..22c6007000b 100644
--- a/make/devkit/Tools.gmk
+++ b/make/devkit/Tools.gmk
@@ -445,6 +445,9 @@ endif
# Makefile creation. Simply run configure in build dir.
# Setting CFLAGS to -O2 generates a much faster ld.
+# Use --enable-deterministic-archives so that make targets that
+# generate "ar" archives, such as "static-libs-image", produce
+# deterministic .a files.
$(bfdmakes) \
$(BUILDDIR)/$(binutils_ver)/Makefile \
: $(BINUTILS_CFG)
@@ -459,6 +462,7 @@ $(BUILDDIR)/$(binutils_ver)/Makefile \
--with-sysroot=$(SYSROOT) \
--disable-nls \
--program-prefix=$(TARGET)- \
+ --enable-deterministic-archives \
--enable-multilib \
--enable-threads \
--enable-plugins \
--
2.45.2

View File

@ -0,0 +1,35 @@
From 5958274571b957617d0572101a92217fd5b2f312 Mon Sep 17 00:00:00 2001
From: Andrew Hughes <gnu.andrew@redhat.com>
Date: Wed, 27 Nov 2024 17:04:19 +0000
Subject: [PATCH] Tools.gmk: Add --enable-linker-build-id to gcc build
This causes --build-id to be passed to the linker, and the
.note.gnu.build-id section is added (OPENJDK-3068)
---
make/devkit/Tools.gmk | 3 +++
1 file changed, 3 insertions(+)
diff --git a/make/devkit/Tools.gmk b/make/devkit/Tools.gmk
index 22c6007000b..57d48ec5114 100644
--- a/make/devkit/Tools.gmk
+++ b/make/devkit/Tools.gmk
@@ -539,6 +539,8 @@ endif
# skip native language.
# and link and assemble with the binutils we created
# earlier, so --with-gnu*
+# Add --enable-linker-build-id so the .note.gnu.build-id
+# section is added by the linker (OPENJDK-3068)
$(BUILDDIR)/$(gcc_ver)/Makefile \
: $(GCC_CFG)
$(info Configuring $@. Log in $(@D)/log.config)
@@ -557,6 +559,7 @@ $(BUILDDIR)/$(gcc_ver)/Makefile \
--with-mpfr=$(PREFIX) \
--with-gmp=$(PREFIX) \
--with-mpc=$(PREFIX) \
+ --enable-linker-build-id \
) 2>&1 | tee $(@D)/log.config
@echo 'done'
--
2.45.2

View File

@ -0,0 +1,38 @@
From 2617c050a909265444b32063b2d271eca42dcaa6 Mon Sep 17 00:00:00 2001
From: Andrew Hughes <gnu.andrew@redhat.com>
Date: Fri, 17 Jan 2025 21:11:01 +0000
Subject: [PATCH] Tools.gmk: Exclude systemtap-sdt-devel on s390x & ppc64*
There is no DTrace support on s390x (JDK-8305174) and ppc64
(JDK-8304867) so we don't need the RPMs. They also cause issues with
static linkage of libstdc++.a on s390x. It fails with 'error:
relocation refers to local symbol "" [9], which is defined in a
discarded section'.
Resolves: OPENJDK-3070
---
make/devkit/Tools.gmk | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/make/devkit/Tools.gmk b/make/devkit/Tools.gmk
index 57d48ec5114..07928f69ceb 100644
--- a/make/devkit/Tools.gmk
+++ b/make/devkit/Tools.gmk
@@ -219,9 +219,13 @@ RPM_LIST := \
zlib zlib-devel \
libffi libffi-devel \
fontconfig fontconfig-devel \
- systemtap-sdt-devel \
#
+# Only include SystemTap on supported architectures
+ifeq ($(filter ppc64 ppc64le s390x, $(ARCH)), )
+ RPM_LIST += systemtap-sdt-devel
+endif
+
##########################################################################################
# Define common directories and files
--
2.45.2

View File

@ -0,0 +1,33 @@
From 9766818f55726cea630b432f09cce8f9c17c014d Mon Sep 17 00:00:00 2001
From: Andrew Hughes <gnu.andrew@redhat.com>
Date: Fri, 17 Jan 2025 21:27:58 +0000
Subject: [PATCH] Tools.gmk: Use update repository on RHEL rather than GA
It looks like we were using 7.6 & 7.9 GA repositories rather than
the latest updates.
Resolves: OPENJDK-3589
---
make/devkit/Tools.gmk | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/make/devkit/Tools.gmk b/make/devkit/Tools.gmk
index 07928f69ceb..5b39560ab11 100644
--- a/make/devkit/Tools.gmk
+++ b/make/devkit/Tools.gmk
@@ -64,10 +64,10 @@ ifeq ($(BASE_OS), OL)
endif
else ifeq ($(BASE_OS), RHEL)
ifeq ($(ARCH), aarch64)
- BASE_URL := https://download.eng.brq.redhat.com/rhel-7/rel-eng/RHEL-7/latest-RHEL-ALT-7/compose/Server/$(ARCH)/os/Packages/
+ BASE_URL := https://download.eng.brq.redhat.com/rhel-7/rel-eng/updates/RHEL-ALT-7/latest-RHEL-ALT-7/compose/Server/$(ARCH)/os/Packages/
LINUX_VERSION := RHEL7.6
else
- BASE_URL := https://download.eng.brq.redhat.com/rhel-7/rel-eng/RHEL-7/latest-RHEL-7/compose/Server/$(ARCH)/os/Packages/
+ BASE_URL := https://download.eng.brq.redhat.com/rhel-7/rel-eng/updates/RHEL-7/latest-RHEL-7/compose/Server/$(ARCH)/os/Packages/
LINUX_VERSION := RHEL7.9
endif
else ifeq ($(BASE_OS), Fedora)
--
2.45.2

View File

@ -3,6 +3,295 @@ Key:
JDK-X - https://bugs.openjdk.java.net/browse/JDK-X
CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
New in release OpenJDK 21.0.6 (2025-01-21):
===========================================
Live versions of these release notes can be found at:
* https://bit.ly/openjdk2106
* CVEs
- CVE-2025-21502
* Changes
- JDK-6942632: Hotspot should be able to use more than 64 logical processors on Windows
- JDK-8028127: Regtest java/security/Security/SynchronizedAccess.java is incorrect
- JDK-8195675: Call to insertText with single character from custom Input Method ignored
- JDK-8207908: JMXStatusTest.java fails assertion intermittently
- JDK-8225220: When the Tab Policy is checked,the scroll button direction displayed incorrectly.
- JDK-8240343: JDI stopListening/stoplis001 "FAILED: listening is successfully stopped without starting listening"
- JDK-8283214: [macos] Screen magnifier does not show the magnified text for JComboBox
- JDK-8296787: Unify debug printing format of X.509 cert serial numbers
- JDK-8296972: [macos13] java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java: getExtendedState() != 6 as expected.
- JDK-8306446: java/lang/management/ThreadMXBean/Locks.java transient failures
- JDK-8308429: jvmti/StopThread/stopthrd007 failed with "NoClassDefFoundError: Could not initialize class jdk.internal.misc.VirtualThreads"
- JDK-8309218: java/util/concurrent/locks/Lock/OOMEInAQS.java still times out with ZGC, Generational ZGC, and SerialGC
- JDK-8311301: MethodExitTest may fail with stack buffer overrun
- JDK-8311656: Shenandoah: Unused ShenandoahSATBAndRemarkThreadsClosure::_claim_token
- JDK-8312518: [macos13] setFullScreenWindow() shows black screen on macOS 13 & above
- JDK-8313374: --enable-ccache's CCACHE_BASEDIR breaks builds
- JDK-8313878: Exclude two compiler/rtm/locking tests on ppc64le
- JDK-8315701: [macos] Regression: KeyEvent has different keycode on different keyboard layouts
- JDK-8316428: G1: Nmethod count statistics only count last code root set iterated
- JDK-8316893: Compile without -fno-delete-null-pointer-checks
- JDK-8316895: SeenThread::print_action_queue called on a null pointer
- JDK-8316907: Fix nonnull-compare warnings
- JDK-8317116: Provide layouts for multiple test UI in PassFailJFrame
- JDK-8317575: AArch64: C2_MacroAssembler::fast_lock uses rscratch1 for cmpxchg result
- JDK-8318105: [jmh] the test java.security.HSS failed with 2 active threads
- JDK-8318442: java/net/httpclient/ManyRequests2.java fails intermittently on Linux
- JDK-8319640: ClassicFormat::parseObject (from DateTimeFormatter) does not conform to the javadoc and may leak DateTimeException
- JDK-8319673: Few security tests ignore VM flags
- JDK-8319678: Several tests from corelibs areas ignore VM flags
- JDK-8319960: RISC-V: compiler/intrinsics/TestInteger/LongUnsignedDivMod.java failed with "counts: Graph contains wrong number of nodes"
- JDK-8319970: AArch64: enable tests compiler/intrinsics/Test(Long|Integer)UnsignedDivMod.java on aarch64
- JDK-8319973: AArch64: Save and restore FPCR in the call stub
- JDK-8320192: SHAKE256 does not work correctly if n >= 137
- JDK-8320397: RISC-V: Avoid passing t0 as temp register to MacroAssembler:: cmpxchg_obj_header/cmpxchgptr
- JDK-8320575: generic type information lost on mandated parameters of record's compact constructors
- JDK-8320586: update manual test/jdk/TEST.groups
- JDK-8320665: update jdk_core at open/test/jdk/TEST.groups
- JDK-8320673: PageFormat/CustomPaper.java has no Pass/Fail buttons; multiple instructions
- JDK-8320682: [AArch64] C1 compilation fails with "Field too big for insn"
- JDK-8320892: AArch64: Restore FPU control state after JNI
- JDK-8321299: runtime/logging/ClassLoadUnloadTest.java doesn't reliably trigger class unloading
- JDK-8321470: ThreadLocal.nextHashCode can be static final
- JDK-8321474: TestAutoCreateSharedArchiveUpgrade.java should be updated with JDK 21
- JDK-8321543: Update NSS to version 3.96
- JDK-8321550: Update several runtime/cds tests to use vm flags or mark as flagless
- JDK-8321616: Retire binary test vectors in test/jdk/java/util/zip/ZipFile
- JDK-8321940: Improve CDSHeapVerifier in handling of interned strings
- JDK-8322166: Files.isReadable/isWritable/isExecutable expensive when file does not exist
- JDK-8322754: click JComboBox when dialog about to close causes IllegalComponentStateException
- JDK-8322809: SystemModulesMap::classNames and moduleNames arrays do not match the order
- JDK-8322830: Add test case for ZipFile opening a ZIP with no entries
- JDK-8323562: SaslInputStream.read() may return wrong value
- JDK-8323688: C2: Fix UB of jlong overflow in PhaseIdealLoop::is_counted_loop()
- JDK-8324841: PKCS11 tests still skip execution
- JDK-8324861: Exceptions::wrap_dynamic_exception() doesn't have ResourceMark
- JDK-8325038: runtime/cds/appcds/ProhibitedPackage.java can fail with UseLargePages
- JDK-8325399: Add tests for virtual threads doing Selector operations
- JDK-8325506: Ensure randomness is only read from provided SecureRandom object
- JDK-8325525: Create jtreg test case for JDK-8325203
- JDK-8325610: CTW: Add StressIncrementalInlining to stress options
- JDK-8325762: Use PassFailJFrame.Builder.splitUI() in PrintLatinCJKTest.java
- JDK-8325851: Hide PassFailJFrame.Builder constructor
- JDK-8325906: Problemlist vmTestbase/vm/mlvm/meth/stress/compiler/deoptimize/Test.java#id1 until JDK-8320865 is fixed
- JDK-8326100: DeflaterDictionaryTests should use Deflater.getBytesWritten instead of Deflater.getTotalOut
- JDK-8326121: vmTestbase/gc/g1/unloading/tests/unloading_keepRef_rootClass_inMemoryCompilation_keep_cl failed with Full gc happened. Test was useless.
- JDK-8326611: Clean up vmTestbase/nsk/stress/stack tests
- JDK-8326898: NSK tests should listen on loopback addresses only
- JDK-8327924: Simplify TrayIconScalingTest.java
- JDK-8328021: Convert applet test java/awt/List/SetFontTest/SetFontTest.html to main program
- JDK-8328242: Add a log area to the PassFailJFrame
- JDK-8328303: 3 JDI tests timed out with UT enabled
- JDK-8328379: Convert URLDragTest.html applet test to main
- JDK-8328402: Implement pausing functionality for the PassFailJFrame
- JDK-8328619: sun/management/jmxremote/bootstrap/SSLConfigFilePermissionTest.java failed with BindException: Address already in use
- JDK-8328665: serviceability/jvmti/vthread/PopFrameTest failed with a timeout
- JDK-8328723: IP Address error when client enables HTTPS endpoint check on server socket
- JDK-8329353: ResolvedReferencesNotNullTest.java failed with Incorrect resolved references array, quxString should not be archived
- JDK-8329533: TestCDSVMCrash fails on libgraal
- JDK-8330045: Enhance array handling
- JDK-8330278: Have SSLSocketTemplate.doClientSide use loopback address
- JDK-8330621: Make 5 compiler tests use ProcessTools.executeProcess
- JDK-8331391: Enhance the keytool code by invoking the buildTrustedCerts method for essential options
- JDK-8331393: AArch64: u32 _partial_subtype_ctr loaded/stored as 64
- JDK-8331864: Update Public Suffix List to 1cbd6e7
- JDK-8332112: Update nsk.share.Log to don't print summary during VM shutdown hook
- JDK-8332340: Add JavacBench as a test case for CDS
- JDK-8332461: ubsan : dependencies.cpp:906:3: runtime error: load of value 4294967295, which is not a valid value for type 'DepType'
- JDK-8332724: x86 MacroAssembler may over-align code
- JDK-8332777: Update JCStress test suite
- JDK-8332866: Crash in ImageIO JPEG decoding when MEM_STATS in enabled
- JDK-8332901: Select{Current,New}ItemTest.java for Choice don't open popup on macOS
- JDK-8333098: ubsan: bytecodeInfo.cpp:318:59: runtime error: division by zero
- JDK-8333108: Update vmTestbase/nsk/share/DebugeeProcess.java to don't use finalization
- JDK-8333144: docker tests do not work when ubsan is configured
- JDK-8333235: vmTestbase/nsk/jdb/kill/kill001/kill001.java fails with C1
- JDK-8333248: VectorGatherMaskFoldingTest.java failed when maximum vector bits is 64
- JDK-8333317: Test sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java failed with: Invalid ECDH ServerKeyExchange signature
- JDK-8333427: langtools/tools/javac/newlines/NewLineTest.java is failing on Japanese Windows
- JDK-8333728: ubsan: shenandoahFreeSet.cpp:1347:24: runtime error: division by zero
- JDK-8333754: Add a Test against ECDSA and ECDH NIST Test vector
- JDK-8333824: Unused ClassValue in VarHandles
- JDK-8334057: JLinkReproducibleTest.java support receive test.tool.vm.opts
- JDK-8334405: java/nio/channels/Selector/SelectWithConsumer.java#id0 failed in testWakeupDuringSelect
- JDK-8334475: UnsafeIntrinsicsTest.java#ZGenerationalDebug assert(!assert_on_failure) failed: Has low-order bits set
- JDK-8334560: [PPC64]: postalloc_expand_java_dynamic_call_sched does not copy all fields
- JDK-8334562: Automate com/sun/security/auth/callback/TextCallbackHandler/Default.java test
- JDK-8334567: [test] runtime/os/TestTracePageSizes move ppc handling
- JDK-8334719: (se) Deferred close of SelectableChannel may result in a Selector doing the final close before concurrent I/O on channel has completed
- JDK-8335142: compiler/c1/TestTraceLinearScanLevel.java occasionally times out with -Xcomp
- JDK-8335172: Add manual steps to run security/auth/callback/TextCallbackHandler/Password.java test
- JDK-8335267: [XWayland] move screencast tokens from .awt to .java folder
- JDK-8335344: test/jdk/sun/security/tools/keytool/NssTest.java fails to compile
- JDK-8335428: Enhanced Building of Processes
- JDK-8335449: runtime/cds/DeterministicDump.java fails with File content different at byte ...
- JDK-8335530: Java file extension missing in AuthenticatorTest
- JDK-8335664: Parsing jsr broken: assert(bci>= 0 && bci < c->method()->code_size()) failed: index out of bounds
- JDK-8335709: C2: assert(!loop->is_member(get_loop(useblock))) failed: must be outside loop
- JDK-8335912, JDK-8337499: Add an operation mode to the jar command when extracting to not overwriting existing files
- JDK-8336240: Test com/sun/crypto/provider/Cipher/DES/PerformanceTest.java fails with java.lang.ArithmeticException
- JDK-8336257: Additional tests in jmxremote/startstop to match on PID not app name
- JDK-8336315: tools/jpackage/windows/WinChildProcessTest.java Failed: Check is calculator process is alive
- JDK-8336413: gtk headers : Fix typedef redeclaration of GMainContext and GdkPixbuf
- JDK-8336564: Enhance mask blit functionality redux
- JDK-8336640: Shenandoah: Parallel worker use in parallel_heap_region_iterate
- JDK-8336854: CAInterop.java#actalisauthenticationrootca conflicted with /manual and /timeout
- JDK-8336911: ZGC: Division by zero in heuristics after JDK-8332717
- JDK-8337066: Repeated call of StringBuffer.reverse with double byte string returns wrong result
- JDK-8337067: Test runtime/classFileParserBug/Bad_NCDFE_Msg.java won't compile
- JDK-8337320: Update ProblemList.txt with tests known to fail on XWayland
- JDK-8337331: crash: pinned virtual thread will lead to jvm crash when running with the javaagent option
- JDK-8337410: The makefiles should set problemlist and adjust timeout basing on the given VM flags
- JDK-8337780: RISC-V: C2: Change C calling convention for sp to NS
- JDK-8337810: ProblemList BasicDirectoryModel/LoaderThreadCount.java on Windows
- JDK-8337826: Improve logging in OCSPTimeout and SimpleOCSPResponder to help diagnose JDK-8309754
- JDK-8337851: Some tests have name which confuse jtreg
- JDK-8337876: [IR Framework] Add support for IR tests with @Stable
- JDK-8337966: (fs) Files.readAttributes fails with Operation not permitted on older docker releases
- JDK-8338058: map_or_reserve_memory_aligned Windows enhance remap assertion
- JDK-8338101: remove old remap assertion in map_or_reserve_memory_aligned after JDK-8338058
- JDK-8338109: java/awt/Mouse/EnterExitEvents/ResizingFrameTest.java duplicate in ProblemList
- JDK-8338110: Exclude Fingerprinter::do_type from ubsan checks
- JDK-8338112: Test testlibrary_tests/ir_framework/tests/TestPrivilegedMode.java fails with release build
- JDK-8338344: Test TestPrivilegedMode.java intermittent fails java.lang.NoClassDefFoundError: jdk/test/lib/Platform
- JDK-8338380: Update TLSCommon/interop/AbstractServer to specify an interface to listen for connections
- JDK-8338389: [JFR] Long strings should be added to the string pool
- JDK-8338402: GHA: some of bundles may not get removed
- JDK-8338449: ubsan: division by zero in sharedRuntimeTrans.cpp
- JDK-8338550: Do libubsan1 installation in test container only if requested
- JDK-8338748: [17u,21u] Test Disconnect.java compile error: cannot find symbol after JDK-8299813
- JDK-8338751: ConfigureNotify behavior has changed in KWin 6.2
- JDK-8338759: Add extra diagnostic to java/net/InetAddress/ptr/Lookup.java
- JDK-8338924: C1: assert(0 <= i && i < _len) failed: illegal index 5 for length 5
- JDK-8339080: Bump update version for OpenJDK: jdk-21.0.6
- JDK-8339180: Enhanced Building of Processes: Follow-on Issue
- JDK-8339248: RISC-V: Remove li64 macro assembler routine and related code
- JDK-8339384: Unintentional IOException in jdk.jdi module when JDWP end of stream occurs
- JDK-8339386: Assertion on AIX - original PC must be in the main code section of the compiled method
- JDK-8339416: [s390x] Provide implementation for resolve_global_jobject
- JDK-8339487: ProcessHandleImpl os_getChildren sysctl call - retry in case of ENOMEM and enhance exception message
- JDK-8339548: GHA: RISC-V: Use Debian snapshot archive for bootstrap
- JDK-8339560: Unaddressed comments during code review of JDK-8337664
- JDK-8339591: Mark jdk/jshell/ExceptionMessageTest.java intermittent
- JDK-8339637: (tz) Update Timezone Data to 2024b
- JDK-8339644: Improve parsing of Day/Month in tzdata rules
- JDK-8339648: ZGC: Division by zero in rule_major_allocation_rate
- JDK-8339725: Concurrent GC crashed due to GetMethodDeclaringClass
- JDK-8339731: java.desktop/share/classes/javax/swing/text/html/default.css typo in margin settings
- JDK-8339741: RISC-V: C ABI breakage for integer on stack
- JDK-8339787: Add some additional diagnostic output to java/net/ipv6tests/UdpTest.java
- JDK-8339803: Acknowledge case insensitive unambiguous keywords in tzdata files
- JDK-8339892: Several security shell tests don't set TESTJAVAOPTS
- JDK-8340007: Refactor KeyEvent/FunctionKeyTest.java
- JDK-8340008: KeyEvent/KeyTyped/Numpad1KeyTyped.java has 15 seconds timeout
- JDK-8340109: Ubsan: ciEnv.cpp:1660:65: runtime error: member call on null pointer of type 'struct CompileTask'
- JDK-8340210: Add positionTestUI() to PassFailJFrame.Builder
- JDK-8340214: C2 compilation asserts with "no node with a side effect" in PhaseIdealLoop::try_sink_out_of_loop
- JDK-8340230: Tests crash: assert(is_in_encoding_range || k->is_interface() || k->is_abstract()) failed: sanity
- JDK-8340306: Add border around instructions in PassFailJFrame
- JDK-8340308: PassFailJFrame: Make rows default to number of lines in instructions
- JDK-8340365: Position the first window of a window list
- JDK-8340383: VM issues warning failure to find kernel32.dll on Windows nanoserver
- JDK-8340387: Update OS detection code to recognize Windows Server 2025
- JDK-8340398: [JVMCI] Unintuitive behavior of UseJVMCICompiler option
- JDK-8340418: GHA: MacOS AArch64 bundles can be removed prematurely
- JDK-8340461: Amend description for logArea
- JDK-8340466: Add description for PassFailJFrame constructors
- JDK-8340552: Harden TzdbZoneRulesCompiler against missing zone names
- JDK-8340590: RISC-V: C2: Small improvement to vector gather load and scatter store
- JDK-8340632: ProblemList java/nio/channels/DatagramChannel/ for Macos
- JDK-8340657: [PPC64] SA determines wrong unextendedSP
- JDK-8340684: Reading from an input stream backed by a closed ZipFile has no test coverage
- JDK-8340785: Update description of PassFailJFrame and samples
- JDK-8340799: Add border inside instruction frame in PassFailJFrame
- JDK-8340801: Disable ubsan checks in some awt/2d coding
- JDK-8340804: doc/building.md update Xcode instructions to note that full install is required
- JDK-8340812: LambdaForm customization via MethodHandle::updateForm is not thread safe
- JDK-8340815: Add SECURITY.md file
- JDK-8340899: Remove wildcard bound in PositionWindows.positionTestWindows
- JDK-8340923: The class LogSelection copies uninitialized memory
- JDK-8341024: [test] build/AbsPathsInImage.java fails with OOM when using ubsan-enabled binaries
- JDK-8341146: RISC-V: Unnecessary fences used for load-acquire in template interpreter
- JDK-8341235: Improve default instruction frame title in PassFailJFrame
- JDK-8341261: Tests assume UnlockExperimentalVMOptions is disabled by default
- JDK-8341562: RISC-V: Generate comments in -XX:+PrintInterpreter to link to source code
- JDK-8341688: Aarch64: Generate comments in -XX:+PrintInterpreter to link to source code
- JDK-8341722: Fix some warnings as errors when building on Linux with toolchain clang
- JDK-8341806: Gcc version detection failure on Alinux3
- JDK-8341927: Replace hardcoded security providers with new test.provider.name system property
- JDK-8341997: Tests create files in src tree instead of scratch dir
- JDK-8342014: RISC-V: ZStoreBarrierStubC2 clobbers rflags
- JDK-8342063: [21u][aix] Backport introduced redundant line in ProblemList
- JDK-8342181: Update tests to use stronger Key and Salt size
- JDK-8342183: Update tests to use stronger algorithms and keys
- JDK-8342188: Update tests to use stronger key parameters and certificates
- JDK-8342409: [s390x] C1 unwind_handler fails to unlock synchronized methods with LM_MONITOR
- JDK-8342496: C2/Shenandoah: SEGV in compiled code when running jcstress
- JDK-8342578: GHA: RISC-V: Bootstrap using Debian snapshot is still failing
- JDK-8342607: Enhance register printing on x86_64 platforms
- JDK-8342669: [21u] Fix TestArrayAllocatorMallocLimit after backport of JDK-8315097
- JDK-8342681: TestLoadBypassesNullCheck.java fails improperly specified VM option
- JDK-8342701: [PPC64] TestOSRLotsOfLocals.java crashes
- JDK-8342765: [21u] RTM tests assume UnlockExperimentalVMOptions is disabled by default
- JDK-8342823: Ubsan: ciEnv.cpp:1614:65: runtime error: member call on null pointer of type 'struct CompileTask'
- JDK-8342905: Thread.setContextClassloader from thread in FJP commonPool task no longer works after JDK-8327501 redux
- JDK-8342962: [s390x] TestOSRLotsOfLocals.java crashes
- JDK-8343285: java.lang.Process is unresponsive and CPU usage spikes to 100%
- JDK-8343474: [updates] Customize README.md to specifics of update project
- JDK-8343506: [s390x] multiple test failures with ubsan
- JDK-8343724: [PPC64] Disallow OptoScheduling
- JDK-8343848: Fix typo of property name in TestOAEPPadding after 8341927
- JDK-8343877: Test AsyncClose.java intermittent fails - Socket.getInputStream().read() wasn't preempted
- JDK-8343884: [s390x] Disallow OptoScheduling
- JDK-8343923: GHA: Switch to Xcode 15 on MacOS AArch64 runners
- JDK-8344164: [s390x] ProblemList hotspot/jtreg/runtime/NMT/VirtualAllocCommitMerge.java
- JDK-8344628: Test TestEnableJVMCIProduct.java run with virtual thread intermittent fails
- JDK-8344993: [21u] [REDO] Backport JDK-8327501 and JDK-8328366 to JDK 21
- JDK-8345055: [21u] ProblemList failing rtm tests on ppc platforms
- JDK-8347010: [21u] Remove designator DEFAULT_PROMOTED_VERSION_PRE=ea for release 21.0.6
Notes on individual issues:
===========================
core-libs/java.util.jar:
JDK-8335912/JDK-8337499: Add an operation mode to the jar command when extracting to not overwriting existing files
===================================================================================================================
In previous OpenJDK releases, when the jar tool extracted files from
an archive, it would overwrite any existing files with the same name
in the target directory. With this release, a new option ('-k' or
'--keep-old-files') may be specified so that existing files are not
overwritten.
The option may be specified in short or long option form, as in the
following examples:
* jar xkf foo.jar
* jar --extract --keep-old-files --file foo.jar
By default, the old behaviour remains in place and files will be
overwritten.
core-libs/java.time:
JDK-8339637: (tz) Update Timezone Data to 2024b
===============================================
This OpenJDK release upgrades the in-tree copy of the IANA timezone
database to 2024b. This timezone update is primarily concerned with
improving historical data for Mexico, Monogolia and Portugal. It also
makes Asia/Choibalsan an alias for Asia/Ulaanbaatar and makes the MET
timezone the same as CET.
The 2024b update also makes a number of legacy timezone IDs equal to
geographical names rather than fixed offsets, as follows:
* EST => America/Panama instead of -5:00
* MST => America/Phoenix instead of -7:00
* HST => Pacific/Honolulu instead of -10:00
For long term support releases of OpenJDK, this change is overridden
locally to retain the existing fixed offset mapping.
New in release OpenJDK 21.0.5 (2024-10-15):
===========================================
Live versions of these release notes can be found at:

View File

@ -37,3 +37,10 @@ need to be modified if the version or rpmrelease values are changed in
To reduce the number of RPMs involved, the `fastdebug` and `slowdebug`
builds may be disabled using `--without fastdebug` and `--without
slowdebug`.
By default, the portable build on RHEL also uses a "devkit" (a
toolchain and system libraries) to build. This aids reproducibility
by removing build differences caused by differing system toolchains
and libraries. This dependency can be dropped by defining 'centos' to
a non-zero value (e.g. --define='centos 1') or a devkit can be built
using the `openjdk-devkit.specfile` and associated patches.

View File

@ -24,8 +24,7 @@
# Enable static library builds by default.
%bcond_without staticlibs
# Build a fresh libjvm.so for use in a copy of the bootstrap JDK
# Turned off until 21.0.5+1 or higher is in the buildroot
%bcond_with fresh_libjvm
%bcond_without fresh_libjvm
# Build with system libraries
%bcond_with system_libs
@ -326,7 +325,7 @@
# New Version-String scheme-style defines
%global featurever 21
%global interimver 0
%global updatever 5
%global updatever 6
%global patchver 0
# buildjdkver is usually same as %%{featurever},
# but in time of bootstrap of next jdk, it is featurever-1,
@ -390,7 +389,7 @@
%global origin_nice OpenJDK
%global top_level_dir_name %{vcstag}
%global top_level_dir_name_backup %{top_level_dir_name}-backup
%global buildver 11
%global buildver 7
%global rpmrelease 1
#%%global tagsuffix %%{nil}
# Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit
@ -700,7 +699,7 @@ BuildRequires: devtoolset-%{dtsversion}-gcc
BuildRequires: devtoolset-%{dtsversion}-gcc-c++
%else
%ifarch %{devkit_arches}
BuildRequires: %{devkit_name} >= 1.0-6
BuildRequires: %{devkit_name} >= 1.0-9
%else
# Earlier versions have a bug in tree vectorization on PPC
BuildRequires: gcc >= 4.8.3-8
@ -728,7 +727,7 @@ BuildRequires: zip
BuildRequires: tar
BuildRequires: unzip
BuildRequires: javapackages-filesystem
BuildRequires: java-%{featurever}-%{origin}%{?pkgos:-%{pkgos}}-devel
BuildRequires: java-%{buildjdkver}-%{origin}%{?pkgos:-%{pkgos}}-devel
# Zero-assembler build requirement
%ifarch %{zero_arches}
BuildRequires: libffi-devel
@ -1084,7 +1083,10 @@ EXTRA_CPP_FLAGS="$(echo ${EXTRA_CPP_FLAGS} | sed -e 's|-mstackrealign|-mincoming
%ifarch %{devkit_arches}
# Remove annobin plugin reference which isn't available in the devkit
EXTRA_CFLAGS="$(echo ${EXTRA_CFLAGS} | sed -e 's|-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1||')"
EXTRA_CPP_FLAGS="$(echo ${EXTRA_CFLAGS} | sed -e 's|-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1||')"
EXTRA_CPP_FLAGS="$(echo ${EXTRA_CPP_FLAGS} | sed -e 's|-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1||')"
# Force DWARF 4 for compatibility
EXTRA_CFLAGS="${EXTRA_CFLAGS} -gdwarf-4"
EXTRA_CPP_FLAGS="${EXTRA_CPP_FLAGS} -gdwarf-4"
%endif
export EXTRA_CFLAGS EXTRA_CPP_FLAGS
@ -1939,6 +1941,23 @@ done
%endif
%changelog
* Sat Jan 11 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.6.0.7-1
- Update to jdk-21.0.6+7 (GA)
- Update release notes to 21.0.6+7
- Build with DWARF 4 debuginfo for compatibility with older toolchains
- Check for CentOS being defined to determine use of devkit
- Bump devkit requirement to 1.0-9 to bring in updated sysroot
- Drop workaround of building s390x with dynamic libstdc++
- Turn on fresh_libjvm now 21.0.5 with JDK-8329088 is released
- ** This tarball is embargoed until 2025-01-21 @ 1pm PT. **
- Resolves: OPENJDK-3556
- Resolves: OPENJDK-3590
- Related: OPENJDK-3070
* Thu Nov 28 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.5.0.11-2
- Bump devkit requirement to 1.0-8 to bring in the gcc with --enable-linker-build-id
- Related: OPENJDK-3068
* Wed Oct 16 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.5.0.11-1
- Update to jdk-21.0.5+11 (GA)
- Update release notes to 21.0.5+11
@ -1992,7 +2011,7 @@ done
- Update release notes to 21.0.4+5
- Move unstripped, misc and doc tarball handling into normal build / no suffix blocks
- Limit Java only tests to one architecture using jdk_test_arch
- Drop unneeded tzdata-java build dependency following f854bb3955fb57bba4e83d09813e9cfd0e81079e
- Drop unneeded tzdata-java build dependency following 3e3cf8fa2df7bac2f6a60a0ddd596ec39228a3e1
- Resolves: OPENJDK-3133
- Resolves: OPENJDK-3237
- Resolves: OPENJDK-3182
@ -2011,7 +2030,6 @@ done
- Update to jdk-21.0.3+9 (GA)
- Update release notes to 21.0.3+9
- Switch to GA mode.
- Update buildjdkver to match the featurever
- ** This tarball is embargoed until 2024-04-16 @ 1pm PT. **
* Thu Apr 04 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.3.0.7-0.1.ea
@ -2106,10 +2124,6 @@ done
- Update release notes to 21.0.2+13
- Bump libpng version to 1.6.40 following JDK-8316030
- Bump HarfBuzz version to 8.2.2 following JDK-8313643
- pandoc is only available on RHEL/CentOS 8
- Check for CentOS being defined to determine use of devkit
- Set buildjdkver to 20 until OpenJDK 21 is available in the buildroot
- Use featurever for JDK build dependencies
* Mon Mar 11 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.1.0.12-2
- Use a devkit to build on architectures where we have one (s390x, aarch64, ppc64le, x86_64)
@ -2119,7 +2133,6 @@ done
- Use system gdb for both builds as devkit version fails (needs devkit libraries, then JDK segfaults with them)
- Filter out annobin plugin when using the devkit
- Drop static libstdc++ build dependency on devkit builds as it should come from the devkit
- Disable devkit build on CentOS where it is unavailable
- Introduce tar_opts to avoid repetition of lengthy tar creation options
* Thu Feb 08 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:21.0.1.0.12-2
@ -2141,7 +2154,7 @@ done
* Fri Oct 27 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.0.0.35-4
- Rebuild jmods using the stripped binaries in release builds
- Make sure the unstripped JDK is customised by the installjdk function
- Resolves: OPENJDK-3224
- Resolves: OPENJDK-1974
* Thu Oct 26 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.0.0.35-3
- Re-enable SystemTap support and perform only substitutions possible without final NVR available
@ -2153,7 +2166,6 @@ done
* Thu Aug 24 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.0.0.35-2
- Update documentation (README.md, add missing JEP to release notes)
- Replace alt-java patch with a binary separate from the JDK
- Adapt alt-java test to new binary where there is always a set_speculation function
- Drop stale patches that are of little use any more:
- * nss.cfg has been disabled since early PKCS11 work and long superseded by FIPS work
- * No accessibility subpackage to warrant RH1648242 patch any more
@ -2177,21 +2189,18 @@ done
- Replace smoke test files used in the staticlibs test, as fdlibm was removed by JDK-8303798
- Related: rhbz#2192749
* Wed Aug 16 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:20.0.2.0.9-1
* Wed Aug 16 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:20.0.0.0.36-1
- Update to jdk-20.0.2+9
- Update release notes to 20.0.2+9
- Update system crypto policy & FIPS patch from new fips-20u tree
- Update generate_tarball.sh ICEDTEA_VERSION
- Update CLDR reference data following update to 42 (Rocky Mountain-Normalzeit => Rocky-Mountain-Normalzeit)
* Wed Aug 16 2023 Jiri Vanek <jvanek@redhat.com> - 1:20.0.2.0.9-1
* Wed Aug 16 2023 Jiri Vanek <jvanek@redhat.com> - 1:20.0.0.0.36-1
- Dropped JDK-8295447, JDK-8296239 & JDK-8299439 patches now upstream
- Adapted rh1750419-redhat_alt_java.patch
* Tue Aug 15 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:19.0.2.0.7-2
- Bump rpmrelease to rebuild for CentOS 9
* Tue Aug 15 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:19.0.2.0.7-1
* Tue Aug 15 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:19.0.1.0.10-1
- Update to jdk-19.0.2 release
- Update release notes to 19.0.2
- Rebase FIPS patches from fips-19u branch
@ -2200,9 +2209,6 @@ done
- Add local patches for JDK-8296239 & JDK-8299439 (Croatia Euro update) which are present in 8u, 11u & 17u releases
- Switch buildjdkver to java-21-openjdk
* Thu Aug 10 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:18.0.2.0.9-2
- Bump rpmrelease to rebuild for CentOS 9
* Thu Aug 10 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:18.0.2.0.9-1
- Update to jdk-18.0.2 release
- Update release notes to actually reflect OpenJDK 18
@ -2212,13 +2218,12 @@ done
- Automatically turn off building a fresh HotSpot first, if the bootstrap JDK is not the same major version as that being built
- Drop tzdata patches added for 17.0.7 which will eventually appear in the upstream tarball when we reach OpenJDK 21
- Disable tzdata tests until we are on the latest JDK and things are back in sync
- Related: rhbz#2192749
* Thu Aug 10 2023 Petra Alice Mikova <pmikova@redhat.com> - 1:18.0.0.0.37-1
- Update to ea version of jdk18
- Adjust rh1684077-openjdk_should_depend_on_pcsc-lite-libs_instead_of_pcsc-lite-devel.patch
* Mon May 15 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.7.0.7-3
- Bump rpmrelease to rebuild for CentOS 9
- Related: rhbz#2192749
* Mon May 15 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.7.0.7-2
- Create java-21-openjdk-portable package based on java-17-openjdk-portable

View File

@ -1,49 +0,0 @@
commit f21b0a990905afe79b56919a5119e2c06e29d61a
Author: Andrew John Hughes <gnu_andrew@member.fsf.org>
Date: Sat Oct 12 02:31:38 2024 +0100
Revert "8327501: Common ForkJoinPool prevents class unloading in some cases"
This reverts commit eb103b0e1abeeee19779cafc763d3d159030fb48.
diff --git a/src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java b/src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java
index 8aafda5312e..5e698b1540f 100644
--- a/src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java
+++ b/src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java
@@ -981,7 +981,9 @@ public class ForkJoinPool extends AbstractExecutorService {
boolean isCommon = (pool.workerNamePrefix == null);
@SuppressWarnings("removal")
SecurityManager sm = System.getSecurityManager();
- if (sm != null && isCommon)
+ if (sm == null)
+ return new ForkJoinWorkerThread(null, pool, true, false);
+ else if (isCommon)
return newCommonWithACC(pool);
else
return newRegularWithACC(pool);
diff --git a/test/jdk/java/util/concurrent/tck/ForkJoinPool9Test.java b/test/jdk/java/util/concurrent/tck/ForkJoinPool9Test.java
index a87aa7b916b..266c2a036fe 100644
--- a/test/jdk/java/util/concurrent/tck/ForkJoinPool9Test.java
+++ b/test/jdk/java/util/concurrent/tck/ForkJoinPool9Test.java
@@ -79,9 +79,6 @@ public class ForkJoinPool9Test extends JSR166TestCase {
assertSame(ForkJoinPool.commonPool(), ForkJoinTask.getPool());
Thread currentThread = Thread.currentThread();
- ClassLoader preexistingContextClassLoader =
- currentThread.getContextClassLoader();
-
Stream.of(systemClassLoader, null).forEach(cl -> {
if (randomBoolean())
// should always be permitted, without effect
@@ -98,11 +95,6 @@ public class ForkJoinPool9Test extends JSR166TestCase {
() -> System.getProperty("foo"),
() -> currentThread.setContextClassLoader(
classLoaderDistinctFromSystemClassLoader));
- else {
- currentThread.setContextClassLoader(classLoaderDistinctFromSystemClassLoader);
- assertSame(currentThread.getContextClassLoader(), classLoaderDistinctFromSystemClassLoader);
- currentThread.setContextClassLoader(preexistingContextClassLoader);
- }
// TODO ?
// if (haveSecurityManager
// && Thread.currentThread().getClass().getSimpleName()

View File

@ -0,0 +1,230 @@
# Spec file for building a devkit for OpenJDK builds
# We do not want debug packages
%global debug_package %{nil}
# Arch definitions from java-*-openjdk RPM
%global aarch64 aarch64 arm64 armv8
# x86 is not supported by OpenJDK 17
ExcludeArch: %{ix86}
# New Version-String scheme-style defines
%global featurever 21
%global interimver 0
%global updatever 5
%global patchver 0
%global buildver 11
# Define JDK versions
%global newjavaver %{featurever}.%{interimver}.%{updatever}.%{patchver}
%global javaver %{featurever}
# Strip up to 6 trailing zeros in newjavaver, as the JDK does, to get the correct version used in filenames
%global filever %(svn=%{newjavaver}; for i in 1 2 3 4 5 6 ; do svn=${svn%%.0} ; done; echo ${svn})
# The tag used to create the OpenJDK tarball
%global vcstag jdk-%{filever}+%{buildver}%{?tagsuffix:-%{tagsuffix}}
# Define milestone (EA for pre-releases, GA for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
%global is_ga 1
%if %{is_ga}
%global build_type GA
%global ea_designator ""
%global ea_designator_zip %{nil}
%global extraver %{nil}
%global eaprefix %{nil}
%else
%global build_type EA
%global ea_designator ea
%global ea_designator_zip -%{ea_designator}
%global extraver .%{ea_designator}
%global eaprefix 0.
%endif
# Date devkit RPMs were download
%global rpm_download_date 20250117
Name: openjdk-devkit
Version: 1.0
Release: 9%{?dist}
License: GPLv2
URL: http://openjdk.java.net/
Summary: OpenJDK Devkit
# The source tarball, generated using generate_source_tarball.sh
Source0: https://openjdk-sources.osci.io/openjdk%{featurever}/open%{vcstag}%{ea_designator_zip}.tar.xz
# The buildroot RPMs for each architecture
Source1: devkit-rpms-aarch64-%{rpm_download_date}.tar.xz
Source2: devkit-rpms-ppc64le-%{rpm_download_date}.tar.xz
Source3: devkit-rpms-s390x-%{rpm_download_date}.tar.xz
Source4: devkit-rpms-x86_64-%{rpm_download_date}.tar.xz
# Toolchain sources
Source5: binutils-2.39.tar.gz
Source6: gcc-11.3.0.tar.xz
Source7: gmp-6.2.1.tar.bz2
Source8: mpc-1.2.1.tar.gz
Source9: mpfr-4.1.1.tar.bz2
Source10: gdb-11.2.tar.xz
# Devkit patches; see https://github.com/rh-openjdk/jdk/tree/devkit
# To regenerate, use git format-patch -N jdk21u/master
# Add RHEL RPM URLs and turn off robots
Patch0: 0001-Allow-devkit-to-work-with-RHEL.patch
# Turn off multilib on x86_64
Patch1: 0002-Disable-multilib-on-x86_64.patch
# Improve build logging (OPENJDK-3071)
Patch2: 0003-Log-devkit-build-to-stdout.patch
# Remove .comment sections from sysroot objects
Patch3: 0004-devkit-Remove-.comment-sections-from-sysroot-objects.patch
# Configure binutils with --enable-deterministic-archives
Patch4: 0005-Tools.gmk-Configure-binutils-with-enable-determinist.patch
# Configure gcc with --enable-linker-build-id (OPENJDK-3068)
Patch5: 0006-Tools.gmk-Add-enable-linker-build-id-to-gcc-build.patch
# Exclude systemtap-sdt-devel on s390x & ppc64* (OPENJDK-3070)
Patch6: 0007-Tools.gmk-Exclude-systemtap-sdt-devel-on-s390x-ppc64.patch
# Use update repository on RHEL rather than GA (OPENJDK-3589)
Patch7: 0008-Tools.gmk-Use-update-repository-on-RHEL-rather-than-.patch
BuildRequires: make autoconf automake libtool gcc gcc-c++ wget glibc-devel texinfo tar bison
# Setup variables to reference correct sources
%ifarch %{aarch64}
%global rpmtarball %{SOURCE1}
%endif
%ifarch ppc64le
%global rpmtarball %{SOURCE2}
%endif
%ifarch s390x
%global rpmtarball %{SOURCE3}
%endif
%ifarch x86_64
%global rpmtarball %{SOURCE4}
%endif
%description
OpenJDK Devkit
%prep
# Unpack OpenJDK sources only in build directory
%setup -q -T -c -a 0
# This syntax is deprecated:
# %patchN [...]
# and should be replaced with:
# %patch -PN [...]
# For example:
# %patch1001 -p1
# becomes:
# %patch -P1001 -p1
# The replacement format suggested by recent (circa Fedora 38) RPM
# deprecation messages:
# %patch N [...]
# is not backward-compatible with prior (circa RHEL-8) versions of
# rpmbuild.
pushd jdk-*
%patch -P0 -p1
%patch -P1 -p1
%patch -P2 -p1
%patch -P3 -p1
%patch -P4 -p1
%patch -P5 -p1
%patch -P6 -p1
%patch -P7 -p1
popd
mkdir -p devkit/download
pushd devkit/download
tar -xJf %{rpmtarball}
ln -s %{SOURCE5}
ln -s %{SOURCE6}
ln -s %{SOURCE7}
ln -s %{SOURCE8}
ln -s %{SOURCE9}
ln -s %{SOURCE10}
%build
devkit_dir=$(pwd)/devkit
today=$(date +%Y%m%d)
arch=%{_target_cpu}
result_name=${arch}-linux-gnu-to-${arch}-linux-gnu
result_path=result/${result_name}
pushd jdk-*/make/devkit
# Build devkit first using the native toolchain,
# than again using itself
for variant in bootstrap product ; do
if [ -e ${devkit_dir}-bootstrap/${result_path}/bin/gcc ] ; then
ROOTDIR=${devkit_dir}-bootstrap/${result_path};
BINDIR=${ROOTDIR}/bin;
TOOLS="CC=${BINDIR}/gcc CXX=${BINDIR}/g++ LD=${BINDIR}/ld \
AR=${BINDIR}/ar AS=${BINDIR}/as RANLIB=${BINDIR}/ranlib \
OBJDUMP=${BINDIR}/objdump"
LIBPATH="${ROOTDIR}/lib64:${ROOTDIR}/lib"
else
TOOLS="CC=$(which gcc) CXX=$(which g++) LD=$(which ld) \
AR=$(which ar) AS=$(which as) RANLIB=$(which ranlib) \
OBJDUMP=$(which objdump)"
fi
mkdir -p ${devkit_dir}-${variant}
ln -s ${devkit_dir}/download ${devkit_dir}-${variant}
LD_LIBRARY_PATH="${LIBPATH}" \
make -f Tools.gmk all ${TOOLS} \
HOST=${arch}-linux-gnu \
BUILD=${arch}-linux-gnu \
RESULT=${devkit_dir}-${variant}/result \
OUTPUT_ROOT=${devkit_dir}-${variant} \
TARGET=${arch}-linux-gnu \
PREFIX=${devkit_dir}-${variant}/${result_path} \
BASE_OS=RHEL
done
make -r -f Tars.gmk \
SRC_DIR=${devkit_dir}-product/${result_path} \
TAR_FILE=${devkit_dir}-product/result/sdk-${result_name}-${today}.tar.gz
popd
%install
mkdir -p %{buildroot}%{_datadir}/%{name}
cp -p devkit-product/result/*.tar.gz %{buildroot}%{_datadir}/%{name}/
%files
%{_datadir}/%{name}
%changelog
* Fri Jan 17 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1.0-9
- Update devkit RPMs to latest updates
- Exclude SystemTap RPMs from s390x and ppc64le
- Add a date stamp to the RPM bundles
- Resolves: OPENJDK-3070
= Resolves: OPENJDK-3589
* Wed Nov 27 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1.0-8
- Add --enable-linker-build-id to gcc build
- Resolves: OPENJDK-3068
* Wed Oct 30 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1.0-7
- Improve build logging by also writing to stdout
- Cleanup patches and rebase on jdk-21.0.5-ga
- Drop JDK-8323671 patch which is upstream as of 21.0.3+3
- Resolves: OPENJDK-3071
* Tue Jun 11 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1.0-6
- Fix typo where 'as' binary is accidentally capitalised in AS=<path>/as
* Wed May 01 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1.0-5
- Bootstrap the devkit, building it again with itself
* Mon Apr 08 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1.0-4
- Include Thomas' patches to drop .comment sections and build binutils with deterministic archives
- Use backward-compatible patch syntax
* Tue Feb 06 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1.0-3
- Include JDK-8323671 patch so the binaries don't contain the full source path
* Fri Dec 08 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1.0-2
- Try to turn off multlib on x86_64 as we don't have the dependencies for it
* Tue Dec 05 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1.0-1
- Create RHEL 7 based devkit for building OpenJDK