RFR: 8344607: Link Time Optimization - basic support for clang [v2]
Matthias Baesken
mbaesken at openjdk.org
Thu Nov 28 07:56:27 UTC 2024
> Support the clang toolchain when link time optimization is configured.
> Please note that this is NOT intended to enable lto by default and NOT to fix all possible clang-supporting builds or test issues .
>
> It works on my Linux x86_64 SUSE 15 test machine with clang15.0.7, also on macOS with Xcode 13.1 devkit and Xcode 15.4 .
>
> To be able to build on macOS with Xcode, I had to deal with one issue. The lto-link process runs into this error
>
>
> ld: <inline asm>:11:1: symbol 'SpinPause_return' is already defined
> SpinPause_return:
> ^
> for architecture arm64
> clang: error: linker command failed with exit code 1 (use -v to see invocation)
>
>
> Seems that when building with LTO, the inline assembler code in SpinPause() is not handled well. In the lto inlining the label SpinPause_return is generated multiple times and causes an 'already defined' error. This goes away when adding NOINLINE to this function.
> Linux/clang did not show this issue, probably the toolchain there does not have the error.
Matthias Baesken has updated the pull request incrementally with one additional commit since the last revision:
use assembler local labels
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/22412/files
- new: https://git.openjdk.org/jdk/pull/22412/files/b3e08220..7cb7f1d2
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=22412&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=22412&range=00-01
Stats: 5 lines in 1 file changed: 0 ins; 0 del; 5 mod
Patch: https://git.openjdk.org/jdk/pull/22412.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/22412/head:pull/22412
PR: https://git.openjdk.org/jdk/pull/22412
More information about the build-dev
mailing list