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.