This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Regressions with "PATCH: PR ld/13177: garbage collector retains zombie references to external libraries"
- From: Hans-Peter Nilsson <hans-peter dot nilsson at axis dot com>
- To: hjl dot tools at gmail dot com
- Cc: binutils at sourceware dot org
- Date: Fri, 16 Sep 2011 08:21:24 +0200
- Subject: Regressions with "PATCH: PR ld/13177: garbage collector retains zombie references to external libraries"
> Date: Wed, 14 Sep 2011 12:14:38 -0700
> From: "H.J. Lu" <hongjiu.lu@intel.com>
> 2011-09-14 H.J. Lu <hongjiu.lu@intel.com>
>
> PR ld/13177
> * elflink.c (elf_gc_sweep_symbol): Also hide symbols without PLT
> nor GOT references.
>
> ld/testsuite/
>
> 2011-09-14 H.J. Lu <hongjiu.lu@intel.com>
>
> PR ld/13177
> * ld-elf/pr13177.d: New.
> * ld-elf/pr13177.s: Likewise.
Caused regressions for cris-elf and cris-axis-linux-gnu:
cris-elf:
Running /tmp/hpautotest-binutils/bsrc/src/ld/testsuite/ld-cris/cris.exp ...
FAIL: ld-cris/pic-gc-72
ld.log:
Executing on host: sh -c {/tmp/hpautotest-binutils/cris-axis-elf/ld/../binutils/objdump -s -t -R -p -T tmpdir/dump > tmpdir/dump.out 2>ld.tmp} /dev/null (timeout = 300)
exited abnormally with 0, output:BFD: tmpdir/dump(.rela.dyn): relocation 0 has invalid symbol index 16777215
...
Running /tmp/hpautotest-binutils/bsrc/src/ld/testsuite/ld-elf/elf.exp ...
FAIL: ld-elf/pr12975
ld.log:
./ld-new -L/tmp/hpautotest-binutils/bsrc/src/ld/testsuite/ld-elf --gc-sections -shared -version-script pr12975.t -o tmpdir/dump tmpdir/dump0.o
Executing on host: sh -c {./ld-new -L/tmp/hpautotest-binutils/bsrc/src/ld/testsuite/ld-elf --gc-sections -shared -version-script pr12975.t -o tmpdir/dump tmpdir/dump0.o 2>&1} /dev/null ld.tmp (timeout = 300)
./ld-new: -shared not supported
Your test wrongly assumes that all ELF target support -shared or
at least don't complain. Other tests don't fall for that.
FAIL: ld-elf/pr13177
Same here.
cris-axis-linux-gnu:
Running /tmp/hpautotest-binutils/bsrc/src/ld/testsuite/ld-cris/cris.exp ...
FAIL: ld-cris/pic-gc-72
ld.log says the same as for cris-elf for this FAIL.
Running /tmp/hpautotest-binutils/bsrc/src/ld/testsuite/ld-elf/elf.exp ...
FAIL: ld-elf/pr13177
ld.log:
./ld-new -L/tmp/hpautotest-binutils/bsrc/src/ld/testsuite/ld-elf --gc-sections -shared -o tmpdir/dump tmpdir/dump0.o
Executing on host: sh -c {./ld-new -L/tmp/hpautotest-binutils/bsrc/src/ld/testsuite/ld-elf --gc-sections -shared -o tmpdir/dump tmpdir/dump0.o 2>&1} /dev/null ld.tmp (timeout = 300)
./ld-new: tmpdir/dump0.o, section .text.opt_out:
relocation R_CRIS_32 should not be used in a shared object; recompile with -fPIC
succeeded with: <./ld-new: tmpdir/dump0.o, section .text.opt_out:
relocation R_CRIS_32 should not be used in a shared object; recompile with -fPIC>, expected: <>
./ld-new: tmpdir/dump0.o, section .text.opt_out:
relocation R_CRIS_32 should not be used in a shared object; recompile with -fPIC
succeeded with: <./ld-new: tmpdir/dump0.o, section .text.opt_out:
relocation R_CRIS_32 should not be used in a shared object; recompile with -fPIC>, expected: <>
Looks like the test emits an absolute address in .text in a
shared library, a no-no. Try using .data instead or something.
Don't x86_64 and sh err too?
brgds, H-P