diff options
author | Jakub Jelinek <jakub@redhat.com> | 2001-11-23 12:17:21 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2001-11-23 12:17:21 +0000 |
commit | f8df10f4f595488c4b6a8e49ffc99721d5aefdba (patch) | |
tree | 7dc9e393dc8c2086ea6af3c6e2e8c4976d1fe170 /gas | |
parent | c6843df52be70708585dacee4a13df2c20fc583a (diff) | |
download | gdb-f8df10f4f595488c4b6a8e49ffc99721d5aefdba.zip gdb-f8df10f4f595488c4b6a8e49ffc99721d5aefdba.tar.gz gdb-f8df10f4f595488c4b6a8e49ffc99721d5aefdba.tar.bz2 |
* elf.c (_bfd_elf_rela_local_sym): New.
* elflink.h (elf_link_input_bfd): Don't consider empty
merged sections as removed in relocation tests.
* elf-bfd.h (_bfd_elf_rela_local_sym): Add prototype.
* elf32-i386.c (elf_i386_relocate_section): Handle relocs
against STT_SECTION symbol of SHF_MERGE section.
* elf32-arm.h (elf32_arm_relocate_section): Likewise.
* elf32-avr.c (elf32_avr_relocate_section): Call
_bfd_elf_rela_local_sym.
* elf32-cris.c (cris_elf_relocate_section): Likewise.
* elf32-d10v.c (elf32_d10v_relocate_section): Likewise.
* elf32-fr30.c (fr30_final_link_relocate): Likewise.
* elf32-h8300.c (elf32_h8_relocate_section): Likewise.
* elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
* elf32-i370.c (i370_elf_relocate_section): Likewise.
* elf32-i860.c (elf32_i860_relocate_section): Likewise.
* elf32-m32r.c (m32r_elf_relocate_section): Likewise.
* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
* elf32-mcore.c (mcore_elf_relocate_section): Likewise.
* elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
* elf32-s390.c (elf_s390_relocate_section): Likewise.
* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
* elf32-v850.c (v850_elf_relocate_section): Likewise.
* elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
* elf64-mmix.c (mmix_elf_relocate_section): Likewise.
* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
* elf64-s390.c (elf_s390_relocate_section): Likewise.
* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
* elf-hppa.h (elf_hppa_relocate_section): Likewise.
* elf-m10200.c (mn10200_elf_relocate_section): Likewise.
* elf-m10300.c (mn10300_elf_relocate_section): Likewise.
* elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
* elf32-sh.c (sh_elf_relocate_section): Likewise for
!partial_inplace relocs. Handle relocs against STT_SECTION
symbol of SHF_MERGE for partial_inplace relocs.
* config/tc-alpha.c (tc_gen_reloc): Remove SEC_MERGE test.
* write.c (adjust_reloc_syms): Don't handle relocs against
SEC_MERGE section symbols specially.
(fixup_segment): Likewise.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 7 | ||||
-rw-r--r-- | gas/config/tc-alpha.c | 3 | ||||
-rw-r--r-- | gas/write.c | 10 |
3 files changed, 8 insertions, 12 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 9440e14..b2caa0b 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2001-11-23 Jakub Jelinek <jakub@redhat.com> + + * config/tc-alpha.c (tc_gen_reloc): Remove SEC_MERGE test. + * write.c (adjust_reloc_syms): Don't handle relocs against + SEC_MERGE section symbols specially. + (fixup_segment): Likewise. + 2001-11-21 Richard Sandiford <rsandifo@redhat.com> * config/tc-mips.c (mips_need_elf_addend_fixup): New, extracted from... diff --git a/gas/config/tc-alpha.c b/gas/config/tc-alpha.c index f73c862..f9908e7 100644 --- a/gas/config/tc-alpha.c +++ b/gas/config/tc-alpha.c @@ -1507,8 +1507,7 @@ tc_gen_reloc (sec, fixp) * at assembly time. bfd_perform_reloc doesn't know about this sort * of thing, and as a result we need to fake it out here. */ - if ((S_IS_EXTERN (fixp->fx_addsy) || S_IS_WEAK (fixp->fx_addsy) - || (S_GET_SEGMENT (fixp->fx_addsy)->flags & SEC_MERGE)) + if ((S_IS_EXTERN (fixp->fx_addsy) || S_IS_WEAK (fixp->fx_addsy)) && !S_IS_COMMON (fixp->fx_addsy)) reloc->addend -= symbol_get_bfdsym (fixp->fx_addsy)->value; #endif diff --git a/gas/write.c b/gas/write.c index 8176335..5397aa0 100644 --- a/gas/write.c +++ b/gas/write.c @@ -873,13 +873,6 @@ adjust_reloc_syms (abfd, sec, xxx) symbol_mark_used_in_reloc (fixp->fx_addsy); goto done; } - - /* Never adjust a reloc against local symbol in a merge section. */ - if (symsec->flags & SEC_MERGE) - { - symbol_mark_used_in_reloc (fixp->fx_addsy); - goto done; - } #endif /* Is there some other reason we can't adjust this one? (E.g., @@ -2815,9 +2808,6 @@ fixup_segment (fixP, this_segment_type) else if (add_symbol_segment == undefined_section #ifdef BFD_ASSEMBLER || bfd_is_com_section (add_symbol_segment) - || (bfd_get_section_flags (stdoutput, - add_symbol_segment) - & SEC_MERGE) != 0 #endif ) { |