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