commit: 1c18fc0609484e9f1654c67888867078d0e8072f Author: Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net> AuthorDate: Wed Oct 22 18:59:37 2025 +0000 Commit: Miroslav Šulc <fordfrog <AT> gentoo <DOT> org> CommitDate: Thu Oct 23 09:14:31 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1c18fc06
dev-java/openjdk: 8.472_p08, add patch to with_glibc-2.42 Bug: https://bugs.gentoo.org/961899 Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net> Part-of: https://github.com/gentoo/gentoo/pull/44260 Closes: https://github.com/gentoo/gentoo/pull/44260 Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org> ....472_p08-fixBuild_failure_with_glibc-2.42.patch | 134 +++++++++++++++++++++ dev-java/openjdk/openjdk-8.472_p08.ebuild | 1 + 2 files changed, 135 insertions(+) diff --git a/dev-java/openjdk/files/openjdk-8.472_p08-fixBuild_failure_with_glibc-2.42.patch b/dev-java/openjdk/files/openjdk-8.472_p08-fixBuild_failure_with_glibc-2.42.patch new file mode 100644 index 000000000000..9a4944cdcdb2 --- /dev/null +++ b/dev-java/openjdk/files/openjdk-8.472_p08-fixBuild_failure_with_glibc-2.42.patch @@ -0,0 +1,134 @@ +From nicoslocalrepo Mon Sep 17 00:00:00 2001 +From: Nico Roeser +Date: Sat, 13 Sep 2025 13:23:33 +0200 +Subject: [PATCH] Backport fix for C2Y uabs() naming collision + +Make the code build with glibc 2.42 or later, which include an +implementation of uabs (for C2Y). + +Original patch: +8354941: Build failure with glibc 2.42 due to uabs() name collision + +Backport-of: 38bb8adf4f632b08af15f2d8530b35f05f86a020 +--- + hotspot/src/cpu/aarch64/vm/assembler_aarch64.cpp | 2 +- + hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp | 2 +- + hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp | 2 +- + hotspot/src/cpu/aarch64/vm/stubGenerator_aarch64.cpp | 4 ++-- + hotspot/src/share/vm/opto/mulnode.cpp | 4 ++-- + hotspot/src/share/vm/utilities/globalDefinitions.hpp | 8 ++++---- + 6 files changed, 11 insertions(+), 11 deletions(-) + +diff --git a/hotspot/src/cpu/aarch64/vm/assembler_aarch64.cpp b/hotspot/src/cpu/aarch64/vm/assembler_aarch64.cpp +--- a/hotspot/src/cpu/aarch64/vm/assembler_aarch64.cpp ++++ b/hotspot/src/cpu/aarch64/vm/assembler_aarch64.cpp +@@ -1445,7 +1445,7 @@ void Assembler::add_sub_immediate(Register Rd, Register Rn, unsigned uimm, int o + + bool Assembler::operand_valid_for_add_sub_immediate(long imm) { + bool shift = false; +- unsigned long uimm = uabs(imm); ++ unsigned long uimm = g_uabs(imm); + if (uimm < (1 << 12)) + return true; + if (uimm < (1 << 24) +diff --git a/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp b/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp +--- a/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp ++++ b/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp +@@ -825,7 +825,7 @@ public: + static const unsigned long branch_range = NOT_DEBUG(128 * M) DEBUG_ONLY(2 * M); + + static bool reachable_from_branch_at(address branch, address target) { +- return uabs(target - branch) < branch_range; ++ return g_uabs(target - branch) < branch_range; + } + + // Unconditional branch (immediate) +diff --git a/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp b/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp +--- a/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp ++++ b/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp +@@ -2023,7 +2023,7 @@ void MacroAssembler::wrap_add_sub_imm_insn(Register Rd, Register Rn, unsigned im + if (operand_valid_for_add_sub_immediate((int)imm)) { + (this->*insn1)(Rd, Rn, imm); + } else { +- if (uabs(imm) < (1 << 24)) { ++ if (g_uabs(imm) < (1 << 24)) { + (this->*insn1)(Rd, Rn, imm & -(1 << 12)); + (this->*insn1)(Rd, Rd, imm & ((1 << 12)-1)); + } else { +diff --git a/hotspot/src/cpu/aarch64/vm/stubGenerator_aarch64.cpp b/hotspot/src/cpu/aarch64/vm/stubGenerator_aarch64.cpp +--- a/hotspot/src/cpu/aarch64/vm/stubGenerator_aarch64.cpp ++++ b/hotspot/src/cpu/aarch64/vm/stubGenerator_aarch64.cpp +@@ -1093,7 +1093,7 @@ class StubGenerator: public StubCodeGenerator { + + void copy_memory_small(Register s, Register d, Register count, Register tmp, int step) { + bool is_backwards = step < 0; +- size_t granularity = uabs(step); ++ size_t granularity = g_uabs(step); + int direction = is_backwards ? -1 : 1; + int unit = wordSize * direction; + +@@ -1149,7 +1149,7 @@ class StubGenerator: public StubCodeGenerator { + Register count, Register tmp, int step) { + copy_direction direction = step < 0 ? copy_backwards : copy_forwards; + bool is_backwards = step < 0; +- int granularity = uabs(step); ++ int granularity = g_uabs(step); + const Register t0 = r3, t1 = r4; + + // <= 96 bytes do inline. Direction doesn't matter because we always +diff --git a/hotspot/src/share/vm/opto/mulnode.cpp b/hotspot/src/share/vm/opto/mulnode.cpp +--- a/hotspot/src/share/vm/opto/mulnode.cpp ++++ b/hotspot/src/share/vm/opto/mulnode.cpp +@@ -189,7 +189,7 @@ Node *MulINode::Ideal(PhaseGVN *phase, bool can_reshape) { + // Check for negative constant; if so negate the final result + bool sign_flip = false; + +- unsigned int abs_con = uabs(con); ++ unsigned int abs_con = g_uabs(con); + if (abs_con != (unsigned int)con) { + sign_flip = true; + } +@@ -285,7 +285,7 @@ Node *MulLNode::Ideal(PhaseGVN *phase, bool can_reshape) { + + // Check for negative constant; if so negate the final result + bool sign_flip = false; +- julong abs_con = uabs(con); ++ julong abs_con = g_uabs(con); + if (abs_con != (julong)con) { + sign_flip = true; + } +diff --git a/hotspot/src/share/vm/utilities/globalDefinitions.hpp b/hotspot/src/share/vm/utilities/globalDefinitions.hpp +--- a/hotspot/src/share/vm/utilities/globalDefinitions.hpp ++++ b/hotspot/src/share/vm/utilities/globalDefinitions.hpp +@@ -1254,7 +1254,7 @@ inline bool is_even(intx x) { return !is_odd(x); } + + // abs methods which cannot overflow and so are well-defined across + // the entire domain of integer types. +-static inline unsigned int uabs(unsigned int n) { ++static inline unsigned int g_uabs(unsigned int n) { + union { + unsigned int result; + int value; +@@ -1263,7 +1263,7 @@ static inline unsigned int uabs(unsigned int n) { + if (value < 0) result = 0-result; + return result; + } +-static inline julong uabs(julong n) { ++static inline julong g_uabs(julong n) { + union { + julong result; + jlong value; +@@ -1272,8 +1272,8 @@ static inline julong uabs(julong n) { + if (value < 0) result = 0-result; + return result; + } +-static inline julong uabs(jlong n) { return uabs((julong)n); } +-static inline unsigned int uabs(int n) { return uabs((unsigned int)n); } ++static inline julong g_uabs(jlong n) { return g_uabs((julong)n); } ++static inline unsigned int g_uabs(int n) { return g_uabs((unsigned int)n); } + + // "to" should be greater than "from." + inline intx byte_size(void* from, void* to) { +-- +2.51.0 + diff --git a/dev-java/openjdk/openjdk-8.472_p08.ebuild b/dev-java/openjdk/openjdk-8.472_p08.ebuild index d00fb4930624..76d3e2885b88 100644 --- a/dev-java/openjdk/openjdk-8.472_p08.ebuild +++ b/dev-java/openjdk/openjdk-8.472_p08.ebuild @@ -110,6 +110,7 @@ PATCHES=( "${FILESDIR}/openjdk-8.402_p06-0002-Fix-Wincompatible-pointer-types.patch" "${FILESDIR}/openjdk-8.402_p06-0003-Fix-negative-value-left-shift.patch" "${FILESDIR}/openjdk-8.402_p06-0004-Fix-misc.-warnings.patch" + "${FILESDIR}/openjdk-8.472_p08-fixBuild_failure_with_glibc-2.42.patch" ) # The space required to build varies wildly depending on USE flags,
