From 133492fe18260d4b5ce2d70ff9575fa9c911d090 Mon Sep 17 00:00:00 2001 From: Schrodinger ZHU Yifan Date: Wed, 26 Jun 2024 12:46:15 -0700 Subject: [PATCH] [libc] add proxy header for struct_sigaction (#96224) --- libc/hdr/types/CMakeLists.txt | 9 +++++++++ libc/hdr/types/struct_sigaction.h | 21 +++++++++++++++++++++ libc/src/signal/linux/CMakeLists.txt | 3 ++- libc/src/signal/linux/signal.cpp | 6 ++---- libc/src/signal/sigaction.h | 2 +- libc/test/src/signal/CMakeLists.txt | 6 +++--- libc/test/src/signal/sigaction_test.cpp | 6 ++---- libc/test/src/signal/sigaltstack_test.cpp | 3 +-- 8 files changed, 41 insertions(+), 15 deletions(-) create mode 100644 libc/hdr/types/struct_sigaction.h diff --git a/libc/hdr/types/CMakeLists.txt b/libc/hdr/types/CMakeLists.txt index 9b3373a0ca39..1cab1d3b812c 100644 --- a/libc/hdr/types/CMakeLists.txt +++ b/libc/hdr/types/CMakeLists.txt @@ -126,3 +126,12 @@ add_proxy_header_library( libc.include.llvm-libc-types.atexithandler_t libc.include.stdlib ) + +add_proxy_header_library( + struct_sigaction + HDRS + struct_sigaction.h + FULL_BUILD_DEPENDS + libc.include.llvm-libc-types.struct_sigaction + libc.include.signal +) diff --git a/libc/hdr/types/struct_sigaction.h b/libc/hdr/types/struct_sigaction.h new file mode 100644 index 000000000000..60f6caeb4af1 --- /dev/null +++ b/libc/hdr/types/struct_sigaction.h @@ -0,0 +1,21 @@ +//===-- Proxy for struct sigaction ---------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +#ifndef LLVM_LIBC_HDR_TYPES_STRUCT_SIGACTION_H +#define LLVM_LIBC_HDR_TYPES_STRUCT_SIGACTION_H + +#ifdef LIBC_FULL_BUILD + +#include "include/llvm-libc-types/struct_sigaction.h" + +#else + +#include + +#endif // LIBC_FULL_BUILD + +#endif // LLVM_LIBC_HDR_TYPES_STRUCT_SIGACTION_H diff --git a/libc/src/signal/linux/CMakeLists.txt b/libc/src/signal/linux/CMakeLists.txt index 7606b4b21d3d..5a6be242ddd9 100644 --- a/libc/src/signal/linux/CMakeLists.txt +++ b/libc/src/signal/linux/CMakeLists.txt @@ -60,6 +60,7 @@ add_entrypoint_object( DEPENDS .__restore libc.hdr.types.sigset_t + libc.hdr.types.struct_sigaction libc.include.sys_syscall libc.src.__support.OSUtil.osutil libc.src.errno.errno @@ -124,7 +125,7 @@ add_entrypoint_object( ../signal.h DEPENDS .sigaction - libc.include.signal + libc.hdr.signal_macros ) add_entrypoint_object( diff --git a/libc/src/signal/linux/signal.cpp b/libc/src/signal/linux/signal.cpp index a517fa73ba8a..0d5463553eb7 100644 --- a/libc/src/signal/linux/signal.cpp +++ b/libc/src/signal/linux/signal.cpp @@ -7,11 +7,9 @@ //===----------------------------------------------------------------------===// #include "src/signal/signal.h" -#include "src/signal/sigaction.h" - +#include "hdr/signal_macros.h" #include "src/__support/common.h" - -#include +#include "src/signal/sigaction.h" namespace LIBC_NAMESPACE { diff --git a/libc/src/signal/sigaction.h b/libc/src/signal/sigaction.h index c36a3ec9fedf..15b689b7dacc 100644 --- a/libc/src/signal/sigaction.h +++ b/libc/src/signal/sigaction.h @@ -9,7 +9,7 @@ #ifndef LLVM_LIBC_SRC_SIGNAL_SIGACTION_H #define LLVM_LIBC_SRC_SIGNAL_SIGACTION_H -#include +#include "hdr/types/struct_sigaction.h" namespace LIBC_NAMESPACE { diff --git a/libc/test/src/signal/CMakeLists.txt b/libc/test/src/signal/CMakeLists.txt index 56ae6fd2cf61..edbd5c19edab 100644 --- a/libc/test/src/signal/CMakeLists.txt +++ b/libc/test/src/signal/CMakeLists.txt @@ -32,8 +32,8 @@ add_libc_unittest( SRCS sigaction_test.cpp DEPENDS - libc.include.errno - libc.include.signal + libc.hdr.errno_macros + libc.hdr.signal_macros libc.src.signal.raise libc.src.signal.sigaction libc.test.UnitTest.ErrnoSetterMatcher @@ -119,7 +119,7 @@ add_libc_unittest( SRCS sigaltstack_test.cpp DEPENDS - libc.include.signal + libc.hdr.signal_macros libc.src.errno.errno libc.src.signal.raise libc.src.signal.sigaltstack diff --git a/libc/test/src/signal/sigaction_test.cpp b/libc/test/src/signal/sigaction_test.cpp index 262469c7600e..a12d7989586f 100644 --- a/libc/test/src/signal/sigaction_test.cpp +++ b/libc/test/src/signal/sigaction_test.cpp @@ -6,15 +6,13 @@ // //===----------------------------------------------------------------------===// +#include "hdr/errno_macros.h" +#include "hdr/signal_macros.h" #include "src/signal/raise.h" #include "src/signal/sigaction.h" - #include "test/UnitTest/ErrnoSetterMatcher.h" #include "test/UnitTest/Test.h" -#include -#include - using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails; using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds; diff --git a/libc/test/src/signal/sigaltstack_test.cpp b/libc/test/src/signal/sigaltstack_test.cpp index 12bf2bf5e372..cc392da8f473 100644 --- a/libc/test/src/signal/sigaltstack_test.cpp +++ b/libc/test/src/signal/sigaltstack_test.cpp @@ -6,17 +6,16 @@ // //===----------------------------------------------------------------------===// +#include "hdr/signal_macros.h" #include "src/__support/OSUtil/syscall.h" // For internal syscall function. #include "src/errno/libc_errno.h" #include "src/signal/linux/signal_utils.h" #include "src/signal/raise.h" #include "src/signal/sigaction.h" #include "src/signal/sigaltstack.h" - #include "test/UnitTest/ErrnoSetterMatcher.h" #include "test/UnitTest/Test.h" -#include #include #include