Do not put small common symbols into .sbss if ld -r
[deliverable/binutils-gdb.git] / bfd / elf32-ppc.c
index 4b31b09a889d7b3d2583e8e81cfdcb7b71983d81..abe5a0536d82683d9000b82bcee85820a1e8bc15 100644 (file)
@@ -1974,12 +1974,14 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
          if (h != NULL
              && strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
            break;
+         /* fall through */
 
        case R_PPC_REL14:
        case R_PPC_REL14_BRTAKEN:
        case R_PPC_REL14_BRNTAKEN:
          if (h == NULL)
            break;
+         /* fall through */
 
        default:
          if (info->shared
@@ -2047,7 +2049,7 @@ ppc_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
      asection **secp;
      bfd_vma *valp;
 {
-  if (sym->st_shndx == SHN_COMMON && sym->st_size <= bfd_get_gp_size (abfd))
+  if (sym->st_shndx == SHN_COMMON && !info->relocateable && sym->st_size <= bfd_get_gp_size (abfd))
     {
       /* Common symbols less than or equal to -G nn bytes are automatically
         put into .sdata.  */
This page took 0.025035 seconds and 4 git commands to generate.