From 0397d81933291f7df2841dd0f35511456cce37c5 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Fri, 3 Mar 2023 09:23:02 +0000 Subject: [PATCH 50/50] */*.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 | 2 +- gnuefi/crt0-efi-aa64.S | 2 +- gnuefi/crt0-efi-arm.S | 2 +- gnuefi/crt0-efi-ia32.S | 2 +- gnuefi/crt0-efi-ia64.S | 2 +- gnuefi/crt0-efi-mips64el.S | 2 +- gnuefi/crt0-efi-x64.S | 2 +- gnuefi/reloc_ia64.S | 2 +- lib/aa64/efi_stub.S | 2 +- lib/aa64/setjmp.S | 2 +- lib/arm/div.S | 2 +- lib/arm/efi_stub.S | 2 +- lib/arm/ldivmod.S | 2 +- lib/arm/llsl.S | 2 +- lib/arm/llsr.S | 2 +- lib/arm/mullu.S | 2 +- lib/arm/setjmp.S | 2 +- lib/arm/uldiv.S | 2 +- lib/ctors.S | 2 +- lib/ia32/efi_stub.S | 2 +- lib/ia32/setjmp.S | 2 +- lib/ia64/palproc.S | 2 +- lib/ia64/setjmp.S | 2 +- lib/mips64el/efi_stub.S | 2 +- lib/mips64el/setjmp.S | 2 +- lib/x64/efi_stub.S | 2 +- lib/x64/setjmp.S | 2 +- 27 files changed, 27 insertions(+), 27 deletions(-) diff --git a/apps/trivial.S b/apps/trivial.S index 59db434..cb114c7 100644 --- a/apps/trivial.S +++ b/apps/trivial.S @@ -41,4 +41,4 @@ _start: hello: .byte 'h',0,'e',0,'l',0,'l',0,'o',0,'\n',0,'\r',0,0,0 #endif - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/gnuefi/crt0-efi-aa64.S b/gnuefi/crt0-efi-aa64.S index 4070f86..ff91ed2 100644 --- a/gnuefi/crt0-efi-aa64.S +++ b/gnuefi/crt0-efi-aa64.S @@ -128,4 +128,4 @@ _start: 0: ldp x29, x30, [sp], #32 ret - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/gnuefi/crt0-efi-arm.S b/gnuefi/crt0-efi-arm.S index bfe392c..d3c88e8 100644 --- a/gnuefi/crt0-efi-arm.S +++ b/gnuefi/crt0-efi-arm.S @@ -143,4 +143,4 @@ _start: .L_DYNAMIC: .word _DYNAMIC - . - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/gnuefi/crt0-efi-ia32.S b/gnuefi/crt0-efi-ia32.S index 0c7b3cc..22f2e72 100644 --- a/gnuefi/crt0-efi-ia32.S +++ b/gnuefi/crt0-efi-ia32.S @@ -75,4 +75,4 @@ _start: .long .dummy1-.dummy0 // Page RVA .long 10 // Block Size (2*4+2) .word (IMAGE_REL_ABSOLUTE<<12) + 0 // reloc for dummy - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/gnuefi/crt0-efi-ia64.S b/gnuefi/crt0-efi-ia64.S index 9f1e406..b802907 100644 --- a/gnuefi/crt0-efi-ia64.S +++ b/gnuefi/crt0-efi-ia64.S @@ -85,4 +85,4 @@ _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 - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/gnuefi/crt0-efi-mips64el.S b/gnuefi/crt0-efi-mips64el.S index b92d3c2..09990de 100644 --- a/gnuefi/crt0-efi-mips64el.S +++ b/gnuefi/crt0-efi-mips64el.S @@ -186,4 +186,4 @@ _pc: .end _start .set pop - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/gnuefi/crt0-efi-x64.S b/gnuefi/crt0-efi-x64.S index b553fc2..7dd3984 100644 --- a/gnuefi/crt0-efi-x64.S +++ b/gnuefi/crt0-efi-x64.S @@ -74,4 +74,4 @@ _start: .long 10 // Block Size (2*4+2) .word (IMAGE_REL_ABSOLUTE<<12) + 0 // reloc for dummy - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/gnuefi/reloc_ia64.S b/gnuefi/reloc_ia64.S index 6e55a15..c3e0a36 100644 --- a/gnuefi/reloc_ia64.S +++ b/gnuefi/reloc_ia64.S @@ -225,4 +225,4 @@ apply_FPTR64: fptr_mem_base: .space MAX_FUNCTION_DESCRIPTORS*16 fptr_mem_limit: - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/lib/aa64/efi_stub.S b/lib/aa64/efi_stub.S index fa951c9..2a63d2b 100644 --- a/lib/aa64/efi_stub.S +++ b/lib/aa64/efi_stub.S @@ -1,2 +1,2 @@ /* This stub is a stub to make the build happy */ - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/lib/aa64/setjmp.S b/lib/aa64/setjmp.S index ce18bd8..d41fae2 100644 --- a/lib/aa64/setjmp.S +++ b/lib/aa64/setjmp.S @@ -58,4 +58,4 @@ longjmp: mov w0, #1 csel w0, w1, w0, ne br x30 - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/lib/arm/div.S b/lib/arm/div.S index 86e8069..7b1b234 100644 --- a/lib/arm/div.S +++ b/lib/arm/div.S @@ -153,4 +153,4 @@ label1: @ What to do about division by zero? For now, just return. ASM_PFX(__aeabi_idiv0): bx r14 - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/lib/arm/efi_stub.S b/lib/arm/efi_stub.S index fa951c9..2a63d2b 100644 --- a/lib/arm/efi_stub.S +++ b/lib/arm/efi_stub.S @@ -1,2 +1,2 @@ /* This stub is a stub to make the build happy */ - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/lib/arm/ldivmod.S b/lib/arm/ldivmod.S index 33afa60..328a84d 100644 --- a/lib/arm/ldivmod.S +++ b/lib/arm/ldivmod.S @@ -59,4 +59,4 @@ L_Exit: - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/lib/arm/llsl.S b/lib/arm/llsl.S index c556cd1..3a1eda1 100644 --- a/lib/arm/llsl.S +++ b/lib/arm/llsl.S @@ -39,4 +39,4 @@ ASM_PFX(__aeabi_llsl): lsl r1,r0,r3 mov r0,#0 bx lr - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/lib/arm/llsr.S b/lib/arm/llsr.S index 096b728..7457699 100644 --- a/lib/arm/llsr.S +++ b/lib/arm/llsr.S @@ -39,4 +39,4 @@ ASM_PFX(__aeabi_llsr): lsr r0,r1,r3 mov r1,#0 bx lr - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/lib/arm/mullu.S b/lib/arm/mullu.S index de71551..c568830 100644 --- a/lib/arm/mullu.S +++ b/lib/arm/mullu.S @@ -31,4 +31,4 @@ ASM_PFX(__aeabi_lmul): mla r1, r2, r1, ip mla r1, r3, lr, r1 ldmia sp!, {pc} - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/lib/arm/setjmp.S b/lib/arm/setjmp.S index 851d1d5..aace938 100644 --- a/lib/arm/setjmp.S +++ b/lib/arm/setjmp.S @@ -23,4 +23,4 @@ setjmp: .type longjmp, %function longjmp: ldmia r0, {r3-r12,r14} - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/lib/arm/uldiv.S b/lib/arm/uldiv.S index bd2de59..cd90bbb 100644 --- a/lib/arm/uldiv.S +++ b/lib/arm/uldiv.S @@ -265,4 +265,4 @@ ASM_PFX(__aeabi_ldiv0): bx r14 - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/lib/ctors.S b/lib/ctors.S index ff9d2d3..1a4215c 100644 --- a/lib/ctors.S +++ b/lib/ctors.S @@ -41,4 +41,4 @@ _fini_array: _fini_array_end: .long 0 - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/lib/ia32/efi_stub.S b/lib/ia32/efi_stub.S index fa951c9..2a63d2b 100644 --- a/lib/ia32/efi_stub.S +++ b/lib/ia32/efi_stub.S @@ -1,2 +1,2 @@ /* This stub is a stub to make the build happy */ - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/lib/ia32/setjmp.S b/lib/ia32/setjmp.S index 68a00a8..3728b0a 100644 --- a/lib/ia32/setjmp.S +++ b/lib/ia32/setjmp.S @@ -43,4 +43,4 @@ longjmp: movl (%edx), %ebx movl 4(%edx), %esi movl 8(%edx), %edi - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/lib/ia64/palproc.S b/lib/ia64/palproc.S index 8ee6f9c..aae8388 100644 --- a/lib/ia64/palproc.S +++ b/lib/ia64/palproc.S @@ -159,4 +159,4 @@ StackedComeBackFromPALCall: PROCEDURE_EXIT(MakeStackedPALCall) - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/lib/ia64/setjmp.S b/lib/ia64/setjmp.S index ba0fbd6..8876d02 100644 --- a/lib/ia64/setjmp.S +++ b/lib/ia64/setjmp.S @@ -197,4 +197,4 @@ _skip_flushrs: invala mov ar.rsc = r16 br.ret.sptk b0 - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/lib/mips64el/efi_stub.S b/lib/mips64el/efi_stub.S index fa951c9..2a63d2b 100644 --- a/lib/mips64el/efi_stub.S +++ b/lib/mips64el/efi_stub.S @@ -1,2 +1,2 @@ /* This stub is a stub to make the build happy */ - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/lib/mips64el/setjmp.S b/lib/mips64el/setjmp.S index a620a6e..b35c48c 100644 --- a/lib/mips64el/setjmp.S +++ b/lib/mips64el/setjmp.S @@ -90,4 +90,4 @@ longjmp: li $v0, 1 movn $v0, $a1, $a1 jr $ra - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/lib/x64/efi_stub.S b/lib/x64/efi_stub.S index 16542e2..9ff525d 100644 --- a/lib/x64/efi_stub.S +++ b/lib/x64/efi_stub.S @@ -187,4 +187,4 @@ ENTRY(efi_call10) ret #endif - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits diff --git a/lib/x64/setjmp.S b/lib/x64/setjmp.S index 56653d7..903f4c0 100644 --- a/lib/x64/setjmp.S +++ b/lib/x64/setjmp.S @@ -46,4 +46,4 @@ longjmp: cmp %rax,%rdx cmove %rcx,%rax jmp *0x38(%rdi) - .section .note.GNU-stack,"a" + .section .note.GNU-stack,"",%progbits