From d313b632ede3c47945e42289672c08013bc6a56f Mon Sep 17 00:00:00 2001 From: Austin Hu Date: Thu, 19 Sep 2019 06:28:28 +0800 Subject: [PATCH] Don't compile the binaries as executable stack. Signed-off-by: Austin Hu --- Source/Lib/ASM_SSE2/x64Macro.asm | 14 ++++++++++++++ Source/Lib/ASM_SSE2/x64inc.asm | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/Source/Lib/ASM_SSE2/x64Macro.asm b/Source/Lib/ASM_SSE2/x64Macro.asm index eaeeac61..7dcb9038 100644 --- a/Source/Lib/ASM_SSE2/x64Macro.asm +++ b/Source/Lib/ASM_SSE2/x64Macro.asm @@ -28,3 +28,17 @@ punpckl%1 xmm%8, xmm%9 ; 67 66 65 64 63 62 61 60 73 63 72 62 71 61 70 60 75 65 55 45 74 64 54 44 76 66 56 46 36 26 16 06 punpckh%1 xmm%13, xmm%9 ; 77 76 75 74 73 72 71 70 77 67 76 66 75 65 74 64 77 67 57 47 76 66 56 46 77 67 57 47 37 27 17 07 %endmacro + +%define FORMAT_ELF 0 +%ifidn __OUTPUT_FORMAT__,elf + %define FORMAT_ELF 1 +%elifidn __OUTPUT_FORMAT__,elf32 + %define FORMAT_ELF 1 +%elifidn __OUTPUT_FORMAT__,elf64 + %define FORMAT_ELF 1 +%endif + +; This is needed for ELF, otherwise the GNU linker assumes the stack is executable by default. +%if FORMAT_ELF + [SECTION .note.GNU-stack noalloc noexec nowrite progbits] +%endif diff --git a/Source/Lib/ASM_SSE2/x64inc.asm b/Source/Lib/ASM_SSE2/x64inc.asm index 4440b060..a884545b 100644 --- a/Source/Lib/ASM_SSE2/x64inc.asm +++ b/Source/Lib/ASM_SSE2/x64inc.asm @@ -323,3 +323,17 @@ bits 64 %endif %endmacro %define NEED_EMMS 1 + +%define FORMAT_ELF 0 +%ifidn __OUTPUT_FORMAT__,elf + %define FORMAT_ELF 1 +%elifidn __OUTPUT_FORMAT__,elf32 + %define FORMAT_ELF 1 +%elifidn __OUTPUT_FORMAT__,elf64 + %define FORMAT_ELF 1 +%endif + +; This is needed for ELF, otherwise the GNU linker assumes the stack is executable by default. +%if FORMAT_ELF + [SECTION .note.GNU-stack noalloc noexec nowrite progbits] +%endif