Linked Questions

Popular Questions

I've found out that when GCC (tried on GCC 4.8 and GCC 6.4) finds real-ld executable in its search path, it is silently ignoring -fuse-ld=... option, and use real-ld instead of appropriate linker.

$ echo "int main(){}" > script.c
$ ln -s /usr/bin/ld real-ld
$ gcc -fuse-ld=gold -B$PWD script.c
$ readelf a.out
readelf: a.out: Warning: Section '' was not dumped because it does not exist!

Normally, without real-ld it will work as expected:

$ echo "int main(){}" > script.c
$ gcc -fuse-ld=gold script.c
$ readelf a.out

String dump of section '':
  [     c]  GNU
  [    10]  gold 1.12

Documentation of GCC suggests that gold linker will be used.

Documentation of collect2 does not say anything about -fuse-ld feature...

Related Questions