OSDN Git Service

bfd/
authorAlan Modra <amodra@bigpond.net.au>
Wed, 17 Aug 2005 10:04:26 +0000 (10:04 +0000)
committerAlan Modra <amodra@bigpond.net.au>
Wed, 17 Aug 2005 10:04:26 +0000 (10:04 +0000)
* elf32-cris.c (elf_cris_adjust_gotplt_to_got): Move assert later.
* elfxx-mips.c (_bfd_mips_elf_hide_symbol): Cope with being called
without any got section.

ld/testsuite/
* ld-alpha/tlsbin.rd: Update.
* ld-alpha/tlsbinr.rd: Update.
* ld-cris/locref1.d: Update.
* ld-cris/locref2.d: Update.
* ld-i386/tlsbin.rd: Update.
* ld-ia64/tlsbin.rd: Update.
* ld-powerpc/tlsexe.r: Update.
* ld-powerpc/tlsexe32.r: Update.
* ld-powerpc/tlsexetoc.r: Update.
* ld-s390/tlsbin.rd: Update.
* ld-s390/tlsbin_64.rd: Update.
* ld-sparc/tlssunbin32.rd: Update.
* ld-sparc/tlssunbin64.rd: Update.
* ld-x86-64/tlsbin.rd: Update.

bfd/ChangeLog
bfd/elf32-cris.c
bfd/elfxx-mips.c

index 7d0d5f3..52e65fb 100644 (file)
@@ -1,3 +1,9 @@
+2005-08-17  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-cris.c (elf_cris_adjust_gotplt_to_got): Move assert later.
+       * elfxx-mips.c (_bfd_mips_elf_hide_symbol): Cope with being called
+       without any got section.
+
 2005-08-17  Danny Smith  <dannysmith@users.sourceforge.net>
 
        * cofflink.c (_bfd_coff_generic_relocate_section): Correct
index ced86c3..618210a 100644 (file)
@@ -2078,9 +2078,6 @@ elf_cris_adjust_gotplt_to_got (h, p)
      PTR p;
 {
   struct bfd_link_info *info = (struct bfd_link_info *) p;
-  bfd *dynobj = elf_hash_table (info)->dynobj;
-
-  BFD_ASSERT (dynobj != NULL);
 
   if (h->root.root.type == bfd_link_hash_warning)
     h = (struct elf_cris_link_hash_entry *) h->root.root.u.i.link;
@@ -2100,9 +2097,13 @@ elf_cris_adjust_gotplt_to_got (h, p)
   else
     {
       /* No GOT entry for this symbol.  We need to create one.  */
-      asection *sgot = bfd_get_section_by_name (dynobj, ".got");
-      asection *srelgot
-       = bfd_get_section_by_name (dynobj, ".rela.got");
+      bfd *dynobj = elf_hash_table (info)->dynobj;
+      asection *sgot;
+      asection *srelgot;
+
+      BFD_ASSERT (dynobj != NULL);
+      sgot = bfd_get_section_by_name (dynobj, ".got");
+      srelgot = bfd_get_section_by_name (dynobj, ".rela.got");
 
       /* Put an accurate refcount there.  */
       h->root.got.refcount = h->gotplt_refcount;
index 53b5c9e..389c2af 100644 (file)
@@ -8424,11 +8424,10 @@ _bfd_mips_elf_hide_symbol (struct bfd_link_info *info,
   h->forced_local = force_local;
 
   dynobj = elf_hash_table (info)->dynobj;
-  if (dynobj != NULL && force_local && h->root.type != STT_TLS)
+  if (dynobj != NULL && force_local && h->root.type != STT_TLS
+      && (got = mips_elf_got_section (dynobj, FALSE)) != NULL
+      && (g = mips_elf_section_data (got)->u.got_info) != NULL)
     {
-      got = mips_elf_got_section (dynobj, FALSE);
-      g = mips_elf_section_data (got)->u.got_info;
-
       if (g->next)
        {
          struct mips_got_entry e;