[COMMITTED] cris: bfd: Correct default to no execstack

Hans-Peter Nilsson hp@axis.com
Thu May 26 23:20:49 GMT 2022


In the now-historical CRIS glibc port, the default stack permission
was no-exec as in "#define DEFAULT_STACK_PERMS (PF_R|PF_W)", and the
gcc port only emits the executable-stack marker when needed; when
emitting code needing it.  In other words, the binutils setting
mismatches.  It doesn't matter much, except being confusing and
defaulting to "off" is more sane.

ld:

	* testsuite/ld-elf/elf.exp (target_defaults_to_execstack): Switch to 0
	for cris*-*-*.

bfd:
	* elf32-cris.c (elf_backend_default_execstack): Define to 0.

Change-Id: I52f37598f119b19111c7a6546c00a627fca0f396
---
 bfd/elf32-cris.c            | 2 ++
 ld/testsuite/ld-elf/elf.exp | 1 +
 2 files changed, 3 insertions(+)

diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c
index 00b5f7745e89..653d77f1ea84 100644
--- a/bfd/elf32-cris.c
+++ b/bfd/elf32-cris.c
@@ -4112,6 +4112,8 @@ elf_cris_got_elt_size (bfd *abfd ATTRIBUTE_UNUSED,
 #define elf_backend_dtrel_excludes_plt	1
 #define elf_backend_want_dynrelro	1
 
+#define elf_backend_default_execstack	0
+
 /* Later, we my want to optimize RELA entries into REL entries for dynamic
    linking and libraries (if it's a win of any significance).  Until then,
    take the easy route.  */
diff --git a/ld/testsuite/ld-elf/elf.exp b/ld/testsuite/ld-elf/elf.exp
index 621d4e121d74..abc35f807782 100644
--- a/ld/testsuite/ld-elf/elf.exp
+++ b/ld/testsuite/ld-elf/elf.exp
@@ -183,6 +183,7 @@ if { [check_gc_sections_available] && ![istarget "v850-*-*"] } {
 proc target_defaults_to_execstack {} {
     if {   [istarget "aarch64*-*-*"]
 	|| [istarget "arc*-*-*"]
+	|| [istarget "cris*-*-*"]
 	|| [istarget "ia64*-*-*"]
 	|| [istarget "nios2*-*-*"]
 	|| [istarget "powerpc64*-*-*"]
-- 
2.30.2

brgds, H-P


More information about the Binutils mailing list