From ec5be28202d1cc318ca1d4bf28b016110ec4c23e Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" <icculus@icculus.org> Date: Mon, 12 Dec 2005 09:13:12 +0000 Subject: [PATCH] From: Mike Frysinger <vapier@gentoo.org> 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 --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%401202 --- 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 edf9385d..a2e35d85 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 8999bae8..d016ce43 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 e152c6a6..afe02b58 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 d7ee7400..5498c1ec 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 4be2d623..276225ad 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 -- 2.18.1