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,

Reply via email to