Skip to content

8354941: Build failure with glibc 2.42 due to uabs() name collision #3069

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/hotspot/cpu/aarch64/assembler_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1702,7 +1702,7 @@ void Assembler::add_sub_immediate(Register Rd, Register Rn, unsigned uimm, int o
}

bool Assembler::operand_valid_for_add_sub_immediate(int64_t imm) {
uint64_t uimm = (uint64_t)uabs((jlong)imm);
uint64_t uimm = (uint64_t)g_uabs((jlong)imm);
if (uimm < (1 << 12))
return true;
if (uimm < (1 << 24)
Expand Down
2 changes: 1 addition & 1 deletion src/hotspot/cpu/aarch64/assembler_aarch64.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -854,7 +854,7 @@ class Assembler : public AbstractAssembler {
static const uint64_t 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)
Expand Down
2 changes: 1 addition & 1 deletion src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2206,7 +2206,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 {
Expand Down
4 changes: 2 additions & 2 deletions src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1009,7 +1009,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;

Expand Down Expand Up @@ -1065,7 +1065,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;
unsigned int granularity = uabs(step);
unsigned int granularity = g_uabs(step);
const Register t0 = r3, t1 = r4;

// <= 80 (or 96 for SIMD) bytes do inline. Direction doesn't matter because we always
Expand Down
4 changes: 2 additions & 2 deletions src/hotspot/share/opto/mulnode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,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;
}
Expand Down Expand Up @@ -290,7 +290,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;
}
Expand Down
8 changes: 4 additions & 4 deletions src/hotspot/share/utilities/globalDefinitions.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1166,7 +1166,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;
Expand All @@ -1175,7 +1175,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;
Expand All @@ -1184,8 +1184,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) {
Expand Down