From 5dbd97dbd10c9c10cfe53dde792b5d992a47fb1c Mon Sep 17 00:00:00 2001 From: c8ef Date: Sat, 25 Oct 2025 00:08:18 +0800 Subject: [PATCH 1/2] [libc] add SIG_HOLD for linux/gpu --- libc/include/llvm-libc-macros/gpu/signal-macros.h | 7 ++++--- libc/include/llvm-libc-macros/linux/signal-macros.h | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/libc/include/llvm-libc-macros/gpu/signal-macros.h b/libc/include/llvm-libc-macros/gpu/signal-macros.h index f0d49ea34fe0e..4c458b7c2000e 100644 --- a/libc/include/llvm-libc-macros/gpu/signal-macros.h +++ b/libc/include/llvm-libc-macros/gpu/signal-macros.h @@ -16,9 +16,10 @@ #define SIGSEGV 11 #define SIGTERM 15 -#define SIG_DFL ((void (*)(int))(0)) -#define SIG_IGN ((void (*)(int))(1)) -#define SIG_ERR ((void (*)(int))(-1)) +#define SIG_ERR __LLVM_LIBC_CAST(reinterpret_cast, (void (*)(int)), -1) +#define SIG_DFL __LLVM_LIBC_CAST(reinterpret_cast, (void (*)(int)), 0) +#define SIG_IGN __LLVM_LIBC_CAST(reinterpret_cast, (void (*)(int)), 1) +#define SIG_HOLD __LLVM_LIBC_CAST(reinterpret_cast, (void (*)(int)), 2) // Max signal number #define NSIG 64 diff --git a/libc/include/llvm-libc-macros/linux/signal-macros.h b/libc/include/llvm-libc-macros/linux/signal-macros.h index d220241a38206..a010adef272d4 100644 --- a/libc/include/llvm-libc-macros/linux/signal-macros.h +++ b/libc/include/llvm-libc-macros/linux/signal-macros.h @@ -86,9 +86,10 @@ #error "Signal stack sizes not defined for your platform." #endif -#define SIG_DFL ((void (*)(int))0) -#define SIG_IGN ((void (*)(int))1) -#define SIG_ERR ((void (*)(int))(-1)) +#define SIG_ERR __LLVM_LIBC_CAST(reinterpret_cast, (void (*)(int)), -1) +#define SIG_DFL __LLVM_LIBC_CAST(reinterpret_cast, (void (*)(int)), 0) +#define SIG_IGN __LLVM_LIBC_CAST(reinterpret_cast, (void (*)(int)), 1) +#define SIG_HOLD __LLVM_LIBC_CAST(reinterpret_cast, (void (*)(int)), 2) // SIGCHLD si_codes #define CLD_EXITED 1 // child has exited From 8e601f870b5a414a1897f46b602d112bdbbf7970 Mon Sep 17 00:00:00 2001 From: c8ef Date: Sat, 25 Oct 2025 11:09:11 +0800 Subject: [PATCH 2/2] fix header --- libc/include/llvm-libc-macros/gpu/signal-macros.h | 10 ++++++---- libc/include/llvm-libc-macros/linux/signal-macros.h | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/libc/include/llvm-libc-macros/gpu/signal-macros.h b/libc/include/llvm-libc-macros/gpu/signal-macros.h index 4c458b7c2000e..76488e9796fc4 100644 --- a/libc/include/llvm-libc-macros/gpu/signal-macros.h +++ b/libc/include/llvm-libc-macros/gpu/signal-macros.h @@ -9,6 +9,8 @@ #ifndef LLVM_LIBC_MACROS_GPU_SIGNAL_MACROS_H #define LLVM_LIBC_MACROS_GPU_SIGNAL_MACROS_H +#include "__llvm-libc-common.h" + #define SIGINT 2 #define SIGILL 4 #define SIGABRT 6 @@ -16,10 +18,10 @@ #define SIGSEGV 11 #define SIGTERM 15 -#define SIG_ERR __LLVM_LIBC_CAST(reinterpret_cast, (void (*)(int)), -1) -#define SIG_DFL __LLVM_LIBC_CAST(reinterpret_cast, (void (*)(int)), 0) -#define SIG_IGN __LLVM_LIBC_CAST(reinterpret_cast, (void (*)(int)), 1) -#define SIG_HOLD __LLVM_LIBC_CAST(reinterpret_cast, (void (*)(int)), 2) +#define SIG_ERR __LLVM_LIBC_CAST(reinterpret_cast, void (*)(int), -1) +#define SIG_DFL __LLVM_LIBC_CAST(reinterpret_cast, void (*)(int), 0) +#define SIG_IGN __LLVM_LIBC_CAST(reinterpret_cast, void (*)(int), 1) +#define SIG_HOLD __LLVM_LIBC_CAST(reinterpret_cast, void (*)(int), 2) // Max signal number #define NSIG 64 diff --git a/libc/include/llvm-libc-macros/linux/signal-macros.h b/libc/include/llvm-libc-macros/linux/signal-macros.h index a010adef272d4..e7f268df87cba 100644 --- a/libc/include/llvm-libc-macros/linux/signal-macros.h +++ b/libc/include/llvm-libc-macros/linux/signal-macros.h @@ -9,6 +9,8 @@ #ifndef LLVM_LIBC_MACROS_LINUX_SIGNAL_MACROS_H #define LLVM_LIBC_MACROS_LINUX_SIGNAL_MACROS_H +#include "__llvm-libc-common.h" + #define SIGHUP 1 #define SIGINT 2 #define SIGQUIT 3 @@ -86,10 +88,10 @@ #error "Signal stack sizes not defined for your platform." #endif -#define SIG_ERR __LLVM_LIBC_CAST(reinterpret_cast, (void (*)(int)), -1) -#define SIG_DFL __LLVM_LIBC_CAST(reinterpret_cast, (void (*)(int)), 0) -#define SIG_IGN __LLVM_LIBC_CAST(reinterpret_cast, (void (*)(int)), 1) -#define SIG_HOLD __LLVM_LIBC_CAST(reinterpret_cast, (void (*)(int)), 2) +#define SIG_ERR __LLVM_LIBC_CAST(reinterpret_cast, void (*)(int), -1) +#define SIG_DFL __LLVM_LIBC_CAST(reinterpret_cast, void (*)(int), 0) +#define SIG_IGN __LLVM_LIBC_CAST(reinterpret_cast, void (*)(int), 1) +#define SIG_HOLD __LLVM_LIBC_CAST(reinterpret_cast, void (*)(int), 2) // SIGCHLD si_codes #define CLD_EXITED 1 // child has exited