* elf32-i386.c (elf_i386_relocate_section): Make undefined symbols
authorJakub Jelinek <jakub@redhat.com>
Mon, 11 Aug 2003 14:26:11 +0000 (14:26 +0000)
committerJakub Jelinek <jakub@redhat.com>
Mon, 11 Aug 2003 14:26:11 +0000 (14:26 +0000)
fatal if -pie.
* elf32-s390.c (elf_s390_relocate_section): Likewise.
* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
* elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
* elf64-s390.c (elf_s390_relocate_section): Likewise.
* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
* elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
(ppc_elf_relocate_section) <case R_PPC_RELAX32>: Issue fatal error
on undefined symbols if -pie.
* elf32-sh.c (sh_elf_relocate_section): Likewise.

12 files changed:
bfd/ChangeLog
bfd/elf32-i386.c
bfd/elf32-ppc.c
bfd/elf32-s390.c
bfd/elf32-sh.c
bfd/elf32-sparc.c
bfd/elf64-alpha.c
bfd/elf64-ppc.c
bfd/elf64-s390.c
bfd/elf64-sparc.c
bfd/elf64-x86-64.c
bfd/elfxx-ia64.c

index 0709dc3..93cd6c0 100644 (file)
@@ -1,3 +1,20 @@
+2003-08-11  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf32-i386.c (elf_i386_relocate_section): Make undefined symbols
+       fatal if -pie.
+       * elf32-s390.c (elf_s390_relocate_section): Likewise.
+       * elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
+       * elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
+       * elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
+       * elf64-s390.c (elf_s390_relocate_section): Likewise.
+       * elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
+       * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
+       * elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
+       * elf32-ppc.c (ppc_elf_relocate_section): Likewise.
+       (ppc_elf_relocate_section) <case R_PPC_RELAX32>: Issue fatal error
+       on undefined symbols if -pie.
+       * elf32-sh.c (sh_elf_relocate_section): Likewise.
+
 2003-08-11  Alan Modra  <amodra@bigpond.net.au>
 
        * elf64-ppc.c (ppc64_elf_relocate_section): Add special case for crt1.o
index 23020b4..77b5e36 100644 (file)
@@ -2186,7 +2186,7 @@ elf_i386_relocate_section (bfd *output_bfd,
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd,
                      input_section, rel->r_offset,
-                     (!info->shared || info->no_undefined
+                     (info->executable || info->no_undefined
                       || ELF_ST_VISIBILITY (h->other)))))
                return FALSE;
            }
index b820638..b78a64c 100644 (file)
@@ -4760,7 +4760,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
            {
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd, input_section,
-                     rel->r_offset, (!info->shared
+                     rel->r_offset, (info->executable
                                      || info->no_undefined
                                      || ELF_ST_VISIBILITY (h->other)))))
                return FALSE;
@@ -5529,7 +5529,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
                                 + sym_sec->output_offset);
                      }
                  }
-               else if (info->shared
+               else if (!info->executable
                         && !info->no_undefined
                         && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
                  ;
@@ -5538,7 +5538,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
                    if (! ((*info->callbacks->undefined_symbol)
                           (info, h->root.root.string, input_bfd,
                            input_section, rel->r_offset,
-                           (!info->shared || info->no_undefined
+                           (info->executable || info->no_undefined
                             || ELF_ST_VISIBILITY (h->other)))))
                      return FALSE;
                    continue;
index 85e9ab6..bead5d0 100644 (file)
@@ -2365,7 +2365,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd,
                      input_section, rel->r_offset,
-                     (!info->shared || info->no_undefined
+                     (info->executable || info->no_undefined
                       || ELF_ST_VISIBILITY (h->other)))))
                return FALSE;
              relocation = 0;
index ac410c2..b509536 100644 (file)
@@ -4764,7 +4764,7 @@ sh_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
            }
          else if (h->root.type == bfd_link_hash_undefweak)
            relocation = 0;
-         else if (info->shared
+         else if (! info->executable
                   && ! info->no_undefined
                   && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
            relocation = 0;
@@ -4773,7 +4773,7 @@ sh_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd,
                      input_section, rel->r_offset,
-                     (!info->shared || info->no_undefined
+                     (info->executable || info->no_undefined
                       || ELF_ST_VISIBILITY (h->other)))))
                return FALSE;
              relocation = 0;
index 136d80e..d8ad11d 100644 (file)
@@ -2218,7 +2218,7 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd,
                      input_section, rel->r_offset,
-                     (!info->shared || info->no_undefined
+                     (info->executable || info->no_undefined
                       || ELF_ST_VISIBILITY (h->other)))))
                return FALSE;
            }
index 1d35a6d..4511f71 100644 (file)
@@ -4481,7 +4481,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
              if (!((*info->callbacks->undefined_symbol)
                    (info, h->root.root.root.string, input_bfd,
                     input_section, rel->r_offset,
-                    (!info->shared || info->no_undefined
+                    (info->executable || info->no_undefined
                      || ELF_ST_VISIBILITY (h->root.other)))))
                return FALSE;
              continue;
index 966dc43..4291f9b 100644 (file)
@@ -7384,7 +7384,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
            {
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd, input_section,
-                     rel->r_offset, (!info->shared
+                     rel->r_offset, (info->executable
                                      || info->no_undefined
                                      || ELF_ST_VISIBILITY (h->other)))))
                return FALSE;
index 23ca8aa..0a5e472 100644 (file)
@@ -2335,7 +2335,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd,
                      input_section, rel->r_offset,
-                     (!info->shared || info->no_undefined
+                     (info->executable || info->no_undefined
                       || ELF_ST_VISIBILITY (h->other)))))
                return FALSE;
              relocation = 0;
index 25c609f..d554134 100644 (file)
@@ -2106,7 +2106,7 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd,
                      input_section, rel->r_offset,
-                     (!info->shared || info->no_undefined
+                     (info->executable || info->no_undefined
                       || ELF_ST_VISIBILITY (h->other)))))
                return FALSE;
 
index 39d5abb..970d742 100644 (file)
@@ -1861,7 +1861,7 @@ elf64_x86_64_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd,
                      input_section, rel->r_offset,
-                     (!info->shared || info->no_undefined
+                     (info->executable || info->no_undefined
                       || ELF_ST_VISIBILITY (h->other)))))
                return FALSE;
              relocation = 0;
index fe1490a..3175b81 100644 (file)
@@ -3893,7 +3893,7 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd,
                      input_section, rel->r_offset,
-                     (!info->shared || info->no_undefined
+                     (info->executable || info->no_undefined
                       || ELF_ST_VISIBILITY (h->other)))))
                return FALSE;
              continue;