[Bug tree-optimization/98110] [11 Regression] dl-lookup.c in glibc is miscompiled by r11-5029

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Dec 3 10:23:19 GMT 2020


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

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The crash seems to be:
=> 0x00007ffff7fdbe20 <_dl_lookup_symbol_x+0>:  push   %r15
   0x00007ffff7fdbe22 <_dl_lookup_symbol_x+2>:  push   %r14
   0x00007ffff7fdbe24 <_dl_lookup_symbol_x+4>:  push   %r13
   0x00007ffff7fdbe26 <_dl_lookup_symbol_x+6>:  push   %r12
   0x00007ffff7fdbe28 <_dl_lookup_symbol_x+8>:  mov    %rdi,%r12
   0x00007ffff7fdbe2b <_dl_lookup_symbol_x+11>: push   %rbp
   0x00007ffff7fdbe2c <_dl_lookup_symbol_x+12>: mov    %rdx,%rbp
   0x00007ffff7fdbe2f <_dl_lookup_symbol_x+15>: push   %rbx
   0x00007ffff7fdbe30 <_dl_lookup_symbol_x+16>: mov    %fs:0x10,%rax
   0x00007ffff7fdbe39 <_dl_lookup_symbol_x+25>: sub    $0xa8,%rsp
End of assembler dump.
(gdb) bt
#0  _dl_lookup_symbol_x (undef_name=0x7ffff7ff414a "__vdso_clock_gettime",
undef_map=0x7ffff7ffe850, ref=0x7fffffffd598, 
    symbol_scope=0x7ffff7ffebe8, version=0x7fffffffd5c0, type_class=0, flags=0,
skip_map=0x0) at dl-lookup.c:835
#1  0x00007ffff7fd463f in dl_vdso_vsym (name=0x7ffff7ff414a
"__vdso_clock_gettime") at ../sysdeps/unix/sysv/linux/dl-vdso.h:52
#2  setup_vdso_pointers () at ../sysdeps/unix/sysv/linux/dl-vdso-setup.h:30
#3  dl_main (phdr=<optimized out>, phnum=12, user_entry=<optimized out>,
auxv=0x7fffffffdac8) at rtld.c:1620
#4  0x00007ffff7feb1e7 in _dl_sysdep_start
(start_argptr=start_argptr@entry=0x7fffffffd8f0,
dl_main=dl_main@entry=0x7ffff7fd34e0 <dl_main>)
    at ../elf/dl-sysdep.c:252
#5  0x00007ffff7fd3015 in _dl_start_final (arg=0x7fffffffd8f0) at rtld.c:485
#6  _dl_start (arg=0x7fffffffd8f0) at rtld.c:578
#7  0x00007ffff7fd2058 in _start ()

on the mov %fs:0x10,%rax perhaps %fs isn't initialized yet?


More information about the Gcc-bugs mailing list