You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svt-hevc/d313b632ede3c47945e42289672...

56 lines
1.9 KiB

From d313b632ede3c47945e42289672c08013bc6a56f Mon Sep 17 00:00:00 2001
From: Austin Hu <austin.hu@intel.com>
Date: Thu, 19 Sep 2019 06:28:28 +0800
Subject: [PATCH] Don't compile the binaries as executable stack.
Signed-off-by: Austin Hu <austin.hu@intel.com>
---
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