diff --git a/libc/config/linux/aarch64/headers.txt b/libc/config/linux/aarch64/headers.txt index 6e30c7c29b2c4b..c47e05c924fd94 100644 --- a/libc/config/linux/aarch64/headers.txt +++ b/libc/config/linux/aarch64/headers.txt @@ -2,6 +2,7 @@ set(TARGET_PUBLIC_HEADERS libc.include.assert libc.include.ctype libc.include.errno + libc.include.features libc.include.fenv libc.include.inttypes libc.include.math diff --git a/libc/config/linux/riscv/headers.txt b/libc/config/linux/riscv/headers.txt index aaa75a9dd08cbd..24247ee5819f94 100644 --- a/libc/config/linux/riscv/headers.txt +++ b/libc/config/linux/riscv/headers.txt @@ -4,6 +4,7 @@ set(TARGET_PUBLIC_HEADERS libc.include.dirent libc.include.errno libc.include.fcntl + libc.include.features libc.include.fenv libc.include.inttypes libc.include.math diff --git a/libc/config/linux/x86_64/headers.txt b/libc/config/linux/x86_64/headers.txt index aaa75a9dd08cbd..24247ee5819f94 100644 --- a/libc/config/linux/x86_64/headers.txt +++ b/libc/config/linux/x86_64/headers.txt @@ -4,6 +4,7 @@ set(TARGET_PUBLIC_HEADERS libc.include.dirent libc.include.errno libc.include.fcntl + libc.include.features libc.include.fenv libc.include.inttypes libc.include.math diff --git a/libc/include/CMakeLists.txt b/libc/include/CMakeLists.txt index fd2cb9351419ca..9d170603ffa45c 100644 --- a/libc/include/CMakeLists.txt +++ b/libc/include/CMakeLists.txt @@ -46,6 +46,15 @@ add_gen_header( .llvm-libc-types.mode_t ) +add_gen_header( + features + DEF_FILE features.h.def + GEN_HDR features.h + DEPENDS + .llvm_libc_common_h + .llvm-libc-macros.features_macros +) + add_gen_header( fenv DEF_FILE fenv.h.def diff --git a/libc/include/features.h.def b/libc/include/features.h.def new file mode 100644 index 00000000000000..a5d2be0a0692fe --- /dev/null +++ b/libc/include/features.h.def @@ -0,0 +1,17 @@ +//===-- C standard library header features.h -------------------------------===// +// +// 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_FEATURES_H +#define LLVM_LIBC_FEATURES_H + +#include <__llvm-libc-common.h> +#include + +%%public_api() + +#endif // LLVM_LIBC_FEATURES_H diff --git a/libc/include/llvm-libc-macros/CMakeLists.txt b/libc/include/llvm-libc-macros/CMakeLists.txt index 8a225889a6f1f8..9c9e6bfd125645 100644 --- a/libc/include/llvm-libc-macros/CMakeLists.txt +++ b/libc/include/llvm-libc-macros/CMakeLists.txt @@ -46,6 +46,12 @@ add_macro_header( fcntl-macros.h ) +add_macro_header( + features_macros + HDR + features-macros.h +) + add_macro_header( fenv_macros HDR diff --git a/libc/include/llvm-libc-macros/features-macros.h b/libc/include/llvm-libc-macros/features-macros.h new file mode 100644 index 00000000000000..2938b3ccb95b29 --- /dev/null +++ b/libc/include/llvm-libc-macros/features-macros.h @@ -0,0 +1,14 @@ +//===-- Definition of macros from features.h ------------------------------===// +// +// 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_MACROS_FEATURES_MACROS_H +#define __LLVM_LIBC_MACROS_FEATURES_MACROS_H + +#define __LLVM_LIBC__ 1 + +#endif // __LLVM_LIBC_MACROS_FEATURES_MACROS_H