This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: PR 6848: Not all targets generate relocs against kept symbols.
- From: Alan Modra <amodra at bigpond dot net dot au>
- To: Nick Clifton <nickc at redhat dot com>, brolley at redhat dot com, aoliva at redhat dot com, hp at bitrange dot com, binutils at sourceware dot org
- Date: Mon, 15 Sep 2008 23:21:40 +0930
- Subject: Re: PR 6848: Not all targets generate relocs against kept symbols.
- References: <m37i9fum7p.fsf@redhat.com> <20080915043811.GA3990@bubble.grove.modra.org>
Another reason we had a rather lot of failures was a silly mistake on
my part when inverting some logic.
gas/
* write.c (install_reloc): Correct EMIT_SECTION_SYMBOLS test.
gas/testsuite/
* gas/all/gas.exp: Don't run redef tests on a bunch of targets.
* gas/elf/elf.exp: Likewise.
Index: gas/write.c
===================================================================
RCS file: /cvs/src/src/gas/write.c,v
retrieving revision 1.118
diff -u -p -r1.118 write.c
--- gas/write.c 20 Aug 2008 13:43:32 -0000 1.118
+++ gas/write.c 15 Sep 2008 13:29:12 -0000
@@ -1090,8 +1090,8 @@ install_reloc (asection *sec, arelent *r
&& (sym = *reloc->sym_ptr_ptr) != NULL
&& (sym->flags & BSF_KEEP) == 0
&& ((sym->flags & BSF_SECTION_SYM) == 0
- || !EMIT_SECTION_SYMBOLS
- || !bfd_is_abs_section (sym->section)))
+ || (EMIT_SECTION_SYMBOLS
+ && !bfd_is_abs_section (sym->section))))
as_bad_where (file, line, _("redefined symbol cannot be used on reloc"));
s = bfd_install_relocation (stdoutput, reloc,
Index: gas/testsuite/gas/all/gas.exp
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/all/gas.exp,v
retrieving revision 1.54
diff -u -p -r1.54 gas.exp
--- gas/testsuite/gas/all/gas.exp 20 Aug 2008 23:38:39 -0000 1.54
+++ gas/testsuite/gas/all/gas.exp 15 Sep 2008 13:24:19 -0000
@@ -81,30 +81,39 @@ case $target_triplet in {
}
# .set works differently on some targets.
+# most of the tests won't work on targets that set linkrelax.
+# 4 octet bytes confuse address matching on ti targets.
+# pdp11 gets unexpected reloc types.
case $target_triplet in {
{ alpha*-*-* } { }
+ { cr16*-*-* } { }
+ { crx*-*-* } { }
+ { h8300-*-* } { }
{ mips*-*-* } { }
- { *c54x*-*-* } { }
+ { mn10200-*-* } { }
+ { mn10300-*-* } { }
+ { pdp11-*-* } { }
+ { tic30*-*-* } { }
+ { tic4x*-*-* } { }
+ { tic54x*-*-* } { }
+ { xtensa*-*-* } { }
{ z80-*-* } { }
default {
- setup_xfail "*c30*-*-*" "*c4x*-*-*" "pdp11-*-*" "xtensa*-*-*"
run_dump_test redef
# The next two tests can fail if the target does not convert fixups
# against ordinary symbols into relocations against section symbols.
# This is usually revealed by the error message:
# symbol `sym' required but not present
- setup_xfail "*c30*-*-*" "*c4x*-*-*" "*arm*-*-*aout*" "*arm*-*-*coff" \
- "*arm*-*-pe" "crx*-*-*" "h8300*-*-*" "m68hc*-*-*" "maxq-*-*" \
- "mn10300-*-*" "pdp11-*-*" "vax*-*-*" "z8k-*-*" "cr16-*-*"
+ setup_xfail "*arm*-*-*aout*" "*arm*-*-*coff" \
+ "*arm*-*-pe" "m68hc*-*-*" "maxq-*-*" \
+ "vax*-*-*" "z8k-*-*"
run_dump_test redef2
setup_xfail "*-*-aix*" "*-*-coff" "*-*-cygwin" "*-*-mingw*" "*-*-pe*" \
- "bfin-*-*" "*c4x*-*-*" "crx*-*-*" "h8300*-*-*" "hppa*-*-hpux*" \
- "m68hc*-*-*" "maxq-*-*" "mn10300-*-*" "or32-*-*" "pdp11-*-*" \
- "vax*-*-*" "z8k-*-*" "cr16-*-*"
+ "bfin-*-*" "hppa*-*-hpux*" \
+ "m68hc*-*-*" "maxq-*-*" "or32-*-*" \
+ "vax*-*-*" "z8k-*-*"
run_dump_test redef3
- setup_xfail "*c4x*-*-*"
gas_test_error "redef4.s" "" ".set for symbol already used as label"
- setup_xfail "*c4x*-*-*"
gas_test_error "redef5.s" "" ".set for symbol already defined through .comm"
}
}
Index: gas/testsuite/gas/elf/elf.exp
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/elf/elf.exp,v
retrieving revision 1.46
diff -u -p -r1.46 elf.exp
--- gas/testsuite/gas/elf/elf.exp 1 Feb 2008 17:58:48 -0000 1.46
+++ gas/testsuite/gas/elf/elf.exp 15 Sep 2008 13:24:19 -0000
@@ -88,16 +88,20 @@ if { ([istarget "*-*-*elf*"]
run_dump_test "group1b"
case $target_triplet in {
{ alpha*-*-* } { }
+ { cr16*-*-* } { }
+ { crx*-*-* } { }
+ { h8300-*-* } { }
{ hppa*-*-* } { }
{ iq2000*-*-* } { }
{ mips*-*-* } { }
+ { mn10200-*-* } { }
+ { mn10300-*-* } { }
{ *c54x*-*-* } { }
default {
# The next test can fail if the target does not convert fixups
# against ordinary symbols into relocations against section symbols.
# This is usually revealed by the error message:
# symbol `sym' required but not present
- setup_xfail "cr16-*-*" "h8300-*-*" "mn10300-*-*"
run_dump_test redef
run_dump_test equ-reloc
}
--
Alan Modra
Australia Development Lab, IBM