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

Reply via email to