https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82301
Bug ID: 82301 Summary: [8 regression] Updated test case g++.dg/ext/attr-ifunc-1.C (and others) in r253041 segfault on powerpc64 Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other Assignee: unassigned at gcc dot gnu.org Reporter: seurer at gcc dot gnu.org Target Milestone: --- A bunch of test cases were updated at or just before r253041 and they fail on powerpc64. Just BE, LE works fine. > FAIL: g++.dg/ext/attr-ifunc-1.C -std=gnu++11 execution test > FAIL: g++.dg/ext/attr-ifunc-1.C -std=gnu++14 execution test > FAIL: g++.dg/ext/attr-ifunc-1.C -std=gnu++98 execution test > FAIL: g++.dg/ext/attr-ifunc-2.C -std=gnu++11 execution test > FAIL: g++.dg/ext/attr-ifunc-2.C -std=gnu++14 execution test > FAIL: g++.dg/ext/attr-ifunc-2.C -std=gnu++98 execution test > FAIL: g++.dg/ext/attr-ifunc-3.C -std=gnu++11 execution test > FAIL: g++.dg/ext/attr-ifunc-3.C -std=gnu++14 execution test > FAIL: g++.dg/ext/attr-ifunc-3.C -std=gnu++98 execution test > FAIL: g++.dg/ext/attr-ifunc-4.C -std=gnu++11 execution test > FAIL: g++.dg/ext/attr-ifunc-4.C -std=gnu++14 execution test > FAIL: g++.dg/ext/attr-ifunc-4.C -std=gnu++98 execution test They seem to be segfaulting: (gdb) run Starting program: /home/seurer/gcc/build/gcc-test2/./attr-ifunc-1.exe Program received signal SIGSEGV, Segmentation fault. 0x0000000010000680 in Klass::resolver () at /home/seurer/gcc/gcc-test2/gcc/testsuite/g++.dg/ext/attr-ifunc-1.C:26 26 return &Klass::implementation; (gdb) where #0 0x0000000010000680 in Klass::resolver () at /home/seurer/gcc/gcc-test2/gcc/testsuite/g++.dg/ext/attr-ifunc-1.C:26 #1 0x00003fffb7fc2fb0 in resolve_ifunc (sym_map=0x3fffb7ff1ed0, map=0x3fffb7ff1ed0, value=<optimized out>) at ../sysdeps/powerpc/powerpc64/dl-machine.h:630 #2 elf_machine_rela (skip_ifunc=<optimized out>, reloc_addr_arg=0x10010e88, version=<optimized out>, sym=<optimized out>, reloc=0x100003c0, map=0x3fffb7ff1ed0) at ../sysdeps/powerpc/powerpc64/dl-machine.h:691 #3 elf_dynamic_do_Rela (skip_ifunc=<optimized out>, lazy=<optimized out>, nrelative=<optimized out>, relsize=<optimized out>, reladdr=<optimized out>, map=0x3fffb7ff1ed0) at do-rel.h:137 #4 _dl_relocate_object (scope=0x3fffb7ff2248, reloc_mode=<optimized out>, consider_profiling=<optimized out>) at dl-reloc.c:259 #5 0x00003fffb7fb73b8 in dl_main (phdr=<optimized out>, phnum=<optimized out>, user_entry=0x3fffffffea70, auxv=<optimized out>) at rtld.c:2313 #6 0x00003fffb7fd2634 in _dl_sysdep_start (start_argptr=<optimized out>, dl_main=@0x3fffb7ff0140: 0x3fffb7fb5400 <dl_main>) at ../elf/dl-sysdep.c:244 #7 0x00003fffb7fb3f48 in _dl_start_final (arg=arg@entry=0x3ffffffff150, info=info@entry=0x3fffffffebd0) at rtld.c:412 #8 0x00003fffb7fb4c28 in _dl_start (arg=0x3ffffffff150) at rtld.c:640 #9 0x00003fffb7fb3c10 in ._start () from /lib64/ld64.so.1 Some of these at least used to be marked as unsupported.