* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_GD>
authorHans-Peter Nilsson <hp@axis.com>
Wed, 25 Mar 2009 03:03:40 +0000 (03:03 +0000)
committerHans-Peter Nilsson <hp@axis.com>
Wed, 25 Mar 2009 03:03:40 +0000 (03:03 +0000)
<R_CRIS_16_GOT_GD, case R_CRIS_32_GOT_GD>: Handle COMMON symbols.
<case R_CRIS_16_TPREL, R_CRIS_32_TPREL>: Ditto.

bfd/ChangeLog
bfd/elf32-cris.c

index dfb9bb596dc74fa4d322af0ca7ea77ec5301b9cf..4ad599b2e17742f5442c89d7d66c01bebac8e05a 100644 (file)
@@ -1,3 +1,9 @@
+2009-03-25  Hans-Peter Nilsson  <hp@axis.com>
+
+       * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_GD>
+       <R_CRIS_16_GOT_GD, case R_CRIS_32_GOT_GD>: Handle COMMON symbols.
+       <case R_CRIS_16_TPREL, R_CRIS_32_TPREL>: Ditto.
+
 2009-03-24  H.J. Lu  <hongjiu.lu@intel.com>
 
        * cpu-i386.c (bfd_x86_64_arch_intel_syntax): Make it static.
index ed1f3e8d503fe427968ff67cedb12cd6cc21ca87..2037b10f59ec6f82e628fe3c09532fcc45cb3f76 100644 (file)
@@ -1733,7 +1733,8 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              return FALSE;
            }
 
-         if (!info->shared && (h == NULL || h->def_regular))
+         if (!info->shared
+             && (h == NULL || h->def_regular || ELF_COMMON_DEF_P (h)))
            {
              /* Known contents of the GOT.  */
              bfd_vma off;
@@ -2000,7 +2001,7 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 
          if (h != NULL
              && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
-             && !h->def_regular
+             && !(h->def_regular || ELF_COMMON_DEF_P (h))
              /* If it's undefined, then an error message has already
                 been emitted.  */
              && h->root.type != bfd_link_hash_undefined)