RFR: 8352481: Enforce the use of lld with clang [v7]
SendaoYan
syan at openjdk.org
Thu Mar 27 02:25:22 UTC 2025
On Tue, 25 Mar 2025 12:40:42 GMT, SendaoYan <syan at openjdk.org> wrote:
>> Hi all,
>>
>> There is an extra a.out file generated located in repository root directory after execute the configure command with llvm/clang compiler sometimes, not always. The a.out was generate by `$LINKER -Wl,-v 2>&1 | $HEAD -n 1`, shows as below. This PR force use of lld when toolchain type is clang. Change has been verified locally.
>>
>>
>>> rm -rf a.out ; date ; ~/software/acc/x86_64/bin/clang -Wl,-v 2>&1 | head -n 1 ; stat a.out ; ls -lh a.out ; file a.out
>> Thu Mar 20 02:46:13 PM CST 2025
>> GNU ld (GNU Binutils) 2.43.50.20240909
>> File: a.out
>> Size: 792 Blocks: 8 IO Block: 4096 regular file
>> Device: 10303h/66307d Inode: 2355308 Links: 1
>> Access: (0640/-rw-r-----) Uid: ( 995/yansendao) Gid: ( 992/yansendao)
>> Access: 2025-03-20 14:46:13.682967228 +0800
>> Modify: 2025-03-20 14:46:13.682967228 +0800
>> Change: 2025-03-20 14:46:13.682967228 +0800
>> Birth: 2025-03-20 14:46:13.674966977 +0800
>> -rw-r----- 1 yansendao yansendao 792 Mar 20 14:46 a.out
>> a.out: data
>
> SendaoYan has updated the pull request incrementally with one additional commit since the last revision:
>
> Force use of lld when build os is not macosx
make/autoconf/toolchain.m4 line 625:
> 623: # Force use of lld, since that is what we expect when setting flags later on
> 624: if test "x$TOOLCHAIN_TYPE" = xclang; then
> 625: if test "x$OPENJDK_BUILD_OS" != "xmacosx"; then
According to the implementation of makefile function `FLAGS_SETUP_LDFLAGS_HELPER` which locate in make/autoconf/flags-ldflags.m4 file, only the combination of `$TOOLCHAIN_TYPE == clang` and `$OPENJDK_TARGET_OS == linux` support lld linker.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/24125#discussion_r2015410411
More information about the build-dev
mailing list