https://sourceware.org/bugzilla/show_bug.cgi?id=29797
--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> ---
Test without LTO:
[hjl@gnu-tgl-3 pr29797]$ cat x.cc
#include <stdio.h>
__attribute ((target ("avx2")))
static void foo()
{
puts("avx2");
}
__attribute ((target ("default")))
static void foo()
{
puts("default");
}
int main()
{
foo();
return 0;
}
[hjl@gnu-tgl-3 pr29797]$ make
gcc -B./ -O2 -c -o x.o x.cc
gcc -B./ -s -o x x.o
./x
./x: error while loading shared libraries: unexpected PLT reloc type 0x00
make: *** [Makefile:8: all] Error 127
[hjl@gnu-tgl-3 pr29797]$
There is:
/* If backend needs to output some local symbols not present in the hash
table, do it now. */
if (bed->elf_backend_output_arch_local_syms
&& (info->strip != strip_all || emit_relocs))
{
if (! ((*bed->elf_backend_output_arch_local_syms)
(abfd, info, &flinfo, elf_link_output_symstrtab)))
{
ret = false;
goto return_local_hash_table;
}
}
Only backend knows how to properly handle local symbols.
--
You are receiving this mail because:
You are on the CC list for the bug.