diff --git a/arch/x86/kernel/entry.asm b/arch/x86/kernel/entry.asm
index c6635185..83633d20 100644
--- a/arch/x86/kernel/entry.asm
+++ b/arch/x86/kernel/entry.asm
@@ -811,3 +811,4 @@ SECTION .bss
     resb 8192               ; This reserves 8KBytes of memory here
 _sys_stack:
 
+SECTION .note.GNU-stack noalloc noexec nowrite progbits
diff --git a/arch/x86/kernel/string.asm b/arch/x86/kernel/string.asm
index 9a1e5093..67dd89b3 100644
--- a/arch/x86/kernel/string.asm
+++ b/arch/x86/kernel/string.asm
@@ -72,3 +72,5 @@ L3:
    pop edi
    pop ebp
    ret
+
+SECTION .note.GNU-stack noalloc noexec nowrite progbits
diff --git a/newlib/src/libgloss/metalsvm/crt0.asm b/newlib/src/libgloss/metalsvm/crt0.asm
index 6d948c99..6a42d518 100644
--- a/newlib/src/libgloss/metalsvm/crt0.asm
+++ b/newlib/src/libgloss/metalsvm/crt0.asm
@@ -73,3 +73,5 @@ L2:
 
    ; endless loop
    jmp $
+
+SECTION .note.GNU-stack noalloc noexec nowrite progbits