Fedora Account System
Red Hat Associate
Red Hat Customer
Description of problem: running a failed prelink test in gdb i get [mockbuild@daedalus testsuite]$ LD_LIBRARY_PATH=. gdb ./tls3 GNU gdb (GDB) Fedora (7.0-3.fc12) Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "sparc64-redhat-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /builddir/build/BUILD/prelink/testsuite/tls3...(no debugging symbols found)...done. (gdb) run Starting program: /builddir/build/BUILD/prelink/testsuite/tls3 Program received signal SIGBUS, Bus error. elf_machine_rela (sym=0xfffff80100128228, reloc_addr_arg=<value optimized out>, version=<value optimized out>, reloc=<value optimized out>, map=<value optimized out>) at ../sysdeps/sparc/sparc64/dl-machine.h:629 629 *reloc_addr = (*reloc_addr & 0xffffe000) | (value & 0x3ff) Version-Release number of selected component (if applicable): glibc-2.11.1-2.sparc64.rpm How reproducible: always Steps to Reproduce: 1. run testsuite fro prelink 2. 3. Actual results: SIGBUS Expected results: completion or process Additional info:
I can't believe this has never been triggered before :-) It's relocating an instruction, but it's using 64-bit loads and stores to do so, which won't work since instructions are 4 bytes in size and 4 byte aligned. I'll attach a fix against GLIBC mainline after I do a build test, it should apply to just about anything with perhaps some minor fuzz.
BTW, reloc8.sh and reloc9.sh are also going to fail on 64-bit sparc. "sparc*" needs to be added to the list of platforms those two tests check to avoid using the no-copy-relocs option.
Created attachment 398770 [details] Patch to fix sparc64 TLS relocation handling in glibc.
glibc-2.11.90-15 has been submitted as an update for Fedora 13. http://admin.fedoraproject.org/updates/glibc-2.11.90-15
glibc-2.11.90-15 has been pushed to the Fedora 13 testing repository. If problems still persist, please make note of it in this bug report. If you want to test the update, you can install it with su -c 'yum --enablerepo=updates-testing update glibc'. You can provide feedback for this update here: http://admin.fedoraproject.org/updates/glibc-2.11.90-15
glibc-2.11.90-15 has been pushed to the Fedora 13 stable repository. If problems still persist, please make note of it in this bug report.