aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-alpha.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2001-11-28 19:15:14 +0000
committerJakub Jelinek <jakub@redhat.com>2001-11-28 19:15:14 +0000
commitf7460f5f7689262ad24e7e28c9d6662169cd3549 (patch)
treeb91781a60f2fdb2d19a13d770b42458fc58772ea /gas/config/tc-alpha.c
parent607334a109d5de6cddbcec994bf142aa099cfe41 (diff)
downloadgdb-f7460f5f7689262ad24e7e28c9d6662169cd3549.zip
gdb-f7460f5f7689262ad24e7e28c9d6662169cd3549.tar.gz
gdb-f7460f5f7689262ad24e7e28c9d6662169cd3549.tar.bz2
* elf64-alpha.c (ALPHA_ELF_GOT_ENTRY_RELOCS_XLATED): Defined.
(elf64_alpha_relocate_section): Translate local_got_entries for STT_SECTION symbol to SHF_MERGE section the first time we see it. * elfxx-ia64.c (struct elfNN_ia64_local_hash_entry): Add sec_merge_done. (get_local_sym_hash): New, extracted from get_dyn_sym_info. (get_dyn_sym_info): Use it. (elfNN_ia64_relocate_section): Translate local dyn entries for STT_SECTION symbol to SHF_MERGE section the first time we see it. * write.c (adjust_reloc_syms): Mark SEC_MERGE symbols as used in reloc if it has non-zero addend. * config/tc-alpha.c (tc_gen_reloc): Reinstall SEC_MERGE check. * config/tc-sparc.c (md_apply_fix3): Likewise.
Diffstat (limited to 'gas/config/tc-alpha.c')
-rw-r--r--gas/config/tc-alpha.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gas/config/tc-alpha.c b/gas/config/tc-alpha.c
index f9908e7..f73c862 100644
--- a/gas/config/tc-alpha.c
+++ b/gas/config/tc-alpha.c
@@ -1507,7 +1507,8 @@ 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))
+ if ((S_IS_EXTERN (fixp->fx_addsy) || S_IS_WEAK (fixp->fx_addsy)
+ || (S_GET_SEGMENT (fixp->fx_addsy)->flags & SEC_MERGE))
&& !S_IS_COMMON (fixp->fx_addsy))
reloc->addend -= symbol_get_bfdsym (fixp->fx_addsy)->value;
#endif