--- 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) } }