Disable execstack and rwx segments warnings for MIPS targets.
authorNick Clifton <nickc@redhat.com>
Mon, 27 Jun 2022 10:39:27 +0000 (11:39 +0100)
committerNick Clifton <nickc@redhat.com>
Mon, 27 Jun 2022 10:39:27 +0000 (11:39 +0100)
PR 29263
* configure.ac: Move HPPA specific code from here...
* configure.tgt: ... to here.  Add similar code for MIPS.
Move code for CRIS, MIPS and HPPA to block at start of file.
* configure: Regenerate.

ld/ChangeLog
ld/configure
ld/configure.ac
ld/configure.tgt

index 37680ccc09ad4f7b975783a19e6fe4b5476148ba..650e46ec2a4d6cc3820efb804454a7be066c0f82 100644 (file)
@@ -1,3 +1,11 @@
+2022-06-27  Nick Clifton  <nickc@redhat.com>
+
+       PR 29263
+       * configure.ac: Move HPPA specific code from here...
+       * configure.tgt: ... to here.  Add similar code for MIPS.
+       Move code for CRIS, MIPS and HPPA to block at start of file.
+       * configure: Regenerate.
+
 2022-06-21  Nick Clifton  <nickc@redhat.com>
 
        PR 29263
index 95c21406b41f9044dd7da09077c0145d64327bd5..80db525f9302bf31051937e9094610eb7208ceb6 100755 (executable)
 
 # By default warn when an executable stack is created due to object files
 # requesting such, not when the user specifies -z execstack.
-case "${target}" in
-  # The HPPA port needs to support older kernels that use executable stacks
-  # for signals and syscalls.
-  hppa*-*-*) ac_default_ld_warn_execstack=0 ;;
-  *) ac_default_ld_warn_execstack=2 ;;
-  esac
+ac_default_ld_warn_execstack=2
 # Check whether --enable-warn-execstack was given.
 if test "${enable_warn_execstack+set}" = set; then :
   enableval=$enable_warn_execstack; case "${enableval}" in
@@ -17277,12 +17272,7 @@ _ACEOF
 
 
 if test "${ac_default_ld_warn_rwx_segments}" = unset; then
-  case "${target}" in
-  # The HPPA's PLT section uses a constructed trampoline, hence it needs to
-  # have a RWX segment.
-  hppa*-*-*) ac_default_ld_warn_rwx_segments=0 ;;
-  *) ac_default_ld_warn_rwx_segments=1 ;;
-  esac
+  ac_default_ld_warn_rwx_segments=1
 fi
 
 cat >>confdefs.h <<_ACEOF
index d587c46cc5155f63a1ab9c3f6a8cf8e9ce8114d5..a54a2801889e2cf72f52895f8b25be04374a0d98 100644 (file)
@@ -206,12 +206,7 @@ esac])
 
 # By default warn when an executable stack is created due to object files
 # requesting such, not when the user specifies -z execstack.
-[case "${target}" in
-  # The HPPA port needs to support older kernels that use executable stacks
-  # for signals and syscalls.
-  hppa*-*-*) ac_default_ld_warn_execstack=0 ;;
-  *) ac_default_ld_warn_execstack=2 ;;
-  esac]
+ac_default_ld_warn_execstack=2
 AC_ARG_ENABLE(warn-execstack,
              AS_HELP_STRING([--enable-warn-execstack],
              [enable warnings when creating an executable stack]),
@@ -569,12 +564,7 @@ AC_DEFINE_UNQUOTED(DEFAULT_LD_WARN_EXECSTACK,
   [Define to 1 if you want to enable --warn-execstack in ELF linker by default.])
 
 if test "${ac_default_ld_warn_rwx_segments}" = unset; then
-  [case "${target}" in
-  # The HPPA's PLT section uses a constructed trampoline, hence it needs to
-  # have a RWX segment.
-  hppa*-*-*) ac_default_ld_warn_rwx_segments=0 ;;
-  *) ac_default_ld_warn_rwx_segments=1 ;;
-  esac]
+  ac_default_ld_warn_rwx_segments=1 ;;
 fi
 AC_DEFINE_UNQUOTED(DEFAULT_LD_WARN_RWX_SEGMENTS,
   $ac_default_ld_warn_rwx_segments,
index 7af33b224810b0939a4a5a8136df676573f998fe..4f9e1b30bf935cf5fbde330dcae69299a7937da6 100644 (file)
@@ -40,6 +40,42 @@ targ_extra_ofiles="ldelf.o ldelfgen.o"
 targ64_extra_emuls=
 targ64_extra_libpath=
 
+# By default the linker will generate warnings if it is creating an
+# executable stack or a segment with all three of read, write and
+# execute permissions.  These settings are not appropriate for all
+# targets however, so we can change them here:
+
+if test "${ac_default_ld_warn_rwx_segments}" = unset; then
+  case "${targ}" in
+      # The CRIS default linker script yields just one segment
+      # as intended, so a rwx segment warning is not helpful.
+      # The HPPA's PLT section uses a constructed trampoline
+      # hence it needs to have a RWX segment.
+      # Many MIPS targets use executable segments.
+    cris-*-* | crisv32-*-* | \
+    hppa*-*-* | \
+    mips*-*-*)
+      ac_default_ld_warn_rwx_segments=0
+      ;;
+    *)
+      ;;
+  esac
+fi
+
+if test "${ac_default_ld_warn_execstack}" = 2; then
+  case "${targ}" in
+      # The HPPA port needs to support older kernels that
+      # use executable stacks for signals and syscalls.
+      # Many MIPS targets use executable stacks.
+    hppa*-*-* | \
+    mips*-*-*)
+      ac_default_ld_warn_execstack=0
+      ;;
+    *)
+      ;;
+  esac
+fi
+
 # Please try to keep this table more or less in alphabetic order - it
 # makes it much easier to lookup a specific archictecture.
 case "${targ}" in
@@ -235,11 +271,6 @@ cris-*-linux-* | crisv32-*-linux-*)
 cris-*-* | crisv32-*-*)        targ_emul=criself
                        targ_extra_emuls="crisaout crislinux"
                        targ_extra_libpath=$targ_extra_emuls
-                       # The default linker script yields just one segment
-                       # as intended, and then a warning is not helpful.
-                       if test "${ac_default_ld_warn_rwx_segments}" = unset; then
-                         ac_default_ld_warn_rwx_segments=0
-                       fi
                        ;;
 crx-*-elf*)            targ_emul=elf32crx
                        ;;