[Patch] XFAIL srec tests for avr
Senthil Kumar Selvaraj
senthil_kumar.selvaraj@atmel.com
Thu May 5 11:31:00 GMT 2016
Hi,
This patch sets the status of tests in srec.exp as XFAIL for the
avr target.
The tests have been failing for quite a while (years IIRC).
Turns out that the code path for srec output does not call
elf32_avr_relocate_section - that function calls
avr_final_link_relocate to do custom reloc handling outside of
what's expressed in the reloc howto table. The srec code path
calls bfd_perfom_relocation instead, and that function, which only
looks at howto table information, generates junk values, causing
the tests to fail.
Just calling that function from
elf32_avr_get_relocated_section_contents didn't work - there's some
state set up through elf32_avr_link_hash_table_create (which
implements bfd_elf32_bfd_link_hash_table_create hook), and that's
missing in the srec generation code path. I gave up at this point :)
An easy and well-known workaround exists - linking to ELF and then
using objcopy to convert to srec.
If ok, could someone commit please? I don't have commit access. The
formatting looks weird - I went by neighboring code's formatting.
Regards
Senthil
ld/ChangeLog
2016-05-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
* ld/testsuite/ld-srec/srec.exp: Mark test as
XFAIL for avr.
diff --git a/ld/testsuite/ld-srec/srec.exp b/ld/testsuite/ld-srec/srec.exp
index 9832af8..d26b3da 100644
--- a/ld/testsuite/ld-srec/srec.exp
+++ b/ld/testsuite/ld-srec/srec.exp
@@ -249,6 +249,12 @@ proc run_srec_test { test objs } {
setup_xfail "sh64*-*-*"
}
+ # The AVR target does not correctly process relocs
+ # when output format is not ELF.
+ if [istarget avr-*-*] {
+ setup_xfail "avr-*-*"
+ }
+
if {[istarget aarch64*-*-*] || \
[istarget arm*-*-*]} {
# ARM targets cannot convert format in the linker
More information about the Binutils
mailing list