aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>1998-04-21 07:15:57 +0000
committerRichard Henderson <rth@redhat.com>1998-04-21 07:15:57 +0000
commit211b0be8ce3796451393328215932f8d61091c13 (patch)
tree207a2e9932fdf336993207720c41aba8fa0222a6
parenta56e73eda41f4caef82d4107dafa2955e2393411 (diff)
downloadgdb-211b0be8ce3796451393328215932f8d61091c13.zip
gdb-211b0be8ce3796451393328215932f8d61091c13.tar.gz
gdb-211b0be8ce3796451393328215932f8d61091c13.tar.bz2
* elf64-alpha.c (elf64_alpha_find_reloc_at_ofs): Renamed from
elf64_alpha_relax_find_reloc_ofs. Changed all callers. (elf64_alpha_add_symbol_hook): Put small commons in .scommon not .sbss. (elf64_alpha_size_got_sections): Don't merge .got sections twice.
-rw-r--r--bfd/ChangeLog13
-rw-r--r--bfd/elf64-alpha.c32
2 files changed, 30 insertions, 15 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ee383f1..bbd411c 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,16 @@
+Tue Apr 21 00:11:51 1998 Richard Henderson <rth@cygnus.com>
+
+ * archive.c (_bfd_generic_read_ar_hdr_mag): Simplify end-of-name test.
+
+ * elf64-alpha.c (elf64_alpha_find_reloc_at_ofs): Renamed from
+ elf64_alpha_relax_find_reloc_ofs. Changed all callers.
+ (elf64_alpha_add_symbol_hook): Put small commons in .scommon not .sbss.
+ (elf64_alpha_size_got_sections): Don't merge .got sections twice.
+
+Sat Apr 18 01:21:04 1998 Stan Cox <scox@cygnus.com>
+
+ * config.bfd: Added sparc86x support.
+
Fri Apr 17 22:29:04 1998 Ian Lance Taylor <ian@cygnus.com>
* elf32-mips.c (mips_elf_relocate_section): Do not complain about
diff --git a/bfd/elf64-alpha.c b/bfd/elf64-alpha.c
index 243b9ed..36da889 100644
--- a/bfd/elf64-alpha.c
+++ b/bfd/elf64-alpha.c
@@ -888,8 +888,8 @@ elf64_alpha_do_reloc_gpdisp (abfd, gpdisp, p_ldah, p_lda)
gpdisp += addend;
- if ((bfd_signed_vma) gpdisp < -(bfd_signed_vma)0x80000000
- || gpdisp >= 0x7fff8000)
+ if ((bfd_signed_vma) gpdisp < -(bfd_signed_vma) 0x80000000
+ || (bfd_signed_vma) gpdisp >= (bfd_signed_vma) 0x7fff8000)
ret = bfd_reloc_overflow;
/* compensate for the sign extension again. */
@@ -1062,7 +1062,7 @@ static boolean elf64_alpha_relax_section
boolean *again));
static Elf_Internal_Rela *
-elf64_alpha_relax_find_reloc_ofs (rel, relend, offset, type)
+elf64_alpha_find_reloc_at_ofs (rel, relend, offset, type)
Elf_Internal_Rela *rel, *relend;
bfd_vma offset;
int type;
@@ -1212,7 +1212,7 @@ elf64_alpha_relax_with_lituse (info, symval, irel, irelend)
info->changed_relocs = true;
/* Kill any HINT reloc that might exist for this insn. */
- xrel = (elf64_alpha_relax_find_reloc_ofs
+ xrel = (elf64_alpha_find_reloc_at_ofs
(info->relocs, info->relend, urel->r_offset,
R_ALPHA_HINT));
if (xrel)
@@ -1732,25 +1732,25 @@ elf64_alpha_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
/* Common symbols less than or equal to -G nn bytes are
automatically put into .sbss. */
- asection *sbss = bfd_get_section_by_name (abfd, ".sbss");
+ asection *scomm = bfd_get_section_by_name (abfd, ".scommon");
- if (sbss == NULL)
+ if (scomm == NULL)
{
- sbss = bfd_make_section (abfd, ".sbss");
- if (sbss == NULL
- || !bfd_set_section_flags (abfd, sbss, (SEC_ALLOC | SEC_LOAD
- | SEC_IS_COMMON
- | SEC_LINKER_CREATED)))
+ scomm = bfd_make_section (abfd, ".scommon");
+ if (scomm == NULL
+ || !bfd_set_section_flags (abfd, scomm, (SEC_ALLOC | SEC_LOAD
+ | SEC_IS_COMMON
+ | SEC_LINKER_CREATED)))
return false;
}
- if (bfd_get_section_alignment (abfd, sbss) < sym->st_value)
+ if (bfd_get_section_alignment (abfd, scomm) < sym->st_value)
{
- if (!bfd_set_section_alignment (abfd, sbss, sym->st_value))
+ if (!bfd_set_section_alignment (abfd, scomm, sym->st_value))
return false;
}
- *secp = sbss;
+ *secp = scomm;
*valp = sym->st_size;
}
@@ -2952,7 +2952,9 @@ elf64_alpha_size_got_sections (output_bfd, info)
if (cur_got_obj)
{
- if (elf64_alpha_can_merge_gots (cur_got_obj, i))
+ if (this_got == cur_got_obj)
+ ; /* Some previous pass merged us already. */
+ else if (elf64_alpha_can_merge_gots (cur_got_obj, i))
{
elf64_alpha_merge_gots (cur_got_obj, i);
*cur_got_tail = i;