From 1413c3cee90663c123b6f607d8fb79c27846215b Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Mon, 12 Dec 2005 09:13:12 +0000 Subject: [PATCH] From: Mike Frysinger To: sdl@libsdl.org Date: Sun, 11 Dec 2005 22:57:37 -0500 Subject: [SDL] exec stack in libsdl update i posted back in September a patch to remove executable stacks: http://www.devolution.com/pipermail/sdl/2005-September/070626.html later in November, a similar patch was merged it seems: http://www.libsdl.org/cgi/cvsweb.cgi/SDL12/src/hermes/mmx_main.asm however, this lacks the additional output format checks that i posted in my patch ... this isnt a problem if the hermes asm code is only ever used to produce ELF objects, but if this is not true, then the additional checks in my original patch will need to be merged -mike --- src/hermes/mmx_main.asm | 7 +++---- src/hermes/mmxp2_32.asm | 6 +++--- src/hermes/x86_main.asm | 5 ++++- src/hermes/x86p_16.asm | 6 +++--- src/hermes/x86p_32.asm | 6 ++++-- 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/hermes/mmx_main.asm b/src/hermes/mmx_main.asm index edf9385d6..a2e35d858 100644 --- a/src/hermes/mmx_main.asm +++ b/src/hermes/mmx_main.asm @@ -12,8 +12,6 @@ BITS 32 GLOBAL _ConvertMMX GLOBAL _mmxreturn - -SECTION .note.GNU-stack noalloc progbits noexec nowrite SECTION .text ;; _ConvertMMX: @@ -71,5 +69,6 @@ endconvert: ret - - +%ifidn __OUTPUT_FORMAT__,elf +section .note.GNU-stack noalloc noexec nowrite progbits +%endif diff --git a/src/hermes/mmxp2_32.asm b/src/hermes/mmxp2_32.asm index 8999bae8a..d016ce437 100644 --- a/src/hermes/mmxp2_32.asm +++ b/src/hermes/mmxp2_32.asm @@ -29,7 +29,6 @@ GLOBAL _ConvertMMXpII32_16BGR555 EXTERN _mmxreturn -SECTION .note.GNU-stack noalloc progbits noexec nowrite SECTION .data ALIGN 8 @@ -383,5 +382,6 @@ _convert_bgr555_cheat: .L4: jmp _mmxreturn - - +%ifidn __OUTPUT_FORMAT__,elf +section .note.GNU-stack noalloc noexec nowrite progbits +%endif diff --git a/src/hermes/x86_main.asm b/src/hermes/x86_main.asm index e152c6a64..afe02b586 100644 --- a/src/hermes/x86_main.asm +++ b/src/hermes/x86_main.asm @@ -16,7 +16,6 @@ GLOBAL _x86return GLOBAL _Hermes_X86_CPU -SECTION .note.GNU-stack noalloc progbits noexec nowrite SECTION .data cpu_flags dd 0 @@ -123,3 +122,7 @@ _Hermes_X86_CPU: .L1: ret + +%ifidn __OUTPUT_FORMAT__,elf +section .note.GNU-stack noalloc noexec nowrite progbits +%endif diff --git a/src/hermes/x86p_16.asm b/src/hermes/x86p_16.asm index d7ee7400e..5498c1ece 100644 --- a/src/hermes/x86p_16.asm +++ b/src/hermes/x86p_16.asm @@ -27,11 +27,8 @@ GLOBAL _ConvertX86p16_8RGB332 EXTERN _ConvertX86 EXTERN _x86return -SECTION .note.GNU-stack noalloc progbits noexec nowrite SECTION .text - - _ConvertX86p16_16BGR565: ; check short @@ -494,3 +491,6 @@ _ConvertX86p16_8RGB332: .L7 pop ebp jmp _x86return +%ifidn __OUTPUT_FORMAT__,elf +section .note.GNU-stack noalloc noexec nowrite progbits +%endif diff --git a/src/hermes/x86p_32.asm b/src/hermes/x86p_32.asm index 4be2d6230..276225ad6 100644 --- a/src/hermes/x86p_32.asm +++ b/src/hermes/x86p_32.asm @@ -25,10 +25,8 @@ GLOBAL _ConvertX86p32_8RGB332 EXTERN _x86return -SECTION .note.GNU-stack noalloc progbits noexec nowrite SECTION .text - ;; _Convert_* ;; Paramters: ;; ESI = source @@ -1042,3 +1040,7 @@ _ConvertX86p32_8RGB332: .L4: jmp _x86return + +%ifidn __OUTPUT_FORMAT__,elf +section .note.GNU-stack noalloc noexec nowrite progbits +%endif