[all-commits] [llvm/llvm-project] 041300: [libc] Fix Darwin aarch64 fenv and sigsetjmp build...
Kacper Fiedorowicz via All-commits
all-commits at lists.llvm.org
Thu Sep 10 14:12:59 PDT 2026
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 041300fa05151b3819478f33daa4384922b4b74e
https://github.com/llvm/llvm-project/commit/041300fa05151b3819478f33daa4384922b4b74e
Author: Kacper Fiedorowicz <kacper at mail.openlinux.dev>
Date: 2026-09-10 (Thu, 10 Sep 2026)
Changed paths:
M libc/config/darwin/aarch64/entrypoints.txt
M libc/config/darwin/aarch64/headers.txt
M libc/include/llvm-libc-macros/darwin/CMakeLists.txt
A libc/include/llvm-libc-macros/darwin/signal-macros.h
M libc/include/llvm-libc-macros/signal-macros.h
M libc/include/llvm-libc-types/__jmp_buf.h
M libc/include/llvm-libc-types/fenv_t.h
M libc/src/__support/FPUtil/CMakeLists.txt
M libc/src/__support/FPUtil/aarch64/fenv_darwin_impl.h
M libc/src/__support/OSUtil/darwin/CMakeLists.txt
A libc/src/__support/OSUtil/darwin/syscall_wrappers/CMakeLists.txt
A libc/src/__support/OSUtil/darwin/syscall_wrappers/sigprocmask.h
M libc/src/setjmp/aarch64/sigsetjmp.cpp
M libc/src/setjmp/darwin/CMakeLists.txt
M libc/src/setjmp/darwin/sigsetjmp_epilogue.cpp
M libc/src/setjmp/longjmp.h
M libc/src/setjmp/setjmp_impl.h
A libc/src/signal/darwin/CMakeLists.txt
A libc/src/signal/darwin/sigaddset.cpp
A libc/src/signal/darwin/sigdelset.cpp
A libc/src/signal/darwin/sigemptyset.cpp
A libc/src/signal/darwin/sigfillset.cpp
A libc/src/signal/darwin/sigprocmask.cpp
M libc/test/UnitTest/FEnvSafeTest.cpp
A libc/test/src/__support/OSUtil/darwin/CMakeLists.txt
A libc/test/src/__support/OSUtil/darwin/sigprocmask_test.cpp
M libc/test/src/signal/sigaddset_test.cpp
M libc/test/src/signal/sigprocmask_test.cpp
Log Message:
-----------
[libc] Fix Darwin aarch64 fenv and sigsetjmp build support (#192079)
This patch fixes Darwin aarch64 build failures in libc around fenv and
sigsetjmp support.
Before this change, the Darwin aarch64 fenv implementation did not match
the public fenv_t layout and referenced several Darwin-specific
exception/control bits that were not defined in llvm-libc. This caused
libc builds to fail in fenv_darwin_impl.h with a sizeof(fenv_t) vs.
internal-state mismatch and multiple undeclared-identifier errors for
FE_FLUSHTOZERO and the FPCR trap/flush bits.
This patch fixes that by updating the internal Darwin aarch64
floating-point state layout to match fenv_t, defining the missing Darwin
FPCR bit values used by the implementation, and handling the
flush-to-zero exception bit consistently.
The patch also fixes the Darwin sigsetjmp path by enabling sigjmp_buf
support on Apple targets, adding the Darwin signal pieces needed by that
path (sigaddset, sigdelset, sigemptyset, sigfillset, sigprocmask, plus
Darwin signal macros), and updating the aarch64 sigsetjmp inline
assembly to branch through a local label before jumping to setjmp,
avoiding an assembler error from using cbz with an external symbol
target.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list