Remove bfd ELF_RELROPAGESIZE
authorAlan Modra <amodra@gmail.com>
Tue, 8 Feb 2022 00:03:17 +0000 (10:33 +1030)
committerAlan Modra <amodra@gmail.com>
Sun, 13 Feb 2022 03:30:56 +0000 (14:00 +1030)
Now that ld properly aligns the end of the relro segment, the hack to
make relro work on powerpc can disappear.

bfd/
* bfd.c (bfd_emul_get_commonpagesize): Remove relro param.
Don't return bed->relropagesize.
* elf-bfd.h (struct elf_backend_data): Remove relropagesize.
* elfxx-target.h (ELF_RELROPAGESIZE): Remove.
* elf32-ppc.c (ELF_RELROPAGESIZE): Don't define.
* elf64-ppc.c: Likewise.
* bfd-in2.h: Regenerate.
ld/
* ldemul.c (after_parse_default): Adjust
bfd_emul_get_commonpagesize call.

bfd/bfd-in2.h
bfd/bfd.c
bfd/elf-bfd.h
bfd/elf32-ppc.c
bfd/elf64-ppc.c
bfd/elfxx-target.h
ld/ldemul.c

index 8e815bab62425863c997077724c9dfa2d5388255..3b2a4f49a9b4f541625643ff57473a8e48d3b001 100644 (file)
@@ -7273,7 +7273,7 @@ bool bfd_alt_mach_code (bfd *abfd, int alternative);
 
 bfd_vma bfd_emul_get_maxpagesize (const char *);
 
-bfd_vma bfd_emul_get_commonpagesize (const char *, bool);
+bfd_vma bfd_emul_get_commonpagesize (const char *);
 
 char *bfd_demangle (bfd *, const char *, int);
 
index d83371333fe00a268e687431d0682b162e347946..913ce2d6abe9cfd1b30d58feff10b7f8e5adde42 100644 (file)
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -2344,7 +2344,7 @@ FUNCTION
        bfd_emul_get_commonpagesize
 
 SYNOPSIS
-       bfd_vma bfd_emul_get_commonpagesize (const char *, bool);
+       bfd_vma bfd_emul_get_commonpagesize (const char *);
 
 DESCRIPTION
        Returns the common page size, in bytes, as determined by
@@ -2355,7 +2355,7 @@ RETURNS
 */
 
 bfd_vma
-bfd_emul_get_commonpagesize (const char *emul, bool relro)
+bfd_emul_get_commonpagesize (const char *emul)
 {
   const bfd_target *target;
 
@@ -2366,10 +2366,7 @@ bfd_emul_get_commonpagesize (const char *emul, bool relro)
       const struct elf_backend_data *bed;
 
       bed = xvec_get_elf_backend_data (target);
-      if (relro)
-       return bed->relropagesize;
-      else
-       return bed->commonpagesize;
+      return bed->commonpagesize;
     }
   return 0;
 }
index 1d3ae76339aa90dfcb300fe5eb3a1f26b52ec252..889a4746371e66cdbf567003eab1135538e612eb 100644 (file)
@@ -946,9 +946,6 @@ struct elf_backend_data
   /* The common page size for this backend.  */
   bfd_vma commonpagesize;
 
-  /* The value of commonpagesize to use when -z relro for this backend.  */
-  bfd_vma relropagesize;
-
   /* The p_align value for this backend.  If it is set, p_align of
       PT_LOAD alignment will be to p_align by default.  */
   bfd_vma p_align;
index 53051308eb16a3457b02efb957743f7d9c9a186c..42273ca06fe740fa82e3b6d3143f6632b50b7a60 100644 (file)
@@ -10373,7 +10373,6 @@ ppc_elf_finish_dynamic_sections (bfd *output_bfd,
 #define ELF_MACHINE_CODE       EM_PPC
 #define ELF_MAXPAGESIZE                0x10000
 #define ELF_COMMONPAGESIZE     0x1000
-#define ELF_RELROPAGESIZE      ELF_MAXPAGESIZE
 #define elf_info_to_howto      ppc_elf_info_to_howto
 
 #ifdef  EM_CYGNUS_POWERPC
index 7b7bfa195064118ae375e373e2748438aaabbabe..dd79c05bb6161ef3bc5194a4dc043af27ceea5a4 100644 (file)
@@ -75,7 +75,6 @@ static bfd_vma opd_entry_value
 #define ELF_MACHINE_CODE       EM_PPC64
 #define ELF_MAXPAGESIZE                0x10000
 #define ELF_COMMONPAGESIZE     0x1000
-#define ELF_RELROPAGESIZE      ELF_MAXPAGESIZE
 #define elf_info_to_howto      ppc64_elf_info_to_howto
 
 #define elf_backend_want_got_sym 0
index e31985ef77739aaae6575b83bdc9c60b943bffd1..0579f64d1a031fe25ef11d57bcf2e85934a6e52d 100644 (file)
 #define ELF_COMMONPAGESIZE ELF_MAXPAGESIZE
 #endif
 
-#ifndef ELF_RELROPAGESIZE
-#define ELF_RELROPAGESIZE ELF_COMMONPAGESIZE
-#endif
-
 #ifndef ELF_MINPAGESIZE
 #define ELF_MINPAGESIZE ELF_COMMONPAGESIZE
 #endif
 #if ELF_COMMONPAGESIZE > ELF_MAXPAGESIZE
 # error ELF_COMMONPAGESIZE > ELF_MAXPAGESIZE
 #endif
-#if ELF_RELROPAGESIZE > ELF_MAXPAGESIZE
-# error ELF_RELROPAGESIZE > ELF_MAXPAGESIZE
-#endif
 #if ELF_MINPAGESIZE > ELF_COMMONPAGESIZE
 # error ELF_MINPAGESIZE > ELF_COMMONPAGESIZE
 #endif
-#if ELF_MINPAGESIZE > ELF_RELROPAGESIZE
-# error ELF_MINPAGESIZE > ELF_RELROPAGESIZE
-#endif
 
 #ifndef ELF_P_ALIGN
 #define ELF_P_ALIGN 0
@@ -822,7 +812,6 @@ static const struct elf_backend_data elfNN_bed =
   ELF_MAXPAGESIZE,             /* maxpagesize */
   ELF_MINPAGESIZE,             /* minpagesize */
   ELF_COMMONPAGESIZE,          /* commonpagesize */
-  ELF_RELROPAGESIZE,           /* commonpagesize to use with -z relro */
   ELF_P_ALIGN,                 /* p_align */
   ELF_DYNAMIC_SEC_FLAGS,       /* dynamic_sec_flags */
   elf_backend_arch_data,
index 5c5adef06bb69059c659f6b1a8acf998845cff8a..85c00ded75e045c6b7da4c2ae076843c3464c2e7 100644 (file)
@@ -235,8 +235,7 @@ after_parse_default (void)
   if (link_info.maxpagesize == 0)
     link_info.maxpagesize = bfd_emul_get_maxpagesize (default_target);
   if (link_info.commonpagesize == 0)
-    link_info.commonpagesize = bfd_emul_get_commonpagesize (default_target,
-                                                           link_info.relro);
+    link_info.commonpagesize = bfd_emul_get_commonpagesize (default_target);
 }
 
 void