可以获取在 GCC(Binutils ld 链接器)编译过程中使用的链接器脚本:
$ gcc -o main funcs.c main.c -Wl,--verbose
...
SECTIONS
{
PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS;
.interp : { *(.interp) }
.note.gnu.build-id : { *(.note.gnu.build-id) }
.hash : { *(.hash) }
.gnu.hash : { *(.gnu.hash) }
...
}
但是,如果将 CLANG 与 LLD 一起使用,则没有这样的信息:
$ clang -fuse-ld=lld -o main funcs.c main.c -Wl,--verbose
ld.lld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crt1.o
...
ld.lld: /usr/lib/gcc/x86_64-linux-gnu/9/libgcc.a
ld.lld: /usr/lib/gcc/x86_64-linux-gnu/9/crtend.o
ld.lld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o
我只是好奇如何获取 CLANG/LLD 所需的信息。