https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90783
Bug ID: 90783 Summary: "-rShould imply -nostdlib -nostartfiles Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: driver Assignee: unassigned at gcc dot gnu.org Reporter: hjl.tools at gmail dot com Target Milestone: --- To generate native object file from LTO IR file, we need to pass "-r" to GCC driver: [hjl@gnu-cfl-1 tmp]$ cat x.i void bar (void) { } [hjl@gnu-cfl-1 tmp]$ gcc -c -flto x.i [hjl@gnu-cfl-1 tmp]$ gcc -S x.o gcc: warning: x.o: linker input file unused because linking not done [hjl@gnu-cfl-1 tmp]$ gcc -r -S x.o gcc: warning: x.o: linker input file unused because linking not done GCC driver passes "-r" to linker. But it doesn't imply -nostdlib nor -nostartfiles: [hjl@gnu-cfl-1 tmp]$ gcc -r x.o -v ... /usr/libexec/gcc/x86_64-redhat-linux/8/collect2 -plugin /usr/libexec/gcc/x86_64-redhat-linux/8/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper -plugin-opt=-fresolution=/tmp/ccuJI6ll.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -r /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/8/crtbegin.o -L/usr/lib/gcc/x86_64-redhat-linux/8 -L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/8/../../.. x.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-redhat-linux/8/crtend.o /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crtn.o /usr/local/bin/ld: cannot find -lgcc_s /usr/local/bin/ld: cannot find -lgcc_s collect2: error: ld returned 1 exit status [hjl@gnu-cfl-1 tmp]$ gcc -r -nostdlib -nostartfiles x.o -v /usr/libexec/gcc/x86_64-redhat-linux/8/collect2 -plugin /usr/libexec/gcc/x86_64-redhat-linux/8/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper -plugin-opt=-fresolution=/tmp/cciOnZRk.res --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -r -L/usr/lib/gcc/x86_64-redhat-linux/8 -L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/8/../../.. x.o [hjl@gnu-cfl-1 tmp]$ Shouldn't "-r" imply