From aacf54515be744c2a7e49ea1c1e761402def062a Mon Sep 17 00:00:00 2001 From: Anatoly Trosinenko Date: Mon, 15 Sep 2025 17:38:06 +0300 Subject: [PATCH 1/2] Update the default compilation options Recent versions of Clang support `-fptrauth-elf-got` as a compiler driver option, thus do not use `-Xclang ...` anymore. Passing this option through the Clang driver makes it possible to override it by `-fno-ptrauth-elf-got` without modifying the *.cfg files. Additionally, enable more assertions by default: * Build LLVM with LLVM_ENABLE_ASSERTIONS * Check MachineInstr produced by the backend --- cmake/llvm.cmake | 2 +- config | 3 ++- scripts/build-all.sh | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/cmake/llvm.cmake b/cmake/llvm.cmake index fd59bf5..104ab3b 100644 --- a/cmake/llvm.cmake +++ b/cmake/llvm.cmake @@ -1,5 +1,5 @@ set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE) -set(LLVM_ENABLE_ASSERTIONS FALSE CACHE BOOL "" FORCE) +set(LLVM_ENABLE_ASSERTIONS TRUE CACHE BOOL "" FORCE) set(LLVM_CCACHE_BUILD TRUE CACHE BOOL "" FORCE) set(LLVM_LINK_LLVM_DYLIB TRUE CACHE BOOL "" FORCE) set(CLANG_LINK_CLANG_DYLIB TRUE CACHE BOOL "" FORCE) diff --git a/config b/config index 8a9cc52..131bed7 100644 --- a/config +++ b/config @@ -11,7 +11,8 @@ LLVM_SHA=a832a5222e489298337fbb5876f8dcaf072c5cca MUSL_SHA=b37ee52aff13880884a7afa8c5161a4f4f7e0236 # Extra flags to write to Clang config files as the defaults. -EXTRA_FLAGS_PAUTHTEST="-Xclang -fptrauth-elf-got" +EXTRA_FLAGS_COMMON="-mllvm -verify-machineinstrs" +EXTRA_FLAGS_PAUTHTEST="-fptrauth-elf-got" EXTRA_FLAGS_MUSL="" ### Other variables ### diff --git a/scripts/build-all.sh b/scripts/build-all.sh index c0cd6ca..a7714ff 100755 --- a/scripts/build-all.sh +++ b/scripts/build-all.sh @@ -16,10 +16,12 @@ set +x write_clang_config_files() { cat > "$INSTALL_DIR/bin/aarch64-unknown-linux-pauthtest.cfg" </../aarch64-linux-pauthtest +$EXTRA_FLAGS_COMMON $EXTRA_FLAGS_PAUTHTEST EOF cat > "$INSTALL_DIR/bin/aarch64-unknown-linux-musl.cfg" </../aarch64-linux-musl +$EXTRA_FLAGS_COMMON $EXTRA_FLAGS_MUSL EOF } From 19a28e6352ac2badb5fac78393934f2a73e2576a Mon Sep 17 00:00:00 2001 From: Anatoly Trosinenko Date: Sat, 7 Mar 2026 12:39:39 +0300 Subject: [PATCH 2/2] Do not add `-mllvm -verify-machineinstrs`, just introduce empty EXTRA_FLAGS_COMMON --- config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config b/config index 131bed7..33fa1d0 100644 --- a/config +++ b/config @@ -11,7 +11,7 @@ LLVM_SHA=a832a5222e489298337fbb5876f8dcaf072c5cca MUSL_SHA=b37ee52aff13880884a7afa8c5161a4f4f7e0236 # Extra flags to write to Clang config files as the defaults. -EXTRA_FLAGS_COMMON="-mllvm -verify-machineinstrs" +EXTRA_FLAGS_COMMON="" EXTRA_FLAGS_PAUTHTEST="-fptrauth-elf-got" EXTRA_FLAGS_MUSL=""