48 lines
1.1 KiB
Diff
48 lines
1.1 KiB
Diff
|
---
|
||
|
zipl/boot/entry.S | 5 +++++
|
||
|
zipl/boot/head.S | 5 +++++
|
||
|
zipl/boot/stage2.lds.S | 1 +
|
||
|
zipl/boot/stage3.lds.S | 1 +
|
||
|
4 files changed, 12 insertions(+)
|
||
|
|
||
|
--- a/zipl/boot/entry.S
|
||
|
+++ b/zipl/boot/entry.S
|
||
|
@@ -18,3 +18,8 @@ pgm_check_handler:
|
||
|
basr %r14,%r14
|
||
|
lmg %r0,%r15,__LC_SAVE_AREA_SYNC
|
||
|
lpswe __LC_PGM_OLD_PSW(%r0)
|
||
|
+
|
||
|
+/* The code doesn't require an executable stack */
|
||
|
+#if defined(__linux__) && defined(__ELF__)
|
||
|
+.section .note.GNU-stack,"",%progbits
|
||
|
+#endif
|
||
|
--- a/zipl/boot/head.S
|
||
|
+++ b/zipl/boot/head.S
|
||
|
@@ -28,3 +28,8 @@ _start:
|
||
|
brasl %r14,initialize
|
||
|
.Lstack: .long 0x10000-160
|
||
|
.previous
|
||
|
+
|
||
|
+/* The code doesn't require an executable stack */
|
||
|
+#if defined(__linux__) && defined(__ELF__)
|
||
|
+.section .note.GNU-stack,"",%progbits
|
||
|
+#endif
|
||
|
--- a/zipl/boot/stage2.lds.S
|
||
|
+++ b/zipl/boot/stage2.lds.S
|
||
|
@@ -94,5 +94,6 @@ SECTIONS
|
||
|
/DISCARD/ : {
|
||
|
*(.eh_frame)
|
||
|
*(.interp)
|
||
|
+ *(.note.GNU-stack)
|
||
|
}
|
||
|
}
|
||
|
--- a/zipl/boot/stage3.lds.S
|
||
|
+++ b/zipl/boot/stage3.lds.S
|
||
|
@@ -79,5 +79,6 @@ SECTIONS
|
||
|
/DISCARD/ : {
|
||
|
*(.eh_frame)
|
||
|
*(.interp)
|
||
|
+ *(.note.GNU-stack)
|
||
|
}
|
||
|
}
|