8354941: Build failure with glibc 2.42 due to uabs() name collision #711
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This backport replaces the local definition of
uabswithg_uabsto avoid a conflict with theuabsdeclared in versions of glibc 2.42 and later.The patch is mostly clean, with the exception of two conflicts:
assembler_aarch64.cpp, the type ofuimmisunsigned longin 8u, rather thanuint64_t. 8u is missing a sequence of changes, which begins with JDK-8248414, "AArch64: Remove uses of long and unsigned long ints" and JDK-8251930, "AArch64: Native types mismatch in hotspot", but these in turn require adaptation to work around other missing changes like JDK-8222412 "AARCH64: multiple instructions encoding issues" and JDK-8139043, "aarch64: add support for adler32 intrinsic". Backporting 8248414 & 8251930 may be worthwhile, especially if Windows & Mac AArch64 ports are ever considered for 8u, but really needs to be done by someone with access to AArch64 hardware to verify the changes. I don't think it's necessary just for a simple name substitution.stubGenerator_aarch64.cpp, I corrected the type ofgranularityincopy_memory(bool, Register, Register, Register, Register, int)frominttounsigned int, which matches the signature ofg_uabs. This same correction was made in later JDKs as part of an enhancement, JDK-8257436 "Regressions in ArrayCopyUnalignedDst.testByte/testChar for 65-78 bytes when UseSIMDForMemoryOps is on". Again, the rest may be worth backporting if the same performance improvement is visible on 8u AArch64, but the risk isn't appropriate for this change.The change was verified by ensuring that
uabsno longer exists in the source code after this patch.Progress
Issue
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk8u-dev.git pull/711/head:pull/711$ git checkout pull/711Update a local copy of the PR:
$ git checkout pull/711$ git pull https://git.openjdk.org/jdk8u-dev.git pull/711/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 711View PR using the GUI difftool:
$ git pr show -t 711Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk8u-dev/pull/711.diff
Using Webrev
Link to Webrev Comment