bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/13671] gld creates i386 relocations not supported by Solaris ld.


From: ro at CeBiTec dot Uni-Bielefeld.DE
Subject: [Bug ld/13671] gld creates i386 relocations not supported by Solaris ld.so.1
Date: Wed, 14 Feb 2018 14:01:34 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=13671

--- Comment #18 from Rainer Orth <ro at CeBiTec dot Uni-Bielefeld.DE> ---
> --- Comment #17 from H.J. Lu <hjl.tools at gmail dot com> ---
> Please try users/hjl/solaris branch at
>
> https://github.com/hjl-tools/binutils-gdb

Any reason not to keep that branch in the binutils-git repo on
sourceware?  That's where I looked initially, confusing the hell out of
me ;-)

Fortunately, a lot of failures are gone, but still a couple remain, all
from g++.dg/tree-prof and gcc.dg/tree-prof tests, which SEGV, e.g.

FAIL: gcc.dg/tree-prof/crossmodule-indircall-1.c execution,   
-fprofile-generate -D_PROFILE_GENERATE

Thread 2 received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1 (LWP 1)]
0x080491c9 in __gcov_indirect_call_profiler_v2 (value=151663852, 
    cur_func=0x8048f10 <add>)
    at /vol/gcc/src/hg/trunk/local/libgcc/libgcov-profiler.c:335
335       if (cur_func == __gcov_indirect_call_callee
=> 0x8049019 <__gcov_indirect_call_profiler_v2+41>:     cmp    %edx,(%eax)
(gdb) p/x $eax
$1 = 0x66caa44

That address is indeed unmapped and below the text segment.

(gdb) where
#0  0x080491c9 in __gcov_indirect_call_profiler_v2 (value=151663852, 
    cur_func=0x8048f10 <add>)
    at /vol/gcc/src/hg/trunk/local/libgcc/libgcov-profiler.c:335
#1  0x08048f41 in add ()
#2  0x08048e5c in main ()

elfdump -r complains about the executable:

crossmodule-indircall-1.x01: bad relocation entry: R_386_TLS_TPOFF: relocation
requires symbol
crossmodule-indircall-1.x01: bad relocation entry: R_386_TLS_TPOFF: relocation
requires symbol

    [3]  R_386_TLS_TPOFF  0x804d22c       0x4  .got    
    [4]  R_386_TLS_TPOFF  0x804d230         0  .got    
   [11]  R_386_JMP_SLOT   0x804d1c8 0x80489f6  .got    ___tls_get_addr

It happens even when I build without -flto:

$ ld -m elf_i386_sol2 -o crossmodule-indircall-1.x01 /usr/lib/crt1.o
crossmodule-indircall-1.o crossmodule-indircall-1a.o -lm -lgcov -lgcc -lc
/usr/lib/crtn.o

Input files at

       
https://www.cebitec.uni-bielefeld.de/~ro/files/crossmodule-indircall-1.tar.bz2

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]