diff options
author | Nick Clifton <nickc@redhat.com> | 2025-08-19 15:25:39 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2025-08-19 15:25:39 +0100 |
commit | 17e62fe5f78d33db23bf43eb7c20accd56e65ebe (patch) | |
tree | 2f13f4801ae1ae5bd619afaeca3dc2b12944c3ea | |
parent | 4260abb7a700d1c7491648c695ea6bfdff21a432 (diff) | |
download | binutils-17e62fe5f78d33db23bf43eb7c20accd56e65ebe.zip binutils-17e62fe5f78d33db23bf43eb7c20accd56e65ebe.tar.gz binutils-17e62fe5f78d33db23bf43eb7c20accd56e65ebe.tar.bz2 |
Add tests of the linker's --errror-execstack and --error-rwx-segments options
-rw-r--r-- | ld/testsuite/ld-elf/elf.exp | 40 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/gnu_execstack.err | 3 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/missing-execstack.err | 3 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/rwx-segments-3.err | 3 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/rwx-segments-4.err | 3 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/z_execstack.err | 4 |
6 files changed, 55 insertions, 1 deletions
diff --git a/ld/testsuite/ld-elf/elf.exp b/ld/testsuite/ld-elf/elf.exp index 1ae1af9..bb1f0eb 100644 --- a/ld/testsuite/ld-elf/elf.exp +++ b/ld/testsuite/ld-elf/elf.exp @@ -285,6 +285,13 @@ if { [istarget *-*-*linux*] {pr29072-a.s} \ {{ld pr29072.a.warn}} \ "pr29072-a.exe"] \ + [list "Test --error-execstack with an executable .note.GNU-stack" \ + "--warn-execstack --error-execstack" \ + "" \ + "" \ + {pr29072-a.s} \ + {{ld gnu_execstack.err}} \ + "gnu_execstack.exe"] \ [list "PR 29072 (warn about -z execstack)" \ "-z execstack --warn-execstack --no-error-execstack" \ "" \ @@ -292,6 +299,13 @@ if { [istarget *-*-*linux*] {stack.s} \ {{ld pr29072.c.warn}} \ "pr29072-c.exe"] \ + [list "Test --error-execstack with -z execstack" \ + "-z execstack --warn-execstack --error-execstack" \ + "" \ + "" \ + {stack.s} \ + {{ld z_execstack.err}} \ + "execstack.exe"] \ [list "PR ld/29072 (suppress warnings about executable stack)" \ "-e 0 --no-warn-execstack" \ "" \ @@ -299,13 +313,20 @@ if { [istarget *-*-*linux*] {pr29072-a.s} \ {} \ "pr29072-d.exe"] \ - [list "Ensure that a warning issued when creating a segment with RWX permissions" \ + [list "Ensure that a warning is issued when creating a segment with RWX permissions" \ "-e 0 -Tnobits-1.t --warn-rwx-segments --no-error-rwx-segments" \ "" \ "" \ {nobits-1.s} \ {{ld rwx-segments-1.l}} \ "rwx-segments-1.exe"] \ + [list "Ensure that a error can be issued when creating a segment with RWX permissions" \ + "-e 0 -Tnobits-1.t --warn-rwx-segments --error-rwx-segments" \ + "" \ + "" \ + {nobits-1.s} \ + {{ld rwx-segments-3.err}} \ + "rwx-segments-3.exe"] \ [list "Ensure that a warning issued when creating a TLS segment with execute permission" \ "-e 0 -T rwx-segments-2.t --warn-rwx-segments --no-error-rwx-segments" \ "" \ @@ -313,6 +334,13 @@ if { [istarget *-*-*linux*] {size-2.s} \ {{ld rwx-segments-2.l}} \ "rwx-segments-2.exe"] \ + [list "Ensure that an error cn be issued when creating a TLS segment with execute permission" \ + "-e 0 -T rwx-segments-2.t --warn-rwx-segments --error-rwx-segments" \ + "" \ + "" \ + {size-2.s} \ + {{ld rwx-segments-4.err}} \ + "rwx-segments-4.exe"] \ [list "Ensure that the RWX warning can be suppressed" \ "-e 0 -Tnobits-1.t --no-warn-rwx-segments" \ "" \ @@ -334,6 +362,16 @@ if { [istarget *-*-*linux*] {{ld pr29072.b.warn}} \ "pr29072-b.exe"] \ ] + + run_ld_link_tests [list \ + [list "error when .note.GNU-stack is absent" \ + "-e 0 -z stack-size=0x123400 --warn-execstack --error-execstack" \ + "" \ + "" \ + {pr29072-b.s} \ + {{ld missing-execstack.err}} \ + "missing-execstack.exe"] \ + ] } else { run_ld_link_tests [list \ [list "PR ld/29072 (ignore absent .note.GNU-stack)" \ diff --git a/ld/testsuite/ld-elf/gnu_execstack.err b/ld/testsuite/ld-elf/gnu_execstack.err new file mode 100644 index 0000000..be70b63 --- /dev/null +++ b/ld/testsuite/ld-elf/gnu_execstack.err @@ -0,0 +1,3 @@ +#... +.*: error: .*: is triggering the generation of an executable stack \(because it has an executable .note.GNU-stack section\) +#... diff --git a/ld/testsuite/ld-elf/missing-execstack.err b/ld/testsuite/ld-elf/missing-execstack.err new file mode 100644 index 0000000..9549cf5 --- /dev/null +++ b/ld/testsuite/ld-elf/missing-execstack.err @@ -0,0 +1,3 @@ +#... +.*: error: .*\.o: is triggering the generation of an executable stack because it does not have a .note.GNU-stack section +#... diff --git a/ld/testsuite/ld-elf/rwx-segments-3.err b/ld/testsuite/ld-elf/rwx-segments-3.err new file mode 100644 index 0000000..5a584db --- /dev/null +++ b/ld/testsuite/ld-elf/rwx-segments-3.err @@ -0,0 +1,3 @@ +#... +.* error: .* has a LOAD segment with RWX permissions +#...
\ No newline at end of file diff --git a/ld/testsuite/ld-elf/rwx-segments-4.err b/ld/testsuite/ld-elf/rwx-segments-4.err new file mode 100644 index 0000000..2603f57 --- /dev/null +++ b/ld/testsuite/ld-elf/rwx-segments-4.err @@ -0,0 +1,3 @@ +#... +.*: error: .* has a TLS segment with execute permission +#... diff --git a/ld/testsuite/ld-elf/z_execstack.err b/ld/testsuite/ld-elf/z_execstack.err new file mode 100644 index 0000000..703b42a --- /dev/null +++ b/ld/testsuite/ld-elf/z_execstack.err @@ -0,0 +1,4 @@ +#... +.*: error: creating an executable stack because of -z execstack command line option +#... + |