NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
toolchain/52859: ld.elf_so relocation failure
>Number: 52859
>Category: toolchain
>Synopsis: ld.elf_so relocation failure
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: toolchain-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun Dec 24 20:40:00 +0000 2017
>Originator: Martin Husemann
>Release: NetBSD 8.99.9
>Organization:
The NetBSD Foundation, Inc.
>Environment:
System: NetBSD thirdstage.duskware.de 8.99.9 NetBSD 8.99.9 (MODULAR) #40: Sat Dec 23 21:52:55 CET 2017 martin%thirdstage.duskware.de@localhost:/usr/src/sys/arch/sparc64/compile/MODULAR sparc64
Architecture: sparc64
Machine: sparc64
>Description:
The /usr/tests/libexec/ld.elf_so/t_ifunc test program crashes during
initialization:
cd /usr/tests/libexec/ld.elf_so/
./t_ifunc -l
Doing this under gdb shows:
(gdb) bt
#0 atf_dynstr_init_ap (ad=ad@entry=0xffffffffffffd4d8, fmt=fmt@entry=0x0,
ap=ap@entry=0xffffffffffffd648)
at /usr/src/external/bsd/atf/dist/atf-c/detail/dynstr.c:147
#1 0x000000004070b5b8 in atf_text_format_ap (
dest=dest@entry=0xffffffffffffd5a0, fmt=fmt@entry=0x0,
ap=ap@entry=0xffffffffffffd648)
at /usr/src/external/bsd/atf/dist/atf-c/detail/text.c:88
#2 0x0000000040709608 in atf_tc_set_md_var (tc=0x40305360 <_rtld_exit>,
name=0x0, fmt=0x0) at /usr/src/external/bsd/atf/dist/atf-c/tc.c:778
#3 0x00000000001012a4 in ___start ()
#4 0x00000000403017ac in _rtld_start () from /usr/libexec/ld.elf_so
but:
(gdb) x/16i 0x00000000001012a4
0x1012a4 <___start+292>: call 0x202ba0 <_libc_init@plt>
0x1012a8 <___start+296>: nop
0x1012ac <___start+300>: sethi %hi(0), %o0
0x1012b0 <___start+304>: or %o0, 0x140, %o0 ! 0x140
0x1012b4 <___start+308>: call 0x202b40 <atexit@plt>
0x1012b8 <___start+312>: ldx [ %l7 + %o0 ], %o0
0x1012bc <___start+316>: call 0x101138 <_init>
0x1012c0 <___start+320>: nop
[..]
so the _libc_init call goes wild and calls the wrong function.
>How-To-Repeat:
s/a
>Fix:
n/a
Home |
Main Index |
Thread Index |
Old Index