This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH] sparc: Prevent all but undef weak syms from becoming dynamic.
- From: jose dot marchesi at oracle dot com (Jose E. Marchesi)
- To: Egeyar Bagcioglu <egeyar dot bagcioglu at oracle dot com>
- Cc: binutils at sourceware dot org
- Date: Tue, 06 Jun 2017 07:30:11 +0200
- Subject: Re: [PATCH] sparc: Prevent all but undef weak syms from becoming dynamic.
- Authentication-results: sourceware.org; auth=none
- References: <1496197911-106396-1-git-send-email-egeyar.bagcioglu@oracle.com>
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!