commit:     49140b422ed3c4517da95c2b29602f47e56d3ca4
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Sep  5 21:45:27 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Sep  5 21:46:35 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=49140b42

dev-java/openjdk: don't use __attribute__((flatten)) (excessive mem use with 
LTO)

Newer JDKs have a workaround: 
https://github.com/openjdk/jdk24u/blob/b42f146edb8324bbb164bb706e8ad39d60aaf25b/make/hotspot/lib/JvmOverrideFiles.gmk#L40

Closes: https://bugs.gentoo.org/960257
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-java/openjdk/files/openjdk-17.0.16_p8-lto-memory.patch | 13 +++++++++++++
 dev-java/openjdk/openjdk-17.0.16_p8.ebuild                 |  5 ++++-
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/dev-java/openjdk/files/openjdk-17.0.16_p8-lto-memory.patch 
b/dev-java/openjdk/files/openjdk-17.0.16_p8-lto-memory.patch
new file mode 100644
index 000000000000..0b0253839810
--- /dev/null
+++ b/dev-java/openjdk/files/openjdk-17.0.16_p8-lto-memory.patch
@@ -0,0 +1,13 @@
+https://bugs.gentoo.org/960257
+https://gcc.gnu.org/PR77472
+--- a/src/hotspot/share/utilities/globalDefinitions_gcc.hpp
++++ b/src/hotspot/share/utilities/globalDefinitions_gcc.hpp
+@@ -170,7 +170,7 @@ inline int wcslen(const jchar* x) { return wcslen((const 
wchar_t*)x); }
+ // Inlining support
+ #define NOINLINE     __attribute__ ((noinline))
+ #define ALWAYSINLINE inline __attribute__ ((always_inline))
+-#define ATTRIBUTE_FLATTEN __attribute__ ((flatten))
++#define ATTRIBUTE_FLATTEN
+ 
+ // Alignment
+ //

diff --git a/dev-java/openjdk/openjdk-17.0.16_p8.ebuild 
b/dev-java/openjdk/openjdk-17.0.16_p8.ebuild
index dd115e04f630..49f9d2c87756 100644
--- a/dev-java/openjdk/openjdk-17.0.16_p8.ebuild
+++ b/dev-java/openjdk/openjdk-17.0.16_p8.ebuild
@@ -114,7 +114,10 @@ DEPEND="
        )
 "
 
-PATCHES=( 
"${FILESDIR}/openjdk-17.0.16_p8-fixBuild_failure_with_glibc-2.42.patch" )
+PATCHES=(
+       "${FILESDIR}/openjdk-17.0.16_p8-fixBuild_failure_with_glibc-2.42.patch"
+       "${FILESDIR}/openjdk-17.0.16_p8-lto-memory.patch"
+)
 
 # The space required to build varies wildly depending on USE flags,
 # ranging from 2GB to 16GB. This function is certainly not exact but

Reply via email to