gentoo/dev-java/openjdk/files/openjdk-8.472_p08-fixBuild_failure_with_glibc-2.42.patch
Volkmar W. Pogatzki 1c18fc0609
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@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@gentoo.org>
2025-10-23 11:14:31 +02:00

135 lines
5.6 KiB
Diff

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