[compiler-rt] [compiler-rt] Remove enable_execute_stack support on arm64 Darwin (PR #158386)

Akira Hatanaka via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 12 17:19:31 PDT 2025


https://github.com/ahatanak created https://github.com/llvm/llvm-project/pull/158386

`enable_execute_stack` is not supported on arm64 Darwin because:

- It calls mprotect with `PROT_WRITE | PROT_EXEC`, which is rejected on this platform.
- It assumes a fixed 4K page size, which is not guaranteed.

This change disables building `enable_execute_stack` on arm64 Darwin and fixes the failing test:

`compiler-rt/test/builtins/Unit/enable_execute_stack_test.c`.

rdar://159705691

>From 89c3b788a70c5408ce18a3a621df0d1123cb321b Mon Sep 17 00:00:00 2001
From: Akira Hatanaka <ahatanak at gmail.com>
Date: Fri, 12 Sep 2025 16:55:36 -0700
Subject: [PATCH] [compiler-rt] Remove enable_execute_stack support on arm64
 Darwin

`enable_execute_stack` is not supported on arm64 Darwin because:

- It calls mprotect with `PROT_WRITE | PROT_EXEC`, which is rejected on
  this platform.
- It assumes a fixed 4K page size, which is not guaranteed.

This change disables building `enable_execute_stack` on arm64 Darwin and
fixes the failing test:

`compiler-rt/test/builtins/Unit/enable_execute_stack_test.c`.

rdar://159705691
---
 compiler-rt/lib/builtins/CMakeLists.txt | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/compiler-rt/lib/builtins/CMakeLists.txt b/compiler-rt/lib/builtins/CMakeLists.txt
index 1dadb6a810efb..0d7fc65cfd3e9 100644
--- a/compiler-rt/lib/builtins/CMakeLists.txt
+++ b/compiler-rt/lib/builtins/CMakeLists.txt
@@ -674,6 +674,11 @@ if (MINGW)
   )
 endif()
 
+# Don't build enable_execute_stack on arm64 darwin.
+if (APPLE)
+  list(REMOVE_ITEM aarch64_SOURCES enable_execute_stack.c)
+endif()
+
 set(amdgcn_SOURCES ${GENERIC_SOURCES})
 
 set(armv4t_SOURCES ${arm_min_SOURCES})



More information about the llvm-commits mailing list