File gnu-efi-bsc1213923-gnu-stack-note-section.patch of Package gnu-efi.30163
From 803b49c40bb0b720b90d9c31d372911f1b946aa7 Mon Sep 17 00:00:00 2001
From: Sergei Trofimovich <slyich@gmail.com>
Date: Sat, 6 Aug 2022 11:16:29 +0100
Subject: [PATCH] */*.S: add non-executable GNU stack marking on ELF-linux
binutils-2.39 enabed a few warning by default
(https://sourceware.org/pipermail/binutils/2022-August/122246.html):
> The ELF linker will now generate a warning message if the stack is made executable.
Let's suppress the warnings in assembly files by adding non-executables
stack markings. This fixes at least systemd build which uses '-Wl,--fatal-warnings':
https://github.com/systemd/systemd/issues/24226
---
apps/trivial.S | 4 ++++
gnuefi/crt0-efi-aarch64.S | 4 ++++
gnuefi/crt0-efi-arm.S | 4 ++++
gnuefi/crt0-efi-ia32.S | 4 ++++
gnuefi/crt0-efi-ia64.S | 4 ++++
gnuefi/crt0-efi-mips64el.S | 4 ++++
gnuefi/crt0-efi-riscv64.S | 4 ++++
gnuefi/crt0-efi-x86_64.S | 3 +++
gnuefi/reloc_ia64.S | 4 ++++
lib/aarch64/efi_stub.S | 4 ++++
lib/aarch64/setjmp.S | 4 ++++
lib/arm/div.S | 4 ++++
lib/arm/efi_stub.S | 4 ++++
lib/arm/ldivmod.S | 5 +++--
lib/arm/llsl.S | 4 ++++
lib/arm/llsr.S | 4 ++++
lib/arm/mullu.S | 4 ++++
lib/arm/setjmp.S | 4 ++++
lib/arm/uldiv.S | 4 +++-
lib/ia32/efi_stub.S | 4 ++++
lib/ia32/setjmp.S | 4 ++++
lib/ia64/palproc.S | 3 +++
lib/ia64/setjmp.S | 4 ++++
lib/mips64el/efi_stub.S | 4 ++++
lib/mips64el/setjmp.S | 4 ++++
lib/riscv64/setjmp.S | 4 ++++
lib/x86_64/efi_stub.S | 4 ++++
lib/x86_64/setjmp.S | 4 ++++
28 files changed, 108 insertions(+), 3 deletions(-)
Index: gnu-efi-3.0.13/apps/trivial.S
===================================================================
--- gnu-efi-3.0.13.orig/apps/trivial.S
+++ gnu-efi-3.0.13/apps/trivial.S
@@ -41,3 +41,7 @@ _start:
hello: .byte 'h',0,'e',0,'l',0,'l',0,'o',0,'\n',0,'\r',0,0,0
#endif
+
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/gnuefi/crt0-efi-aarch64.S
===================================================================
--- gnu-efi-3.0.13.orig/gnuefi/crt0-efi-aarch64.S
+++ gnu-efi-3.0.13/gnuefi/crt0-efi-aarch64.S
@@ -140,3 +140,7 @@ _start:
0: ldp x29, x30, [sp], #32
ret
+
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/gnuefi/crt0-efi-arm.S
===================================================================
--- gnu-efi-3.0.13.orig/gnuefi/crt0-efi-arm.S
+++ gnu-efi-3.0.13/gnuefi/crt0-efi-arm.S
@@ -157,3 +157,7 @@ _start:
.L_DYNAMIC:
.word _DYNAMIC - .
+
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/gnuefi/crt0-efi-ia32.S
===================================================================
--- gnu-efi-3.0.13.orig/gnuefi/crt0-efi-ia32.S
+++ gnu-efi-3.0.13/gnuefi/crt0-efi-ia32.S
@@ -74,3 +74,7 @@ dummy: .long 0
.long dummy // Page RVA
.long 10 // Block Size (2*4+2)
.word (IMAGE_REL_ABSOLUTE<<12) + 0 // reloc for dummy
+
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/gnuefi/crt0-efi-ia64.S
===================================================================
--- gnu-efi-3.0.13.orig/gnuefi/crt0-efi-ia64.S
+++ gnu-efi-3.0.13/gnuefi/crt0-efi-ia64.S
@@ -85,3 +85,7 @@ _start_plabel:
data4 12 // Block Size (2*4+2*2)
data2 (IMAGE_REL_BASED_DIR64<<12) + 0 // reloc for plabel's entry point
data2 (IMAGE_REL_BASED_DIR64<<12) + 8 // reloc for plabel's global pointer
+
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/gnuefi/crt0-efi-mips64el.S
===================================================================
--- gnu-efi-3.0.13.orig/gnuefi/crt0-efi-mips64el.S
+++ gnu-efi-3.0.13/gnuefi/crt0-efi-mips64el.S
@@ -186,3 +186,7 @@ _pc:
.end _start
.set pop
+
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/gnuefi/crt0-efi-x86_64.S
===================================================================
--- gnu-efi-3.0.13.orig/gnuefi/crt0-efi-x86_64.S
+++ gnu-efi-3.0.13/gnuefi/crt0-efi-x86_64.S
@@ -74,3 +74,6 @@ label1:
.long 10 // Block Size (2*4+2)
.word (IMAGE_REL_ABSOLUTE<<12) + 0 // reloc for dummy
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/gnuefi/reloc_ia64.S
===================================================================
--- gnu-efi-3.0.13.orig/gnuefi/reloc_ia64.S
+++ gnu-efi-3.0.13/gnuefi/reloc_ia64.S
@@ -225,3 +225,7 @@ apply_FPTR64:
fptr_mem_base:
.space MAX_FUNCTION_DESCRIPTORS*16
fptr_mem_limit:
+
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/lib/aarch64/efi_stub.S
===================================================================
--- gnu-efi-3.0.13.orig/lib/aarch64/efi_stub.S
+++ gnu-efi-3.0.13/lib/aarch64/efi_stub.S
@@ -1 +1,5 @@
/* This stub is a stub to make the build happy */
+
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/lib/aarch64/setjmp.S
===================================================================
--- gnu-efi-3.0.13.orig/lib/aarch64/setjmp.S
+++ gnu-efi-3.0.13/lib/aarch64/setjmp.S
@@ -58,3 +58,7 @@ longjmp:
mov w0, #1
csel w0, w1, w0, ne
br x30
+
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/lib/arm/div.S
===================================================================
--- gnu-efi-3.0.13.orig/lib/arm/div.S
+++ gnu-efi-3.0.13/lib/arm/div.S
@@ -153,3 +153,7 @@ label1:
@ What to do about division by zero? For now, just return.
ASM_PFX(__aeabi_idiv0):
bx r14
+
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/lib/arm/efi_stub.S
===================================================================
--- gnu-efi-3.0.13.orig/lib/arm/efi_stub.S
+++ gnu-efi-3.0.13/lib/arm/efi_stub.S
@@ -1 +1,5 @@
/* This stub is a stub to make the build happy */
+
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/lib/arm/ldivmod.S
===================================================================
--- gnu-efi-3.0.13.orig/lib/arm/ldivmod.S
+++ gnu-efi-3.0.13/lib/arm/ldivmod.S
@@ -57,5 +57,6 @@ L_Test3:
L_Exit:
pop {r4,pc}
-
-
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/lib/arm/llsl.S
===================================================================
--- gnu-efi-3.0.13.orig/lib/arm/llsl.S
+++ gnu-efi-3.0.13/lib/arm/llsl.S
@@ -39,3 +39,7 @@ ASM_PFX(__aeabi_llsl):
lsl r1,r0,r3
mov r0,#0
bx lr
+
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/lib/arm/llsr.S
===================================================================
--- gnu-efi-3.0.13.orig/lib/arm/llsr.S
+++ gnu-efi-3.0.13/lib/arm/llsr.S
@@ -39,3 +39,7 @@ ASM_PFX(__aeabi_llsr):
lsr r0,r1,r3
mov r1,#0
bx lr
+
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/lib/arm/mullu.S
===================================================================
--- gnu-efi-3.0.13.orig/lib/arm/mullu.S
+++ gnu-efi-3.0.13/lib/arm/mullu.S
@@ -31,3 +31,7 @@ ASM_PFX(__aeabi_lmul):
mla r1, r2, r1, ip
mla r1, r3, lr, r1
ldmia sp!, {pc}
+
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/lib/arm/setjmp.S
===================================================================
--- gnu-efi-3.0.13.orig/lib/arm/setjmp.S
+++ gnu-efi-3.0.13/lib/arm/setjmp.S
@@ -23,3 +23,7 @@ setjmp:
.type longjmp, %function
longjmp:
ldmia r0, {r3-r12,r14}
+
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/lib/arm/uldiv.S
===================================================================
--- gnu-efi-3.0.13.orig/lib/arm/uldiv.S
+++ gnu-efi-3.0.13/lib/arm/uldiv.S
@@ -264,4 +264,6 @@ ASM_PFX(_ll_div0):
ASM_PFX(__aeabi_ldiv0):
bx r14
-
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/lib/ia32/efi_stub.S
===================================================================
--- gnu-efi-3.0.13.orig/lib/ia32/efi_stub.S
+++ gnu-efi-3.0.13/lib/ia32/efi_stub.S
@@ -1 +1,5 @@
/* This stub is a stub to make the build happy */
+
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/lib/ia32/setjmp.S
===================================================================
--- gnu-efi-3.0.13.orig/lib/ia32/setjmp.S
+++ gnu-efi-3.0.13/lib/ia32/setjmp.S
@@ -43,3 +43,7 @@ longjmp:
movl (%edx), %ebx
movl 4(%edx), %esi
movl 8(%edx), %edi
+
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/lib/ia64/palproc.S
===================================================================
--- gnu-efi-3.0.13.orig/lib/ia64/palproc.S
+++ gnu-efi-3.0.13/lib/ia64/palproc.S
@@ -159,3 +159,6 @@ StackedComeBackFromPALCall:
PROCEDURE_EXIT(MakeStackedPALCall)
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/lib/ia64/setjmp.S
===================================================================
--- gnu-efi-3.0.13.orig/lib/ia64/setjmp.S
+++ gnu-efi-3.0.13/lib/ia64/setjmp.S
@@ -197,3 +197,7 @@ _skip_flushrs:
invala
mov ar.rsc = r16
br.ret.sptk b0
+
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/lib/mips64el/efi_stub.S
===================================================================
--- gnu-efi-3.0.13.orig/lib/mips64el/efi_stub.S
+++ gnu-efi-3.0.13/lib/mips64el/efi_stub.S
@@ -1 +1,5 @@
/* This stub is a stub to make the build happy */
+
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/lib/mips64el/setjmp.S
===================================================================
--- gnu-efi-3.0.13.orig/lib/mips64el/setjmp.S
+++ gnu-efi-3.0.13/lib/mips64el/setjmp.S
@@ -90,3 +90,7 @@ longjmp:
li $v0, 1
movn $v0, $a1, $a1
jr $ra
+
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/lib/x86_64/efi_stub.S
===================================================================
--- gnu-efi-3.0.13.orig/lib/x86_64/efi_stub.S
+++ gnu-efi-3.0.13/lib/x86_64/efi_stub.S
@@ -187,3 +187,7 @@ ENTRY(efi_call10)
ret
#endif
+
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif
Index: gnu-efi-3.0.13/lib/x86_64/setjmp.S
===================================================================
--- gnu-efi-3.0.13.orig/lib/x86_64/setjmp.S
+++ gnu-efi-3.0.13/lib/x86_64/setjmp.S
@@ -39,3 +39,7 @@ longjmp:
cmp %rax,%rdx
cmove %rcx,%rax
jmp *0x38(%rdi)
+
+#if defined(__ELF__) && defined(__linux__)
+ .section .note.GNU-stack,"",%progbits
+#endif