https://sourceware.org/bugzilla/show_bug.cgi?id=31489

            Bug ID: 31489
           Summary: --as-needed doesn't work with references to builtin
                    functions
           Product: binutils
           Version: 2.43 (HEAD)
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ld
          Assignee: unassigned at sourceware dot org
          Reporter: hjl.tools at gmail dot com
  Target Milestone: ---

GCC doesn't put builtin function symbol references, which are defined in
the shared C library, in the IR symbol table.  As the result, --as-needed
doesn't work with references to builtin functions:

[hjl@gnu-cfl-3 as-needed]$ cat x.c
#include <stdlib.h>

int
main()
{
  abort ();
  return 0;
}
[hjl@gnu-cfl-3 as-needed]$ cat bar.c
#include <stdlib.h>
#include <stdio.h>

void
abort (void)
{
  printf ("PASS\n");
  exit (0);
}
[hjl@gnu-cfl-3 as-needed]$ make
gcc -B./ -g -flto   -c -o x.o x.c
gcc -B./ -g -fPIC   -c -o bar.o bar.c
gcc -B./ -shared -o libbar.so bar.o
gcc -B./ -Wl,--as-needed -o x x.o libbar.so -Wl,-R,.
./x
make: *** [Makefile:12: all] Aborted (core dumped)
[hjl@gnu-cfl-3 as-needed]$

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to