From 062cf83700a3bd7099b83ce38b9fc732e3723004 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Mon, 27 Nov 2006 11:25:27 +0000 Subject: [PATCH] * config/tc-sparc.c (tc_gen_reloc): Turn aligned relocs into their unaligned counterparts in debugging sections. --- gas/ChangeLog | 5 +++++ gas/config/tc-sparc.c | 12 +++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 506f0fcc1df..8e45803314d 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2006-11-27 Eric Botcazou + + * config/tc-sparc.c (tc_gen_reloc): Turn aligned relocs into + their unaligned counterparts in debugging sections. + 2006-11-24 Alan Modra * config/tc-spu.c (md_pseudo_table): Add eqv and .eqv. diff --git a/gas/config/tc-sparc.c b/gas/config/tc-sparc.c index d6a1a15e731..c98081c959a 100644 --- a/gas/config/tc-sparc.c +++ b/gas/config/tc-sparc.c @@ -3437,7 +3437,7 @@ md_apply_fix (fixP, valP, segment) arelent ** tc_gen_reloc (section, fixp) - asection *section ATTRIBUTE_UNUSED; + asection *section; fixS *fixp; { static arelent *relocs[3]; @@ -3580,6 +3580,16 @@ tc_gen_reloc (section, fixp) } #endif /* defined (OBJ_ELF) || defined (OBJ_AOUT) */ + /* Nothing is aligned in DWARF debugging sections. */ + if (bfd_get_section_flags (stdoutput, section) & SEC_DEBUGGING) + switch (code) + { + case BFD_RELOC_16: code = BFD_RELOC_SPARC_UA16; break; + case BFD_RELOC_32: code = BFD_RELOC_SPARC_UA32; break; + case BFD_RELOC_64: code = BFD_RELOC_SPARC_UA64; break; + default: break; + } + if (code == BFD_RELOC_SPARC_OLO10) reloc->howto = bfd_reloc_type_lookup (stdoutput, BFD_RELOC_LO10); else -- 2.30.2