On Mon, 24 Mar 2025 15:31:23 GMT, SendaoYan <s...@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 add a command to remove the extra a.out file. No risk. >> >> >>> 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: > > fix spelling bug `RM` is actually defined as `rm -f` so the `-f` is not necessary. I'm still not very happy with this solution. It will remove any `a.out` file the user has lying around. Granted, they are normally temporary testing files, but it is highly surprising that running `configure` should remove them. To fix that, we would need to check for the existence of `a.out` prior to running the link command to set a flag if we should allow deletion or not. That would make the patch more complex. So I don't think this is the right way to go. Later on, we will pass `-fuse-ld=lld` to `clang`. I think the correct fix is to make sure it is always passed, from the very beginning, even when checking version strings etc. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24125#issuecomment-2748540061