https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91677

            Bug ID: 91677
           Summary: -fbuiltin (default) breaks static link against lto
                    libc
           Product: gcc
           Version: lto
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: lto
          Assignee: unassigned at gcc dot gnu.org
          Reporter: 12f8219 at gmail dot com
                CC: marxin at gcc dot gnu.org
  Target Milestone: ---

Created attachment 46836
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46836&action=edit
testcase

$ echo 'extern int puts(char *s); int _e() { return puts("hit"); }' > t.c
$ echo 'int puts(char *s) { return 123; }' > l.c

$ gcc -ffreestanding -flto -c l.c
$ gcc-ar rc l.a l.o

$ gcc -flto -fuse-linker-plugin -static -nostartfiles -e _e ./t.c ./l.a
/usr/lib/gcc/x86_64-gentoo-linux-musl/9.2.0/../../../../x86_64-gentoo-linux-musl/bin/ld:
/tmp/ccAbnIBL.ltrans0.ltrans.o: in function `_e':
<artificial>:(.text+0xa): undefined reference to `puts'
collect2: error: ld returned 1 exit status

$ gcc -flto -fuse-linker-plugin -static -nostartfiles -e _e -fno-builtin ./t.c
./l.a
$

Reply via email to