[PATCH] sparc: Prevent all but undef weak syms from becoming dynamic.
Jose E. Marchesi
jose.marchesi@oracle.com
Tue Jun 6 05:30:00 GMT 2017
Hi Egeyar.
Prevent sparc backend making symbols dynamic unless they are undefined
weak. By doing so, stop dynamic linker confusing these symbols with
library symbols.
Your patch seems to fix all the currently failing tests of the LD
testsuite in sparc64:
FAIL: Run indirect5 3
FAIL: Run indirect5 4
FAIL: Run indirect6 3
FAIL: Run indirect6 4
FAIL: indirect5c dynsym
FAIL: indirect5d dynsym
FAIL: indirect6c dynsym
FAIL: indirect6d dynsym
FAIL: Run pr2404 with PIE
FAIL: Run pr2404 with PIE (-z now)
These all pass now. Which is great! :)
However, it also triggers a regression:
gcc -B/home/jemarch/couts2/binutils-gdb/build/ld/tmpdir/ld/
-L/usr/local/sparc64-unknown-linux-gnu/lib64 \
-L/usr/local/lib64 -L/lib64 -L/usr/lib64
-L/usr/local/sparc64-unknown-linux-gnu/lib -L/usr/local/lib -L/lib\
-L/usr/lib -o tmpdir/ifunc-mainpn
-L/home/jemarch/couts2/binutils-gdb/ld/testsuite/ld-ifunc -pie -Wl,-z,\
now -Wl,--no-as-needed tmpdir/libifunc-libn.so tmpdir/ifunc-main.o
Executing on host: sh -c {gcc
-B/home/jemarch/couts2/binutils-gdb/build/ld/tmpdir/ld/
-L/usr/local/sparc6\
4-unknown-linux-gnu/lib64 -L/usr/local/lib64 -L/lib64 -L/usr/lib64
-L/usr/local/sparc64-unknown-linux-gnu/l\
ib -L/usr/local/lib -L/lib -L/usr/lib -o tmpdir/ifunc-mainpn
-L/home/jemarch/couts2/binutils-gdb/ld/tests\
uite/ld-ifunc -pie -Wl,-z,now -Wl,--no-as-needed
tmpdir/libifunc-libn.so tmpdir/ifunc-main.o 2>&1} /dev/nu\
ll ld.tmp (timeout = 300)
spawn [open ...]^M
Running: tmpdir/ifunc-mainpn > tmpdir/ifunc-mainpn.out
child killed: segmentation violation
FAIL: Run ifunc-main with PIE (-z now)
Could you please take a look?
Thanks!
More information about the Binutils
mailing list