Files
buildroot/package/openjdk/25.0.2+10/0004-src-hotspot-share-gc-shenandoah-fix-constexpr.patch
Thomas Devoogdt 6106c2c21c package/openjdk{-bin}: add OpenJDK25 and configure it as latest
OpenJDK 25 is the latest release.
See: https://endoflife.date/oracle-jdk

- BR2_OPENJDK_VERSION_LATEST is now set to 25.

- Add version-specific patches for 25.0.2+10:
  - 0001: Add ARCv2 ISA processors support to Zero
  - 0002: Compile OpenJDK in headless mode without requirements
  - 0003: Fix ambiguous cmp() overload in aarch64 macro assembler
          (older GCC 6.x compatibility)
  - 0004: Fix constexpr on non-literal type in Shenandoah GC
          (older GCC 6.x compatibility)

- Add -fpermissive to fix template definition error with older GCC.

- Update HOST_OPENJDK_BIN_VERSION for OpenJDK 25.

- Update the expectedVersion variable in JniTest.java from 0x00150000
  (JNI 21) to 0x00180000 (JNI 24/25).

Tested with:
$ ./support/testing/run-tests -o ~/br-test-py/ -d ~/br-test-dl/ \
    tests.package.test_openjdk.TestOpenJdk

Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
[Bernd:
 - rebased on bump of versions 17 & 21
 - build-tested with gcc 16-snapshot]
Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
[Julien:
 - add .checkpackageignore entry to fix check-package error
 - reformat patches with without numbering to fix check-package error
]
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-05-30 15:48:42 +02:00

43 lines
1.7 KiB
Diff

From 87cb37e3341a33c5a8fac361972c53b1edc56799 Mon Sep 17 00:00:00 2001
From: Thomas Devoogdt <thomas@devoogdt.com>
Date: Sat, 21 Feb 2026 15:50:42 +0100
Subject: [PATCH] src: hotspot: share: gc: shenandoah: fix constexpr
Older GCC versions (e.g., GCC 6.x from bootlin toolchains) enforce
C++14 rules more strictly and do not allow constexpr member functions
on non-literal types. ShenandoahSimpleBitMap is not a literal type
because it has a non-trivial destructor or other disqualifying members.
Remove constexpr from ShenandoahSimpleBitMap::alignment() to fix the
build with older toolchains. The function can still be inlined and
optimized.
Fixes:
/home/thomas/br-test-pkg/bootlin-aarch64-glibc-old/build/openjdk-25.0.2+10/src/hotspot/share/gc/shenandoah/shenandoahSimpleBitMap.hpp:93:26: error: enclosing class of constexpr non-static member function 'idx_t ShenandoahSimpleBitMap::alignment() const' is not a literal type
inline constexpr idx_t alignment() const {
^~~~~~~~~
Upstream: https://github.com/openjdk/jdk/pull/29856
Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
---
src/hotspot/share/gc/shenandoah/shenandoahSimpleBitMap.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/hotspot/share/gc/shenandoah/shenandoahSimpleBitMap.hpp b/src/hotspot/share/gc/shenandoah/shenandoahSimpleBitMap.hpp
index 3a4cb8cf742..451c11e2e58 100644
--- a/src/hotspot/share/gc/shenandoah/shenandoahSimpleBitMap.hpp
+++ b/src/hotspot/share/gc/shenandoah/shenandoahSimpleBitMap.hpp
@@ -90,7 +90,7 @@ class ShenandoahSimpleBitMap {
return array_idx;
}
- inline constexpr idx_t alignment() const {
+ inline idx_t alignment() const {
return BitsPerWord;
}
--
2.43.0