From 58c99df2196c5564a6922dcfe4d03387cebdd10c Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Wed, 16 Apr 2025 22:03:26 -0600 Subject: [PATCH] kboot: .note.GNU-stack is needed Add '.section .note.GNU-stack,"",%progbits' to all assembler. Newer versions of clang complain when this isn't present because executable stacks are going away in the future. We don't need an executable stack anyway. Sponsored by: Netflix Reviewed by: kevans, andrew, emaste, jhibbits Differential Revision: https://reviews.freebsd.org/D49855 --- stand/kboot/kboot/arch/aarch64/tramp.S | 2 ++ stand/kboot/kboot/arch/amd64/amd64_tramp.S | 2 ++ stand/kboot/kboot/arch/powerpc64/kerneltramp.S | 2 ++ stand/kboot/libkboot/arch/aarch64/host_syscall.S | 2 ++ stand/kboot/libkboot/arch/amd64/host_syscall.S | 2 ++ stand/kboot/libkboot/arch/powerpc64/host_syscall.S | 2 ++ 6 files changed, 12 insertions(+) diff --git a/stand/kboot/kboot/arch/aarch64/tramp.S b/stand/kboot/kboot/arch/aarch64/tramp.S index 32616f239c5..f58a95cb846 100644 --- a/stand/kboot/kboot/arch/aarch64/tramp.S +++ b/stand/kboot/kboot/arch/aarch64/tramp.S @@ -99,3 +99,5 @@ tramp_size: .globl tramp_data_offset tramp_data_offset: .long trampoline_data-tramp + + .section .note.GNU-stack,"",%progbits diff --git a/stand/kboot/kboot/arch/amd64/amd64_tramp.S b/stand/kboot/kboot/arch/amd64/amd64_tramp.S index b95e99cbaf0..2f2f765d354 100644 --- a/stand/kboot/kboot/arch/amd64/amd64_tramp.S +++ b/stand/kboot/kboot/arch/amd64/amd64_tramp.S @@ -105,3 +105,5 @@ tramp_size: tramp_data_offset: .long trampoline_data-tramp .size tramp_data_offset, 4 + + .section .note.GNU-stack,"",%progbits diff --git a/stand/kboot/kboot/arch/powerpc64/kerneltramp.S b/stand/kboot/kboot/arch/powerpc64/kerneltramp.S index 211a6e474d2..e9678dc02e7 100644 --- a/stand/kboot/kboot/arch/powerpc64/kerneltramp.S +++ b/stand/kboot/kboot/arch/powerpc64/kerneltramp.S @@ -99,3 +99,5 @@ endkerneltramp: .data CNAME(szkerneltramp): .long endkerneltramp - CNAME(kerneltramp) + + .section .note.GNU-stack,"",%progbits diff --git a/stand/kboot/libkboot/arch/aarch64/host_syscall.S b/stand/kboot/libkboot/arch/aarch64/host_syscall.S index db3ecf0f885..3b1c345f2cf 100644 --- a/stand/kboot/libkboot/arch/aarch64/host_syscall.S +++ b/stand/kboot/libkboot/arch/aarch64/host_syscall.S @@ -16,3 +16,5 @@ ENTRY(host_syscall) ret /* Note: We're exposing the raw return value to the caller */ END(host_syscall) + + .section .note.GNU-stack,"",%progbits diff --git a/stand/kboot/libkboot/arch/amd64/host_syscall.S b/stand/kboot/libkboot/arch/amd64/host_syscall.S index 5bf0fca0cec..0869bfe245f 100644 --- a/stand/kboot/libkboot/arch/amd64/host_syscall.S +++ b/stand/kboot/libkboot/arch/amd64/host_syscall.S @@ -27,3 +27,5 @@ ENTRY(host_syscall) ret /* Note: We're exposing the raw return value to the caller */ END(host_syscall) + + .section .note.GNU-stack,"",%progbits diff --git a/stand/kboot/libkboot/arch/powerpc64/host_syscall.S b/stand/kboot/libkboot/arch/powerpc64/host_syscall.S index f9108065ebf..84fde204170 100644 --- a/stand/kboot/libkboot/arch/powerpc64/host_syscall.S +++ b/stand/kboot/libkboot/arch/powerpc64/host_syscall.S @@ -30,3 +30,5 @@ ENTRY(host_syscall) blr /* Note: We're exposing the raw return value to the caller */ END(host_syscall) + + .section .note.GNU-stack,"",%progbits