Browse Source

Add 2 testcases for PR ld/22269

Since undefined weak symbols in static PIE are always resolved to 0 at
run-time, linker should resolve them as 0 at link-time, regardless of
whether "-z dynamic-undefined-weak" is used.  "-z dynamic-undefined-weak"
only makes undefined weak symbols dynamic, but doesn't change undefined
weak symbol resolution in static PIE at link-time.  These tests currently
pass on x86, but fails on many other targets.

The framework to resolve weak symbols in static PE at link-time is
posted at

https://sourceware.org/ml/binutils/2017-10/msg00087.html

which requires users/hjl/check_relocs branch to call check_relocs after
opening all inputs.  I will submit backend patches for failling targets
after merging users/hjl/check_relocs branch next.

	* PR ld/22269
	* testsuite/ld-elf/pr22269.s: New file.
	* testsuite/ld-elf/pr22269a.d: Likewise.
	* testsuite/ld-elf/pr22269b.d: Likewise.
gdb-8.1-branch
H.J. Lu 9 years ago
parent
commit
4b97e3893e
  1. 7
      ld/ChangeLog
  2. 13
      ld/testsuite/ld-elf/pr22269.s
  3. 10
      ld/testsuite/ld-elf/pr22269a.d
  4. 10
      ld/testsuite/ld-elf/pr22269b.d

7
ld/ChangeLog

@ -1,3 +1,10 @@
2017-10-11 H.J. Lu <hongjiu.lu@intel.com>
* PR ld/22269
* testsuite/ld-elf/pr22269.s: New file.
* testsuite/ld-elf/pr22269a.d: Likewise.
* testsuite/ld-elf/pr22269b.d: Likewise.
2017-10-11 H.J. Lu <hongjiu.lu@intel.com>
* testsuite/ld-i386/i386.exp: Run pr19636-1j, pr19636-1k,

13
ld/testsuite/ld-elf/pr22269.s

@ -0,0 +1,13 @@
.globl main
.globl start
.globl _start
.globl __start
.text
main:
start:
_start:
__start:
.byte 0
.section .data.rel.ro.local,"aw",%progbits
.weak func
.dc.a func

10
ld/testsuite/ld-elf/pr22269a.d

@ -0,0 +1,10 @@
#name: PR ld/22269
#source: pr22269.s
#ld: -pie --no-dynamic-linker
#readelf: -r -x .data.rel.ro
#target: *-*-linux* *-*-gnu* *-*-nacl*
There are no relocations in this file.
Hex dump of section '.data.rel.ro':
0x[a-f0-9]+ [0 ]+[ ]+.+

10
ld/testsuite/ld-elf/pr22269b.d

@ -0,0 +1,10 @@
#name: PR ld/22269 (-z dynamic-undefined-weak)
#source: pr22269.s
#ld: -pie --no-dynamic-linker -z dynamic-undefined-weak
#readelf: -r -x .data.rel.ro
#target: *-*-linux* *-*-gnu* *-*-nacl*
There are no relocations in this file.
Hex dump of section '.data.rel.ro':
0x[a-f0-9]+ [0 ]+[ ]+.+
Loading…
Cancel
Save