pawosm-arm wrote:

> @pawosm-arm See also 
> https://wiki.gentoo.org/wiki/Project:Quality_Assurance/As-needed#Importance_of_linking_order.
>  It is common for distributions to enable `-Wl,--as-needed` via patches to 
> the compiler or configuration files.

Indeed, the distributions couldn't avoid this annoying behavior of clang 
(spitting `undefined reference to `main'`) when started without any command 
line params:

```
$ clang
/usr/bin/x86_64-pc-linux-gnu-ld.bfd: 
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../lib64/Scrt1.o: in function 
`_start':
(.text+0x17): undefined reference to `main'
clang: error: linker command failed with exit code 1 (use -v to see invocation)

$ clang --no-default-config
clang: error: no input files

$ clang -###
clang version 18.1.8
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm/18/bin
Configuration file: /etc/clang/x86_64-pc-linux-gnu-clang.cfg
 "/usr/bin/x86_64-pc-linux-gnu-ld.bfd" "--hash-style=gnu" "--eh-frame-hdr" "-m" 
"elf_x86_64" "-pie" "-dynamic-linker" "/lib64/ld-linux-x86-64.so.2" "-o" 
"a.out" "/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../lib64/Scrt1.o" 
"/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../lib64/crti.o" 
"/usr/lib/gcc/x86_64-pc-linux-gnu/14/crtbeginS.o" 
"-L/usr/lib/gcc/x86_64-pc-linux-gnu/14" 
"-L/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../lib64" "-L/lib/../lib64" 
"-L/usr/lib/../lib64" 
"-L/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/lib" 
"-L/lib" "-L/usr/lib" "-z" "relro" "-z" "now" "-lgcc" "--as-needed" "-lgcc_s" 
"--no-as-needed" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 
"/usr/lib/gcc/x86_64-pc-linux-gnu/14/crtendS.o" 
"/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../lib64/crtn.o"

$ cat /etc/clang/x86_64-pc-linux-gnu-clang.cfg
# This configuration file is used by x86_64-pc-linux-gnu-clang driver.
@gentoo-common.cfg
@gentoo-common-ld.cfg
@gentoo-cet.cfg`
```


https://github.com/llvm/llvm-project/pull/117573
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to