bfd/ChangeLog:
authorWill Newton <willnewton@sourceware.org>
Wed, 27 Mar 2013 09:51:46 +0000 (09:51 +0000)
committerWill Newton <willnewton@sourceware.org>
Wed, 27 Mar 2013 09:51:46 +0000 (09:51 +0000)
2013-03-20  Will Newton  <will.newton@linaro.org>

* elf32-arm.c (elf32_arm_final_link_relocate): Avoid emitting a
dynamic reloc for symbols with dynindx == -1.
(allocate_dynrelocs_for_symbol): Avoid allocating space for a
dynamic reloc for symbols with dynindx == -1.

bfd/ChangeLog
bfd/elf32-arm.c

index 47f757d..6d3e973 100644 (file)
@@ -1,6 +1,13 @@
 2013-03-27  Will Newton  <will.newton@linaro.org>
 
        * elf32-arm.c (elf32_arm_final_link_relocate): Avoid emitting a
+       dynamic reloc for symbols with dynindx == -1.
+       (allocate_dynrelocs_for_symbol): Avoid allocating space for a
+       dynamic reloc for symbols with dynindx == -1.
+
+2013-03-27  Will Newton  <will.newton@linaro.org>
+
+       * elf32-arm.c (elf32_arm_final_link_relocate): Avoid emitting a
        dynamic reloc for non-default visibility undefined weaks.
        (allocate_dynrelocs_for_symbol): Avoid allocating space for a
        dynamic reloc for non-default visibility undefined weaks.
index ec33916..9a97cbf 100644 (file)
@@ -9139,7 +9139,7 @@ elf32_arm_final_link_relocate (reloc_howto_type *           howto,
            {
              Elf_Internal_Rela outrel;
 
-             if (!SYMBOL_REFERENCES_LOCAL (info, h))
+             if (h->dynindx != -1 && !SYMBOL_REFERENCES_LOCAL (info, h))
                {
                  /* If the symbol doesn't resolve locally in a static
                     object, we have an undefined reference.  If the
@@ -13274,7 +13274,7 @@ allocate_dynrelocs_for_symbol (struct elf_link_hash_entry *h, void * inf)
              if ((tls_type & GOT_TLS_GD) && indx != 0)
                elf32_arm_allocate_dynrelocs (info, htab->root.srelgot, 1);
            }
-         else if (!SYMBOL_REFERENCES_LOCAL (info, h))
+         else if (indx != -1 && !SYMBOL_REFERENCES_LOCAL (info, h))
            {
              if (htab->root.dynamic_sections_created)
                /* Reserve room for the GOT entry's R_ARM_GLOB_DAT relocation.  */