[libc-commits] [libc] [libc] Make sign functions use the emulated float80 type (PR #235073)

via libc-commits libc-commits at lists.llvm.org
Fri Oct 23 23:47:34 PDT 2026


https://github.com/Sukumarsawant updated https://github.com/llvm/llvm-project/pull/235073

>From 910712db53f336372c276155f8c0add28d67dd26 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Sat, 24 Oct 2026 00:45:34 +0530
Subject: [PATCH 1/2] intial commit

---
 libc/shared/math/copysignf80.h                | 23 +++++++++++++++
 libc/shared/math/fabsf80.h                    | 23 +++++++++++++++
 libc/src/__support/math/copysignf80.h         | 28 +++++++++++++++++++
 libc/src/__support/math/fabsf80.h             | 26 +++++++++++++++++
 libc/src/math/copysignf80.h                   | 22 +++++++++++++++
 libc/src/math/fabsf80.h                       | 22 +++++++++++++++
 libc/src/math/generic/copysignf80.cpp         | 24 ++++++++++++++++
 libc/src/math/generic/fabsf80.cpp             | 23 +++++++++++++++
 libc/test/src/math/smoke/copysignf80_test.cpp | 15 ++++++++++
 libc/test/src/math/smoke/fabsf80_test.cpp     | 15 ++++++++++
 10 files changed, 221 insertions(+)
 create mode 100644 libc/shared/math/copysignf80.h
 create mode 100644 libc/shared/math/fabsf80.h
 create mode 100644 libc/src/__support/math/copysignf80.h
 create mode 100644 libc/src/__support/math/fabsf80.h
 create mode 100644 libc/src/math/copysignf80.h
 create mode 100644 libc/src/math/fabsf80.h
 create mode 100644 libc/src/math/generic/copysignf80.cpp
 create mode 100644 libc/src/math/generic/fabsf80.cpp
 create mode 100644 libc/test/src/math/smoke/copysignf80_test.cpp
 create mode 100644 libc/test/src/math/smoke/fabsf80_test.cpp

diff --git a/libc/shared/math/copysignf80.h b/libc/shared/math/copysignf80.h
new file mode 100644
index 00000000000000..7829f8bf4365bb
--- /dev/null
+++ b/libc/shared/math/copysignf80.h
@@ -0,0 +1,23 @@
+//===-- Shared copysignf80 function -----------------------------*- C++ -*-===//
+//
+// 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_SHARED_MATH_COPYSIGNF80_H
+#define LLVM_LIBC_SHARED_MATH_COPYSIGNF80_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/copysignf80.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::copysignf80;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_COPYSIGNF80_H
diff --git a/libc/shared/math/fabsf80.h b/libc/shared/math/fabsf80.h
new file mode 100644
index 00000000000000..3f007309954a75
--- /dev/null
+++ b/libc/shared/math/fabsf80.h
@@ -0,0 +1,23 @@
+//===-- Shared fabsf80 function ---------------------------------*- C++ -*-===//
+//
+// 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_SHARED_MATH_FABSF80_H
+#define LLVM_LIBC_SHARED_MATH_FABSF80_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/fabsf80.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::fabsf80;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_FABSF80_H
diff --git a/libc/src/__support/math/copysignf80.h b/libc/src/__support/math/copysignf80.h
new file mode 100644
index 00000000000000..c2a498a97b2274
--- /dev/null
+++ b/libc/src/__support/math/copysignf80.h
@@ -0,0 +1,28 @@
+//===-- Implementation header for copysignf80 -------------------*- C++ -*-===//
+//
+// 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_SRC___SUPPORT_MATH_COPYSIGNF80_H
+#define LLVM_LIBC_SRC___SUPPORT_MATH_COPYSIGNF80_H
+
+#include "src/__support/FPUtil/ManipulationFunctions.h"
+#include "src/__support/FPUtil/float80.h"
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace math {
+
+using LIBC_NAMESPACE::fputil::Float80;
+
+LIBC_INLINE constexpr Float80 copysignf80(Float80 x, Float80 y) {
+  return fputil::copysign(x, y);
+}
+
+} // namespace math
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SRC___SUPPORT_MATH_COPYSIGNF80_H
diff --git a/libc/src/__support/math/fabsf80.h b/libc/src/__support/math/fabsf80.h
new file mode 100644
index 00000000000000..038cb48ccb64a3
--- /dev/null
+++ b/libc/src/__support/math/fabsf80.h
@@ -0,0 +1,26 @@
+//===-- Implementation header for fabsf80 -----------------------*- C++ -*-===//
+//
+// 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_SRC___SUPPORT_MATH_FABSF80_H
+#define LLVM_LIBC_SRC___SUPPORT_MATH_FABSF80_H
+
+#include "src/__support/FPUtil/BasicOperations.h"
+#include "src/__support/FPUtil/float80.h"
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace math {
+
+using LIBC_NAMESPACE::fputil::Float80;
+
+LIBC_INLINE constexpr Float80 fabsf80(Float80 x) { return fputil::abs(x); }
+
+} // namespace math
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SRC___SUPPORT_MATH_FABSF80_H
diff --git a/libc/src/math/copysignf80.h b/libc/src/math/copysignf80.h
new file mode 100644
index 00000000000000..41d970ba1a2d90
--- /dev/null
+++ b/libc/src/math/copysignf80.h
@@ -0,0 +1,22 @@
+//===-- Implementation header for copysignf80 -------------------*- C++ -*-===//
+//
+// 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_SRC_MATH_COPYSIGNF80_H
+#define LLVM_LIBC_SRC_MATH_COPYSIGNF80_H
+
+#include "src/__support/FPUtil/float80.h"
+#include "src/__support/macros/config.h"
+#include "src/__support/macros/properties/types.h"
+
+namespace LIBC_NAMESPACE_DECL {
+
+float80 copysignf80(float80 x, float80 y);
+
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SRC_MATH_COPYSIGNF80_H
diff --git a/libc/src/math/fabsf80.h b/libc/src/math/fabsf80.h
new file mode 100644
index 00000000000000..15d5e86cec86b9
--- /dev/null
+++ b/libc/src/math/fabsf80.h
@@ -0,0 +1,22 @@
+//===-- Implementation header for fabsf80 -----------------------*- C++ -*-===//
+//
+// 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_SRC_MATH_FABSF80_H
+#define LLVM_LIBC_SRC_MATH_FABSF80_H
+
+#include "src/__support/FPUtil/float80.h"
+#include "src/__support/macros/config.h"
+#include "src/__support/macros/properties/types.h"
+
+namespace LIBC_NAMESPACE_DECL {
+
+float80 fabsf80(float80 x);
+
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SRC_MATH_FABSF80_H
diff --git a/libc/src/math/generic/copysignf80.cpp b/libc/src/math/generic/copysignf80.cpp
new file mode 100644
index 00000000000000..07220c8c86c6d9
--- /dev/null
+++ b/libc/src/math/generic/copysignf80.cpp
@@ -0,0 +1,24 @@
+//===-- Implementation of copysignf80 function ----------------------------===//
+//
+// 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
+//
+//===----------------------------------------------------------------------===//
+
+#include "src/math/copysignf80.h"
+#include "src/__support/CPP/bit.h"
+#include "src/__support/common.h"
+#include "src/__support/macros/config.h"
+#include "src/__support/math/copysignf80.h"
+
+namespace LIBC_NAMESPACE_DECL {
+
+using LIBC_NAMESPACE::fputil::Float80;
+
+LLVM_LIBC_FUNCTION(float80, copysignf80, (float80 x, float80 y)) {
+  return cpp::bit_cast<float80>(
+      math::copysignf80(cpp::bit_cast<Float80>(x), cpp::bit_cast<Float80>(y)));
+}
+
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fabsf80.cpp b/libc/src/math/generic/fabsf80.cpp
new file mode 100644
index 00000000000000..b15427d264da84
--- /dev/null
+++ b/libc/src/math/generic/fabsf80.cpp
@@ -0,0 +1,23 @@
+//===-- Implementation of fabsf80 function --------------------------------===//
+//
+// 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
+//
+//===----------------------------------------------------------------------===//
+
+#include "src/math/fabsf80.h"
+#include "src/__support/CPP/bit.h"
+#include "src/__support/common.h"
+#include "src/__support/macros/config.h"
+#include "src/__support/math/fabsf80.h"
+
+namespace LIBC_NAMESPACE_DECL {
+
+using LIBC_NAMESPACE::fputil::Float80;
+
+LLVM_LIBC_FUNCTION(float80, fabsf80, (float80 x)) {
+  return cpp::bit_cast<float80>(math::fabsf80(cpp::bit_cast<Float80>(x)));
+}
+
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/math/smoke/copysignf80_test.cpp b/libc/test/src/math/smoke/copysignf80_test.cpp
new file mode 100644
index 00000000000000..cdf3fbcc0b8390
--- /dev/null
+++ b/libc/test/src/math/smoke/copysignf80_test.cpp
@@ -0,0 +1,15 @@
+//===-- Unittests for copysignf80 -----------------------------------------===//
+//
+// 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
+//
+//===----------------------------------------------------------------------===//
+
+#include "src/__support/FPUtil/float80.h"
+#include "src/math/copysignf80.h"
+#include "test/src/math/smoke/CopySignTest.h"
+
+using LIBC_NAMESPACE::fputil::Float80;
+
+LIST_COPYSIGN_TESTS(Float80, LIBC_NAMESPACE::copysignf80)
diff --git a/libc/test/src/math/smoke/fabsf80_test.cpp b/libc/test/src/math/smoke/fabsf80_test.cpp
new file mode 100644
index 00000000000000..44ef52cf967dbd
--- /dev/null
+++ b/libc/test/src/math/smoke/fabsf80_test.cpp
@@ -0,0 +1,15 @@
+//===-- Unittests for fabsf80 ---------------------------------------------===//
+//
+// 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
+//
+//===----------------------------------------------------------------------===//
+
+#include "src/__support/FPUtil/float80.h"
+#include "src/math/fabsf80.h"
+#include "test/src/math/smoke/FAbsTest.h"
+
+using LIBC_NAMESPACE::fputil::Float80;
+
+LIST_FABS_TESTS(Float80, LIBC_NAMESPACE::fabsf80)

>From 8a62517f52be0110355e9f399b93e32c0d1243ee Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Sat, 24 Oct 2026 12:17:09 +0530
Subject: [PATCH 2/2] add entrypoints

---
 libc/config/baremetal/aarch64/entrypoints.txt | 2000 ++++-----
 libc/config/baremetal/arm/entrypoints.txt     | 2070 ++++-----
 libc/config/baremetal/riscv/entrypoints.txt   | 2054 ++++-----
 libc/config/darwin/aarch64/entrypoints.txt    | 1586 +++----
 libc/config/darwin/x86_64/entrypoints.txt     |  700 ++--
 libc/config/freebsd/x86_64/entrypoints.txt    | 1330 +++---
 libc/config/gpu/amdgpu/entrypoints.txt        | 1526 +++----
 libc/config/gpu/nvptx/entrypoints.txt         | 1558 +++----
 libc/config/linux/aarch64/entrypoints.txt     | 3220 +++++++-------
 libc/config/linux/arm/entrypoints.txt         | 1542 +++----
 libc/config/linux/riscv/entrypoints.txt       | 3546 ++++++++--------
 libc/config/linux/x86_64/entrypoints.txt      | 3696 +++++++++--------
 libc/config/windows/entrypoints.txt           |  882 ++--
 13 files changed, 12868 insertions(+), 12842 deletions(-)

diff --git a/libc/config/baremetal/aarch64/entrypoints.txt b/libc/config/baremetal/aarch64/entrypoints.txt
index 7ec212d8709692..96c267df14dbee 100644
--- a/libc/config/baremetal/aarch64/entrypoints.txt
+++ b/libc/config/baremetal/aarch64/entrypoints.txt
@@ -1,999 +1,1001 @@
-set(TARGET_LIBC_ENTRYPOINTS
-    # assert.h entrypoints
-    libc.src.assert.__assert_fail
-
-    # compiler entrypoints (no corresponding header)
-    libc.src.compiler.__stack_chk_fail
-
-    # ctype.h entrypoints
-    libc.src.ctype.isalnum
-    libc.src.ctype.isalpha
-    libc.src.ctype.isascii
-    libc.src.ctype.isblank
-    libc.src.ctype.iscntrl
-    libc.src.ctype.isdigit
-    libc.src.ctype.isgraph
-    libc.src.ctype.islower
-    libc.src.ctype.isprint
-    libc.src.ctype.ispunct
-    libc.src.ctype.isspace
-    libc.src.ctype.isupper
-    libc.src.ctype.isxdigit
-    libc.src.ctype.toascii
-    libc.src.ctype.tolower
-    libc.src.ctype.toupper
-
-    # ctype.h entrypoints
-    libc.src.ctype.isalnum_l
-    libc.src.ctype.isalpha_l
-    libc.src.ctype.isblank_l
-    libc.src.ctype.iscntrl_l
-    libc.src.ctype.isdigit_l
-    libc.src.ctype.isgraph_l
-    libc.src.ctype.islower_l
-    libc.src.ctype.isprint_l
-    libc.src.ctype.ispunct_l
-    libc.src.ctype.isspace_l
-    libc.src.ctype.isupper_l
-    libc.src.ctype.isxdigit_l
-    libc.src.ctype.tolower_l
-    libc.src.ctype.toupper_l
-
-    # errno.h entrypoints
-    libc.src.errno.errno
-
-    # locale.h entrypoints
-    libc.src.locale.localeconv
-    libc.src.locale.duplocale
-    libc.src.locale.freelocale
-    libc.src.locale.localeconv
-    libc.src.locale.newlocale
-    libc.src.locale.setlocale
-    libc.src.locale.uselocale
-
-    # setjmp.h entrypoints
-    libc.src.setjmp.longjmp
-    libc.src.setjmp.setjmp
-
-    # string.h entrypoints
-    libc.src.string.memccpy
-    libc.src.string.memchr
-    libc.src.string.memcmp
-    libc.src.string.memcpy
-    libc.src.string.memmem
-    libc.src.string.memmove
-    libc.src.string.mempcpy
-    libc.src.string.memrchr
-    libc.src.string.memset
-    libc.src.string.memset_explicit
-    libc.src.string.stpcpy
-    libc.src.string.stpncpy
-    libc.src.string.strcasestr
-    libc.src.string.strcat
-    libc.src.string.strchr
-    libc.src.string.strchrnul
-    libc.src.string.strcmp
-    libc.src.string.strcoll
-    libc.src.string.strcpy
-    libc.src.string.strcspn
-    libc.src.string.strdup
-    libc.src.string.strerror
-    libc.src.string.strerror_r
-    libc.src.string.strlcat
-    libc.src.string.strlcpy
-    libc.src.string.strlen
-    libc.src.string.strncat
-    libc.src.string.strncmp
-    libc.src.string.strncpy
-    libc.src.string.strndup
-    libc.src.string.strnlen
-    libc.src.string.strnlen_s
-    libc.src.string.strpbrk
-    libc.src.string.strrchr
-    libc.src.string.strsep
-    libc.src.string.strspn
-    libc.src.string.strstr
-    libc.src.string.strtok
-    libc.src.string.strtok_r
-    libc.src.string.strxfrm
-
-    # string.h entrypoints
-    libc.src.string.strcoll_l
-    libc.src.string.strxfrm_l
-
-    # strings.h entrypoints
-    libc.src.strings.bcmp
-    libc.src.strings.bcopy
-    libc.src.strings.bzero
-    libc.src.strings.ffs
-    libc.src.strings.ffsl
-    libc.src.strings.ffsll
-    libc.src.strings.index
-    libc.src.strings.rindex
-    libc.src.strings.strcasecmp
-    libc.src.strings.strncasecmp
-
-    # strings.h entrypoints
-    libc.src.strings.strcasecmp_l
-    libc.src.strings.strncasecmp_l
-
-    # inttypes.h entrypoints
-    libc.src.inttypes.imaxabs
-    libc.src.inttypes.imaxdiv
-    libc.src.inttypes.strtoimax
-    libc.src.inttypes.strtoumax
-
-    # stdio.h entrypoints
-    libc.src.stdio.asprintf
-    libc.src.stdio.feof
-    libc.src.stdio.ferror
-    libc.src.stdio.fflush
-    libc.src.stdio.fclose
-    libc.src.stdio.fgetc
-    libc.src.stdio.fgets
-    libc.src.stdio.fprintf
-    libc.src.stdio.fputc
-    libc.src.stdio.fputs
-    libc.src.stdio.fread
-    libc.src.stdio.fscanf
-    libc.src.stdio.fwrite
-    libc.src.stdio.fseek
-    libc.src.stdio.fseeko
-    libc.src.stdio.ftell
-    libc.src.stdio.ftello
-    libc.src.stdio.getc
-    libc.src.stdio.getchar
-    libc.src.stdio.printf
-    libc.src.stdio.putc
-    libc.src.stdio.putchar
-    libc.src.stdio.puts
-    libc.src.stdio.remove
-    libc.src.stdio.scanf
-    libc.src.stdio.snprintf
-    libc.src.stdio.sprintf
-    libc.src.stdio.sscanf
-    libc.src.stdio.stderr
-    libc.src.stdio.stdin
-    libc.src.stdio.stdout
-    libc.src.stdio.vasprintf
-    libc.src.stdio.vfprintf
-    libc.src.stdio.vfscanf
-    libc.src.stdio.vprintf
-    libc.src.stdio.vscanf
-    libc.src.stdio.vsnprintf
-    libc.src.stdio.vsprintf
-    libc.src.stdio.vsscanf
-    libc.src.stdio.ungetc
-
-    # stdbit.h entrypoints
-    libc.src.stdbit.stdc_bit_ceil_uc
-    libc.src.stdbit.stdc_bit_ceil_ui
-    libc.src.stdbit.stdc_bit_ceil_ul
-    libc.src.stdbit.stdc_bit_ceil_ull
-    libc.src.stdbit.stdc_bit_ceil_us
-    libc.src.stdbit.stdc_bit_floor_uc
-    libc.src.stdbit.stdc_bit_floor_ui
-    libc.src.stdbit.stdc_bit_floor_ul
-    libc.src.stdbit.stdc_bit_floor_ull
-    libc.src.stdbit.stdc_bit_floor_us
-    libc.src.stdbit.stdc_bit_width_uc
-    libc.src.stdbit.stdc_bit_width_ui
-    libc.src.stdbit.stdc_bit_width_ul
-    libc.src.stdbit.stdc_bit_width_ull
-    libc.src.stdbit.stdc_bit_width_us
-    libc.src.stdbit.stdc_count_ones_uc
-    libc.src.stdbit.stdc_count_ones_ui
-    libc.src.stdbit.stdc_count_ones_ul
-    libc.src.stdbit.stdc_count_ones_ull
-    libc.src.stdbit.stdc_count_ones_us
-    libc.src.stdbit.stdc_count_zeros_uc
-    libc.src.stdbit.stdc_count_zeros_ui
-    libc.src.stdbit.stdc_count_zeros_ul
-    libc.src.stdbit.stdc_count_zeros_ull
-    libc.src.stdbit.stdc_count_zeros_us
-    libc.src.stdbit.stdc_first_leading_one_uc
-    libc.src.stdbit.stdc_first_leading_one_ui
-    libc.src.stdbit.stdc_first_leading_one_ul
-    libc.src.stdbit.stdc_first_leading_one_ull
-    libc.src.stdbit.stdc_first_leading_one_us
-    libc.src.stdbit.stdc_first_leading_zero_uc
-    libc.src.stdbit.stdc_first_leading_zero_ui
-    libc.src.stdbit.stdc_first_leading_zero_ul
-    libc.src.stdbit.stdc_first_leading_zero_ull
-    libc.src.stdbit.stdc_first_leading_zero_us
-    libc.src.stdbit.stdc_first_trailing_one_uc
-    libc.src.stdbit.stdc_first_trailing_one_ui
-    libc.src.stdbit.stdc_first_trailing_one_ul
-    libc.src.stdbit.stdc_first_trailing_one_ull
-    libc.src.stdbit.stdc_first_trailing_one_us
-    libc.src.stdbit.stdc_first_trailing_zero_uc
-    libc.src.stdbit.stdc_first_trailing_zero_ui
-    libc.src.stdbit.stdc_first_trailing_zero_ul
-    libc.src.stdbit.stdc_first_trailing_zero_ull
-    libc.src.stdbit.stdc_first_trailing_zero_us
-    libc.src.stdbit.stdc_has_single_bit_uc
-    libc.src.stdbit.stdc_has_single_bit_ui
-    libc.src.stdbit.stdc_has_single_bit_ul
-    libc.src.stdbit.stdc_has_single_bit_ull
-    libc.src.stdbit.stdc_has_single_bit_us
-    libc.src.stdbit.stdc_leading_ones_uc
-    libc.src.stdbit.stdc_leading_ones_ui
-    libc.src.stdbit.stdc_leading_ones_ul
-    libc.src.stdbit.stdc_leading_ones_ull
-    libc.src.stdbit.stdc_leading_ones_us
-    libc.src.stdbit.stdc_leading_zeros_uc
-    libc.src.stdbit.stdc_leading_zeros_ui
-    libc.src.stdbit.stdc_leading_zeros_ul
-    libc.src.stdbit.stdc_leading_zeros_ull
-    libc.src.stdbit.stdc_leading_zeros_us
-    libc.src.stdbit.stdc_trailing_ones_uc
-    libc.src.stdbit.stdc_trailing_ones_ui
-    libc.src.stdbit.stdc_trailing_ones_ul
-    libc.src.stdbit.stdc_trailing_ones_ull
-    libc.src.stdbit.stdc_trailing_ones_us
-    libc.src.stdbit.stdc_trailing_zeros_uc
-    libc.src.stdbit.stdc_trailing_zeros_ui
-    libc.src.stdbit.stdc_trailing_zeros_ul
-    libc.src.stdbit.stdc_trailing_zeros_ull
-    libc.src.stdbit.stdc_trailing_zeros_us
-
-    # stdlib.h entrypoints
-    libc.src.stdlib._Exit
-    libc.src.stdlib.a64l
-    libc.src.stdlib.abort
-    libc.src.stdlib.abs
-    libc.src.stdlib.aligned_alloc
-    libc.src.stdlib.atexit
-    libc.src.stdlib.atof
-    libc.src.stdlib.atoi
-    libc.src.stdlib.atol
-    libc.src.stdlib.atoll
-    libc.src.stdlib.bsearch
-    libc.src.stdlib.calloc
-    libc.src.stdlib.div
-    libc.src.stdlib.exit
-    libc.src.stdlib.free
-    libc.src.stdlib.l64a
-    libc.src.stdlib.labs
-    libc.src.stdlib.ldiv
-    libc.src.stdlib.llabs
-    libc.src.stdlib.lldiv
-    libc.src.stdlib.malloc
-    libc.src.stdlib.malloc_usable_size
-    libc.src.stdlib.memalignment
-    libc.src.stdlib.qsort
-    libc.src.stdlib.qsort_r
-    libc.src.stdlib.rand
-    libc.src.stdlib.realloc
-    libc.src.stdlib.srand
-    # libc.src.stdlib.strfromd
-    # libc.src.stdlib.strfromf
-    # libc.src.stdlib.strfroml
-    libc.src.stdlib.strtod
-    libc.src.stdlib.strtof
-    libc.src.stdlib.strtol
-    libc.src.stdlib.strtold
-    libc.src.stdlib.strtoll
-    libc.src.stdlib.strtoul
-    libc.src.stdlib.strtoull
-
-    # stdlib.h entrypoints
-    libc.src.stdlib.strtod_l
-    libc.src.stdlib.strtof_l
-    libc.src.stdlib.strtol_l
-    libc.src.stdlib.strtold_l
-    libc.src.stdlib.strtoll_l
-    libc.src.stdlib.strtoul_l
-    libc.src.stdlib.strtoull_l
-
-    # time.h entrypoints
-    libc.src.time.asctime
-    libc.src.time.asctime_r
-    libc.src.time.clock
-    libc.src.time.ctime
-    libc.src.time.ctime_r
-    libc.src.time.difftime
-    libc.src.time.gmtime
-    libc.src.time.gmtime_r
-    libc.src.time.localtime
-    libc.src.time.localtime_r
-    libc.src.time.mktime
-    libc.src.time.strftime
-    libc.src.time.strftime_l
-    libc.src.time.timespec_get
-
-    # wchar.h entrypoints
-    libc.src.wchar.btowc
-    libc.src.wchar.wcslen
-    libc.src.wchar.wctob
-
-    # wctype.h entrypoints
-    libc.src.wctype.iswpunct
-
-    # internal entrypoints
-    libc.startup.baremetal.init
-    libc.startup.baremetal.fini
-)
-
-set(TARGET_LIBM_ENTRYPOINTS
-    # complex.h entrypoints
-    libc.src.complex.cabs
-    libc.src.complex.cabsf
-    libc.src.complex.carg
-    libc.src.complex.cargf
-    libc.src.complex.creal
-    libc.src.complex.crealf
-    libc.src.complex.creall
-    libc.src.complex.cimag
-    libc.src.complex.cimagf
-    libc.src.complex.cimagl
-    libc.src.complex.conj
-    libc.src.complex.conjf
-    libc.src.complex.conjl
-    libc.src.complex.cproj
-    libc.src.complex.cprojf
-    libc.src.complex.cprojl
-
-    # fenv.h entrypoints
-    libc.src.fenv.feclearexcept
-    libc.src.fenv.fedisableexcept
-    libc.src.fenv.feenableexcept
-    libc.src.fenv.fegetenv
-    libc.src.fenv.fegetexcept
-    libc.src.fenv.fegetexceptflag
-    libc.src.fenv.fegetround
-    libc.src.fenv.feholdexcept
-    libc.src.fenv.feraiseexcept
-    libc.src.fenv.fesetenv
-    libc.src.fenv.fesetexcept
-    libc.src.fenv.fesetexceptflag
-    libc.src.fenv.fesetround
-    libc.src.fenv.fetestexcept
-    libc.src.fenv.fetestexceptflag
-    libc.src.fenv.feupdateenv
-
-    # math.h entrypoints
-    libc.src.math.acos
-    libc.src.math.acosf
-    libc.src.math.acoshf
-    libc.src.math.acospif
-    libc.src.math.asin
-    libc.src.math.asinf
-    libc.src.math.asinhf
-    libc.src.math.asinpi
-    libc.src.math.asinpif
-    libc.src.math.atan2
-    libc.src.math.atan2f
-    libc.src.math.atan2f128
-    # libc.src.math.atan2l
-    libc.src.math.atan
-    libc.src.math.atanf
-    libc.src.math.atanhf
-    libc.src.math.canonicalize
-    libc.src.math.canonicalizef
-    libc.src.math.canonicalizel
-    libc.src.math.cbrt
-    libc.src.math.cbrtf
-    libc.src.math.cbrtbf16
-    libc.src.math.ceil
-    libc.src.math.ceilf
-    libc.src.math.ceilf128
-    libc.src.math.ceill
-    libc.src.math.copysign
-    libc.src.math.copysignf
-    libc.src.math.copysignf128
-    libc.src.math.copysignl
-    libc.src.math.cos
-    libc.src.math.cosf
-    libc.src.math.coshf
-    libc.src.math.cospif
-    libc.src.math.dfmal
-    libc.src.math.dmull
-    libc.src.math.dsqrtl
-    libc.src.math.daddl
-    libc.src.math.ddivl
-    libc.src.math.dsubl
-    libc.src.math.erff
-    libc.src.math.exp
-    libc.src.math.exp10
-    libc.src.math.exp10f
-    libc.src.math.exp10m1f
-    libc.src.math.exp2
-    libc.src.math.exp2f
-    libc.src.math.exp2m1f
-    libc.src.math.expf
-    libc.src.math.expm1
-    libc.src.math.expm1f
-    libc.src.math.fabs
-    libc.src.math.fabsf
-    libc.src.math.fabsf128
-    libc.src.math.fabsl
-    libc.src.math.fadd
-    libc.src.math.faddl
-    libc.src.math.fadd
-    libc.src.math.fdim
-    libc.src.math.fdimf
-    libc.src.math.fdimf128
-    libc.src.math.fdiml
-    libc.src.math.fdiv
-    libc.src.math.fdivl
-    libc.src.math.ffma
-    libc.src.math.ffmal
-    libc.src.math.floor
-    libc.src.math.floorf
-    libc.src.math.floorf128
-    libc.src.math.floorl
-    libc.src.math.fma
-    libc.src.math.fmabf16
-    libc.src.math.fmaf
-    libc.src.math.fmax
-    libc.src.math.fmaxf
-    libc.src.math.fmaxf128
-    libc.src.math.fmaximum
-    libc.src.math.fmaximum_mag
-    libc.src.math.fmaximum_mag_num
-    libc.src.math.fmaximum_mag_numf
-    libc.src.math.fmaximum_mag_numf128
-    libc.src.math.fmaximum_mag_numl
-    libc.src.math.fmaximum_magf
-    libc.src.math.fmaximum_magf128
-    libc.src.math.fmaximum_magl
-    libc.src.math.fmaximum_num
-    libc.src.math.fmaximum_numf
-    libc.src.math.fmaximum_numf128
-    libc.src.math.fmaximum_numl
-    libc.src.math.fmaximumf
-    libc.src.math.fmaximumf128
-    libc.src.math.fmaximuml
-    libc.src.math.fmaxl
-    libc.src.math.fmin
-    libc.src.math.fminf
-    libc.src.math.fminf128
-    libc.src.math.fminimum
-    libc.src.math.fminimum_mag
-    libc.src.math.fminimum_mag_num
-    libc.src.math.fminimum_mag_numf
-    libc.src.math.fminimum_mag_numf128
-    libc.src.math.fminimum_mag_numl
-    libc.src.math.fminimum_magf
-    libc.src.math.fminimum_magf128
-    libc.src.math.fminimum_magl
-    libc.src.math.fminimum_num
-    libc.src.math.fminimum_numf
-    libc.src.math.fminimum_numf128
-    libc.src.math.fminimum_numl
-    libc.src.math.fminimumf
-    libc.src.math.fminimumf128
-    libc.src.math.fminimuml
-    libc.src.math.fminl
-    libc.src.math.fmod
-    libc.src.math.fmodf
-    libc.src.math.fmodl
-    libc.src.math.fmul
-    libc.src.math.fmull
-    libc.src.math.frexp
-    libc.src.math.frexpf
-    libc.src.math.frexpl
-    libc.src.math.fromfp
-    libc.src.math.fromfpf
-    libc.src.math.fromfpl
-    libc.src.math.fromfpx
-    libc.src.math.fromfpxf
-    libc.src.math.fromfpxl
-    libc.src.math.fsqrt
-    libc.src.math.fsqrtl
-    libc.src.math.fsub
-    libc.src.math.fsubl
-    libc.src.math.getpayload
-    libc.src.math.getpayloadf
-    libc.src.math.getpayloadl
-    libc.src.math.hypot
-    libc.src.math.hypotf
-    libc.src.math.ilogb
-    libc.src.math.ilogbf
-    libc.src.math.ilogbl
-    libc.src.math.iscanonical
-    libc.src.math.iscanonicalf
-    libc.src.math.iscanonicalf128
-    libc.src.math.iscanonicall
-    libc.src.math.isnan
-    libc.src.math.isnanf
-    libc.src.math.isnanf128
-    libc.src.math.isnanl
-    libc.src.math.issignaling
-    libc.src.math.issignalingf
-    libc.src.math.issignalingf128
-    libc.src.math.issignalingl
-    libc.src.math.ldexp
-    libc.src.math.ldexpf
-    libc.src.math.ldexpl
-    libc.src.math.lgammaf
-    libc.src.math.llogb
-    libc.src.math.llogbf
-    libc.src.math.llogbl
-    libc.src.math.llrint
-    libc.src.math.llrintf
-    libc.src.math.llrintf128
-    libc.src.math.llrintl
-    libc.src.math.llround
-    libc.src.math.llroundf
-    libc.src.math.llroundf128
-    libc.src.math.llroundl
-    libc.src.math.log
-    libc.src.math.log10
-    libc.src.math.log10f
-    libc.src.math.log1p
-    libc.src.math.log1pf
-    libc.src.math.log2
-    libc.src.math.log2f
-    libc.src.math.logb
-    libc.src.math.logbf
-    libc.src.math.logbl
-    libc.src.math.logf
-    libc.src.math.lrint
-    libc.src.math.lrintf
-    libc.src.math.lrintf128
-    libc.src.math.lrintl
-    libc.src.math.lround
-    libc.src.math.lroundf
-    libc.src.math.lroundf128
-    libc.src.math.lroundl
-    libc.src.math.modf
-    libc.src.math.modff
-    libc.src.math.modfl
-    libc.src.math.nan
-    libc.src.math.nanf
-    libc.src.math.nanl
-    libc.src.math.nearbyint
-    libc.src.math.nearbyintf
-    libc.src.math.nearbyintf128
-    libc.src.math.nearbyintl
-    libc.src.math.nextafter
-    libc.src.math.nextafterf
-    libc.src.math.nextafterl
-    libc.src.math.nextdown
-    libc.src.math.nextdownf
-    libc.src.math.nextdownl
-    libc.src.math.nexttoward
-    libc.src.math.nexttowardf
-    libc.src.math.nexttowardl
-    libc.src.math.nextup
-    libc.src.math.nextupf
-    libc.src.math.nextupl
-    libc.src.math.pow
-    libc.src.math.powf
-    libc.src.math.remainder
-    libc.src.math.remainderf
-    libc.src.math.remainderl
-    libc.src.math.remquo
-    libc.src.math.remquof
-    libc.src.math.remquol
-    libc.src.math.rint
-    libc.src.math.rintf
-    libc.src.math.rintf128
-    libc.src.math.rintl
-    libc.src.math.round
-    libc.src.math.roundeven
-    libc.src.math.roundevenf
-    libc.src.math.roundevenf128
-    libc.src.math.roundevenl
-    libc.src.math.roundf
-    libc.src.math.roundf128
-    libc.src.math.roundl
-    libc.src.math.scalbln
-    libc.src.math.scalblnf
-    libc.src.math.scalblnl
-    libc.src.math.scalbn
-    libc.src.math.scalbnf
-    libc.src.math.scalbnl
-    libc.src.math.setpayload
-    libc.src.math.setpayloadf
-    libc.src.math.setpayloadl
-    libc.src.math.setpayloadsig
-    libc.src.math.setpayloadsigf
-    libc.src.math.setpayloadsigl
-    libc.src.math.sin
-    libc.src.math.sincos
-    libc.src.math.sincosf
-    libc.src.math.sinf
-    libc.src.math.sinhf
-    libc.src.math.sinpif
-    libc.src.math.sqrt
-    libc.src.math.sqrtf
-    libc.src.math.sqrtf128
-    libc.src.math.sqrtl
-    libc.src.math.tan
-    libc.src.math.tanf
-    libc.src.math.tanhf
-    libc.src.math.totalorder
-    libc.src.math.totalorderf
-    libc.src.math.totalorderl
-    libc.src.math.totalordermag
-    libc.src.math.totalordermagf
-    libc.src.math.totalordermagl
-    libc.src.math.trunc
-    libc.src.math.truncf
-    libc.src.math.truncf128
-    libc.src.math.truncl
-    libc.src.math.ufromfp
-    libc.src.math.ufromfpf
-    libc.src.math.ufromfpl
-    libc.src.math.ufromfpx
-    libc.src.math.ufromfpxf
-    libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_CFLOAT16)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # complex.h C23 _Complex _Float16 entrypoints
-    libc.src.complex.crealf16
-    libc.src.complex.cimagf16
-    libc.src.complex.conjf16
-    libc.src.complex.cprojf16
-  )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT16)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C23 _Float16 entrypoints
-    libc.src.math.acosf16
-    libc.src.math.acoshf16
-    libc.src.math.asinf16
-    libc.src.math.asinhf16
-    libc.src.math.atan2f16
-    libc.src.math.canonicalizef16
-    libc.src.math.cbrtf16
-    libc.src.math.ceilf16
-    libc.src.math.copysignf16
-    libc.src.math.cosf16
-    libc.src.math.coshf16
-    libc.src.math.cospif16
-    libc.src.math.exp10f16
-    libc.src.math.exp10m1f16
-    libc.src.math.exp2f16
-    libc.src.math.exp2m1f16
-    libc.src.math.expf16
-    libc.src.math.expm1f16
-    libc.src.math.f16add
-    libc.src.math.f16addf
-    libc.src.math.f16addl
-    libc.src.math.f16div
-    libc.src.math.f16divf
-    libc.src.math.f16divl
-    libc.src.math.f16fma
-    libc.src.math.f16fmaf
-    libc.src.math.f16fmal
-    libc.src.math.f16mul
-    libc.src.math.f16mulf
-    libc.src.math.f16mull
-    libc.src.math.f16sqrt
-    libc.src.math.f16sqrtf
-    libc.src.math.f16sqrtl
-    libc.src.math.f16sub
-    libc.src.math.f16subf
-    libc.src.math.f16subl
-    libc.src.math.fabsf16
-    libc.src.math.fdimf16
-    libc.src.math.floorf16
-    libc.src.math.fmaf16
-    libc.src.math.fmaxf16
-    libc.src.math.fmaximum_mag_numf16
-    libc.src.math.fmaximum_magf16
-    libc.src.math.fmaximum_numf16
-    libc.src.math.fmaximumf16
-    libc.src.math.fminf16
-    libc.src.math.fminimum_mag_numf16
-    libc.src.math.fminimum_magf16
-    libc.src.math.fminimum_numf16
-    libc.src.math.fminimumf16
-    libc.src.math.fmodf16
-    libc.src.math.frexpf16
-    libc.src.math.fromfpf16
-    libc.src.math.fromfpxf16
-    libc.src.math.getpayloadf16
-    libc.src.math.hypotf16
-    libc.src.math.ilogbf16
-    libc.src.math.iscanonicalf16
-    libc.src.math.isnanf16
-    libc.src.math.issignalingf16
-    libc.src.math.ldexpf16
-    libc.src.math.lgammaf16
-    libc.src.math.llogbf16
-    libc.src.math.llrintf16
-    libc.src.math.llroundf16
-    libc.src.math.log10f16
-    libc.src.math.log10p1f16
-    libc.src.math.log2f16
-    libc.src.math.log2p1f16
-    libc.src.math.logbf16
-    libc.src.math.logf16
-    libc.src.math.lrintf16
-    libc.src.math.lroundf16
-    libc.src.math.modff16
-    libc.src.math.nanf16
-    libc.src.math.nearbyintf16
-    libc.src.math.nextafterf16
-    libc.src.math.nextdownf16
-    libc.src.math.nexttowardf16
-    libc.src.math.nextupf16
-    libc.src.math.remainderf16
-    libc.src.math.remquof16
-    libc.src.math.rintf16
-    libc.src.math.roundevenf16
-    libc.src.math.roundf16
-    libc.src.math.scalblnf16
-    libc.src.math.scalbnf16
-    libc.src.math.setpayloadf16
-    libc.src.math.setpayloadsigf16
-    libc.src.math.sinf16
-    libc.src.math.sinhf16
-    libc.src.math.sinpif16
-    libc.src.math.sqrtf16
-    libc.src.math.tanf16
-    libc.src.math.tanhf16
-    libc.src.math.tanpif16
-    libc.src.math.totalorderf16
-    libc.src.math.totalordermagf16
-    libc.src.math.truncf16
-    libc.src.math.ufromfpf16
-    libc.src.math.ufromfpxf16
-  )
-
-  if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-    list(APPEND TARGET_LIBM_ENTRYPOINTS
-      # math.h C23 mixed _Float16 and _Float128 entrypoints
-      libc.src.math.f16addf128
-      libc.src.math.f16divf128
-      libc.src.math.f16fmaf128
-      libc.src.math.f16mulf128
-      libc.src.math.f16sqrtf128
-      libc.src.math.f16subf128
-    )
-  endif()
-endif()
-
-if(LIBC_TYPES_HAS_CFLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # complex.h C23 _Complex _Float128 entrypoints
-    libc.src.complex.crealf128
-    libc.src.complex.cimagf128
-    libc.src.complex.conjf128
-    libc.src.complex.cprojf128
-  )
-endif()
-
-if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C23 _Float128 entrypoints
-    libc.src.math.canonicalizef128
-    libc.src.math.daddf128
-    libc.src.math.ddivf128
-    libc.src.math.dfmaf128
-    libc.src.math.dmulf128
-    libc.src.math.dsqrtf128
-    libc.src.math.dsubf128
-    libc.src.math.faddf128
-    libc.src.math.fdivf128
-    libc.src.math.ffmaf128
-    libc.src.math.fmodf128
-    libc.src.math.fmulf128
-    libc.src.math.frexpf128
-    libc.src.math.fromfpf128
-    libc.src.math.fromfpxf128
-    libc.src.math.fsqrtf128
-    libc.src.math.fsubf128
-    libc.src.math.getpayloadf128
-    libc.src.math.ilogbf128
-    libc.src.math.ldexpf128
-    libc.src.math.llogbf128
-    libc.src.math.logbf128
-    libc.src.math.modff128
-    libc.src.math.nanf128
-    libc.src.math.nextafterf128
-    libc.src.math.nextdownf128
-    libc.src.math.nextupf128
-    libc.src.math.remainderf128
-    libc.src.math.remquof128
-    libc.src.math.scalblnf128
-    libc.src.math.scalbnf128
-    libc.src.math.setpayloadf128
-    libc.src.math.setpayloadsigf128
-    libc.src.math.totalorderf128
-    libc.src.math.totalordermagf128
-    libc.src.math.ufromfpf128
-    libc.src.math.ufromfpxf128
-  )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
-  # bfloat16 entrypoints
-  libc.src.math.atanbf16
-  libc.src.math.acosbf16
-  libc.src.math.asinbf16
-  libc.src.math.bf16add
-  libc.src.math.bf16addf
-  libc.src.math.bf16addl
-  libc.src.math.bf16div
-  libc.src.math.bf16divf
-  libc.src.math.bf16divl
-  libc.src.math.bf16fma
-  libc.src.math.bf16fmaf
-  libc.src.math.bf16fmal
-  libc.src.math.bf16mul
-  libc.src.math.bf16mulf
-  libc.src.math.bf16mull
-  libc.src.math.bf16sub
-  libc.src.math.bf16subf
-  libc.src.math.bf16subl
-  libc.src.math.canonicalizebf16
-  libc.src.math.ceilbf16
-  libc.src.math.copysignbf16
-  libc.src.math.exp2bf16
-  libc.src.math.expbf16
-  libc.src.math.fabsbf16
-  libc.src.math.fdimbf16
-  libc.src.math.floorbf16
-  libc.src.math.fmaxbf16
-  libc.src.math.fmaximumbf16
-  libc.src.math.fmaximum_magbf16
-  libc.src.math.fmaximum_mag_numbf16
-  libc.src.math.fmaximum_numbf16
-  libc.src.math.fminbf16
-  libc.src.math.fminimumbf16
-  libc.src.math.fminimum_magbf16
-  libc.src.math.fminimum_mag_numbf16
-  libc.src.math.fminimum_numbf16
-  libc.src.math.fmodbf16
-  libc.src.math.frexpbf16
-  libc.src.math.fromfpbf16
-  libc.src.math.fromfpxbf16
-  libc.src.math.getpayloadbf16
-  libc.src.math.hypotbf16
-  libc.src.math.ilogbbf16
-  libc.src.math.iscanonicalbf16
-  libc.src.math.issignalingbf16
-  libc.src.math.ldexpbf16
-  libc.src.math.llogbbf16
-  libc.src.math.llrintbf16
-  libc.src.math.llroundbf16
-  libc.src.math.log_bf16
-  libc.src.math.logbbf16
-  libc.src.math.lrintbf16
-  libc.src.math.lroundbf16
-  libc.src.math.modfbf16
-  libc.src.math.nanbf16
-  libc.src.math.nearbyintbf16
-  libc.src.math.nextafterbf16
-  libc.src.math.nextdownbf16
-  libc.src.math.nexttowardbf16
-  libc.src.math.nextupbf16
-  libc.src.math.remainderbf16
-  libc.src.math.remquobf16
-  libc.src.math.rintbf16
-  libc.src.math.roundbf16
-  libc.src.math.roundevenbf16
-  libc.src.math.scalblnbf16
-  libc.src.math.scalbnbf16
-  libc.src.math.setpayloadbf16
-  libc.src.math.setpayloadsigbf16
-  libc.src.math.sqrtbf16
-  libc.src.math.tanbf16
-  libc.src.math.truncbf16
-  libc.src.math.totalorderbf16
-  libc.src.math.totalordermagbf16
-  libc.src.math.ufromfpbf16
-  libc.src.math.ufromfpxbf16
-)
-
-if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C++23 mixed bfloat16 and _Float128 entrypoints
-    libc.src.math.bf16addf128
-    libc.src.math.bf16divf128
-    libc.src.math.bf16fmaf128
-    libc.src.math.bf16mulf128
-    libc.src.math.bf16subf128
-  )
-endif()
-
-if(LIBC_COMPILER_HAS_FIXED_POINT)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # stdfix.h _Fract and _Accum entrypoints
-    libc.src.stdfix.abshk
-    libc.src.stdfix.abshr
-    libc.src.stdfix.absk
-    libc.src.stdfix.abslk
-    libc.src.stdfix.abslr
-    libc.src.stdfix.absr
-    libc.src.stdfix.exphk
-    libc.src.stdfix.expk
-    libc.src.stdfix.roundhk
-    libc.src.stdfix.roundhr
-    libc.src.stdfix.roundk
-    libc.src.stdfix.roundlk
-    libc.src.stdfix.roundlr
-    libc.src.stdfix.roundr
-    libc.src.stdfix.rounduhk
-    libc.src.stdfix.rounduhr
-    libc.src.stdfix.rounduk
-    libc.src.stdfix.roundulk
-    libc.src.stdfix.roundulr
-    libc.src.stdfix.roundur
-    libc.src.stdfix.sqrtuhk
-    libc.src.stdfix.sqrtuhr
-    libc.src.stdfix.sqrtuk
-    libc.src.stdfix.sqrtur
-    # libc.src.stdfix.sqrtulk
-    libc.src.stdfix.sqrtulr
-    libc.src.stdfix.uhksqrtus
-    libc.src.stdfix.uksqrtui
-    libc.src.stdfix.hrbits
-    libc.src.stdfix.uhrbits
-    libc.src.stdfix.rbits
-    libc.src.stdfix.urbits
-    libc.src.stdfix.lrbits
-    libc.src.stdfix.ulrbits
-    libc.src.stdfix.hkbits
-    libc.src.stdfix.uhkbits
-    libc.src.stdfix.kbits
-    libc.src.stdfix.ukbits
-    libc.src.stdfix.lkbits
-    libc.src.stdfix.ulkbits
-    libc.src.stdfix.bitshr
-    libc.src.stdfix.bitsr
-    libc.src.stdfix.bitslr
-    libc.src.stdfix.bitshk
-    libc.src.stdfix.bitsk
-    libc.src.stdfix.bitslk
-    libc.src.stdfix.bitsuhr
-    libc.src.stdfix.bitsur
-    libc.src.stdfix.bitsulr
-    libc.src.stdfix.bitsuhk
-    libc.src.stdfix.bitsuk
-    libc.src.stdfix.bitsulk
-    libc.src.stdfix.countlshr
-    libc.src.stdfix.countlsr
-    libc.src.stdfix.countlslr
-    libc.src.stdfix.countlshk
-    libc.src.stdfix.countlsk
-    libc.src.stdfix.countlslk
-    libc.src.stdfix.countlsuhr
-    libc.src.stdfix.countlsur
-    libc.src.stdfix.countlsulr
-    libc.src.stdfix.countlsuhk
-    libc.src.stdfix.countlsuk
-    libc.src.stdfix.countlsulk
-  )
-endif()
-
-if(LLVM_LIBC_ENABLE_EXPERIMENTAL_ENTRYPOINTS)
-  list(APPEND TARGET_LIBC_ENTRYPOINTS
-    # libintl.h entrypoints
-    libc.src.libintl.bind_textdomain_codeset
-    libc.src.libintl.bindtextdomain
-    libc.src.libintl.dcgettext
-    libc.src.libintl.dcgettext_l
-    libc.src.libintl.dcngettext
-    libc.src.libintl.dcngettext_l
-    libc.src.libintl.dgettext
-    libc.src.libintl.dgettext_l
-    libc.src.libintl.dngettext
-    libc.src.libintl.dngettext_l
-    libc.src.libintl.gettext
-    libc.src.libintl.gettext_l
-    libc.src.libintl.ngettext
-    libc.src.libintl.ngettext_l
-    libc.src.libintl.textdomain
-
-    # regex.h entrypoints
-    libc.src.regex.regcomp
-    libc.src.regex.regexec
-    libc.src.regex.regerror
-    libc.src.regex.regfree
-  )
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
-  ${TARGET_LIBC_ENTRYPOINTS}
-  ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+    # assert.h entrypoints
+    libc.src.assert.__assert_fail
+
+    # compiler entrypoints (no corresponding header)
+    libc.src.compiler.__stack_chk_fail
+
+    # ctype.h entrypoints
+    libc.src.ctype.isalnum
+    libc.src.ctype.isalpha
+    libc.src.ctype.isascii
+    libc.src.ctype.isblank
+    libc.src.ctype.iscntrl
+    libc.src.ctype.isdigit
+    libc.src.ctype.isgraph
+    libc.src.ctype.islower
+    libc.src.ctype.isprint
+    libc.src.ctype.ispunct
+    libc.src.ctype.isspace
+    libc.src.ctype.isupper
+    libc.src.ctype.isxdigit
+    libc.src.ctype.toascii
+    libc.src.ctype.tolower
+    libc.src.ctype.toupper
+
+    # ctype.h entrypoints
+    libc.src.ctype.isalnum_l
+    libc.src.ctype.isalpha_l
+    libc.src.ctype.isblank_l
+    libc.src.ctype.iscntrl_l
+    libc.src.ctype.isdigit_l
+    libc.src.ctype.isgraph_l
+    libc.src.ctype.islower_l
+    libc.src.ctype.isprint_l
+    libc.src.ctype.ispunct_l
+    libc.src.ctype.isspace_l
+    libc.src.ctype.isupper_l
+    libc.src.ctype.isxdigit_l
+    libc.src.ctype.tolower_l
+    libc.src.ctype.toupper_l
+
+    # errno.h entrypoints
+    libc.src.errno.errno
+
+    # locale.h entrypoints
+    libc.src.locale.localeconv
+    libc.src.locale.duplocale
+    libc.src.locale.freelocale
+    libc.src.locale.localeconv
+    libc.src.locale.newlocale
+    libc.src.locale.setlocale
+    libc.src.locale.uselocale
+
+    # setjmp.h entrypoints
+    libc.src.setjmp.longjmp
+    libc.src.setjmp.setjmp
+
+    # string.h entrypoints
+    libc.src.string.memccpy
+    libc.src.string.memchr
+    libc.src.string.memcmp
+    libc.src.string.memcpy
+    libc.src.string.memmem
+    libc.src.string.memmove
+    libc.src.string.mempcpy
+    libc.src.string.memrchr
+    libc.src.string.memset
+    libc.src.string.memset_explicit
+    libc.src.string.stpcpy
+    libc.src.string.stpncpy
+    libc.src.string.strcasestr
+    libc.src.string.strcat
+    libc.src.string.strchr
+    libc.src.string.strchrnul
+    libc.src.string.strcmp
+    libc.src.string.strcoll
+    libc.src.string.strcpy
+    libc.src.string.strcspn
+    libc.src.string.strdup
+    libc.src.string.strerror
+    libc.src.string.strerror_r
+    libc.src.string.strlcat
+    libc.src.string.strlcpy
+    libc.src.string.strlen
+    libc.src.string.strncat
+    libc.src.string.strncmp
+    libc.src.string.strncpy
+    libc.src.string.strndup
+    libc.src.string.strnlen
+    libc.src.string.strnlen_s
+    libc.src.string.strpbrk
+    libc.src.string.strrchr
+    libc.src.string.strsep
+    libc.src.string.strspn
+    libc.src.string.strstr
+    libc.src.string.strtok
+    libc.src.string.strtok_r
+    libc.src.string.strxfrm
+
+    # string.h entrypoints
+    libc.src.string.strcoll_l
+    libc.src.string.strxfrm_l
+
+    # strings.h entrypoints
+    libc.src.strings.bcmp
+    libc.src.strings.bcopy
+    libc.src.strings.bzero
+    libc.src.strings.ffs
+    libc.src.strings.ffsl
+    libc.src.strings.ffsll
+    libc.src.strings.index
+    libc.src.strings.rindex
+    libc.src.strings.strcasecmp
+    libc.src.strings.strncasecmp
+
+    # strings.h entrypoints
+    libc.src.strings.strcasecmp_l
+    libc.src.strings.strncasecmp_l
+
+    # inttypes.h entrypoints
+    libc.src.inttypes.imaxabs
+    libc.src.inttypes.imaxdiv
+    libc.src.inttypes.strtoimax
+    libc.src.inttypes.strtoumax
+
+    # stdio.h entrypoints
+    libc.src.stdio.asprintf
+    libc.src.stdio.feof
+    libc.src.stdio.ferror
+    libc.src.stdio.fflush
+    libc.src.stdio.fclose
+    libc.src.stdio.fgetc
+    libc.src.stdio.fgets
+    libc.src.stdio.fprintf
+    libc.src.stdio.fputc
+    libc.src.stdio.fputs
+    libc.src.stdio.fread
+    libc.src.stdio.fscanf
+    libc.src.stdio.fwrite
+    libc.src.stdio.fseek
+    libc.src.stdio.fseeko
+    libc.src.stdio.ftell
+    libc.src.stdio.ftello
+    libc.src.stdio.getc
+    libc.src.stdio.getchar
+    libc.src.stdio.printf
+    libc.src.stdio.putc
+    libc.src.stdio.putchar
+    libc.src.stdio.puts
+    libc.src.stdio.remove
+    libc.src.stdio.scanf
+    libc.src.stdio.snprintf
+    libc.src.stdio.sprintf
+    libc.src.stdio.sscanf
+    libc.src.stdio.stderr
+    libc.src.stdio.stdin
+    libc.src.stdio.stdout
+    libc.src.stdio.vasprintf
+    libc.src.stdio.vfprintf
+    libc.src.stdio.vfscanf
+    libc.src.stdio.vprintf
+    libc.src.stdio.vscanf
+    libc.src.stdio.vsnprintf
+    libc.src.stdio.vsprintf
+    libc.src.stdio.vsscanf
+    libc.src.stdio.ungetc
+
+    # stdbit.h entrypoints
+    libc.src.stdbit.stdc_bit_ceil_uc
+    libc.src.stdbit.stdc_bit_ceil_ui
+    libc.src.stdbit.stdc_bit_ceil_ul
+    libc.src.stdbit.stdc_bit_ceil_ull
+    libc.src.stdbit.stdc_bit_ceil_us
+    libc.src.stdbit.stdc_bit_floor_uc
+    libc.src.stdbit.stdc_bit_floor_ui
+    libc.src.stdbit.stdc_bit_floor_ul
+    libc.src.stdbit.stdc_bit_floor_ull
+    libc.src.stdbit.stdc_bit_floor_us
+    libc.src.stdbit.stdc_bit_width_uc
+    libc.src.stdbit.stdc_bit_width_ui
+    libc.src.stdbit.stdc_bit_width_ul
+    libc.src.stdbit.stdc_bit_width_ull
+    libc.src.stdbit.stdc_bit_width_us
+    libc.src.stdbit.stdc_count_ones_uc
+    libc.src.stdbit.stdc_count_ones_ui
+    libc.src.stdbit.stdc_count_ones_ul
+    libc.src.stdbit.stdc_count_ones_ull
+    libc.src.stdbit.stdc_count_ones_us
+    libc.src.stdbit.stdc_count_zeros_uc
+    libc.src.stdbit.stdc_count_zeros_ui
+    libc.src.stdbit.stdc_count_zeros_ul
+    libc.src.stdbit.stdc_count_zeros_ull
+    libc.src.stdbit.stdc_count_zeros_us
+    libc.src.stdbit.stdc_first_leading_one_uc
+    libc.src.stdbit.stdc_first_leading_one_ui
+    libc.src.stdbit.stdc_first_leading_one_ul
+    libc.src.stdbit.stdc_first_leading_one_ull
+    libc.src.stdbit.stdc_first_leading_one_us
+    libc.src.stdbit.stdc_first_leading_zero_uc
+    libc.src.stdbit.stdc_first_leading_zero_ui
+    libc.src.stdbit.stdc_first_leading_zero_ul
+    libc.src.stdbit.stdc_first_leading_zero_ull
+    libc.src.stdbit.stdc_first_leading_zero_us
+    libc.src.stdbit.stdc_first_trailing_one_uc
+    libc.src.stdbit.stdc_first_trailing_one_ui
+    libc.src.stdbit.stdc_first_trailing_one_ul
+    libc.src.stdbit.stdc_first_trailing_one_ull
+    libc.src.stdbit.stdc_first_trailing_one_us
+    libc.src.stdbit.stdc_first_trailing_zero_uc
+    libc.src.stdbit.stdc_first_trailing_zero_ui
+    libc.src.stdbit.stdc_first_trailing_zero_ul
+    libc.src.stdbit.stdc_first_trailing_zero_ull
+    libc.src.stdbit.stdc_first_trailing_zero_us
+    libc.src.stdbit.stdc_has_single_bit_uc
+    libc.src.stdbit.stdc_has_single_bit_ui
+    libc.src.stdbit.stdc_has_single_bit_ul
+    libc.src.stdbit.stdc_has_single_bit_ull
+    libc.src.stdbit.stdc_has_single_bit_us
+    libc.src.stdbit.stdc_leading_ones_uc
+    libc.src.stdbit.stdc_leading_ones_ui
+    libc.src.stdbit.stdc_leading_ones_ul
+    libc.src.stdbit.stdc_leading_ones_ull
+    libc.src.stdbit.stdc_leading_ones_us
+    libc.src.stdbit.stdc_leading_zeros_uc
+    libc.src.stdbit.stdc_leading_zeros_ui
+    libc.src.stdbit.stdc_leading_zeros_ul
+    libc.src.stdbit.stdc_leading_zeros_ull
+    libc.src.stdbit.stdc_leading_zeros_us
+    libc.src.stdbit.stdc_trailing_ones_uc
+    libc.src.stdbit.stdc_trailing_ones_ui
+    libc.src.stdbit.stdc_trailing_ones_ul
+    libc.src.stdbit.stdc_trailing_ones_ull
+    libc.src.stdbit.stdc_trailing_ones_us
+    libc.src.stdbit.stdc_trailing_zeros_uc
+    libc.src.stdbit.stdc_trailing_zeros_ui
+    libc.src.stdbit.stdc_trailing_zeros_ul
+    libc.src.stdbit.stdc_trailing_zeros_ull
+    libc.src.stdbit.stdc_trailing_zeros_us
+
+    # stdlib.h entrypoints
+    libc.src.stdlib._Exit
+    libc.src.stdlib.a64l
+    libc.src.stdlib.abort
+    libc.src.stdlib.abs
+    libc.src.stdlib.aligned_alloc
+    libc.src.stdlib.atexit
+    libc.src.stdlib.atof
+    libc.src.stdlib.atoi
+    libc.src.stdlib.atol
+    libc.src.stdlib.atoll
+    libc.src.stdlib.bsearch
+    libc.src.stdlib.calloc
+    libc.src.stdlib.div
+    libc.src.stdlib.exit
+    libc.src.stdlib.free
+    libc.src.stdlib.l64a
+    libc.src.stdlib.labs
+    libc.src.stdlib.ldiv
+    libc.src.stdlib.llabs
+    libc.src.stdlib.lldiv
+    libc.src.stdlib.malloc
+    libc.src.stdlib.malloc_usable_size
+    libc.src.stdlib.memalignment
+    libc.src.stdlib.qsort
+    libc.src.stdlib.qsort_r
+    libc.src.stdlib.rand
+    libc.src.stdlib.realloc
+    libc.src.stdlib.srand
+    # libc.src.stdlib.strfromd
+    # libc.src.stdlib.strfromf
+    # libc.src.stdlib.strfroml
+    libc.src.stdlib.strtod
+    libc.src.stdlib.strtof
+    libc.src.stdlib.strtol
+    libc.src.stdlib.strtold
+    libc.src.stdlib.strtoll
+    libc.src.stdlib.strtoul
+    libc.src.stdlib.strtoull
+
+    # stdlib.h entrypoints
+    libc.src.stdlib.strtod_l
+    libc.src.stdlib.strtof_l
+    libc.src.stdlib.strtol_l
+    libc.src.stdlib.strtold_l
+    libc.src.stdlib.strtoll_l
+    libc.src.stdlib.strtoul_l
+    libc.src.stdlib.strtoull_l
+
+    # time.h entrypoints
+    libc.src.time.asctime
+    libc.src.time.asctime_r
+    libc.src.time.clock
+    libc.src.time.ctime
+    libc.src.time.ctime_r
+    libc.src.time.difftime
+    libc.src.time.gmtime
+    libc.src.time.gmtime_r
+    libc.src.time.localtime
+    libc.src.time.localtime_r
+    libc.src.time.mktime
+    libc.src.time.strftime
+    libc.src.time.strftime_l
+    libc.src.time.timespec_get
+
+    # wchar.h entrypoints
+    libc.src.wchar.btowc
+    libc.src.wchar.wcslen
+    libc.src.wchar.wctob
+
+    # wctype.h entrypoints
+    libc.src.wctype.iswpunct
+
+    # internal entrypoints
+    libc.startup.baremetal.init
+    libc.startup.baremetal.fini
+)
+
+set(TARGET_LIBM_ENTRYPOINTS
+    # complex.h entrypoints
+    libc.src.complex.cabs
+    libc.src.complex.cabsf
+    libc.src.complex.carg
+    libc.src.complex.cargf
+    libc.src.complex.creal
+    libc.src.complex.crealf
+    libc.src.complex.creall
+    libc.src.complex.cimag
+    libc.src.complex.cimagf
+    libc.src.complex.cimagl
+    libc.src.complex.conj
+    libc.src.complex.conjf
+    libc.src.complex.conjl
+    libc.src.complex.cproj
+    libc.src.complex.cprojf
+    libc.src.complex.cprojl
+
+    # fenv.h entrypoints
+    libc.src.fenv.feclearexcept
+    libc.src.fenv.fedisableexcept
+    libc.src.fenv.feenableexcept
+    libc.src.fenv.fegetenv
+    libc.src.fenv.fegetexcept
+    libc.src.fenv.fegetexceptflag
+    libc.src.fenv.fegetround
+    libc.src.fenv.feholdexcept
+    libc.src.fenv.feraiseexcept
+    libc.src.fenv.fesetenv
+    libc.src.fenv.fesetexcept
+    libc.src.fenv.fesetexceptflag
+    libc.src.fenv.fesetround
+    libc.src.fenv.fetestexcept
+    libc.src.fenv.fetestexceptflag
+    libc.src.fenv.feupdateenv
+
+    # math.h entrypoints
+    libc.src.math.acos
+    libc.src.math.acosf
+    libc.src.math.acoshf
+    libc.src.math.acospif
+    libc.src.math.asin
+    libc.src.math.asinf
+    libc.src.math.asinhf
+    libc.src.math.asinpi
+    libc.src.math.asinpif
+    libc.src.math.atan2
+    libc.src.math.atan2f
+    libc.src.math.atan2f128
+    # libc.src.math.atan2l
+    libc.src.math.atan
+    libc.src.math.atanf
+    libc.src.math.atanhf
+    libc.src.math.canonicalize
+    libc.src.math.canonicalizef
+    libc.src.math.canonicalizel
+    libc.src.math.cbrt
+    libc.src.math.cbrtf
+    libc.src.math.cbrtbf16
+    libc.src.math.ceil
+    libc.src.math.ceilf
+    libc.src.math.ceilf128
+    libc.src.math.ceill
+    libc.src.math.copysign
+    libc.src.math.copysignf
+    libc.src.math.copysignf128
+    libc.src.math.copysignf80
+    libc.src.math.copysignl
+    libc.src.math.cos
+    libc.src.math.cosf
+    libc.src.math.coshf
+    libc.src.math.cospif
+    libc.src.math.dfmal
+    libc.src.math.dmull
+    libc.src.math.dsqrtl
+    libc.src.math.daddl
+    libc.src.math.ddivl
+    libc.src.math.dsubl
+    libc.src.math.erff
+    libc.src.math.exp
+    libc.src.math.exp10
+    libc.src.math.exp10f
+    libc.src.math.exp10m1f
+    libc.src.math.exp2
+    libc.src.math.exp2f
+    libc.src.math.exp2m1f
+    libc.src.math.expf
+    libc.src.math.expm1
+    libc.src.math.expm1f
+    libc.src.math.fabs
+    libc.src.math.fabsf
+    libc.src.math.fabsf128
+    libc.src.math.fabsf80
+    libc.src.math.fabsl
+    libc.src.math.fadd
+    libc.src.math.faddl
+    libc.src.math.fadd
+    libc.src.math.fdim
+    libc.src.math.fdimf
+    libc.src.math.fdimf128
+    libc.src.math.fdiml
+    libc.src.math.fdiv
+    libc.src.math.fdivl
+    libc.src.math.ffma
+    libc.src.math.ffmal
+    libc.src.math.floor
+    libc.src.math.floorf
+    libc.src.math.floorf128
+    libc.src.math.floorl
+    libc.src.math.fma
+    libc.src.math.fmabf16
+    libc.src.math.fmaf
+    libc.src.math.fmax
+    libc.src.math.fmaxf
+    libc.src.math.fmaxf128
+    libc.src.math.fmaximum
+    libc.src.math.fmaximum_mag
+    libc.src.math.fmaximum_mag_num
+    libc.src.math.fmaximum_mag_numf
+    libc.src.math.fmaximum_mag_numf128
+    libc.src.math.fmaximum_mag_numl
+    libc.src.math.fmaximum_magf
+    libc.src.math.fmaximum_magf128
+    libc.src.math.fmaximum_magl
+    libc.src.math.fmaximum_num
+    libc.src.math.fmaximum_numf
+    libc.src.math.fmaximum_numf128
+    libc.src.math.fmaximum_numl
+    libc.src.math.fmaximumf
+    libc.src.math.fmaximumf128
+    libc.src.math.fmaximuml
+    libc.src.math.fmaxl
+    libc.src.math.fmin
+    libc.src.math.fminf
+    libc.src.math.fminf128
+    libc.src.math.fminimum
+    libc.src.math.fminimum_mag
+    libc.src.math.fminimum_mag_num
+    libc.src.math.fminimum_mag_numf
+    libc.src.math.fminimum_mag_numf128
+    libc.src.math.fminimum_mag_numl
+    libc.src.math.fminimum_magf
+    libc.src.math.fminimum_magf128
+    libc.src.math.fminimum_magl
+    libc.src.math.fminimum_num
+    libc.src.math.fminimum_numf
+    libc.src.math.fminimum_numf128
+    libc.src.math.fminimum_numl
+    libc.src.math.fminimumf
+    libc.src.math.fminimumf128
+    libc.src.math.fminimuml
+    libc.src.math.fminl
+    libc.src.math.fmod
+    libc.src.math.fmodf
+    libc.src.math.fmodl
+    libc.src.math.fmul
+    libc.src.math.fmull
+    libc.src.math.frexp
+    libc.src.math.frexpf
+    libc.src.math.frexpl
+    libc.src.math.fromfp
+    libc.src.math.fromfpf
+    libc.src.math.fromfpl
+    libc.src.math.fromfpx
+    libc.src.math.fromfpxf
+    libc.src.math.fromfpxl
+    libc.src.math.fsqrt
+    libc.src.math.fsqrtl
+    libc.src.math.fsub
+    libc.src.math.fsubl
+    libc.src.math.getpayload
+    libc.src.math.getpayloadf
+    libc.src.math.getpayloadl
+    libc.src.math.hypot
+    libc.src.math.hypotf
+    libc.src.math.ilogb
+    libc.src.math.ilogbf
+    libc.src.math.ilogbl
+    libc.src.math.iscanonical
+    libc.src.math.iscanonicalf
+    libc.src.math.iscanonicalf128
+    libc.src.math.iscanonicall
+    libc.src.math.isnan
+    libc.src.math.isnanf
+    libc.src.math.isnanf128
+    libc.src.math.isnanl
+    libc.src.math.issignaling
+    libc.src.math.issignalingf
+    libc.src.math.issignalingf128
+    libc.src.math.issignalingl
+    libc.src.math.ldexp
+    libc.src.math.ldexpf
+    libc.src.math.ldexpl
+    libc.src.math.lgammaf
+    libc.src.math.llogb
+    libc.src.math.llogbf
+    libc.src.math.llogbl
+    libc.src.math.llrint
+    libc.src.math.llrintf
+    libc.src.math.llrintf128
+    libc.src.math.llrintl
+    libc.src.math.llround
+    libc.src.math.llroundf
+    libc.src.math.llroundf128
+    libc.src.math.llroundl
+    libc.src.math.log
+    libc.src.math.log10
+    libc.src.math.log10f
+    libc.src.math.log1p
+    libc.src.math.log1pf
+    libc.src.math.log2
+    libc.src.math.log2f
+    libc.src.math.logb
+    libc.src.math.logbf
+    libc.src.math.logbl
+    libc.src.math.logf
+    libc.src.math.lrint
+    libc.src.math.lrintf
+    libc.src.math.lrintf128
+    libc.src.math.lrintl
+    libc.src.math.lround
+    libc.src.math.lroundf
+    libc.src.math.lroundf128
+    libc.src.math.lroundl
+    libc.src.math.modf
+    libc.src.math.modff
+    libc.src.math.modfl
+    libc.src.math.nan
+    libc.src.math.nanf
+    libc.src.math.nanl
+    libc.src.math.nearbyint
+    libc.src.math.nearbyintf
+    libc.src.math.nearbyintf128
+    libc.src.math.nearbyintl
+    libc.src.math.nextafter
+    libc.src.math.nextafterf
+    libc.src.math.nextafterl
+    libc.src.math.nextdown
+    libc.src.math.nextdownf
+    libc.src.math.nextdownl
+    libc.src.math.nexttoward
+    libc.src.math.nexttowardf
+    libc.src.math.nexttowardl
+    libc.src.math.nextup
+    libc.src.math.nextupf
+    libc.src.math.nextupl
+    libc.src.math.pow
+    libc.src.math.powf
+    libc.src.math.remainder
+    libc.src.math.remainderf
+    libc.src.math.remainderl
+    libc.src.math.remquo
+    libc.src.math.remquof
+    libc.src.math.remquol
+    libc.src.math.rint
+    libc.src.math.rintf
+    libc.src.math.rintf128
+    libc.src.math.rintl
+    libc.src.math.round
+    libc.src.math.roundeven
+    libc.src.math.roundevenf
+    libc.src.math.roundevenf128
+    libc.src.math.roundevenl
+    libc.src.math.roundf
+    libc.src.math.roundf128
+    libc.src.math.roundl
+    libc.src.math.scalbln
+    libc.src.math.scalblnf
+    libc.src.math.scalblnl
+    libc.src.math.scalbn
+    libc.src.math.scalbnf
+    libc.src.math.scalbnl
+    libc.src.math.setpayload
+    libc.src.math.setpayloadf
+    libc.src.math.setpayloadl
+    libc.src.math.setpayloadsig
+    libc.src.math.setpayloadsigf
+    libc.src.math.setpayloadsigl
+    libc.src.math.sin
+    libc.src.math.sincos
+    libc.src.math.sincosf
+    libc.src.math.sinf
+    libc.src.math.sinhf
+    libc.src.math.sinpif
+    libc.src.math.sqrt
+    libc.src.math.sqrtf
+    libc.src.math.sqrtf128
+    libc.src.math.sqrtl
+    libc.src.math.tan
+    libc.src.math.tanf
+    libc.src.math.tanhf
+    libc.src.math.totalorder
+    libc.src.math.totalorderf
+    libc.src.math.totalorderl
+    libc.src.math.totalordermag
+    libc.src.math.totalordermagf
+    libc.src.math.totalordermagl
+    libc.src.math.trunc
+    libc.src.math.truncf
+    libc.src.math.truncf128
+    libc.src.math.truncl
+    libc.src.math.ufromfp
+    libc.src.math.ufromfpf
+    libc.src.math.ufromfpl
+    libc.src.math.ufromfpx
+    libc.src.math.ufromfpxf
+    libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_CFLOAT16)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # complex.h C23 _Complex _Float16 entrypoints
+    libc.src.complex.crealf16
+    libc.src.complex.cimagf16
+    libc.src.complex.conjf16
+    libc.src.complex.cprojf16
+  )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT16)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C23 _Float16 entrypoints
+    libc.src.math.acosf16
+    libc.src.math.acoshf16
+    libc.src.math.asinf16
+    libc.src.math.asinhf16
+    libc.src.math.atan2f16
+    libc.src.math.canonicalizef16
+    libc.src.math.cbrtf16
+    libc.src.math.ceilf16
+    libc.src.math.copysignf16
+    libc.src.math.cosf16
+    libc.src.math.coshf16
+    libc.src.math.cospif16
+    libc.src.math.exp10f16
+    libc.src.math.exp10m1f16
+    libc.src.math.exp2f16
+    libc.src.math.exp2m1f16
+    libc.src.math.expf16
+    libc.src.math.expm1f16
+    libc.src.math.f16add
+    libc.src.math.f16addf
+    libc.src.math.f16addl
+    libc.src.math.f16div
+    libc.src.math.f16divf
+    libc.src.math.f16divl
+    libc.src.math.f16fma
+    libc.src.math.f16fmaf
+    libc.src.math.f16fmal
+    libc.src.math.f16mul
+    libc.src.math.f16mulf
+    libc.src.math.f16mull
+    libc.src.math.f16sqrt
+    libc.src.math.f16sqrtf
+    libc.src.math.f16sqrtl
+    libc.src.math.f16sub
+    libc.src.math.f16subf
+    libc.src.math.f16subl
+    libc.src.math.fabsf16
+    libc.src.math.fdimf16
+    libc.src.math.floorf16
+    libc.src.math.fmaf16
+    libc.src.math.fmaxf16
+    libc.src.math.fmaximum_mag_numf16
+    libc.src.math.fmaximum_magf16
+    libc.src.math.fmaximum_numf16
+    libc.src.math.fmaximumf16
+    libc.src.math.fminf16
+    libc.src.math.fminimum_mag_numf16
+    libc.src.math.fminimum_magf16
+    libc.src.math.fminimum_numf16
+    libc.src.math.fminimumf16
+    libc.src.math.fmodf16
+    libc.src.math.frexpf16
+    libc.src.math.fromfpf16
+    libc.src.math.fromfpxf16
+    libc.src.math.getpayloadf16
+    libc.src.math.hypotf16
+    libc.src.math.ilogbf16
+    libc.src.math.iscanonicalf16
+    libc.src.math.isnanf16
+    libc.src.math.issignalingf16
+    libc.src.math.ldexpf16
+    libc.src.math.lgammaf16
+    libc.src.math.llogbf16
+    libc.src.math.llrintf16
+    libc.src.math.llroundf16
+    libc.src.math.log10f16
+    libc.src.math.log10p1f16
+    libc.src.math.log2f16
+    libc.src.math.log2p1f16
+    libc.src.math.logbf16
+    libc.src.math.logf16
+    libc.src.math.lrintf16
+    libc.src.math.lroundf16
+    libc.src.math.modff16
+    libc.src.math.nanf16
+    libc.src.math.nearbyintf16
+    libc.src.math.nextafterf16
+    libc.src.math.nextdownf16
+    libc.src.math.nexttowardf16
+    libc.src.math.nextupf16
+    libc.src.math.remainderf16
+    libc.src.math.remquof16
+    libc.src.math.rintf16
+    libc.src.math.roundevenf16
+    libc.src.math.roundf16
+    libc.src.math.scalblnf16
+    libc.src.math.scalbnf16
+    libc.src.math.setpayloadf16
+    libc.src.math.setpayloadsigf16
+    libc.src.math.sinf16
+    libc.src.math.sinhf16
+    libc.src.math.sinpif16
+    libc.src.math.sqrtf16
+    libc.src.math.tanf16
+    libc.src.math.tanhf16
+    libc.src.math.tanpif16
+    libc.src.math.totalorderf16
+    libc.src.math.totalordermagf16
+    libc.src.math.truncf16
+    libc.src.math.ufromfpf16
+    libc.src.math.ufromfpxf16
+  )
+
+  if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+    list(APPEND TARGET_LIBM_ENTRYPOINTS
+      # math.h C23 mixed _Float16 and _Float128 entrypoints
+      libc.src.math.f16addf128
+      libc.src.math.f16divf128
+      libc.src.math.f16fmaf128
+      libc.src.math.f16mulf128
+      libc.src.math.f16sqrtf128
+      libc.src.math.f16subf128
+    )
+  endif()
+endif()
+
+if(LIBC_TYPES_HAS_CFLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # complex.h C23 _Complex _Float128 entrypoints
+    libc.src.complex.crealf128
+    libc.src.complex.cimagf128
+    libc.src.complex.conjf128
+    libc.src.complex.cprojf128
+  )
+endif()
+
+if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C23 _Float128 entrypoints
+    libc.src.math.canonicalizef128
+    libc.src.math.daddf128
+    libc.src.math.ddivf128
+    libc.src.math.dfmaf128
+    libc.src.math.dmulf128
+    libc.src.math.dsqrtf128
+    libc.src.math.dsubf128
+    libc.src.math.faddf128
+    libc.src.math.fdivf128
+    libc.src.math.ffmaf128
+    libc.src.math.fmodf128
+    libc.src.math.fmulf128
+    libc.src.math.frexpf128
+    libc.src.math.fromfpf128
+    libc.src.math.fromfpxf128
+    libc.src.math.fsqrtf128
+    libc.src.math.fsubf128
+    libc.src.math.getpayloadf128
+    libc.src.math.ilogbf128
+    libc.src.math.ldexpf128
+    libc.src.math.llogbf128
+    libc.src.math.logbf128
+    libc.src.math.modff128
+    libc.src.math.nanf128
+    libc.src.math.nextafterf128
+    libc.src.math.nextdownf128
+    libc.src.math.nextupf128
+    libc.src.math.remainderf128
+    libc.src.math.remquof128
+    libc.src.math.scalblnf128
+    libc.src.math.scalbnf128
+    libc.src.math.setpayloadf128
+    libc.src.math.setpayloadsigf128
+    libc.src.math.totalorderf128
+    libc.src.math.totalordermagf128
+    libc.src.math.ufromfpf128
+    libc.src.math.ufromfpxf128
+  )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+  # bfloat16 entrypoints
+  libc.src.math.atanbf16
+  libc.src.math.acosbf16
+  libc.src.math.asinbf16
+  libc.src.math.bf16add
+  libc.src.math.bf16addf
+  libc.src.math.bf16addl
+  libc.src.math.bf16div
+  libc.src.math.bf16divf
+  libc.src.math.bf16divl
+  libc.src.math.bf16fma
+  libc.src.math.bf16fmaf
+  libc.src.math.bf16fmal
+  libc.src.math.bf16mul
+  libc.src.math.bf16mulf
+  libc.src.math.bf16mull
+  libc.src.math.bf16sub
+  libc.src.math.bf16subf
+  libc.src.math.bf16subl
+  libc.src.math.canonicalizebf16
+  libc.src.math.ceilbf16
+  libc.src.math.copysignbf16
+  libc.src.math.exp2bf16
+  libc.src.math.expbf16
+  libc.src.math.fabsbf16
+  libc.src.math.fdimbf16
+  libc.src.math.floorbf16
+  libc.src.math.fmaxbf16
+  libc.src.math.fmaximumbf16
+  libc.src.math.fmaximum_magbf16
+  libc.src.math.fmaximum_mag_numbf16
+  libc.src.math.fmaximum_numbf16
+  libc.src.math.fminbf16
+  libc.src.math.fminimumbf16
+  libc.src.math.fminimum_magbf16
+  libc.src.math.fminimum_mag_numbf16
+  libc.src.math.fminimum_numbf16
+  libc.src.math.fmodbf16
+  libc.src.math.frexpbf16
+  libc.src.math.fromfpbf16
+  libc.src.math.fromfpxbf16
+  libc.src.math.getpayloadbf16
+  libc.src.math.hypotbf16
+  libc.src.math.ilogbbf16
+  libc.src.math.iscanonicalbf16
+  libc.src.math.issignalingbf16
+  libc.src.math.ldexpbf16
+  libc.src.math.llogbbf16
+  libc.src.math.llrintbf16
+  libc.src.math.llroundbf16
+  libc.src.math.log_bf16
+  libc.src.math.logbbf16
+  libc.src.math.lrintbf16
+  libc.src.math.lroundbf16
+  libc.src.math.modfbf16
+  libc.src.math.nanbf16
+  libc.src.math.nearbyintbf16
+  libc.src.math.nextafterbf16
+  libc.src.math.nextdownbf16
+  libc.src.math.nexttowardbf16
+  libc.src.math.nextupbf16
+  libc.src.math.remainderbf16
+  libc.src.math.remquobf16
+  libc.src.math.rintbf16
+  libc.src.math.roundbf16
+  libc.src.math.roundevenbf16
+  libc.src.math.scalblnbf16
+  libc.src.math.scalbnbf16
+  libc.src.math.setpayloadbf16
+  libc.src.math.setpayloadsigbf16
+  libc.src.math.sqrtbf16
+  libc.src.math.tanbf16
+  libc.src.math.truncbf16
+  libc.src.math.totalorderbf16
+  libc.src.math.totalordermagbf16
+  libc.src.math.ufromfpbf16
+  libc.src.math.ufromfpxbf16
+)
+
+if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C++23 mixed bfloat16 and _Float128 entrypoints
+    libc.src.math.bf16addf128
+    libc.src.math.bf16divf128
+    libc.src.math.bf16fmaf128
+    libc.src.math.bf16mulf128
+    libc.src.math.bf16subf128
+  )
+endif()
+
+if(LIBC_COMPILER_HAS_FIXED_POINT)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # stdfix.h _Fract and _Accum entrypoints
+    libc.src.stdfix.abshk
+    libc.src.stdfix.abshr
+    libc.src.stdfix.absk
+    libc.src.stdfix.abslk
+    libc.src.stdfix.abslr
+    libc.src.stdfix.absr
+    libc.src.stdfix.exphk
+    libc.src.stdfix.expk
+    libc.src.stdfix.roundhk
+    libc.src.stdfix.roundhr
+    libc.src.stdfix.roundk
+    libc.src.stdfix.roundlk
+    libc.src.stdfix.roundlr
+    libc.src.stdfix.roundr
+    libc.src.stdfix.rounduhk
+    libc.src.stdfix.rounduhr
+    libc.src.stdfix.rounduk
+    libc.src.stdfix.roundulk
+    libc.src.stdfix.roundulr
+    libc.src.stdfix.roundur
+    libc.src.stdfix.sqrtuhk
+    libc.src.stdfix.sqrtuhr
+    libc.src.stdfix.sqrtuk
+    libc.src.stdfix.sqrtur
+    # libc.src.stdfix.sqrtulk
+    libc.src.stdfix.sqrtulr
+    libc.src.stdfix.uhksqrtus
+    libc.src.stdfix.uksqrtui
+    libc.src.stdfix.hrbits
+    libc.src.stdfix.uhrbits
+    libc.src.stdfix.rbits
+    libc.src.stdfix.urbits
+    libc.src.stdfix.lrbits
+    libc.src.stdfix.ulrbits
+    libc.src.stdfix.hkbits
+    libc.src.stdfix.uhkbits
+    libc.src.stdfix.kbits
+    libc.src.stdfix.ukbits
+    libc.src.stdfix.lkbits
+    libc.src.stdfix.ulkbits
+    libc.src.stdfix.bitshr
+    libc.src.stdfix.bitsr
+    libc.src.stdfix.bitslr
+    libc.src.stdfix.bitshk
+    libc.src.stdfix.bitsk
+    libc.src.stdfix.bitslk
+    libc.src.stdfix.bitsuhr
+    libc.src.stdfix.bitsur
+    libc.src.stdfix.bitsulr
+    libc.src.stdfix.bitsuhk
+    libc.src.stdfix.bitsuk
+    libc.src.stdfix.bitsulk
+    libc.src.stdfix.countlshr
+    libc.src.stdfix.countlsr
+    libc.src.stdfix.countlslr
+    libc.src.stdfix.countlshk
+    libc.src.stdfix.countlsk
+    libc.src.stdfix.countlslk
+    libc.src.stdfix.countlsuhr
+    libc.src.stdfix.countlsur
+    libc.src.stdfix.countlsulr
+    libc.src.stdfix.countlsuhk
+    libc.src.stdfix.countlsuk
+    libc.src.stdfix.countlsulk
+  )
+endif()
+
+if(LLVM_LIBC_ENABLE_EXPERIMENTAL_ENTRYPOINTS)
+  list(APPEND TARGET_LIBC_ENTRYPOINTS
+    # libintl.h entrypoints
+    libc.src.libintl.bind_textdomain_codeset
+    libc.src.libintl.bindtextdomain
+    libc.src.libintl.dcgettext
+    libc.src.libintl.dcgettext_l
+    libc.src.libintl.dcngettext
+    libc.src.libintl.dcngettext_l
+    libc.src.libintl.dgettext
+    libc.src.libintl.dgettext_l
+    libc.src.libintl.dngettext
+    libc.src.libintl.dngettext_l
+    libc.src.libintl.gettext
+    libc.src.libintl.gettext_l
+    libc.src.libintl.ngettext
+    libc.src.libintl.ngettext_l
+    libc.src.libintl.textdomain
+
+    # regex.h entrypoints
+    libc.src.regex.regcomp
+    libc.src.regex.regexec
+    libc.src.regex.regerror
+    libc.src.regex.regfree
+  )
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+  ${TARGET_LIBC_ENTRYPOINTS}
+  ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/baremetal/arm/entrypoints.txt b/libc/config/baremetal/arm/entrypoints.txt
index 779d9fc23b28e8..f14d4a69ef5ec3 100644
--- a/libc/config/baremetal/arm/entrypoints.txt
+++ b/libc/config/baremetal/arm/entrypoints.txt
@@ -1,1034 +1,1036 @@
-set(TARGET_LIBC_ENTRYPOINTS
-    # assert.h entrypoints
-    libc.src.assert.__assert_fail
-
-    # compiler entrypoints (no corresponding header)
-    libc.src.compiler.__stack_chk_fail
-
-    # ctype.h entrypoints
-    libc.src.ctype.isalnum
-    libc.src.ctype.isalpha
-    libc.src.ctype.isascii
-    libc.src.ctype.isblank
-    libc.src.ctype.iscntrl
-    libc.src.ctype.isdigit
-    libc.src.ctype.isgraph
-    libc.src.ctype.islower
-    libc.src.ctype.isprint
-    libc.src.ctype.ispunct
-    libc.src.ctype.isspace
-    libc.src.ctype.isupper
-    libc.src.ctype.isxdigit
-    libc.src.ctype.toascii
-    libc.src.ctype.tolower
-    libc.src.ctype.toupper
-
-    # ctype.h entrypoints
-    libc.src.ctype.isalnum_l
-    libc.src.ctype.isalpha_l
-    libc.src.ctype.isblank_l
-    libc.src.ctype.iscntrl_l
-    libc.src.ctype.isdigit_l
-    libc.src.ctype.isgraph_l
-    libc.src.ctype.islower_l
-    libc.src.ctype.isprint_l
-    libc.src.ctype.ispunct_l
-    libc.src.ctype.isspace_l
-    libc.src.ctype.isupper_l
-    libc.src.ctype.isxdigit_l
-    libc.src.ctype.tolower_l
-    libc.src.ctype.toupper_l
-
-    # errno.h entrypoints
-    libc.src.errno.errno
-
-    # locale.h entrypoints
-    libc.src.locale.localeconv
-    libc.src.locale.duplocale
-    libc.src.locale.freelocale
-    libc.src.locale.localeconv
-    libc.src.locale.newlocale
-    libc.src.locale.setlocale
-    libc.src.locale.uselocale
-
-    # setjmp.h entrypoints
-    libc.src.setjmp.longjmp
-    libc.src.setjmp.setjmp
-
-    # string.h entrypoints
-    libc.src.string.memccpy
-    libc.src.string.memchr
-    libc.src.string.memcmp
-    libc.src.string.memcpy
-    libc.src.string.memmem
-    libc.src.string.memmove
-    libc.src.string.mempcpy
-    libc.src.string.memrchr
-    libc.src.string.memset
-    libc.src.string.memset_explicit
-    libc.src.string.stpcpy
-    libc.src.string.stpncpy
-    libc.src.string.strcasestr
-    libc.src.string.strcat
-    libc.src.string.strchr
-    libc.src.string.strchrnul
-    libc.src.string.strcmp
-    libc.src.string.strcoll
-    libc.src.string.strcpy
-    libc.src.string.strcspn
-    libc.src.string.strdup
-    libc.src.string.strerror
-    libc.src.string.strerror_r
-    libc.src.string.strlcat
-    libc.src.string.strlcpy
-    libc.src.string.strlen
-    libc.src.string.strncat
-    libc.src.string.strncmp
-    libc.src.string.strncpy
-    libc.src.string.strndup
-    libc.src.string.strnlen
-    libc.src.string.strnlen_s
-    libc.src.string.strpbrk
-    libc.src.string.strrchr
-    libc.src.string.strsep
-    libc.src.string.strspn
-    libc.src.string.strstr
-    libc.src.string.strtok
-    libc.src.string.strtok_r
-    libc.src.string.strxfrm
-
-    # string.h entrypoints
-    libc.src.string.strcoll_l
-    libc.src.string.strxfrm_l
-
-    # strings.h entrypoints
-    libc.src.strings.bcmp
-    libc.src.strings.bcopy
-    libc.src.strings.bzero
-    libc.src.strings.ffs
-    libc.src.strings.ffsl
-    libc.src.strings.ffsll
-    libc.src.strings.index
-    libc.src.strings.rindex
-    libc.src.strings.strcasecmp
-    libc.src.strings.strncasecmp
-
-    # strings.h entrypoints
-    libc.src.strings.strcasecmp_l
-    libc.src.strings.strncasecmp_l
-
-    # inttypes.h entrypoints
-    libc.src.inttypes.imaxabs
-    libc.src.inttypes.imaxdiv
-    libc.src.inttypes.strtoimax
-    libc.src.inttypes.strtoumax
-
-    # stdio.h entrypoints
-    libc.src.stdio.asprintf
-    libc.src.stdio.feof
-    libc.src.stdio.ferror
-    libc.src.stdio.fflush
-    libc.src.stdio.fclose
-    libc.src.stdio.fgetc
-    libc.src.stdio.fgets
-    libc.src.stdio.fprintf
-    libc.src.stdio.fputc
-    libc.src.stdio.fputs
-    libc.src.stdio.fread
-    libc.src.stdio.fscanf
-    libc.src.stdio.fwrite
-    libc.src.stdio.fseek
-    libc.src.stdio.fseeko
-    libc.src.stdio.ftell
-    libc.src.stdio.ftello
-    libc.src.stdio.getc
-    libc.src.stdio.getchar
-    libc.src.stdio.printf
-    libc.src.stdio.putc
-    libc.src.stdio.putchar
-    libc.src.stdio.puts
-    libc.src.stdio.remove
-    libc.src.stdio.scanf
-    libc.src.stdio.snprintf
-    libc.src.stdio.sprintf
-    libc.src.stdio.sscanf
-    libc.src.stdio.stderr
-    libc.src.stdio.stdin
-    libc.src.stdio.stdout
-    libc.src.stdio.vasprintf
-    libc.src.stdio.vfprintf
-    libc.src.stdio.vfscanf
-    libc.src.stdio.vprintf
-    libc.src.stdio.vscanf
-    libc.src.stdio.vsnprintf
-    libc.src.stdio.vsprintf
-    libc.src.stdio.vsscanf
-    libc.src.stdio.ungetc
-
-    # stdbit.h entrypoints
-    libc.src.stdbit.stdc_bit_ceil_uc
-    libc.src.stdbit.stdc_bit_ceil_ui
-    libc.src.stdbit.stdc_bit_ceil_ul
-    libc.src.stdbit.stdc_bit_ceil_ull
-    libc.src.stdbit.stdc_bit_ceil_us
-    libc.src.stdbit.stdc_bit_floor_uc
-    libc.src.stdbit.stdc_bit_floor_ui
-    libc.src.stdbit.stdc_bit_floor_ul
-    libc.src.stdbit.stdc_bit_floor_ull
-    libc.src.stdbit.stdc_bit_floor_us
-    libc.src.stdbit.stdc_bit_width_uc
-    libc.src.stdbit.stdc_bit_width_ui
-    libc.src.stdbit.stdc_bit_width_ul
-    libc.src.stdbit.stdc_bit_width_ull
-    libc.src.stdbit.stdc_bit_width_us
-    libc.src.stdbit.stdc_count_ones_uc
-    libc.src.stdbit.stdc_count_ones_ui
-    libc.src.stdbit.stdc_count_ones_ul
-    libc.src.stdbit.stdc_count_ones_ull
-    libc.src.stdbit.stdc_count_ones_us
-    libc.src.stdbit.stdc_count_zeros_uc
-    libc.src.stdbit.stdc_count_zeros_ui
-    libc.src.stdbit.stdc_count_zeros_ul
-    libc.src.stdbit.stdc_count_zeros_ull
-    libc.src.stdbit.stdc_count_zeros_us
-    libc.src.stdbit.stdc_first_leading_one_uc
-    libc.src.stdbit.stdc_first_leading_one_ui
-    libc.src.stdbit.stdc_first_leading_one_ul
-    libc.src.stdbit.stdc_first_leading_one_ull
-    libc.src.stdbit.stdc_first_leading_one_us
-    libc.src.stdbit.stdc_first_leading_zero_uc
-    libc.src.stdbit.stdc_first_leading_zero_ui
-    libc.src.stdbit.stdc_first_leading_zero_ul
-    libc.src.stdbit.stdc_first_leading_zero_ull
-    libc.src.stdbit.stdc_first_leading_zero_us
-    libc.src.stdbit.stdc_first_trailing_one_uc
-    libc.src.stdbit.stdc_first_trailing_one_ui
-    libc.src.stdbit.stdc_first_trailing_one_ul
-    libc.src.stdbit.stdc_first_trailing_one_ull
-    libc.src.stdbit.stdc_first_trailing_one_us
-    libc.src.stdbit.stdc_first_trailing_zero_uc
-    libc.src.stdbit.stdc_first_trailing_zero_ui
-    libc.src.stdbit.stdc_first_trailing_zero_ul
-    libc.src.stdbit.stdc_first_trailing_zero_ull
-    libc.src.stdbit.stdc_first_trailing_zero_us
-    libc.src.stdbit.stdc_has_single_bit_uc
-    libc.src.stdbit.stdc_has_single_bit_ui
-    libc.src.stdbit.stdc_has_single_bit_ul
-    libc.src.stdbit.stdc_has_single_bit_ull
-    libc.src.stdbit.stdc_has_single_bit_us
-    libc.src.stdbit.stdc_leading_ones_uc
-    libc.src.stdbit.stdc_leading_ones_ui
-    libc.src.stdbit.stdc_leading_ones_ul
-    libc.src.stdbit.stdc_leading_ones_ull
-    libc.src.stdbit.stdc_leading_ones_us
-    libc.src.stdbit.stdc_leading_zeros_uc
-    libc.src.stdbit.stdc_leading_zeros_ui
-    libc.src.stdbit.stdc_leading_zeros_ul
-    libc.src.stdbit.stdc_leading_zeros_ull
-    libc.src.stdbit.stdc_leading_zeros_us
-    libc.src.stdbit.stdc_trailing_ones_uc
-    libc.src.stdbit.stdc_trailing_ones_ui
-    libc.src.stdbit.stdc_trailing_ones_ul
-    libc.src.stdbit.stdc_trailing_ones_ull
-    libc.src.stdbit.stdc_trailing_ones_us
-    libc.src.stdbit.stdc_trailing_zeros_uc
-    libc.src.stdbit.stdc_trailing_zeros_ui
-    libc.src.stdbit.stdc_trailing_zeros_ul
-    libc.src.stdbit.stdc_trailing_zeros_ull
-    libc.src.stdbit.stdc_trailing_zeros_us
-
-    # stdlib.h entrypoints
-    libc.src.stdlib._Exit
-    libc.src.stdlib.a64l
-    libc.src.stdlib.abort
-    libc.src.stdlib.abs
-    libc.src.stdlib.aligned_alloc
-    libc.src.stdlib.atexit
-    libc.src.stdlib.atof
-    libc.src.stdlib.atoi
-    libc.src.stdlib.atol
-    libc.src.stdlib.atoll
-    libc.src.stdlib.bsearch
-    libc.src.stdlib.calloc
-    libc.src.stdlib.div
-    libc.src.stdlib.exit
-    libc.src.stdlib.free
-    libc.src.stdlib.l64a
-    libc.src.stdlib.labs
-    libc.src.stdlib.ldiv
-    libc.src.stdlib.llabs
-    libc.src.stdlib.lldiv
-    libc.src.stdlib.malloc
-    libc.src.stdlib.malloc_usable_size
-    libc.src.stdlib.memalignment
-    libc.src.stdlib.qsort
-    libc.src.stdlib.qsort_r
-    libc.src.stdlib.rand
-    libc.src.stdlib.realloc
-    libc.src.stdlib.srand
-    # libc.src.stdlib.strfromd
-    # libc.src.stdlib.strfromf
-    # libc.src.stdlib.strfroml
-    libc.src.stdlib.strtod
-    libc.src.stdlib.strtof
-    libc.src.stdlib.strtol
-    libc.src.stdlib.strtold
-    libc.src.stdlib.strtoll
-    libc.src.stdlib.strtoul
-    libc.src.stdlib.strtoull
-
-    # stdlib.h entrypoints
-    libc.src.stdlib.strtod_l
-    libc.src.stdlib.strtof_l
-    libc.src.stdlib.strtol_l
-    libc.src.stdlib.strtold_l
-    libc.src.stdlib.strtoll_l
-    libc.src.stdlib.strtoul_l
-    libc.src.stdlib.strtoull_l
-
-    # time.h entrypoints
-    libc.src.time.asctime
-    libc.src.time.asctime_r
-    libc.src.time.clock
-    libc.src.time.ctime
-    libc.src.time.ctime_r
-    libc.src.time.difftime
-    libc.src.time.gmtime
-    libc.src.time.gmtime_r
-    libc.src.time.localtime
-    libc.src.time.localtime_r
-    libc.src.time.mktime
-    libc.src.time.strftime
-    libc.src.time.strftime_l
-    libc.src.time.timespec_get
-
-    # wchar.h entrypoints
-    libc.src.wchar.btowc
-    libc.src.wchar.wcslen
-    libc.src.wchar.wctob
-
-    # wctype.h entrypoints
-    libc.src.wctype.iswalpha
-    libc.src.wctype.iswgraph
-    libc.src.wctype.iswcntrl
-    libc.src.wctype.iswdigit
-    libc.src.wctype.iswupper
-    libc.src.wctype.iswalnum
-    libc.src.wctype.iswlower
-    libc.src.wctype.iswspace
-    libc.src.wctype.iswblank
-    libc.src.wctype.iswxdigit
-    libc.src.wctype.iswpunct
-    libc.src.wctype.iswprint
-    libc.src.wctype.iswctype
-    libc.src.wctype.wctype
-    # internal entrypoints
-    libc.startup.baremetal.init
-    libc.startup.baremetal.fini
-)
-
-set(TARGET_LIBM_ENTRYPOINTS
-    # complex.h entrypoints
-    libc.src.complex.cabs
-    libc.src.complex.cabsf
-    libc.src.complex.carg
-    libc.src.complex.cargf
-    libc.src.complex.creal
-    libc.src.complex.crealf
-    libc.src.complex.creall
-    libc.src.complex.cimag
-    libc.src.complex.cimagf
-    libc.src.complex.cimagl
-    libc.src.complex.conj
-    libc.src.complex.conjf
-    libc.src.complex.conjl
-    libc.src.complex.cproj
-    libc.src.complex.cprojf
-    libc.src.complex.cprojl
-
-    # fenv.h entrypoints
-    libc.src.fenv.feclearexcept
-    libc.src.fenv.fedisableexcept
-    libc.src.fenv.feenableexcept
-    libc.src.fenv.fegetenv
-    libc.src.fenv.fegetexcept
-    libc.src.fenv.fegetexceptflag
-    libc.src.fenv.fegetround
-    libc.src.fenv.feholdexcept
-    libc.src.fenv.feraiseexcept
-    libc.src.fenv.fesetenv
-    libc.src.fenv.fesetexcept
-    libc.src.fenv.fesetexceptflag
-    libc.src.fenv.fesetround
-    libc.src.fenv.fetestexcept
-    libc.src.fenv.fetestexceptflag
-    libc.src.fenv.feupdateenv
-
-    # math.h entrypoints
-    libc.src.math.acos
-    libc.src.math.acosf
-    libc.src.math.acoshf
-    libc.src.math.acospif
-    libc.src.math.asin
-    libc.src.math.asinf
-    libc.src.math.asinhf
-    libc.src.math.asinpi
-    libc.src.math.asinpif
-    libc.src.math.atan2
-    libc.src.math.atan2f
-    libc.src.math.atan2f128
-    libc.src.math.atan2l
-    libc.src.math.atan
-    libc.src.math.atanf
-    libc.src.math.atanhf
-    libc.src.math.canonicalize
-    libc.src.math.canonicalizef
-    libc.src.math.canonicalizel
-    libc.src.math.cbrt
-    libc.src.math.cbrtf
-    libc.src.math.cbrtbf16
-    libc.src.math.ceil
-    libc.src.math.ceilf
-    libc.src.math.ceilf128
-    libc.src.math.ceill
-    libc.src.math.copysign
-    libc.src.math.copysignf
-    libc.src.math.copysignf128
-    libc.src.math.copysignl
-    libc.src.math.cos
-    libc.src.math.cosf
-    libc.src.math.coshf
-    libc.src.math.cospif
-    libc.src.math.dfmal
-    libc.src.math.dmull
-    libc.src.math.dsqrtl
-    libc.src.math.daddl
-    libc.src.math.ddivl
-    libc.src.math.dsubl
-    libc.src.math.erff
-    libc.src.math.exp
-    libc.src.math.exp10
-    libc.src.math.exp10f
-    libc.src.math.exp10m1f
-    libc.src.math.exp2
-    libc.src.math.exp2f
-    libc.src.math.exp2m1f
-    libc.src.math.expf
-    libc.src.math.expm1
-    libc.src.math.expm1f
-    libc.src.math.fabs
-    libc.src.math.fabsf
-    libc.src.math.fabsf128
-    libc.src.math.fabsl
-    libc.src.math.fadd
-    libc.src.math.faddl
-    libc.src.math.fadd
-    libc.src.math.fdim
-    libc.src.math.fdimf
-    libc.src.math.fdimf128
-    libc.src.math.fdiml
-    libc.src.math.fdiv
-    libc.src.math.fdivl
-    libc.src.math.ffma
-    libc.src.math.ffmal
-    libc.src.math.floor
-    libc.src.math.floorf
-    libc.src.math.floorf128
-    libc.src.math.floorl
-    libc.src.math.fma
-    libc.src.math.fmabf16
-    libc.src.math.fmaf
-    libc.src.math.fmax
-    libc.src.math.fmaxf
-    libc.src.math.fmaxf128
-    libc.src.math.fmaximum
-    libc.src.math.fmaximum_mag
-    libc.src.math.fmaximum_mag_num
-    libc.src.math.fmaximum_mag_numf
-    libc.src.math.fmaximum_mag_numf128
-    libc.src.math.fmaximum_mag_numl
-    libc.src.math.fmaximum_magf
-    libc.src.math.fmaximum_magf128
-    libc.src.math.fmaximum_magl
-    libc.src.math.fmaximum_num
-    libc.src.math.fmaximum_numf
-    libc.src.math.fmaximum_numf128
-    libc.src.math.fmaximum_numl
-    libc.src.math.fmaximumf
-    libc.src.math.fmaximumf128
-    libc.src.math.fmaximuml
-    libc.src.math.fmaxl
-    libc.src.math.fmin
-    libc.src.math.fminf
-    libc.src.math.fminf128
-    libc.src.math.fminimum
-    libc.src.math.fminimum_mag
-    libc.src.math.fminimum_mag_num
-    libc.src.math.fminimum_mag_numf
-    libc.src.math.fminimum_mag_numf128
-    libc.src.math.fminimum_mag_numl
-    libc.src.math.fminimum_magf
-    libc.src.math.fminimum_magf128
-    libc.src.math.fminimum_magl
-    libc.src.math.fminimum_num
-    libc.src.math.fminimum_numf
-    libc.src.math.fminimum_numf128
-    libc.src.math.fminimum_numl
-    libc.src.math.fminimumf
-    libc.src.math.fminimumf128
-    libc.src.math.fminimuml
-    libc.src.math.fminl
-    libc.src.math.fmod
-    libc.src.math.fmodf
-    libc.src.math.fmodl
-    libc.src.math.fmul
-    libc.src.math.fmull
-    libc.src.math.frexp
-    libc.src.math.frexpf
-    libc.src.math.frexpl
-    libc.src.math.fromfp
-    libc.src.math.fromfpf
-    libc.src.math.fromfpl
-    libc.src.math.fromfpx
-    libc.src.math.fromfpxf
-    libc.src.math.fromfpxl
-    libc.src.math.fsqrt
-    libc.src.math.fsqrtl
-    libc.src.math.fsub
-    libc.src.math.fsubl
-    libc.src.math.getpayload
-    libc.src.math.getpayloadf
-    libc.src.math.getpayloadl
-    libc.src.math.hypot
-    libc.src.math.hypotf
-    libc.src.math.ilogb
-    libc.src.math.ilogbf
-    libc.src.math.ilogbl
-    libc.src.math.iscanonical
-    libc.src.math.iscanonicalf
-    libc.src.math.iscanonicalf128
-    libc.src.math.iscanonicall
-    libc.src.math.isnan
-    libc.src.math.isnanf
-    libc.src.math.isnanf128
-    libc.src.math.isnanl
-    libc.src.math.issignaling
-    libc.src.math.issignalingf
-    libc.src.math.issignalingf128
-    libc.src.math.issignalingl
-    libc.src.math.ldexp
-    libc.src.math.ldexpf
-    libc.src.math.ldexpl
-    libc.src.math.lgammaf
-    libc.src.math.llogb
-    libc.src.math.llogbf
-    libc.src.math.llogbl
-    libc.src.math.llrint
-    libc.src.math.llrintf
-    libc.src.math.llrintf128
-    libc.src.math.llrintl
-    libc.src.math.llround
-    libc.src.math.llroundf
-    libc.src.math.llroundf128
-    libc.src.math.llroundl
-    libc.src.math.log
-    libc.src.math.log10
-    libc.src.math.log10f
-    libc.src.math.log1p
-    libc.src.math.log1pf
-    libc.src.math.log2
-    libc.src.math.log2f
-    libc.src.math.logb
-    libc.src.math.logbf
-    libc.src.math.logbl
-    libc.src.math.logf
-    libc.src.math.lrint
-    libc.src.math.lrintf
-    libc.src.math.lrintf128
-    libc.src.math.lrintl
-    libc.src.math.lround
-    libc.src.math.lroundf
-    libc.src.math.lroundf128
-    libc.src.math.lroundl
-    libc.src.math.modf
-    libc.src.math.modff
-    libc.src.math.modfl
-    libc.src.math.nan
-    libc.src.math.nanf
-    libc.src.math.nanl
-    libc.src.math.nearbyint
-    libc.src.math.nearbyintf
-    libc.src.math.nearbyintf128
-    libc.src.math.nearbyintl
-    libc.src.math.nextafter
-    libc.src.math.nextafterf
-    libc.src.math.nextafterl
-    libc.src.math.nextdown
-    libc.src.math.nextdownf
-    libc.src.math.nextdownl
-    libc.src.math.nexttoward
-    libc.src.math.nexttowardf
-    libc.src.math.nexttowardl
-    libc.src.math.nextup
-    libc.src.math.nextupf
-    libc.src.math.nextupl
-    libc.src.math.pow
-    libc.src.math.powf
-    libc.src.math.remainder
-    libc.src.math.remainderf
-    libc.src.math.remainderl
-    libc.src.math.remquo
-    libc.src.math.remquof
-    libc.src.math.remquol
-    libc.src.math.rint
-    libc.src.math.rintf
-    libc.src.math.rintf128
-    libc.src.math.rintl
-    libc.src.math.round
-    libc.src.math.roundeven
-    libc.src.math.roundevenf
-    libc.src.math.roundevenf128
-    libc.src.math.roundevenl
-    libc.src.math.roundf
-    libc.src.math.roundf128
-    libc.src.math.roundl
-    libc.src.math.scalbln
-    libc.src.math.scalblnf
-    libc.src.math.scalblnl
-    libc.src.math.scalbn
-    libc.src.math.scalbnf
-    libc.src.math.scalbnl
-    libc.src.math.setpayload
-    libc.src.math.setpayloadf
-    libc.src.math.setpayloadl
-    libc.src.math.setpayloadsig
-    libc.src.math.setpayloadsigf
-    libc.src.math.setpayloadsigl
-    libc.src.math.sin
-    libc.src.math.sincos
-    libc.src.math.sincosf
-    libc.src.math.sinf
-    libc.src.math.sinhf
-    libc.src.math.sinpif
-    libc.src.math.sqrt
-    libc.src.math.sqrtf
-    libc.src.math.sqrtf128
-    libc.src.math.sqrtl
-    libc.src.math.tan
-    libc.src.math.tanf
-    libc.src.math.tanhf
-    libc.src.math.totalorder
-    libc.src.math.totalorderf
-    libc.src.math.totalorderl
-    libc.src.math.totalordermag
-    libc.src.math.totalordermagf
-    libc.src.math.totalordermagl
-    libc.src.math.trunc
-    libc.src.math.truncf
-    libc.src.math.truncf128
-    libc.src.math.truncl
-    libc.src.math.ufromfp
-    libc.src.math.ufromfpf
-    libc.src.math.ufromfpl
-    libc.src.math.ufromfpx
-    libc.src.math.ufromfpxf
-    libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_CFLOAT16)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # complex.h C23 _Complex _Float16 entrypoints
-    libc.src.complex.crealf16
-    libc.src.complex.cimagf16
-    libc.src.complex.conjf16
-    libc.src.complex.cprojf16
-  )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT16)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C23 _Float16 entrypoints
-    libc.src.math.acosf16
-    libc.src.math.acoshf16
-    libc.src.math.asinf16
-    libc.src.math.asinhf16
-    libc.src.math.atan2f16
-    libc.src.math.canonicalizef16
-    libc.src.math.cbrtf16
-    libc.src.math.ceilf16
-    libc.src.math.copysignf16
-    libc.src.math.cosf16
-    libc.src.math.coshf16
-    libc.src.math.cospif16
-    libc.src.math.exp10f16
-    libc.src.math.exp10m1f16
-    libc.src.math.exp2f16
-    libc.src.math.exp2m1f16
-    libc.src.math.expf16
-    libc.src.math.expm1f16
-    libc.src.math.f16add
-    libc.src.math.f16addf
-    libc.src.math.f16addl
-    libc.src.math.f16div
-    libc.src.math.f16divf
-    libc.src.math.f16divl
-    libc.src.math.f16fma
-    libc.src.math.f16fmaf
-    libc.src.math.f16fmal
-    libc.src.math.f16mul
-    libc.src.math.f16mulf
-    libc.src.math.f16mull
-    libc.src.math.f16sqrt
-    libc.src.math.f16sqrtf
-    libc.src.math.f16sqrtl
-    libc.src.math.f16sub
-    libc.src.math.f16subf
-    libc.src.math.f16subl
-    libc.src.math.fabsf16
-    libc.src.math.fdimf16
-    libc.src.math.floorf16
-    libc.src.math.fmaf16
-    libc.src.math.fmaxf16
-    libc.src.math.fmaximum_mag_numf16
-    libc.src.math.fmaximum_magf16
-    libc.src.math.fmaximum_numf16
-    libc.src.math.fmaximumf16
-    libc.src.math.fminf16
-    libc.src.math.fminimum_mag_numf16
-    libc.src.math.fminimum_magf16
-    libc.src.math.fminimum_numf16
-    libc.src.math.fminimumf16
-    libc.src.math.fmodf16
-    libc.src.math.frexpf16
-    libc.src.math.fromfpf16
-    libc.src.math.fromfpxf16
-    libc.src.math.getpayloadf16
-    libc.src.math.hypotf16
-    libc.src.math.ilogbf16
-    libc.src.math.iscanonicalf16
-    libc.src.math.isnanf16
-    libc.src.math.issignalingf16
-    libc.src.math.ldexpf16
-    libc.src.math.lgammaf16
-    libc.src.math.llogbf16
-    libc.src.math.llrintf16
-    libc.src.math.llroundf16
-    libc.src.math.log10f16
-    libc.src.math.log10p1f16
-    libc.src.math.log2f16
-    libc.src.math.logbf16
-    libc.src.math.logf16
-    libc.src.math.lrintf16
-    libc.src.math.lroundf16
-    libc.src.math.modff16
-    libc.src.math.nanf16
-    libc.src.math.nearbyintf16
-    libc.src.math.nextafterf16
-    libc.src.math.nextdownf16
-    libc.src.math.nexttowardf16
-    libc.src.math.nextupf16
-    libc.src.math.remainderf16
-    libc.src.math.remquof16
-    libc.src.math.rintf16
-    libc.src.math.roundevenf16
-    libc.src.math.roundf16
-    libc.src.math.scalblnf16
-    libc.src.math.scalbnf16
-    libc.src.math.setpayloadf16
-    libc.src.math.setpayloadsigf16
-    libc.src.math.sinf16
-    libc.src.math.sinhf16
-    libc.src.math.sinpif16
-    libc.src.math.sqrtf16
-    libc.src.math.tanf16
-    libc.src.math.tanhf16
-    libc.src.math.tanpif16
-    libc.src.math.totalorderf16
-    libc.src.math.totalordermagf16
-    libc.src.math.truncf16
-    libc.src.math.ufromfpf16
-    libc.src.math.ufromfpxf16
-  )
-
-  if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-    list(APPEND TARGET_LIBM_ENTRYPOINTS
-      # math.h C23 mixed _Float16 and _Float128 entrypoints
-      libc.src.math.f16addf128
-      libc.src.math.f16divf128
-      libc.src.math.f16fmaf128
-      libc.src.math.f16mulf128
-      libc.src.math.f16sqrtf128
-      libc.src.math.f16subf128
-    )
-  endif()
-endif()
-
-if(LIBC_TYPES_HAS_CFLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # complex.h C23 _Complex _Float128 entrypoints
-    libc.src.complex.crealf128
-    libc.src.complex.cimagf128
-    libc.src.complex.conjf128
-    libc.src.complex.cprojf128
-  )
-endif()
-
-if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C23 _Float128 entrypoints
-    libc.src.math.canonicalizef128
-    libc.src.math.daddf128
-    libc.src.math.ddivf128
-    libc.src.math.dfmaf128
-    libc.src.math.dmulf128
-    libc.src.math.dsqrtf128
-    libc.src.math.dsubf128
-    libc.src.math.faddf128
-    libc.src.math.fdivf128
-    libc.src.math.ffmaf128
-    libc.src.math.fmodf128
-    libc.src.math.fmulf128
-    libc.src.math.frexpf128
-    libc.src.math.fromfpf128
-    libc.src.math.fromfpxf128
-    libc.src.math.fsqrtf128
-    libc.src.math.fsubf128
-    libc.src.math.getpayloadf128
-    libc.src.math.ilogbf128
-    libc.src.math.ldexpf128
-    libc.src.math.llogbf128
-    libc.src.math.logbf128
-    libc.src.math.modff128
-    libc.src.math.nanf128
-    libc.src.math.nextafterf128
-    libc.src.math.nextdownf128
-    libc.src.math.nextupf128
-    libc.src.math.remainderf128
-    libc.src.math.remquof128
-    libc.src.math.scalblnf128
-    libc.src.math.scalbnf128
-    libc.src.math.setpayloadf128
-    libc.src.math.setpayloadsigf128
-    libc.src.math.totalorderf128
-    libc.src.math.totalordermagf128
-    libc.src.math.ufromfpf128
-    libc.src.math.ufromfpxf128
-  )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
-  # bfloat16 entrypoints
-  libc.src.math.atanbf16
-  libc.src.math.acosbf16
-  libc.src.math.asinbf16
-  libc.src.math.bf16add
-  libc.src.math.bf16addf
-  libc.src.math.bf16addl
-  libc.src.math.bf16div
-  libc.src.math.bf16divf
-  libc.src.math.bf16divl
-  libc.src.math.bf16fma
-  libc.src.math.bf16fmaf
-  libc.src.math.bf16fmal
-  libc.src.math.bf16mul
-  libc.src.math.bf16mulf
-  libc.src.math.bf16mull
-  libc.src.math.bf16sub
-  libc.src.math.bf16subf
-  libc.src.math.bf16subl
-  libc.src.math.canonicalizebf16
-  libc.src.math.ceilbf16
-  libc.src.math.copysignbf16
-  libc.src.math.exp2bf16
-  libc.src.math.expbf16
-  libc.src.math.fabsbf16
-  libc.src.math.fdimbf16
-  libc.src.math.floorbf16
-  libc.src.math.fmaxbf16
-  libc.src.math.fmaximumbf16
-  libc.src.math.fmaximum_magbf16
-  libc.src.math.fmaximum_mag_numbf16
-  libc.src.math.fmaximum_numbf16
-  libc.src.math.fminbf16
-  libc.src.math.fminimumbf16
-  libc.src.math.fminimum_magbf16
-  libc.src.math.fminimum_mag_numbf16
-  libc.src.math.fminimum_numbf16
-  libc.src.math.fmodbf16
-  libc.src.math.frexpbf16
-  libc.src.math.fromfpbf16
-  libc.src.math.fromfpxbf16
-  libc.src.math.getpayloadbf16
-  libc.src.math.hypotbf16
-  libc.src.math.ilogbbf16
-  libc.src.math.iscanonicalbf16
-  libc.src.math.issignalingbf16
-  libc.src.math.ldexpbf16
-  libc.src.math.llogbbf16
-  libc.src.math.llrintbf16
-  libc.src.math.llroundbf16
-  libc.src.math.log_bf16
-  libc.src.math.logbbf16
-  libc.src.math.lrintbf16
-  libc.src.math.lroundbf16
-  libc.src.math.modfbf16
-  libc.src.math.nanbf16
-  libc.src.math.nearbyintbf16
-  libc.src.math.nextafterbf16
-  libc.src.math.nextdownbf16
-  libc.src.math.nexttowardbf16
-  libc.src.math.nextupbf16
-  libc.src.math.remainderbf16
-  libc.src.math.remquobf16
-  libc.src.math.rintbf16
-  libc.src.math.roundbf16
-  libc.src.math.roundevenbf16
-  libc.src.math.scalblnbf16
-  libc.src.math.scalbnbf16
-  libc.src.math.setpayloadbf16
-  libc.src.math.setpayloadsigbf16
-  libc.src.math.sqrtbf16
-  libc.src.math.tanbf16
-  libc.src.math.truncbf16
-  libc.src.math.totalorderbf16
-  libc.src.math.totalordermagbf16
-  libc.src.math.ufromfpbf16
-  libc.src.math.ufromfpxbf16
-)
-
-if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C++23 mixed bfloat16 and _Float128 entrypoints
-    libc.src.math.bf16addf128
-    libc.src.math.bf16divf128
-    libc.src.math.bf16fmaf128
-    libc.src.math.bf16mulf128
-    libc.src.math.bf16subf128
-  )
-endif()
-
-if(LIBC_COMPILER_HAS_FIXED_POINT)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # stdfix.h _Fract and _Accum entrypoints
-    libc.src.stdfix.abshk
-    libc.src.stdfix.abshr
-    libc.src.stdfix.absk
-    libc.src.stdfix.abslk
-    libc.src.stdfix.abslr
-    libc.src.stdfix.absr
-    libc.src.stdfix.exphk
-    libc.src.stdfix.expk
-    libc.src.stdfix.roundhk
-    libc.src.stdfix.roundhr
-    libc.src.stdfix.roundk
-    libc.src.stdfix.roundlk
-    libc.src.stdfix.roundlr
-    libc.src.stdfix.roundr
-    libc.src.stdfix.rounduhk
-    libc.src.stdfix.rounduhr
-    libc.src.stdfix.rounduk
-    libc.src.stdfix.roundulk
-    libc.src.stdfix.roundulr
-    libc.src.stdfix.roundur
-    libc.src.stdfix.sqrtuhk
-    libc.src.stdfix.sqrtuhr
-    libc.src.stdfix.sqrtuk
-    libc.src.stdfix.sqrtur
-    # libc.src.stdfix.sqrtulk
-    libc.src.stdfix.sqrtulr
-    libc.src.stdfix.uhksqrtus
-    libc.src.stdfix.uksqrtui
-    libc.src.stdfix.hrbits
-    libc.src.stdfix.uhrbits
-    libc.src.stdfix.rbits
-    libc.src.stdfix.urbits
-    libc.src.stdfix.lrbits
-    libc.src.stdfix.ulrbits
-    libc.src.stdfix.hkbits
-    libc.src.stdfix.uhkbits
-    libc.src.stdfix.kbits
-    libc.src.stdfix.ukbits
-    libc.src.stdfix.lkbits
-    libc.src.stdfix.ulkbits
-    libc.src.stdfix.bitshr
-    libc.src.stdfix.bitsr
-    libc.src.stdfix.bitslr
-    libc.src.stdfix.bitshk
-    libc.src.stdfix.bitsk
-    libc.src.stdfix.bitslk
-    libc.src.stdfix.bitsuhr
-    libc.src.stdfix.bitsur
-    libc.src.stdfix.bitsulr
-    libc.src.stdfix.bitsuhk
-    libc.src.stdfix.bitsuk
-    libc.src.stdfix.bitsulk
-    libc.src.stdfix.countlshr
-    libc.src.stdfix.countlsr
-    libc.src.stdfix.countlslr
-    libc.src.stdfix.countlshk
-    libc.src.stdfix.countlsk
-    libc.src.stdfix.countlslk
-    libc.src.stdfix.countlsuhr
-    libc.src.stdfix.countlsur
-    libc.src.stdfix.countlsulr
-    libc.src.stdfix.countlsuhk
-    libc.src.stdfix.countlsuk
-    libc.src.stdfix.countlsulk
-    libc.src.stdfix.idivr
-    libc.src.stdfix.idivlr
-    libc.src.stdfix.idivk
-    libc.src.stdfix.idivlk
-    libc.src.stdfix.idivur
-    libc.src.stdfix.idivulr
-    libc.src.stdfix.idivuk
-    libc.src.stdfix.idivulk
-    libc.src.stdfix.divir
-    libc.src.stdfix.divilr
-    libc.src.stdfix.divik
-    libc.src.stdfix.divilk
-    libc.src.stdfix.diviur
-    libc.src.stdfix.diviulr
-    libc.src.stdfix.diviuk
-    libc.src.stdfix.diviulk
-    libc.src.stdfix.rdivi
-    libc.src.stdfix.lrdivi
-    libc.src.stdfix.kdivi
-    libc.src.stdfix.lkdivi
-    libc.src.stdfix.urdivi
-    libc.src.stdfix.ulrdivi
-    libc.src.stdfix.ukdivi
-    libc.src.stdfix.ulkdivi
-  )
-endif()
-
-if(LLVM_LIBC_ENABLE_EXPERIMENTAL_ENTRYPOINTS)
-  list(APPEND TARGET_LIBC_ENTRYPOINTS
-    # libintl.h entrypoints
-    libc.src.libintl.bind_textdomain_codeset
-    libc.src.libintl.bindtextdomain
-    libc.src.libintl.dcgettext
-    libc.src.libintl.dcgettext_l
-    libc.src.libintl.dcngettext
-    libc.src.libintl.dcngettext_l
-    libc.src.libintl.dgettext
-    libc.src.libintl.dgettext_l
-    libc.src.libintl.dngettext
-    libc.src.libintl.dngettext_l
-    libc.src.libintl.gettext
-    libc.src.libintl.gettext_l
-    libc.src.libintl.ngettext
-    libc.src.libintl.ngettext_l
-    libc.src.libintl.textdomain
-
-    # regex.h entrypoints
-    libc.src.regex.regcomp
-    libc.src.regex.regexec
-    libc.src.regex.regerror
-    libc.src.regex.regfree
-  )
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
-  ${TARGET_LIBC_ENTRYPOINTS}
-  ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+    # assert.h entrypoints
+    libc.src.assert.__assert_fail
+
+    # compiler entrypoints (no corresponding header)
+    libc.src.compiler.__stack_chk_fail
+
+    # ctype.h entrypoints
+    libc.src.ctype.isalnum
+    libc.src.ctype.isalpha
+    libc.src.ctype.isascii
+    libc.src.ctype.isblank
+    libc.src.ctype.iscntrl
+    libc.src.ctype.isdigit
+    libc.src.ctype.isgraph
+    libc.src.ctype.islower
+    libc.src.ctype.isprint
+    libc.src.ctype.ispunct
+    libc.src.ctype.isspace
+    libc.src.ctype.isupper
+    libc.src.ctype.isxdigit
+    libc.src.ctype.toascii
+    libc.src.ctype.tolower
+    libc.src.ctype.toupper
+
+    # ctype.h entrypoints
+    libc.src.ctype.isalnum_l
+    libc.src.ctype.isalpha_l
+    libc.src.ctype.isblank_l
+    libc.src.ctype.iscntrl_l
+    libc.src.ctype.isdigit_l
+    libc.src.ctype.isgraph_l
+    libc.src.ctype.islower_l
+    libc.src.ctype.isprint_l
+    libc.src.ctype.ispunct_l
+    libc.src.ctype.isspace_l
+    libc.src.ctype.isupper_l
+    libc.src.ctype.isxdigit_l
+    libc.src.ctype.tolower_l
+    libc.src.ctype.toupper_l
+
+    # errno.h entrypoints
+    libc.src.errno.errno
+
+    # locale.h entrypoints
+    libc.src.locale.localeconv
+    libc.src.locale.duplocale
+    libc.src.locale.freelocale
+    libc.src.locale.localeconv
+    libc.src.locale.newlocale
+    libc.src.locale.setlocale
+    libc.src.locale.uselocale
+
+    # setjmp.h entrypoints
+    libc.src.setjmp.longjmp
+    libc.src.setjmp.setjmp
+
+    # string.h entrypoints
+    libc.src.string.memccpy
+    libc.src.string.memchr
+    libc.src.string.memcmp
+    libc.src.string.memcpy
+    libc.src.string.memmem
+    libc.src.string.memmove
+    libc.src.string.mempcpy
+    libc.src.string.memrchr
+    libc.src.string.memset
+    libc.src.string.memset_explicit
+    libc.src.string.stpcpy
+    libc.src.string.stpncpy
+    libc.src.string.strcasestr
+    libc.src.string.strcat
+    libc.src.string.strchr
+    libc.src.string.strchrnul
+    libc.src.string.strcmp
+    libc.src.string.strcoll
+    libc.src.string.strcpy
+    libc.src.string.strcspn
+    libc.src.string.strdup
+    libc.src.string.strerror
+    libc.src.string.strerror_r
+    libc.src.string.strlcat
+    libc.src.string.strlcpy
+    libc.src.string.strlen
+    libc.src.string.strncat
+    libc.src.string.strncmp
+    libc.src.string.strncpy
+    libc.src.string.strndup
+    libc.src.string.strnlen
+    libc.src.string.strnlen_s
+    libc.src.string.strpbrk
+    libc.src.string.strrchr
+    libc.src.string.strsep
+    libc.src.string.strspn
+    libc.src.string.strstr
+    libc.src.string.strtok
+    libc.src.string.strtok_r
+    libc.src.string.strxfrm
+
+    # string.h entrypoints
+    libc.src.string.strcoll_l
+    libc.src.string.strxfrm_l
+
+    # strings.h entrypoints
+    libc.src.strings.bcmp
+    libc.src.strings.bcopy
+    libc.src.strings.bzero
+    libc.src.strings.ffs
+    libc.src.strings.ffsl
+    libc.src.strings.ffsll
+    libc.src.strings.index
+    libc.src.strings.rindex
+    libc.src.strings.strcasecmp
+    libc.src.strings.strncasecmp
+
+    # strings.h entrypoints
+    libc.src.strings.strcasecmp_l
+    libc.src.strings.strncasecmp_l
+
+    # inttypes.h entrypoints
+    libc.src.inttypes.imaxabs
+    libc.src.inttypes.imaxdiv
+    libc.src.inttypes.strtoimax
+    libc.src.inttypes.strtoumax
+
+    # stdio.h entrypoints
+    libc.src.stdio.asprintf
+    libc.src.stdio.feof
+    libc.src.stdio.ferror
+    libc.src.stdio.fflush
+    libc.src.stdio.fclose
+    libc.src.stdio.fgetc
+    libc.src.stdio.fgets
+    libc.src.stdio.fprintf
+    libc.src.stdio.fputc
+    libc.src.stdio.fputs
+    libc.src.stdio.fread
+    libc.src.stdio.fscanf
+    libc.src.stdio.fwrite
+    libc.src.stdio.fseek
+    libc.src.stdio.fseeko
+    libc.src.stdio.ftell
+    libc.src.stdio.ftello
+    libc.src.stdio.getc
+    libc.src.stdio.getchar
+    libc.src.stdio.printf
+    libc.src.stdio.putc
+    libc.src.stdio.putchar
+    libc.src.stdio.puts
+    libc.src.stdio.remove
+    libc.src.stdio.scanf
+    libc.src.stdio.snprintf
+    libc.src.stdio.sprintf
+    libc.src.stdio.sscanf
+    libc.src.stdio.stderr
+    libc.src.stdio.stdin
+    libc.src.stdio.stdout
+    libc.src.stdio.vasprintf
+    libc.src.stdio.vfprintf
+    libc.src.stdio.vfscanf
+    libc.src.stdio.vprintf
+    libc.src.stdio.vscanf
+    libc.src.stdio.vsnprintf
+    libc.src.stdio.vsprintf
+    libc.src.stdio.vsscanf
+    libc.src.stdio.ungetc
+
+    # stdbit.h entrypoints
+    libc.src.stdbit.stdc_bit_ceil_uc
+    libc.src.stdbit.stdc_bit_ceil_ui
+    libc.src.stdbit.stdc_bit_ceil_ul
+    libc.src.stdbit.stdc_bit_ceil_ull
+    libc.src.stdbit.stdc_bit_ceil_us
+    libc.src.stdbit.stdc_bit_floor_uc
+    libc.src.stdbit.stdc_bit_floor_ui
+    libc.src.stdbit.stdc_bit_floor_ul
+    libc.src.stdbit.stdc_bit_floor_ull
+    libc.src.stdbit.stdc_bit_floor_us
+    libc.src.stdbit.stdc_bit_width_uc
+    libc.src.stdbit.stdc_bit_width_ui
+    libc.src.stdbit.stdc_bit_width_ul
+    libc.src.stdbit.stdc_bit_width_ull
+    libc.src.stdbit.stdc_bit_width_us
+    libc.src.stdbit.stdc_count_ones_uc
+    libc.src.stdbit.stdc_count_ones_ui
+    libc.src.stdbit.stdc_count_ones_ul
+    libc.src.stdbit.stdc_count_ones_ull
+    libc.src.stdbit.stdc_count_ones_us
+    libc.src.stdbit.stdc_count_zeros_uc
+    libc.src.stdbit.stdc_count_zeros_ui
+    libc.src.stdbit.stdc_count_zeros_ul
+    libc.src.stdbit.stdc_count_zeros_ull
+    libc.src.stdbit.stdc_count_zeros_us
+    libc.src.stdbit.stdc_first_leading_one_uc
+    libc.src.stdbit.stdc_first_leading_one_ui
+    libc.src.stdbit.stdc_first_leading_one_ul
+    libc.src.stdbit.stdc_first_leading_one_ull
+    libc.src.stdbit.stdc_first_leading_one_us
+    libc.src.stdbit.stdc_first_leading_zero_uc
+    libc.src.stdbit.stdc_first_leading_zero_ui
+    libc.src.stdbit.stdc_first_leading_zero_ul
+    libc.src.stdbit.stdc_first_leading_zero_ull
+    libc.src.stdbit.stdc_first_leading_zero_us
+    libc.src.stdbit.stdc_first_trailing_one_uc
+    libc.src.stdbit.stdc_first_trailing_one_ui
+    libc.src.stdbit.stdc_first_trailing_one_ul
+    libc.src.stdbit.stdc_first_trailing_one_ull
+    libc.src.stdbit.stdc_first_trailing_one_us
+    libc.src.stdbit.stdc_first_trailing_zero_uc
+    libc.src.stdbit.stdc_first_trailing_zero_ui
+    libc.src.stdbit.stdc_first_trailing_zero_ul
+    libc.src.stdbit.stdc_first_trailing_zero_ull
+    libc.src.stdbit.stdc_first_trailing_zero_us
+    libc.src.stdbit.stdc_has_single_bit_uc
+    libc.src.stdbit.stdc_has_single_bit_ui
+    libc.src.stdbit.stdc_has_single_bit_ul
+    libc.src.stdbit.stdc_has_single_bit_ull
+    libc.src.stdbit.stdc_has_single_bit_us
+    libc.src.stdbit.stdc_leading_ones_uc
+    libc.src.stdbit.stdc_leading_ones_ui
+    libc.src.stdbit.stdc_leading_ones_ul
+    libc.src.stdbit.stdc_leading_ones_ull
+    libc.src.stdbit.stdc_leading_ones_us
+    libc.src.stdbit.stdc_leading_zeros_uc
+    libc.src.stdbit.stdc_leading_zeros_ui
+    libc.src.stdbit.stdc_leading_zeros_ul
+    libc.src.stdbit.stdc_leading_zeros_ull
+    libc.src.stdbit.stdc_leading_zeros_us
+    libc.src.stdbit.stdc_trailing_ones_uc
+    libc.src.stdbit.stdc_trailing_ones_ui
+    libc.src.stdbit.stdc_trailing_ones_ul
+    libc.src.stdbit.stdc_trailing_ones_ull
+    libc.src.stdbit.stdc_trailing_ones_us
+    libc.src.stdbit.stdc_trailing_zeros_uc
+    libc.src.stdbit.stdc_trailing_zeros_ui
+    libc.src.stdbit.stdc_trailing_zeros_ul
+    libc.src.stdbit.stdc_trailing_zeros_ull
+    libc.src.stdbit.stdc_trailing_zeros_us
+
+    # stdlib.h entrypoints
+    libc.src.stdlib._Exit
+    libc.src.stdlib.a64l
+    libc.src.stdlib.abort
+    libc.src.stdlib.abs
+    libc.src.stdlib.aligned_alloc
+    libc.src.stdlib.atexit
+    libc.src.stdlib.atof
+    libc.src.stdlib.atoi
+    libc.src.stdlib.atol
+    libc.src.stdlib.atoll
+    libc.src.stdlib.bsearch
+    libc.src.stdlib.calloc
+    libc.src.stdlib.div
+    libc.src.stdlib.exit
+    libc.src.stdlib.free
+    libc.src.stdlib.l64a
+    libc.src.stdlib.labs
+    libc.src.stdlib.ldiv
+    libc.src.stdlib.llabs
+    libc.src.stdlib.lldiv
+    libc.src.stdlib.malloc
+    libc.src.stdlib.malloc_usable_size
+    libc.src.stdlib.memalignment
+    libc.src.stdlib.qsort
+    libc.src.stdlib.qsort_r
+    libc.src.stdlib.rand
+    libc.src.stdlib.realloc
+    libc.src.stdlib.srand
+    # libc.src.stdlib.strfromd
+    # libc.src.stdlib.strfromf
+    # libc.src.stdlib.strfroml
+    libc.src.stdlib.strtod
+    libc.src.stdlib.strtof
+    libc.src.stdlib.strtol
+    libc.src.stdlib.strtold
+    libc.src.stdlib.strtoll
+    libc.src.stdlib.strtoul
+    libc.src.stdlib.strtoull
+
+    # stdlib.h entrypoints
+    libc.src.stdlib.strtod_l
+    libc.src.stdlib.strtof_l
+    libc.src.stdlib.strtol_l
+    libc.src.stdlib.strtold_l
+    libc.src.stdlib.strtoll_l
+    libc.src.stdlib.strtoul_l
+    libc.src.stdlib.strtoull_l
+
+    # time.h entrypoints
+    libc.src.time.asctime
+    libc.src.time.asctime_r
+    libc.src.time.clock
+    libc.src.time.ctime
+    libc.src.time.ctime_r
+    libc.src.time.difftime
+    libc.src.time.gmtime
+    libc.src.time.gmtime_r
+    libc.src.time.localtime
+    libc.src.time.localtime_r
+    libc.src.time.mktime
+    libc.src.time.strftime
+    libc.src.time.strftime_l
+    libc.src.time.timespec_get
+
+    # wchar.h entrypoints
+    libc.src.wchar.btowc
+    libc.src.wchar.wcslen
+    libc.src.wchar.wctob
+
+    # wctype.h entrypoints
+    libc.src.wctype.iswalpha
+    libc.src.wctype.iswgraph
+    libc.src.wctype.iswcntrl
+    libc.src.wctype.iswdigit
+    libc.src.wctype.iswupper
+    libc.src.wctype.iswalnum
+    libc.src.wctype.iswlower
+    libc.src.wctype.iswspace
+    libc.src.wctype.iswblank
+    libc.src.wctype.iswxdigit
+    libc.src.wctype.iswpunct
+    libc.src.wctype.iswprint
+    libc.src.wctype.iswctype
+    libc.src.wctype.wctype
+    # internal entrypoints
+    libc.startup.baremetal.init
+    libc.startup.baremetal.fini
+)
+
+set(TARGET_LIBM_ENTRYPOINTS
+    # complex.h entrypoints
+    libc.src.complex.cabs
+    libc.src.complex.cabsf
+    libc.src.complex.carg
+    libc.src.complex.cargf
+    libc.src.complex.creal
+    libc.src.complex.crealf
+    libc.src.complex.creall
+    libc.src.complex.cimag
+    libc.src.complex.cimagf
+    libc.src.complex.cimagl
+    libc.src.complex.conj
+    libc.src.complex.conjf
+    libc.src.complex.conjl
+    libc.src.complex.cproj
+    libc.src.complex.cprojf
+    libc.src.complex.cprojl
+
+    # fenv.h entrypoints
+    libc.src.fenv.feclearexcept
+    libc.src.fenv.fedisableexcept
+    libc.src.fenv.feenableexcept
+    libc.src.fenv.fegetenv
+    libc.src.fenv.fegetexcept
+    libc.src.fenv.fegetexceptflag
+    libc.src.fenv.fegetround
+    libc.src.fenv.feholdexcept
+    libc.src.fenv.feraiseexcept
+    libc.src.fenv.fesetenv
+    libc.src.fenv.fesetexcept
+    libc.src.fenv.fesetexceptflag
+    libc.src.fenv.fesetround
+    libc.src.fenv.fetestexcept
+    libc.src.fenv.fetestexceptflag
+    libc.src.fenv.feupdateenv
+
+    # math.h entrypoints
+    libc.src.math.acos
+    libc.src.math.acosf
+    libc.src.math.acoshf
+    libc.src.math.acospif
+    libc.src.math.asin
+    libc.src.math.asinf
+    libc.src.math.asinhf
+    libc.src.math.asinpi
+    libc.src.math.asinpif
+    libc.src.math.atan2
+    libc.src.math.atan2f
+    libc.src.math.atan2f128
+    libc.src.math.atan2l
+    libc.src.math.atan
+    libc.src.math.atanf
+    libc.src.math.atanhf
+    libc.src.math.canonicalize
+    libc.src.math.canonicalizef
+    libc.src.math.canonicalizel
+    libc.src.math.cbrt
+    libc.src.math.cbrtf
+    libc.src.math.cbrtbf16
+    libc.src.math.ceil
+    libc.src.math.ceilf
+    libc.src.math.ceilf128
+    libc.src.math.ceill
+    libc.src.math.copysign
+    libc.src.math.copysignf
+    libc.src.math.copysignf128
+    libc.src.math.copysignf80
+    libc.src.math.copysignl
+    libc.src.math.cos
+    libc.src.math.cosf
+    libc.src.math.coshf
+    libc.src.math.cospif
+    libc.src.math.dfmal
+    libc.src.math.dmull
+    libc.src.math.dsqrtl
+    libc.src.math.daddl
+    libc.src.math.ddivl
+    libc.src.math.dsubl
+    libc.src.math.erff
+    libc.src.math.exp
+    libc.src.math.exp10
+    libc.src.math.exp10f
+    libc.src.math.exp10m1f
+    libc.src.math.exp2
+    libc.src.math.exp2f
+    libc.src.math.exp2m1f
+    libc.src.math.expf
+    libc.src.math.expm1
+    libc.src.math.expm1f
+    libc.src.math.fabs
+    libc.src.math.fabsf
+    libc.src.math.fabsf128
+    libc.src.math.fabsf80
+    libc.src.math.fabsl
+    libc.src.math.fadd
+    libc.src.math.faddl
+    libc.src.math.fadd
+    libc.src.math.fdim
+    libc.src.math.fdimf
+    libc.src.math.fdimf128
+    libc.src.math.fdiml
+    libc.src.math.fdiv
+    libc.src.math.fdivl
+    libc.src.math.ffma
+    libc.src.math.ffmal
+    libc.src.math.floor
+    libc.src.math.floorf
+    libc.src.math.floorf128
+    libc.src.math.floorl
+    libc.src.math.fma
+    libc.src.math.fmabf16
+    libc.src.math.fmaf
+    libc.src.math.fmax
+    libc.src.math.fmaxf
+    libc.src.math.fmaxf128
+    libc.src.math.fmaximum
+    libc.src.math.fmaximum_mag
+    libc.src.math.fmaximum_mag_num
+    libc.src.math.fmaximum_mag_numf
+    libc.src.math.fmaximum_mag_numf128
+    libc.src.math.fmaximum_mag_numl
+    libc.src.math.fmaximum_magf
+    libc.src.math.fmaximum_magf128
+    libc.src.math.fmaximum_magl
+    libc.src.math.fmaximum_num
+    libc.src.math.fmaximum_numf
+    libc.src.math.fmaximum_numf128
+    libc.src.math.fmaximum_numl
+    libc.src.math.fmaximumf
+    libc.src.math.fmaximumf128
+    libc.src.math.fmaximuml
+    libc.src.math.fmaxl
+    libc.src.math.fmin
+    libc.src.math.fminf
+    libc.src.math.fminf128
+    libc.src.math.fminimum
+    libc.src.math.fminimum_mag
+    libc.src.math.fminimum_mag_num
+    libc.src.math.fminimum_mag_numf
+    libc.src.math.fminimum_mag_numf128
+    libc.src.math.fminimum_mag_numl
+    libc.src.math.fminimum_magf
+    libc.src.math.fminimum_magf128
+    libc.src.math.fminimum_magl
+    libc.src.math.fminimum_num
+    libc.src.math.fminimum_numf
+    libc.src.math.fminimum_numf128
+    libc.src.math.fminimum_numl
+    libc.src.math.fminimumf
+    libc.src.math.fminimumf128
+    libc.src.math.fminimuml
+    libc.src.math.fminl
+    libc.src.math.fmod
+    libc.src.math.fmodf
+    libc.src.math.fmodl
+    libc.src.math.fmul
+    libc.src.math.fmull
+    libc.src.math.frexp
+    libc.src.math.frexpf
+    libc.src.math.frexpl
+    libc.src.math.fromfp
+    libc.src.math.fromfpf
+    libc.src.math.fromfpl
+    libc.src.math.fromfpx
+    libc.src.math.fromfpxf
+    libc.src.math.fromfpxl
+    libc.src.math.fsqrt
+    libc.src.math.fsqrtl
+    libc.src.math.fsub
+    libc.src.math.fsubl
+    libc.src.math.getpayload
+    libc.src.math.getpayloadf
+    libc.src.math.getpayloadl
+    libc.src.math.hypot
+    libc.src.math.hypotf
+    libc.src.math.ilogb
+    libc.src.math.ilogbf
+    libc.src.math.ilogbl
+    libc.src.math.iscanonical
+    libc.src.math.iscanonicalf
+    libc.src.math.iscanonicalf128
+    libc.src.math.iscanonicall
+    libc.src.math.isnan
+    libc.src.math.isnanf
+    libc.src.math.isnanf128
+    libc.src.math.isnanl
+    libc.src.math.issignaling
+    libc.src.math.issignalingf
+    libc.src.math.issignalingf128
+    libc.src.math.issignalingl
+    libc.src.math.ldexp
+    libc.src.math.ldexpf
+    libc.src.math.ldexpl
+    libc.src.math.lgammaf
+    libc.src.math.llogb
+    libc.src.math.llogbf
+    libc.src.math.llogbl
+    libc.src.math.llrint
+    libc.src.math.llrintf
+    libc.src.math.llrintf128
+    libc.src.math.llrintl
+    libc.src.math.llround
+    libc.src.math.llroundf
+    libc.src.math.llroundf128
+    libc.src.math.llroundl
+    libc.src.math.log
+    libc.src.math.log10
+    libc.src.math.log10f
+    libc.src.math.log1p
+    libc.src.math.log1pf
+    libc.src.math.log2
+    libc.src.math.log2f
+    libc.src.math.logb
+    libc.src.math.logbf
+    libc.src.math.logbl
+    libc.src.math.logf
+    libc.src.math.lrint
+    libc.src.math.lrintf
+    libc.src.math.lrintf128
+    libc.src.math.lrintl
+    libc.src.math.lround
+    libc.src.math.lroundf
+    libc.src.math.lroundf128
+    libc.src.math.lroundl
+    libc.src.math.modf
+    libc.src.math.modff
+    libc.src.math.modfl
+    libc.src.math.nan
+    libc.src.math.nanf
+    libc.src.math.nanl
+    libc.src.math.nearbyint
+    libc.src.math.nearbyintf
+    libc.src.math.nearbyintf128
+    libc.src.math.nearbyintl
+    libc.src.math.nextafter
+    libc.src.math.nextafterf
+    libc.src.math.nextafterl
+    libc.src.math.nextdown
+    libc.src.math.nextdownf
+    libc.src.math.nextdownl
+    libc.src.math.nexttoward
+    libc.src.math.nexttowardf
+    libc.src.math.nexttowardl
+    libc.src.math.nextup
+    libc.src.math.nextupf
+    libc.src.math.nextupl
+    libc.src.math.pow
+    libc.src.math.powf
+    libc.src.math.remainder
+    libc.src.math.remainderf
+    libc.src.math.remainderl
+    libc.src.math.remquo
+    libc.src.math.remquof
+    libc.src.math.remquol
+    libc.src.math.rint
+    libc.src.math.rintf
+    libc.src.math.rintf128
+    libc.src.math.rintl
+    libc.src.math.round
+    libc.src.math.roundeven
+    libc.src.math.roundevenf
+    libc.src.math.roundevenf128
+    libc.src.math.roundevenl
+    libc.src.math.roundf
+    libc.src.math.roundf128
+    libc.src.math.roundl
+    libc.src.math.scalbln
+    libc.src.math.scalblnf
+    libc.src.math.scalblnl
+    libc.src.math.scalbn
+    libc.src.math.scalbnf
+    libc.src.math.scalbnl
+    libc.src.math.setpayload
+    libc.src.math.setpayloadf
+    libc.src.math.setpayloadl
+    libc.src.math.setpayloadsig
+    libc.src.math.setpayloadsigf
+    libc.src.math.setpayloadsigl
+    libc.src.math.sin
+    libc.src.math.sincos
+    libc.src.math.sincosf
+    libc.src.math.sinf
+    libc.src.math.sinhf
+    libc.src.math.sinpif
+    libc.src.math.sqrt
+    libc.src.math.sqrtf
+    libc.src.math.sqrtf128
+    libc.src.math.sqrtl
+    libc.src.math.tan
+    libc.src.math.tanf
+    libc.src.math.tanhf
+    libc.src.math.totalorder
+    libc.src.math.totalorderf
+    libc.src.math.totalorderl
+    libc.src.math.totalordermag
+    libc.src.math.totalordermagf
+    libc.src.math.totalordermagl
+    libc.src.math.trunc
+    libc.src.math.truncf
+    libc.src.math.truncf128
+    libc.src.math.truncl
+    libc.src.math.ufromfp
+    libc.src.math.ufromfpf
+    libc.src.math.ufromfpl
+    libc.src.math.ufromfpx
+    libc.src.math.ufromfpxf
+    libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_CFLOAT16)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # complex.h C23 _Complex _Float16 entrypoints
+    libc.src.complex.crealf16
+    libc.src.complex.cimagf16
+    libc.src.complex.conjf16
+    libc.src.complex.cprojf16
+  )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT16)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C23 _Float16 entrypoints
+    libc.src.math.acosf16
+    libc.src.math.acoshf16
+    libc.src.math.asinf16
+    libc.src.math.asinhf16
+    libc.src.math.atan2f16
+    libc.src.math.canonicalizef16
+    libc.src.math.cbrtf16
+    libc.src.math.ceilf16
+    libc.src.math.copysignf16
+    libc.src.math.cosf16
+    libc.src.math.coshf16
+    libc.src.math.cospif16
+    libc.src.math.exp10f16
+    libc.src.math.exp10m1f16
+    libc.src.math.exp2f16
+    libc.src.math.exp2m1f16
+    libc.src.math.expf16
+    libc.src.math.expm1f16
+    libc.src.math.f16add
+    libc.src.math.f16addf
+    libc.src.math.f16addl
+    libc.src.math.f16div
+    libc.src.math.f16divf
+    libc.src.math.f16divl
+    libc.src.math.f16fma
+    libc.src.math.f16fmaf
+    libc.src.math.f16fmal
+    libc.src.math.f16mul
+    libc.src.math.f16mulf
+    libc.src.math.f16mull
+    libc.src.math.f16sqrt
+    libc.src.math.f16sqrtf
+    libc.src.math.f16sqrtl
+    libc.src.math.f16sub
+    libc.src.math.f16subf
+    libc.src.math.f16subl
+    libc.src.math.fabsf16
+    libc.src.math.fdimf16
+    libc.src.math.floorf16
+    libc.src.math.fmaf16
+    libc.src.math.fmaxf16
+    libc.src.math.fmaximum_mag_numf16
+    libc.src.math.fmaximum_magf16
+    libc.src.math.fmaximum_numf16
+    libc.src.math.fmaximumf16
+    libc.src.math.fminf16
+    libc.src.math.fminimum_mag_numf16
+    libc.src.math.fminimum_magf16
+    libc.src.math.fminimum_numf16
+    libc.src.math.fminimumf16
+    libc.src.math.fmodf16
+    libc.src.math.frexpf16
+    libc.src.math.fromfpf16
+    libc.src.math.fromfpxf16
+    libc.src.math.getpayloadf16
+    libc.src.math.hypotf16
+    libc.src.math.ilogbf16
+    libc.src.math.iscanonicalf16
+    libc.src.math.isnanf16
+    libc.src.math.issignalingf16
+    libc.src.math.ldexpf16
+    libc.src.math.lgammaf16
+    libc.src.math.llogbf16
+    libc.src.math.llrintf16
+    libc.src.math.llroundf16
+    libc.src.math.log10f16
+    libc.src.math.log10p1f16
+    libc.src.math.log2f16
+    libc.src.math.logbf16
+    libc.src.math.logf16
+    libc.src.math.lrintf16
+    libc.src.math.lroundf16
+    libc.src.math.modff16
+    libc.src.math.nanf16
+    libc.src.math.nearbyintf16
+    libc.src.math.nextafterf16
+    libc.src.math.nextdownf16
+    libc.src.math.nexttowardf16
+    libc.src.math.nextupf16
+    libc.src.math.remainderf16
+    libc.src.math.remquof16
+    libc.src.math.rintf16
+    libc.src.math.roundevenf16
+    libc.src.math.roundf16
+    libc.src.math.scalblnf16
+    libc.src.math.scalbnf16
+    libc.src.math.setpayloadf16
+    libc.src.math.setpayloadsigf16
+    libc.src.math.sinf16
+    libc.src.math.sinhf16
+    libc.src.math.sinpif16
+    libc.src.math.sqrtf16
+    libc.src.math.tanf16
+    libc.src.math.tanhf16
+    libc.src.math.tanpif16
+    libc.src.math.totalorderf16
+    libc.src.math.totalordermagf16
+    libc.src.math.truncf16
+    libc.src.math.ufromfpf16
+    libc.src.math.ufromfpxf16
+  )
+
+  if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+    list(APPEND TARGET_LIBM_ENTRYPOINTS
+      # math.h C23 mixed _Float16 and _Float128 entrypoints
+      libc.src.math.f16addf128
+      libc.src.math.f16divf128
+      libc.src.math.f16fmaf128
+      libc.src.math.f16mulf128
+      libc.src.math.f16sqrtf128
+      libc.src.math.f16subf128
+    )
+  endif()
+endif()
+
+if(LIBC_TYPES_HAS_CFLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # complex.h C23 _Complex _Float128 entrypoints
+    libc.src.complex.crealf128
+    libc.src.complex.cimagf128
+    libc.src.complex.conjf128
+    libc.src.complex.cprojf128
+  )
+endif()
+
+if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C23 _Float128 entrypoints
+    libc.src.math.canonicalizef128
+    libc.src.math.daddf128
+    libc.src.math.ddivf128
+    libc.src.math.dfmaf128
+    libc.src.math.dmulf128
+    libc.src.math.dsqrtf128
+    libc.src.math.dsubf128
+    libc.src.math.faddf128
+    libc.src.math.fdivf128
+    libc.src.math.ffmaf128
+    libc.src.math.fmodf128
+    libc.src.math.fmulf128
+    libc.src.math.frexpf128
+    libc.src.math.fromfpf128
+    libc.src.math.fromfpxf128
+    libc.src.math.fsqrtf128
+    libc.src.math.fsubf128
+    libc.src.math.getpayloadf128
+    libc.src.math.ilogbf128
+    libc.src.math.ldexpf128
+    libc.src.math.llogbf128
+    libc.src.math.logbf128
+    libc.src.math.modff128
+    libc.src.math.nanf128
+    libc.src.math.nextafterf128
+    libc.src.math.nextdownf128
+    libc.src.math.nextupf128
+    libc.src.math.remainderf128
+    libc.src.math.remquof128
+    libc.src.math.scalblnf128
+    libc.src.math.scalbnf128
+    libc.src.math.setpayloadf128
+    libc.src.math.setpayloadsigf128
+    libc.src.math.totalorderf128
+    libc.src.math.totalordermagf128
+    libc.src.math.ufromfpf128
+    libc.src.math.ufromfpxf128
+  )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+  # bfloat16 entrypoints
+  libc.src.math.atanbf16
+  libc.src.math.acosbf16
+  libc.src.math.asinbf16
+  libc.src.math.bf16add
+  libc.src.math.bf16addf
+  libc.src.math.bf16addl
+  libc.src.math.bf16div
+  libc.src.math.bf16divf
+  libc.src.math.bf16divl
+  libc.src.math.bf16fma
+  libc.src.math.bf16fmaf
+  libc.src.math.bf16fmal
+  libc.src.math.bf16mul
+  libc.src.math.bf16mulf
+  libc.src.math.bf16mull
+  libc.src.math.bf16sub
+  libc.src.math.bf16subf
+  libc.src.math.bf16subl
+  libc.src.math.canonicalizebf16
+  libc.src.math.ceilbf16
+  libc.src.math.copysignbf16
+  libc.src.math.exp2bf16
+  libc.src.math.expbf16
+  libc.src.math.fabsbf16
+  libc.src.math.fdimbf16
+  libc.src.math.floorbf16
+  libc.src.math.fmaxbf16
+  libc.src.math.fmaximumbf16
+  libc.src.math.fmaximum_magbf16
+  libc.src.math.fmaximum_mag_numbf16
+  libc.src.math.fmaximum_numbf16
+  libc.src.math.fminbf16
+  libc.src.math.fminimumbf16
+  libc.src.math.fminimum_magbf16
+  libc.src.math.fminimum_mag_numbf16
+  libc.src.math.fminimum_numbf16
+  libc.src.math.fmodbf16
+  libc.src.math.frexpbf16
+  libc.src.math.fromfpbf16
+  libc.src.math.fromfpxbf16
+  libc.src.math.getpayloadbf16
+  libc.src.math.hypotbf16
+  libc.src.math.ilogbbf16
+  libc.src.math.iscanonicalbf16
+  libc.src.math.issignalingbf16
+  libc.src.math.ldexpbf16
+  libc.src.math.llogbbf16
+  libc.src.math.llrintbf16
+  libc.src.math.llroundbf16
+  libc.src.math.log_bf16
+  libc.src.math.logbbf16
+  libc.src.math.lrintbf16
+  libc.src.math.lroundbf16
+  libc.src.math.modfbf16
+  libc.src.math.nanbf16
+  libc.src.math.nearbyintbf16
+  libc.src.math.nextafterbf16
+  libc.src.math.nextdownbf16
+  libc.src.math.nexttowardbf16
+  libc.src.math.nextupbf16
+  libc.src.math.remainderbf16
+  libc.src.math.remquobf16
+  libc.src.math.rintbf16
+  libc.src.math.roundbf16
+  libc.src.math.roundevenbf16
+  libc.src.math.scalblnbf16
+  libc.src.math.scalbnbf16
+  libc.src.math.setpayloadbf16
+  libc.src.math.setpayloadsigbf16
+  libc.src.math.sqrtbf16
+  libc.src.math.tanbf16
+  libc.src.math.truncbf16
+  libc.src.math.totalorderbf16
+  libc.src.math.totalordermagbf16
+  libc.src.math.ufromfpbf16
+  libc.src.math.ufromfpxbf16
+)
+
+if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C++23 mixed bfloat16 and _Float128 entrypoints
+    libc.src.math.bf16addf128
+    libc.src.math.bf16divf128
+    libc.src.math.bf16fmaf128
+    libc.src.math.bf16mulf128
+    libc.src.math.bf16subf128
+  )
+endif()
+
+if(LIBC_COMPILER_HAS_FIXED_POINT)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # stdfix.h _Fract and _Accum entrypoints
+    libc.src.stdfix.abshk
+    libc.src.stdfix.abshr
+    libc.src.stdfix.absk
+    libc.src.stdfix.abslk
+    libc.src.stdfix.abslr
+    libc.src.stdfix.absr
+    libc.src.stdfix.exphk
+    libc.src.stdfix.expk
+    libc.src.stdfix.roundhk
+    libc.src.stdfix.roundhr
+    libc.src.stdfix.roundk
+    libc.src.stdfix.roundlk
+    libc.src.stdfix.roundlr
+    libc.src.stdfix.roundr
+    libc.src.stdfix.rounduhk
+    libc.src.stdfix.rounduhr
+    libc.src.stdfix.rounduk
+    libc.src.stdfix.roundulk
+    libc.src.stdfix.roundulr
+    libc.src.stdfix.roundur
+    libc.src.stdfix.sqrtuhk
+    libc.src.stdfix.sqrtuhr
+    libc.src.stdfix.sqrtuk
+    libc.src.stdfix.sqrtur
+    # libc.src.stdfix.sqrtulk
+    libc.src.stdfix.sqrtulr
+    libc.src.stdfix.uhksqrtus
+    libc.src.stdfix.uksqrtui
+    libc.src.stdfix.hrbits
+    libc.src.stdfix.uhrbits
+    libc.src.stdfix.rbits
+    libc.src.stdfix.urbits
+    libc.src.stdfix.lrbits
+    libc.src.stdfix.ulrbits
+    libc.src.stdfix.hkbits
+    libc.src.stdfix.uhkbits
+    libc.src.stdfix.kbits
+    libc.src.stdfix.ukbits
+    libc.src.stdfix.lkbits
+    libc.src.stdfix.ulkbits
+    libc.src.stdfix.bitshr
+    libc.src.stdfix.bitsr
+    libc.src.stdfix.bitslr
+    libc.src.stdfix.bitshk
+    libc.src.stdfix.bitsk
+    libc.src.stdfix.bitslk
+    libc.src.stdfix.bitsuhr
+    libc.src.stdfix.bitsur
+    libc.src.stdfix.bitsulr
+    libc.src.stdfix.bitsuhk
+    libc.src.stdfix.bitsuk
+    libc.src.stdfix.bitsulk
+    libc.src.stdfix.countlshr
+    libc.src.stdfix.countlsr
+    libc.src.stdfix.countlslr
+    libc.src.stdfix.countlshk
+    libc.src.stdfix.countlsk
+    libc.src.stdfix.countlslk
+    libc.src.stdfix.countlsuhr
+    libc.src.stdfix.countlsur
+    libc.src.stdfix.countlsulr
+    libc.src.stdfix.countlsuhk
+    libc.src.stdfix.countlsuk
+    libc.src.stdfix.countlsulk
+    libc.src.stdfix.idivr
+    libc.src.stdfix.idivlr
+    libc.src.stdfix.idivk
+    libc.src.stdfix.idivlk
+    libc.src.stdfix.idivur
+    libc.src.stdfix.idivulr
+    libc.src.stdfix.idivuk
+    libc.src.stdfix.idivulk
+    libc.src.stdfix.divir
+    libc.src.stdfix.divilr
+    libc.src.stdfix.divik
+    libc.src.stdfix.divilk
+    libc.src.stdfix.diviur
+    libc.src.stdfix.diviulr
+    libc.src.stdfix.diviuk
+    libc.src.stdfix.diviulk
+    libc.src.stdfix.rdivi
+    libc.src.stdfix.lrdivi
+    libc.src.stdfix.kdivi
+    libc.src.stdfix.lkdivi
+    libc.src.stdfix.urdivi
+    libc.src.stdfix.ulrdivi
+    libc.src.stdfix.ukdivi
+    libc.src.stdfix.ulkdivi
+  )
+endif()
+
+if(LLVM_LIBC_ENABLE_EXPERIMENTAL_ENTRYPOINTS)
+  list(APPEND TARGET_LIBC_ENTRYPOINTS
+    # libintl.h entrypoints
+    libc.src.libintl.bind_textdomain_codeset
+    libc.src.libintl.bindtextdomain
+    libc.src.libintl.dcgettext
+    libc.src.libintl.dcgettext_l
+    libc.src.libintl.dcngettext
+    libc.src.libintl.dcngettext_l
+    libc.src.libintl.dgettext
+    libc.src.libintl.dgettext_l
+    libc.src.libintl.dngettext
+    libc.src.libintl.dngettext_l
+    libc.src.libintl.gettext
+    libc.src.libintl.gettext_l
+    libc.src.libintl.ngettext
+    libc.src.libintl.ngettext_l
+    libc.src.libintl.textdomain
+
+    # regex.h entrypoints
+    libc.src.regex.regcomp
+    libc.src.regex.regexec
+    libc.src.regex.regerror
+    libc.src.regex.regfree
+  )
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+  ${TARGET_LIBC_ENTRYPOINTS}
+  ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/baremetal/riscv/entrypoints.txt b/libc/config/baremetal/riscv/entrypoints.txt
index b847a2bb1f47f0..e2de5c2757afdb 100644
--- a/libc/config/baremetal/riscv/entrypoints.txt
+++ b/libc/config/baremetal/riscv/entrypoints.txt
@@ -1,1026 +1,1028 @@
-set(TARGET_LIBC_ENTRYPOINTS
-    # assert.h entrypoints
-    libc.src.assert.__assert_fail
-
-    # compiler entrypoints (no corresponding header)
-    libc.src.compiler.__stack_chk_fail
-
-    # ctype.h entrypoints
-    libc.src.ctype.isalnum
-    libc.src.ctype.isalpha
-    libc.src.ctype.isascii
-    libc.src.ctype.isblank
-    libc.src.ctype.iscntrl
-    libc.src.ctype.isdigit
-    libc.src.ctype.isgraph
-    libc.src.ctype.islower
-    libc.src.ctype.isprint
-    libc.src.ctype.ispunct
-    libc.src.ctype.isspace
-    libc.src.ctype.isupper
-    libc.src.ctype.isxdigit
-    libc.src.ctype.toascii
-    libc.src.ctype.tolower
-    libc.src.ctype.toupper
-
-    # ctype.h entrypoints
-    libc.src.ctype.isalnum_l
-    libc.src.ctype.isalpha_l
-    libc.src.ctype.isblank_l
-    libc.src.ctype.iscntrl_l
-    libc.src.ctype.isdigit_l
-    libc.src.ctype.isgraph_l
-    libc.src.ctype.islower_l
-    libc.src.ctype.isprint_l
-    libc.src.ctype.ispunct_l
-    libc.src.ctype.isspace_l
-    libc.src.ctype.isupper_l
-    libc.src.ctype.isxdigit_l
-    libc.src.ctype.tolower_l
-    libc.src.ctype.toupper_l
-
-    # errno.h entrypoints
-    libc.src.errno.errno
-
-    # locale.h entrypoints
-    libc.src.locale.localeconv
-    libc.src.locale.duplocale
-    libc.src.locale.freelocale
-    libc.src.locale.localeconv
-    libc.src.locale.newlocale
-    libc.src.locale.setlocale
-    libc.src.locale.uselocale
-
-    # setjmp.h entrypoints
-    # libc.src.setjmp.longjmp
-    # libc.src.setjmp.setjmp
-
-    # string.h entrypoints
-    libc.src.string.memccpy
-    libc.src.string.memchr
-    libc.src.string.memcmp
-    libc.src.string.memcpy
-    libc.src.string.memmem
-    libc.src.string.memmove
-    libc.src.string.mempcpy
-    libc.src.string.memrchr
-    libc.src.string.memset
-    libc.src.string.memset_explicit
-    libc.src.string.stpcpy
-    libc.src.string.stpncpy
-    libc.src.string.strcasestr
-    libc.src.string.strcat
-    libc.src.string.strchr
-    libc.src.string.strchrnul
-    libc.src.string.strcmp
-    libc.src.string.strcoll
-    libc.src.string.strcpy
-    libc.src.string.strcspn
-    libc.src.string.strdup
-    libc.src.string.strerror
-    libc.src.string.strerror_r
-    libc.src.string.strlcat
-    libc.src.string.strlcpy
-    libc.src.string.strlen
-    libc.src.string.strncat
-    libc.src.string.strncmp
-    libc.src.string.strncpy
-    libc.src.string.strndup
-    libc.src.string.strnlen
-    libc.src.string.strnlen_s
-    libc.src.string.strpbrk
-    libc.src.string.strrchr
-    libc.src.string.strsep
-    libc.src.string.strspn
-    libc.src.string.strstr
-    libc.src.string.strtok
-    libc.src.string.strtok_r
-    libc.src.string.strxfrm
-
-    # string.h entrypoints
-    libc.src.string.strcoll_l
-    libc.src.string.strxfrm_l
-
-    # strings.h entrypoints
-    libc.src.strings.bcmp
-    libc.src.strings.bcopy
-    libc.src.strings.bzero
-    libc.src.strings.ffs
-    libc.src.strings.ffsl
-    libc.src.strings.ffsll
-    libc.src.strings.index
-    libc.src.strings.rindex
-    libc.src.strings.strcasecmp
-    libc.src.strings.strncasecmp
-
-    # strings.h entrypoints
-    libc.src.strings.strcasecmp_l
-    libc.src.strings.strncasecmp_l
-
-    # inttypes.h entrypoints
-    libc.src.inttypes.imaxabs
-    libc.src.inttypes.imaxdiv
-    libc.src.inttypes.strtoimax
-    libc.src.inttypes.strtoumax
-
-    # stdio.h entrypoints
-    libc.src.stdio.asprintf
-    libc.src.stdio.feof
-    libc.src.stdio.ferror
-    libc.src.stdio.fgetc
-    libc.src.stdio.fgets
-    libc.src.stdio.fprintf
-    libc.src.stdio.fputc
-    libc.src.stdio.fputs
-    libc.src.stdio.fread
-    libc.src.stdio.fscanf
-    libc.src.stdio.fwrite
-    libc.src.stdio.getchar
-    libc.src.stdio.printf
-    libc.src.stdio.putc
-    libc.src.stdio.putchar
-    libc.src.stdio.puts
-    libc.src.stdio.remove
-    libc.src.stdio.scanf
-    libc.src.stdio.snprintf
-    libc.src.stdio.sprintf
-    libc.src.stdio.sscanf
-    libc.src.stdio.stderr
-    libc.src.stdio.stdin
-    libc.src.stdio.stdout
-    libc.src.stdio.vasprintf
-    libc.src.stdio.vfprintf
-    libc.src.stdio.vfscanf
-    libc.src.stdio.vprintf
-    libc.src.stdio.vscanf
-    libc.src.stdio.vsnprintf
-    libc.src.stdio.vsprintf
-    libc.src.stdio.vsscanf
-
-    # stdbit.h entrypoints
-    libc.src.stdbit.stdc_bit_ceil_uc
-    libc.src.stdbit.stdc_bit_ceil_ui
-    libc.src.stdbit.stdc_bit_ceil_ul
-    libc.src.stdbit.stdc_bit_ceil_ull
-    libc.src.stdbit.stdc_bit_ceil_us
-    libc.src.stdbit.stdc_bit_floor_uc
-    libc.src.stdbit.stdc_bit_floor_ui
-    libc.src.stdbit.stdc_bit_floor_ul
-    libc.src.stdbit.stdc_bit_floor_ull
-    libc.src.stdbit.stdc_bit_floor_us
-    libc.src.stdbit.stdc_bit_width_uc
-    libc.src.stdbit.stdc_bit_width_ui
-    libc.src.stdbit.stdc_bit_width_ul
-    libc.src.stdbit.stdc_bit_width_ull
-    libc.src.stdbit.stdc_bit_width_us
-    libc.src.stdbit.stdc_count_ones_uc
-    libc.src.stdbit.stdc_count_ones_ui
-    libc.src.stdbit.stdc_count_ones_ul
-    libc.src.stdbit.stdc_count_ones_ull
-    libc.src.stdbit.stdc_count_ones_us
-    libc.src.stdbit.stdc_count_zeros_uc
-    libc.src.stdbit.stdc_count_zeros_ui
-    libc.src.stdbit.stdc_count_zeros_ul
-    libc.src.stdbit.stdc_count_zeros_ull
-    libc.src.stdbit.stdc_count_zeros_us
-    libc.src.stdbit.stdc_first_leading_one_uc
-    libc.src.stdbit.stdc_first_leading_one_ui
-    libc.src.stdbit.stdc_first_leading_one_ul
-    libc.src.stdbit.stdc_first_leading_one_ull
-    libc.src.stdbit.stdc_first_leading_one_us
-    libc.src.stdbit.stdc_first_leading_zero_uc
-    libc.src.stdbit.stdc_first_leading_zero_ui
-    libc.src.stdbit.stdc_first_leading_zero_ul
-    libc.src.stdbit.stdc_first_leading_zero_ull
-    libc.src.stdbit.stdc_first_leading_zero_us
-    libc.src.stdbit.stdc_first_trailing_one_uc
-    libc.src.stdbit.stdc_first_trailing_one_ui
-    libc.src.stdbit.stdc_first_trailing_one_ul
-    libc.src.stdbit.stdc_first_trailing_one_ull
-    libc.src.stdbit.stdc_first_trailing_one_us
-    libc.src.stdbit.stdc_first_trailing_zero_uc
-    libc.src.stdbit.stdc_first_trailing_zero_ui
-    libc.src.stdbit.stdc_first_trailing_zero_ul
-    libc.src.stdbit.stdc_first_trailing_zero_ull
-    libc.src.stdbit.stdc_first_trailing_zero_us
-    libc.src.stdbit.stdc_has_single_bit_uc
-    libc.src.stdbit.stdc_has_single_bit_ui
-    libc.src.stdbit.stdc_has_single_bit_ul
-    libc.src.stdbit.stdc_has_single_bit_ull
-    libc.src.stdbit.stdc_has_single_bit_us
-    libc.src.stdbit.stdc_leading_ones_uc
-    libc.src.stdbit.stdc_leading_ones_ui
-    libc.src.stdbit.stdc_leading_ones_ul
-    libc.src.stdbit.stdc_leading_ones_ull
-    libc.src.stdbit.stdc_leading_ones_us
-    libc.src.stdbit.stdc_leading_zeros_uc
-    libc.src.stdbit.stdc_leading_zeros_ui
-    libc.src.stdbit.stdc_leading_zeros_ul
-    libc.src.stdbit.stdc_leading_zeros_ull
-    libc.src.stdbit.stdc_leading_zeros_us
-    libc.src.stdbit.stdc_trailing_ones_uc
-    libc.src.stdbit.stdc_trailing_ones_ui
-    libc.src.stdbit.stdc_trailing_ones_ul
-    libc.src.stdbit.stdc_trailing_ones_ull
-    libc.src.stdbit.stdc_trailing_ones_us
-    libc.src.stdbit.stdc_trailing_zeros_uc
-    libc.src.stdbit.stdc_trailing_zeros_ui
-    libc.src.stdbit.stdc_trailing_zeros_ul
-    libc.src.stdbit.stdc_trailing_zeros_ull
-    libc.src.stdbit.stdc_trailing_zeros_us
-
-    # stdlib.h entrypoints
-    libc.src.stdlib._Exit
-    libc.src.stdlib.a64l
-    libc.src.stdlib.abort
-    libc.src.stdlib.abs
-    libc.src.stdlib.aligned_alloc
-    libc.src.stdlib.atexit
-    libc.src.stdlib.atof
-    libc.src.stdlib.atoi
-    libc.src.stdlib.atol
-    libc.src.stdlib.atoll
-    libc.src.stdlib.bsearch
-    libc.src.stdlib.calloc
-    libc.src.stdlib.div
-    libc.src.stdlib.exit
-    libc.src.stdlib.free
-    libc.src.stdlib.l64a
-    libc.src.stdlib.labs
-    libc.src.stdlib.ldiv
-    libc.src.stdlib.llabs
-    libc.src.stdlib.lldiv
-    libc.src.stdlib.malloc
-    libc.src.stdlib.malloc_usable_size
-    libc.src.stdlib.memalignment
-    libc.src.stdlib.qsort
-    libc.src.stdlib.qsort_r
-    libc.src.stdlib.rand
-    libc.src.stdlib.realloc
-    libc.src.stdlib.srand
-    # libc.src.stdlib.strfromd
-    # libc.src.stdlib.strfromf
-    # libc.src.stdlib.strfroml
-    libc.src.stdlib.strtod
-    libc.src.stdlib.strtof
-    libc.src.stdlib.strtol
-    libc.src.stdlib.strtold
-    libc.src.stdlib.strtoll
-    libc.src.stdlib.strtoul
-    libc.src.stdlib.strtoull
-
-    # stdlib.h entrypoints
-    libc.src.stdlib.strtod_l
-    libc.src.stdlib.strtof_l
-    libc.src.stdlib.strtol_l
-    libc.src.stdlib.strtold_l
-    libc.src.stdlib.strtoll_l
-    libc.src.stdlib.strtoul_l
-    libc.src.stdlib.strtoull_l
-
-    # time.h entrypoints
-    libc.src.time.asctime
-    libc.src.time.asctime_r
-    libc.src.time.clock
-    libc.src.time.ctime
-    libc.src.time.ctime_r
-    libc.src.time.difftime
-    libc.src.time.gmtime
-    libc.src.time.gmtime_r
-    libc.src.time.localtime
-    libc.src.time.localtime_r
-    libc.src.time.mktime
-    libc.src.time.strftime
-    libc.src.time.strftime_l
-    libc.src.time.timespec_get
-
-    # wchar.h entrypoints
-    libc.src.wchar.btowc
-    libc.src.wchar.wcslen
-    libc.src.wchar.wctob
-
-    # wctype.h entrypoints
-    libc.src.wctype.iswalpha
-    libc.src.wctype.iswgraph
-    libc.src.wctype.iswcntrl
-    libc.src.wctype.iswdigit
-    libc.src.wctype.iswupper
-    libc.src.wctype.iswalnum
-    libc.src.wctype.iswlower
-    libc.src.wctype.iswspace
-    libc.src.wctype.iswblank
-    libc.src.wctype.iswxdigit
-    libc.src.wctype.iswpunct
-    libc.src.wctype.iswprint
-    libc.src.wctype.iswctype
-    libc.src.wctype.wctype
-
-    # internal entrypoints
-    libc.startup.baremetal.init
-    libc.startup.baremetal.fini
-)
-
-set(TARGET_LIBM_ENTRYPOINTS
-    # complex.h entrypoints
-    libc.src.complex.cabs
-    libc.src.complex.cabsf
-    libc.src.complex.carg
-    libc.src.complex.cargf
-    libc.src.complex.creal
-    libc.src.complex.crealf
-    libc.src.complex.creall
-    libc.src.complex.cimag
-    libc.src.complex.cimagf
-    libc.src.complex.cimagl
-    libc.src.complex.conj
-    libc.src.complex.conjf
-    libc.src.complex.conjl
-    libc.src.complex.cproj
-    libc.src.complex.cprojf
-    libc.src.complex.cprojl
-
-    # fenv.h entrypoints
-    libc.src.fenv.feclearexcept
-    libc.src.fenv.fedisableexcept
-    libc.src.fenv.feenableexcept
-    libc.src.fenv.fegetenv
-    libc.src.fenv.fegetexcept
-    libc.src.fenv.fegetexceptflag
-    libc.src.fenv.fegetround
-    libc.src.fenv.feholdexcept
-    libc.src.fenv.feraiseexcept
-    libc.src.fenv.fesetenv
-    libc.src.fenv.fesetexcept
-    libc.src.fenv.fesetexceptflag
-    libc.src.fenv.fesetround
-    libc.src.fenv.fetestexcept
-    libc.src.fenv.fetestexceptflag
-    libc.src.fenv.feupdateenv
-
-    # math.h entrypoints
-    libc.src.math.acosf
-    libc.src.math.acoshf
-    libc.src.math.acospif
-    libc.src.math.asinf
-    libc.src.math.asinhf
-    libc.src.math.asinpi
-    libc.src.math.asinpif
-    libc.src.math.atan2
-    libc.src.math.atan2f
-    libc.src.math.atan2f128
-    # libc.src.math.atan2l
-    libc.src.math.atan
-    libc.src.math.atanf
-    libc.src.math.atanhf
-    libc.src.math.canonicalize
-    libc.src.math.canonicalizef
-    libc.src.math.canonicalizel
-    libc.src.math.cbrt
-    libc.src.math.cbrtf
-    libc.src.math.cbrtbf16
-    libc.src.math.ceil
-    libc.src.math.ceilf
-    libc.src.math.ceilf128
-    libc.src.math.ceill
-    libc.src.math.copysign
-    libc.src.math.copysignf
-    libc.src.math.copysignf128
-    libc.src.math.copysignl
-    libc.src.math.cos
-    libc.src.math.cosf
-    libc.src.math.coshf
-    libc.src.math.cospif
-    libc.src.math.dfmal
-    libc.src.math.dmull
-    libc.src.math.dsqrtl
-    libc.src.math.daddl
-    libc.src.math.ddivl
-    libc.src.math.dsubl
-    libc.src.math.erff
-    libc.src.math.exp
-    libc.src.math.exp10
-    libc.src.math.exp10f
-    libc.src.math.exp10m1f
-    libc.src.math.exp2
-    libc.src.math.exp2f
-    libc.src.math.exp2m1f
-    libc.src.math.expf
-    libc.src.math.expm1
-    libc.src.math.expm1f
-    libc.src.math.fabs
-    libc.src.math.fabsf
-    libc.src.math.fabsf128
-    libc.src.math.fabsl
-    libc.src.math.fadd
-    libc.src.math.faddl
-    libc.src.math.fadd
-    libc.src.math.fdim
-    libc.src.math.fdimf
-    libc.src.math.fdimf128
-    libc.src.math.fdiml
-    libc.src.math.fdiv
-    libc.src.math.fdivl
-    libc.src.math.ffma
-    libc.src.math.ffmal
-    libc.src.math.floor
-    libc.src.math.floorf
-    libc.src.math.floorf128
-    libc.src.math.floorl
-    libc.src.math.fma
-    libc.src.math.fmabf16
-    libc.src.math.fmaf
-    libc.src.math.fmax
-    libc.src.math.fmaxf
-    libc.src.math.fmaxf128
-    libc.src.math.fmaximum
-    libc.src.math.fmaximum_mag
-    libc.src.math.fmaximum_mag_num
-    libc.src.math.fmaximum_mag_numf
-    libc.src.math.fmaximum_mag_numf128
-    libc.src.math.fmaximum_mag_numl
-    libc.src.math.fmaximum_magf
-    libc.src.math.fmaximum_magf128
-    libc.src.math.fmaximum_magl
-    libc.src.math.fmaximum_num
-    libc.src.math.fmaximum_numf
-    libc.src.math.fmaximum_numf128
-    libc.src.math.fmaximum_numl
-    libc.src.math.fmaximumf
-    libc.src.math.fmaximumf128
-    libc.src.math.fmaximuml
-    libc.src.math.fmaxl
-    libc.src.math.fmin
-    libc.src.math.fminf
-    libc.src.math.fminf128
-    libc.src.math.fminimum
-    libc.src.math.fminimum_mag
-    libc.src.math.fminimum_mag_num
-    libc.src.math.fminimum_mag_numf
-    libc.src.math.fminimum_mag_numf128
-    libc.src.math.fminimum_mag_numl
-    libc.src.math.fminimum_magf
-    libc.src.math.fminimum_magf128
-    libc.src.math.fminimum_magl
-    libc.src.math.fminimum_num
-    libc.src.math.fminimum_numf
-    libc.src.math.fminimum_numf128
-    libc.src.math.fminimum_numl
-    libc.src.math.fminimumf
-    libc.src.math.fminimumf128
-    libc.src.math.fminimuml
-    libc.src.math.fminl
-    libc.src.math.fmod
-    libc.src.math.fmodf
-    # libc.src.math.fmodl
-    libc.src.math.fmul
-    libc.src.math.fmull
-    libc.src.math.frexp
-    libc.src.math.frexpf
-    libc.src.math.frexpl
-    libc.src.math.fromfp
-    libc.src.math.fromfpf
-    libc.src.math.fromfpl
-    libc.src.math.fromfpx
-    libc.src.math.fromfpxf
-    libc.src.math.fromfpxl
-    libc.src.math.fsqrt
-    libc.src.math.fsqrtl
-    libc.src.math.fsub
-    libc.src.math.fsubl
-    libc.src.math.getpayload
-    libc.src.math.getpayloadf
-    libc.src.math.getpayloadl
-    libc.src.math.hypot
-    libc.src.math.hypotf
-    libc.src.math.ilogb
-    libc.src.math.ilogbf
-    libc.src.math.ilogbl
-    libc.src.math.iscanonical
-    libc.src.math.iscanonicalf
-    libc.src.math.iscanonicalf128
-    libc.src.math.iscanonicall
-    libc.src.math.isnan
-    libc.src.math.isnanf
-    libc.src.math.isnanf128
-    libc.src.math.isnanl
-    libc.src.math.issignaling
-    libc.src.math.issignalingf
-    libc.src.math.issignalingf128
-    libc.src.math.issignalingl
-    libc.src.math.ldexp
-    libc.src.math.ldexpf
-    libc.src.math.ldexpl
-    libc.src.math.lgammaf
-    libc.src.math.llogb
-    libc.src.math.llogbf
-    libc.src.math.llogbl
-    libc.src.math.llrint
-    libc.src.math.llrintf
-    libc.src.math.llrintf128
-    libc.src.math.llrintl
-    libc.src.math.llround
-    libc.src.math.llroundf
-    libc.src.math.llroundf128
-    libc.src.math.llroundl
-    libc.src.math.log
-    libc.src.math.log10
-    libc.src.math.log10f
-    libc.src.math.log1p
-    libc.src.math.log1pf
-    libc.src.math.log2
-    libc.src.math.log2f
-    libc.src.math.logb
-    libc.src.math.logbf
-    libc.src.math.logbl
-    libc.src.math.logf
-    libc.src.math.lrint
-    libc.src.math.lrintf
-    libc.src.math.lrintf128
-    libc.src.math.lrintl
-    libc.src.math.lround
-    libc.src.math.lroundf
-    libc.src.math.lroundf128
-    libc.src.math.lroundl
-    libc.src.math.modf
-    libc.src.math.modff
-    libc.src.math.modfl
-    libc.src.math.nan
-    libc.src.math.nanf
-    libc.src.math.nanl
-    libc.src.math.nearbyint
-    libc.src.math.nearbyintf
-    libc.src.math.nearbyintf128
-    libc.src.math.nearbyintl
-    libc.src.math.nextafter
-    libc.src.math.nextafterf
-    libc.src.math.nextafterl
-    libc.src.math.nextdown
-    libc.src.math.nextdownf
-    libc.src.math.nextdownl
-    libc.src.math.nexttoward
-    libc.src.math.nexttowardf
-    libc.src.math.nexttowardl
-    libc.src.math.nextup
-    libc.src.math.nextupf
-    libc.src.math.nextupl
-    libc.src.math.pow
-    libc.src.math.powf
-    libc.src.math.remainder
-    libc.src.math.remainderf
-    libc.src.math.remainderl
-    libc.src.math.remquo
-    libc.src.math.remquof
-    libc.src.math.remquol
-    libc.src.math.rint
-    libc.src.math.rintf
-    libc.src.math.rintf128
-    libc.src.math.rintl
-    libc.src.math.round
-    libc.src.math.roundeven
-    libc.src.math.roundevenf
-    libc.src.math.roundevenf128
-    libc.src.math.roundevenl
-    libc.src.math.roundf
-    libc.src.math.roundf128
-    libc.src.math.roundl
-    libc.src.math.scalbln
-    libc.src.math.scalblnf
-    libc.src.math.scalblnl
-    libc.src.math.scalbn
-    libc.src.math.scalbnf
-    libc.src.math.scalbnl
-    libc.src.math.setpayload
-    libc.src.math.setpayloadf
-    libc.src.math.setpayloadl
-    libc.src.math.setpayloadsig
-    libc.src.math.setpayloadsigf
-    libc.src.math.setpayloadsigl
-    libc.src.math.sin
-    libc.src.math.sincos
-    libc.src.math.sincosf
-    libc.src.math.sinf
-    libc.src.math.sinhf
-    libc.src.math.sinpif
-    libc.src.math.sqrt
-    libc.src.math.sqrtf
-    libc.src.math.sqrtf128
-    libc.src.math.sqrtl
-    libc.src.math.tan
-    libc.src.math.tanf
-    libc.src.math.tanhf
-    libc.src.math.totalorder
-    libc.src.math.totalorderf
-    libc.src.math.totalorderl
-    libc.src.math.totalordermag
-    libc.src.math.totalordermagf
-    libc.src.math.totalordermagl
-    libc.src.math.trunc
-    libc.src.math.truncf
-    libc.src.math.truncf128
-    libc.src.math.truncl
-    libc.src.math.ufromfp
-    libc.src.math.ufromfpf
-    libc.src.math.ufromfpl
-    libc.src.math.ufromfpx
-    libc.src.math.ufromfpxf
-    libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_CFLOAT16)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # complex.h C23 _Complex _Float16 entrypoints
-    libc.src.complex.crealf16
-    libc.src.complex.cimagf16
-    libc.src.complex.conjf16
-    libc.src.complex.cprojf16
-  )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT16)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C23 _Float16 entrypoints
-    libc.src.math.acosf16
-    libc.src.math.acoshf16
-    libc.src.math.asinf16
-    libc.src.math.asinhf16
-    libc.src.math.atan2f16
-    libc.src.math.canonicalizef16
-    libc.src.math.cbrtf16
-    libc.src.math.ceilf16
-    libc.src.math.copysignf16
-    libc.src.math.cosf16
-    libc.src.math.coshf16
-    libc.src.math.cospif16
-    libc.src.math.exp10f16
-    libc.src.math.exp10m1f16
-    libc.src.math.exp2f16
-    libc.src.math.exp2m1f16
-    libc.src.math.expf16
-    libc.src.math.expm1f16
-    libc.src.math.f16add
-    libc.src.math.f16addf
-    libc.src.math.f16addl
-    libc.src.math.f16div
-    libc.src.math.f16divf
-    libc.src.math.f16divl
-    libc.src.math.f16fma
-    libc.src.math.f16fmaf
-    libc.src.math.f16fmal
-    libc.src.math.f16mul
-    libc.src.math.f16mulf
-    libc.src.math.f16mull
-    libc.src.math.f16sqrt
-    libc.src.math.f16sqrtf
-    libc.src.math.f16sqrtl
-    libc.src.math.f16sub
-    libc.src.math.f16subf
-    libc.src.math.f16subl
-    libc.src.math.fabsf16
-    libc.src.math.fdimf16
-    libc.src.math.floorf16
-    libc.src.math.fmaf16
-    libc.src.math.fmaxf16
-    libc.src.math.fmaximum_mag_numf16
-    libc.src.math.fmaximum_magf16
-    libc.src.math.fmaximum_numf16
-    libc.src.math.fmaximumf16
-    libc.src.math.fminf16
-    libc.src.math.fminimum_mag_numf16
-    libc.src.math.fminimum_magf16
-    libc.src.math.fminimum_numf16
-    libc.src.math.fminimumf16
-    libc.src.math.fmodf16
-    libc.src.math.frexpf16
-    libc.src.math.fromfpf16
-    libc.src.math.fromfpxf16
-    libc.src.math.getpayloadf16
-    libc.src.math.hypotf16
-    libc.src.math.ilogbf16
-    libc.src.math.iscanonicalf16
-    libc.src.math.isnanf16
-    libc.src.math.issignalingf16
-    libc.src.math.ldexpf16
-    libc.src.math.lgammaf16
-    libc.src.math.llogbf16
-    libc.src.math.llrintf16
-    libc.src.math.llroundf16
-    libc.src.math.log10f16
-    libc.src.math.log10p1f16
-    libc.src.math.log2f16
-    libc.src.math.log2p1f16
-    libc.src.math.logbf16
-    libc.src.math.logf16
-    libc.src.math.lrintf16
-    libc.src.math.lroundf16
-    libc.src.math.modff16
-    libc.src.math.nanf16
-    libc.src.math.nearbyintf16
-    libc.src.math.nextafterf16
-    libc.src.math.nextdownf16
-    libc.src.math.nexttowardf16
-    libc.src.math.nextupf16
-    libc.src.math.remainderf16
-    libc.src.math.remquof16
-    libc.src.math.rintf16
-    libc.src.math.roundevenf16
-    libc.src.math.roundf16
-    libc.src.math.scalblnf16
-    libc.src.math.scalbnf16
-    libc.src.math.setpayloadf16
-    libc.src.math.setpayloadsigf16
-    libc.src.math.sinf16
-    libc.src.math.sinhf16
-    libc.src.math.sinpif16
-    libc.src.math.sqrtf16
-    libc.src.math.tanf16
-    libc.src.math.tanhf16
-    libc.src.math.tanpif16
-    libc.src.math.totalorderf16
-    libc.src.math.totalordermagf16
-    libc.src.math.truncf16
-    libc.src.math.ufromfpf16
-    libc.src.math.ufromfpxf16
-  )
-
-  if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-    list(APPEND TARGET_LIBM_ENTRYPOINTS
-      # math.h C23 mixed _Float16 and _Float128 entrypoints
-      libc.src.math.f16addf128
-      libc.src.math.f16divf128
-      libc.src.math.f16fmaf128
-      libc.src.math.f16mulf128
-      libc.src.math.f16sqrtf128
-      libc.src.math.f16subf128
-    )
-  endif()
-endif()
-
-if(LIBC_TYPES_HAS_CFLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # complex.h C23 _Complex _Float128 entrypoints
-    libc.src.complex.crealf128
-    libc.src.complex.cimagf128
-    libc.src.complex.conjf128
-    libc.src.complex.cprojf128
-  )
-endif()
-
-if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C23 _Float128 entrypoints
-    libc.src.math.canonicalizef128
-    libc.src.math.daddf128
-    libc.src.math.ddivf128
-    libc.src.math.dfmaf128
-    libc.src.math.dmulf128
-    libc.src.math.dsqrtf128
-    libc.src.math.dsubf128
-    libc.src.math.faddf128
-    libc.src.math.fdivf128
-    libc.src.math.ffmaf128
-    # libc.src.math.fmodf128
-    libc.src.math.fmulf128
-    libc.src.math.frexpf128
-    libc.src.math.fromfpf128
-    libc.src.math.fromfpxf128
-    libc.src.math.fsqrtf128
-    libc.src.math.fsubf128
-    libc.src.math.getpayloadf128
-    libc.src.math.ilogbf128
-    libc.src.math.ldexpf128
-    libc.src.math.llogbf128
-    libc.src.math.logbf128
-    libc.src.math.modff128
-    libc.src.math.nanf128
-    libc.src.math.nextafterf128
-    libc.src.math.nextdownf128
-    libc.src.math.nextupf128
-    libc.src.math.remainderf128
-    libc.src.math.remquof128
-    libc.src.math.scalblnf128
-    libc.src.math.scalbnf128
-    libc.src.math.setpayloadf128
-    libc.src.math.setpayloadsigf128
-    libc.src.math.totalorderf128
-    libc.src.math.totalordermagf128
-    libc.src.math.ufromfpf128
-    libc.src.math.ufromfpxf128
-  )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
-  # bfloat16 entrypoints
-  libc.src.math.atanbf16
-  libc.src.math.acosbf16
-  libc.src.math.asinbf16
-  libc.src.math.bf16add
-  libc.src.math.bf16addf
-  libc.src.math.bf16addl
-  libc.src.math.bf16div
-  libc.src.math.bf16divf
-  libc.src.math.bf16divl
-  libc.src.math.bf16fma
-  libc.src.math.bf16fmaf
-  libc.src.math.bf16fmal
-  libc.src.math.bf16mul
-  libc.src.math.bf16mulf
-  libc.src.math.bf16mull
-  libc.src.math.bf16sub
-  libc.src.math.bf16subf
-  libc.src.math.bf16subl
-  libc.src.math.canonicalizebf16
-  libc.src.math.ceilbf16
-  libc.src.math.copysignbf16
-  libc.src.math.exp2bf16
-  libc.src.math.expbf16
-  libc.src.math.fabsbf16
-  libc.src.math.fdimbf16
-  libc.src.math.floorbf16
-  libc.src.math.fmaxbf16
-  libc.src.math.fmaximumbf16
-  libc.src.math.fmaximum_magbf16
-  libc.src.math.fmaximum_mag_numbf16
-  libc.src.math.fmaximum_numbf16
-  libc.src.math.fminbf16
-  libc.src.math.fminimumbf16
-  libc.src.math.fminimum_magbf16
-  libc.src.math.fminimum_mag_numbf16
-  libc.src.math.fminimum_numbf16
-  libc.src.math.fmodbf16
-  libc.src.math.frexpbf16
-  libc.src.math.fromfpbf16
-  libc.src.math.fromfpxbf16
-  libc.src.math.getpayloadbf16
-  libc.src.math.hypotbf16
-  libc.src.math.ilogbbf16
-  libc.src.math.iscanonicalbf16
-  libc.src.math.issignalingbf16
-  libc.src.math.ldexpbf16
-  libc.src.math.llogbbf16
-  libc.src.math.llrintbf16
-  libc.src.math.llroundbf16
-  libc.src.math.log_bf16
-  libc.src.math.logbbf16
-  libc.src.math.lrintbf16
-  libc.src.math.lroundbf16
-  libc.src.math.modfbf16
-  libc.src.math.nanbf16
-  libc.src.math.nearbyintbf16
-  libc.src.math.nextafterbf16
-  libc.src.math.nextdownbf16
-  libc.src.math.nexttowardbf16
-  libc.src.math.nextupbf16
-  libc.src.math.remainderbf16
-  libc.src.math.remquobf16
-  libc.src.math.rintbf16
-  libc.src.math.roundbf16
-  libc.src.math.roundevenbf16
-  libc.src.math.scalblnbf16
-  libc.src.math.scalbnbf16
-  libc.src.math.setpayloadbf16
-  libc.src.math.setpayloadsigbf16
-  libc.src.math.sqrtbf16
-  libc.src.math.tanbf16
-  libc.src.math.truncbf16
-  libc.src.math.totalorderbf16
-  libc.src.math.totalordermagbf16
-  libc.src.math.ufromfpbf16
-  libc.src.math.ufromfpxbf16
-)
-
-if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C++23 mixed bfloat16 and _Float128 entrypoints
-    libc.src.math.bf16addf128
-    libc.src.math.bf16divf128
-    libc.src.math.bf16fmaf128
-    libc.src.math.bf16mulf128
-    libc.src.math.bf16subf128
-  )
-endif()
-
-if(LIBC_COMPILER_HAS_FIXED_POINT)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # stdfix.h _Fract and _Accum entrypoints
-    libc.src.stdfix.abshk
-    libc.src.stdfix.abshr
-    libc.src.stdfix.absk
-    libc.src.stdfix.abslk
-    libc.src.stdfix.abslr
-    libc.src.stdfix.absr
-    libc.src.stdfix.exphk
-    libc.src.stdfix.expk
-    libc.src.stdfix.roundhk
-    libc.src.stdfix.roundhr
-    libc.src.stdfix.roundk
-    libc.src.stdfix.roundlk
-    libc.src.stdfix.roundlr
-    libc.src.stdfix.roundr
-    libc.src.stdfix.rounduhk
-    libc.src.stdfix.rounduhr
-    libc.src.stdfix.rounduk
-    libc.src.stdfix.roundulk
-    libc.src.stdfix.roundulr
-    libc.src.stdfix.roundur
-    libc.src.stdfix.sqrtuhk
-    libc.src.stdfix.sqrtuhr
-    libc.src.stdfix.sqrtuk
-    libc.src.stdfix.sqrtur
-    # libc.src.stdfix.sqrtulk
-    libc.src.stdfix.sqrtulr
-    libc.src.stdfix.uhksqrtus
-    libc.src.stdfix.uksqrtui
-    libc.src.stdfix.hrbits
-    libc.src.stdfix.uhrbits
-    libc.src.stdfix.rbits
-    libc.src.stdfix.urbits
-    libc.src.stdfix.lrbits
-    libc.src.stdfix.ulrbits
-    libc.src.stdfix.hkbits
-    libc.src.stdfix.uhkbits
-    libc.src.stdfix.kbits
-    libc.src.stdfix.ukbits
-    libc.src.stdfix.lkbits
-    libc.src.stdfix.ulkbits
-    libc.src.stdfix.bitshr
-    libc.src.stdfix.bitsr
-    libc.src.stdfix.bitslr
-    libc.src.stdfix.bitshk
-    libc.src.stdfix.bitsk
-    libc.src.stdfix.bitslk
-    libc.src.stdfix.bitsuhr
-    libc.src.stdfix.bitsur
-    libc.src.stdfix.bitsulr
-    libc.src.stdfix.bitsuhk
-    libc.src.stdfix.bitsuk
-    libc.src.stdfix.bitsulk
-    libc.src.stdfix.countlshr
-    libc.src.stdfix.countlsr
-    libc.src.stdfix.countlslr
-    libc.src.stdfix.countlshk
-    libc.src.stdfix.countlsk
-    libc.src.stdfix.countlslk
-    libc.src.stdfix.countlsuhr
-    libc.src.stdfix.countlsur
-    libc.src.stdfix.countlsulr
-    libc.src.stdfix.countlsuhk
-    libc.src.stdfix.countlsuk
-    libc.src.stdfix.countlsulk
-    libc.src.stdfix.idivr
-    libc.src.stdfix.idivlr
-    libc.src.stdfix.idivk
-    libc.src.stdfix.idivlk
-    libc.src.stdfix.idivur
-    libc.src.stdfix.idivulr
-    libc.src.stdfix.idivuk
-    libc.src.stdfix.idivulk
-    libc.src.stdfix.divir
-    libc.src.stdfix.divilr
-    libc.src.stdfix.divik
-    libc.src.stdfix.divilk
-    libc.src.stdfix.diviur
-    libc.src.stdfix.diviulr
-    libc.src.stdfix.diviuk
-    libc.src.stdfix.diviulk
-    libc.src.stdfix.rdivi
-    libc.src.stdfix.lrdivi
-    libc.src.stdfix.kdivi
-    libc.src.stdfix.lkdivi
-    libc.src.stdfix.urdivi
-    libc.src.stdfix.ulrdivi
-    libc.src.stdfix.ukdivi
-    libc.src.stdfix.ulkdivi
-  )
-endif()
-
-if(LLVM_LIBC_ENABLE_EXPERIMENTAL_ENTRYPOINTS)
-  list(APPEND TARGET_LIBC_ENTRYPOINTS
-    # libintl.h entrypoints
-    libc.src.libintl.bind_textdomain_codeset
-    libc.src.libintl.bindtextdomain
-    libc.src.libintl.dcgettext
-    libc.src.libintl.dcgettext_l
-    libc.src.libintl.dcngettext
-    libc.src.libintl.dcngettext_l
-    libc.src.libintl.dgettext
-    libc.src.libintl.dgettext_l
-    libc.src.libintl.dngettext
-    libc.src.libintl.dngettext_l
-    libc.src.libintl.gettext
-    libc.src.libintl.gettext_l
-    libc.src.libintl.ngettext
-    libc.src.libintl.ngettext_l
-    libc.src.libintl.textdomain
-
-    # regex.h entrypoints
-    libc.src.regex.regcomp
-    libc.src.regex.regexec
-    libc.src.regex.regerror
-    libc.src.regex.regfree
-  )
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
-  ${TARGET_LIBC_ENTRYPOINTS}
-  ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+    # assert.h entrypoints
+    libc.src.assert.__assert_fail
+
+    # compiler entrypoints (no corresponding header)
+    libc.src.compiler.__stack_chk_fail
+
+    # ctype.h entrypoints
+    libc.src.ctype.isalnum
+    libc.src.ctype.isalpha
+    libc.src.ctype.isascii
+    libc.src.ctype.isblank
+    libc.src.ctype.iscntrl
+    libc.src.ctype.isdigit
+    libc.src.ctype.isgraph
+    libc.src.ctype.islower
+    libc.src.ctype.isprint
+    libc.src.ctype.ispunct
+    libc.src.ctype.isspace
+    libc.src.ctype.isupper
+    libc.src.ctype.isxdigit
+    libc.src.ctype.toascii
+    libc.src.ctype.tolower
+    libc.src.ctype.toupper
+
+    # ctype.h entrypoints
+    libc.src.ctype.isalnum_l
+    libc.src.ctype.isalpha_l
+    libc.src.ctype.isblank_l
+    libc.src.ctype.iscntrl_l
+    libc.src.ctype.isdigit_l
+    libc.src.ctype.isgraph_l
+    libc.src.ctype.islower_l
+    libc.src.ctype.isprint_l
+    libc.src.ctype.ispunct_l
+    libc.src.ctype.isspace_l
+    libc.src.ctype.isupper_l
+    libc.src.ctype.isxdigit_l
+    libc.src.ctype.tolower_l
+    libc.src.ctype.toupper_l
+
+    # errno.h entrypoints
+    libc.src.errno.errno
+
+    # locale.h entrypoints
+    libc.src.locale.localeconv
+    libc.src.locale.duplocale
+    libc.src.locale.freelocale
+    libc.src.locale.localeconv
+    libc.src.locale.newlocale
+    libc.src.locale.setlocale
+    libc.src.locale.uselocale
+
+    # setjmp.h entrypoints
+    # libc.src.setjmp.longjmp
+    # libc.src.setjmp.setjmp
+
+    # string.h entrypoints
+    libc.src.string.memccpy
+    libc.src.string.memchr
+    libc.src.string.memcmp
+    libc.src.string.memcpy
+    libc.src.string.memmem
+    libc.src.string.memmove
+    libc.src.string.mempcpy
+    libc.src.string.memrchr
+    libc.src.string.memset
+    libc.src.string.memset_explicit
+    libc.src.string.stpcpy
+    libc.src.string.stpncpy
+    libc.src.string.strcasestr
+    libc.src.string.strcat
+    libc.src.string.strchr
+    libc.src.string.strchrnul
+    libc.src.string.strcmp
+    libc.src.string.strcoll
+    libc.src.string.strcpy
+    libc.src.string.strcspn
+    libc.src.string.strdup
+    libc.src.string.strerror
+    libc.src.string.strerror_r
+    libc.src.string.strlcat
+    libc.src.string.strlcpy
+    libc.src.string.strlen
+    libc.src.string.strncat
+    libc.src.string.strncmp
+    libc.src.string.strncpy
+    libc.src.string.strndup
+    libc.src.string.strnlen
+    libc.src.string.strnlen_s
+    libc.src.string.strpbrk
+    libc.src.string.strrchr
+    libc.src.string.strsep
+    libc.src.string.strspn
+    libc.src.string.strstr
+    libc.src.string.strtok
+    libc.src.string.strtok_r
+    libc.src.string.strxfrm
+
+    # string.h entrypoints
+    libc.src.string.strcoll_l
+    libc.src.string.strxfrm_l
+
+    # strings.h entrypoints
+    libc.src.strings.bcmp
+    libc.src.strings.bcopy
+    libc.src.strings.bzero
+    libc.src.strings.ffs
+    libc.src.strings.ffsl
+    libc.src.strings.ffsll
+    libc.src.strings.index
+    libc.src.strings.rindex
+    libc.src.strings.strcasecmp
+    libc.src.strings.strncasecmp
+
+    # strings.h entrypoints
+    libc.src.strings.strcasecmp_l
+    libc.src.strings.strncasecmp_l
+
+    # inttypes.h entrypoints
+    libc.src.inttypes.imaxabs
+    libc.src.inttypes.imaxdiv
+    libc.src.inttypes.strtoimax
+    libc.src.inttypes.strtoumax
+
+    # stdio.h entrypoints
+    libc.src.stdio.asprintf
+    libc.src.stdio.feof
+    libc.src.stdio.ferror
+    libc.src.stdio.fgetc
+    libc.src.stdio.fgets
+    libc.src.stdio.fprintf
+    libc.src.stdio.fputc
+    libc.src.stdio.fputs
+    libc.src.stdio.fread
+    libc.src.stdio.fscanf
+    libc.src.stdio.fwrite
+    libc.src.stdio.getchar
+    libc.src.stdio.printf
+    libc.src.stdio.putc
+    libc.src.stdio.putchar
+    libc.src.stdio.puts
+    libc.src.stdio.remove
+    libc.src.stdio.scanf
+    libc.src.stdio.snprintf
+    libc.src.stdio.sprintf
+    libc.src.stdio.sscanf
+    libc.src.stdio.stderr
+    libc.src.stdio.stdin
+    libc.src.stdio.stdout
+    libc.src.stdio.vasprintf
+    libc.src.stdio.vfprintf
+    libc.src.stdio.vfscanf
+    libc.src.stdio.vprintf
+    libc.src.stdio.vscanf
+    libc.src.stdio.vsnprintf
+    libc.src.stdio.vsprintf
+    libc.src.stdio.vsscanf
+
+    # stdbit.h entrypoints
+    libc.src.stdbit.stdc_bit_ceil_uc
+    libc.src.stdbit.stdc_bit_ceil_ui
+    libc.src.stdbit.stdc_bit_ceil_ul
+    libc.src.stdbit.stdc_bit_ceil_ull
+    libc.src.stdbit.stdc_bit_ceil_us
+    libc.src.stdbit.stdc_bit_floor_uc
+    libc.src.stdbit.stdc_bit_floor_ui
+    libc.src.stdbit.stdc_bit_floor_ul
+    libc.src.stdbit.stdc_bit_floor_ull
+    libc.src.stdbit.stdc_bit_floor_us
+    libc.src.stdbit.stdc_bit_width_uc
+    libc.src.stdbit.stdc_bit_width_ui
+    libc.src.stdbit.stdc_bit_width_ul
+    libc.src.stdbit.stdc_bit_width_ull
+    libc.src.stdbit.stdc_bit_width_us
+    libc.src.stdbit.stdc_count_ones_uc
+    libc.src.stdbit.stdc_count_ones_ui
+    libc.src.stdbit.stdc_count_ones_ul
+    libc.src.stdbit.stdc_count_ones_ull
+    libc.src.stdbit.stdc_count_ones_us
+    libc.src.stdbit.stdc_count_zeros_uc
+    libc.src.stdbit.stdc_count_zeros_ui
+    libc.src.stdbit.stdc_count_zeros_ul
+    libc.src.stdbit.stdc_count_zeros_ull
+    libc.src.stdbit.stdc_count_zeros_us
+    libc.src.stdbit.stdc_first_leading_one_uc
+    libc.src.stdbit.stdc_first_leading_one_ui
+    libc.src.stdbit.stdc_first_leading_one_ul
+    libc.src.stdbit.stdc_first_leading_one_ull
+    libc.src.stdbit.stdc_first_leading_one_us
+    libc.src.stdbit.stdc_first_leading_zero_uc
+    libc.src.stdbit.stdc_first_leading_zero_ui
+    libc.src.stdbit.stdc_first_leading_zero_ul
+    libc.src.stdbit.stdc_first_leading_zero_ull
+    libc.src.stdbit.stdc_first_leading_zero_us
+    libc.src.stdbit.stdc_first_trailing_one_uc
+    libc.src.stdbit.stdc_first_trailing_one_ui
+    libc.src.stdbit.stdc_first_trailing_one_ul
+    libc.src.stdbit.stdc_first_trailing_one_ull
+    libc.src.stdbit.stdc_first_trailing_one_us
+    libc.src.stdbit.stdc_first_trailing_zero_uc
+    libc.src.stdbit.stdc_first_trailing_zero_ui
+    libc.src.stdbit.stdc_first_trailing_zero_ul
+    libc.src.stdbit.stdc_first_trailing_zero_ull
+    libc.src.stdbit.stdc_first_trailing_zero_us
+    libc.src.stdbit.stdc_has_single_bit_uc
+    libc.src.stdbit.stdc_has_single_bit_ui
+    libc.src.stdbit.stdc_has_single_bit_ul
+    libc.src.stdbit.stdc_has_single_bit_ull
+    libc.src.stdbit.stdc_has_single_bit_us
+    libc.src.stdbit.stdc_leading_ones_uc
+    libc.src.stdbit.stdc_leading_ones_ui
+    libc.src.stdbit.stdc_leading_ones_ul
+    libc.src.stdbit.stdc_leading_ones_ull
+    libc.src.stdbit.stdc_leading_ones_us
+    libc.src.stdbit.stdc_leading_zeros_uc
+    libc.src.stdbit.stdc_leading_zeros_ui
+    libc.src.stdbit.stdc_leading_zeros_ul
+    libc.src.stdbit.stdc_leading_zeros_ull
+    libc.src.stdbit.stdc_leading_zeros_us
+    libc.src.stdbit.stdc_trailing_ones_uc
+    libc.src.stdbit.stdc_trailing_ones_ui
+    libc.src.stdbit.stdc_trailing_ones_ul
+    libc.src.stdbit.stdc_trailing_ones_ull
+    libc.src.stdbit.stdc_trailing_ones_us
+    libc.src.stdbit.stdc_trailing_zeros_uc
+    libc.src.stdbit.stdc_trailing_zeros_ui
+    libc.src.stdbit.stdc_trailing_zeros_ul
+    libc.src.stdbit.stdc_trailing_zeros_ull
+    libc.src.stdbit.stdc_trailing_zeros_us
+
+    # stdlib.h entrypoints
+    libc.src.stdlib._Exit
+    libc.src.stdlib.a64l
+    libc.src.stdlib.abort
+    libc.src.stdlib.abs
+    libc.src.stdlib.aligned_alloc
+    libc.src.stdlib.atexit
+    libc.src.stdlib.atof
+    libc.src.stdlib.atoi
+    libc.src.stdlib.atol
+    libc.src.stdlib.atoll
+    libc.src.stdlib.bsearch
+    libc.src.stdlib.calloc
+    libc.src.stdlib.div
+    libc.src.stdlib.exit
+    libc.src.stdlib.free
+    libc.src.stdlib.l64a
+    libc.src.stdlib.labs
+    libc.src.stdlib.ldiv
+    libc.src.stdlib.llabs
+    libc.src.stdlib.lldiv
+    libc.src.stdlib.malloc
+    libc.src.stdlib.malloc_usable_size
+    libc.src.stdlib.memalignment
+    libc.src.stdlib.qsort
+    libc.src.stdlib.qsort_r
+    libc.src.stdlib.rand
+    libc.src.stdlib.realloc
+    libc.src.stdlib.srand
+    # libc.src.stdlib.strfromd
+    # libc.src.stdlib.strfromf
+    # libc.src.stdlib.strfroml
+    libc.src.stdlib.strtod
+    libc.src.stdlib.strtof
+    libc.src.stdlib.strtol
+    libc.src.stdlib.strtold
+    libc.src.stdlib.strtoll
+    libc.src.stdlib.strtoul
+    libc.src.stdlib.strtoull
+
+    # stdlib.h entrypoints
+    libc.src.stdlib.strtod_l
+    libc.src.stdlib.strtof_l
+    libc.src.stdlib.strtol_l
+    libc.src.stdlib.strtold_l
+    libc.src.stdlib.strtoll_l
+    libc.src.stdlib.strtoul_l
+    libc.src.stdlib.strtoull_l
+
+    # time.h entrypoints
+    libc.src.time.asctime
+    libc.src.time.asctime_r
+    libc.src.time.clock
+    libc.src.time.ctime
+    libc.src.time.ctime_r
+    libc.src.time.difftime
+    libc.src.time.gmtime
+    libc.src.time.gmtime_r
+    libc.src.time.localtime
+    libc.src.time.localtime_r
+    libc.src.time.mktime
+    libc.src.time.strftime
+    libc.src.time.strftime_l
+    libc.src.time.timespec_get
+
+    # wchar.h entrypoints
+    libc.src.wchar.btowc
+    libc.src.wchar.wcslen
+    libc.src.wchar.wctob
+
+    # wctype.h entrypoints
+    libc.src.wctype.iswalpha
+    libc.src.wctype.iswgraph
+    libc.src.wctype.iswcntrl
+    libc.src.wctype.iswdigit
+    libc.src.wctype.iswupper
+    libc.src.wctype.iswalnum
+    libc.src.wctype.iswlower
+    libc.src.wctype.iswspace
+    libc.src.wctype.iswblank
+    libc.src.wctype.iswxdigit
+    libc.src.wctype.iswpunct
+    libc.src.wctype.iswprint
+    libc.src.wctype.iswctype
+    libc.src.wctype.wctype
+
+    # internal entrypoints
+    libc.startup.baremetal.init
+    libc.startup.baremetal.fini
+)
+
+set(TARGET_LIBM_ENTRYPOINTS
+    # complex.h entrypoints
+    libc.src.complex.cabs
+    libc.src.complex.cabsf
+    libc.src.complex.carg
+    libc.src.complex.cargf
+    libc.src.complex.creal
+    libc.src.complex.crealf
+    libc.src.complex.creall
+    libc.src.complex.cimag
+    libc.src.complex.cimagf
+    libc.src.complex.cimagl
+    libc.src.complex.conj
+    libc.src.complex.conjf
+    libc.src.complex.conjl
+    libc.src.complex.cproj
+    libc.src.complex.cprojf
+    libc.src.complex.cprojl
+
+    # fenv.h entrypoints
+    libc.src.fenv.feclearexcept
+    libc.src.fenv.fedisableexcept
+    libc.src.fenv.feenableexcept
+    libc.src.fenv.fegetenv
+    libc.src.fenv.fegetexcept
+    libc.src.fenv.fegetexceptflag
+    libc.src.fenv.fegetround
+    libc.src.fenv.feholdexcept
+    libc.src.fenv.feraiseexcept
+    libc.src.fenv.fesetenv
+    libc.src.fenv.fesetexcept
+    libc.src.fenv.fesetexceptflag
+    libc.src.fenv.fesetround
+    libc.src.fenv.fetestexcept
+    libc.src.fenv.fetestexceptflag
+    libc.src.fenv.feupdateenv
+
+    # math.h entrypoints
+    libc.src.math.acosf
+    libc.src.math.acoshf
+    libc.src.math.acospif
+    libc.src.math.asinf
+    libc.src.math.asinhf
+    libc.src.math.asinpi
+    libc.src.math.asinpif
+    libc.src.math.atan2
+    libc.src.math.atan2f
+    libc.src.math.atan2f128
+    # libc.src.math.atan2l
+    libc.src.math.atan
+    libc.src.math.atanf
+    libc.src.math.atanhf
+    libc.src.math.canonicalize
+    libc.src.math.canonicalizef
+    libc.src.math.canonicalizel
+    libc.src.math.cbrt
+    libc.src.math.cbrtf
+    libc.src.math.cbrtbf16
+    libc.src.math.ceil
+    libc.src.math.ceilf
+    libc.src.math.ceilf128
+    libc.src.math.ceill
+    libc.src.math.copysign
+    libc.src.math.copysignf
+    libc.src.math.copysignf128
+    libc.src.math.copysignf80
+    libc.src.math.copysignl
+    libc.src.math.cos
+    libc.src.math.cosf
+    libc.src.math.coshf
+    libc.src.math.cospif
+    libc.src.math.dfmal
+    libc.src.math.dmull
+    libc.src.math.dsqrtl
+    libc.src.math.daddl
+    libc.src.math.ddivl
+    libc.src.math.dsubl
+    libc.src.math.erff
+    libc.src.math.exp
+    libc.src.math.exp10
+    libc.src.math.exp10f
+    libc.src.math.exp10m1f
+    libc.src.math.exp2
+    libc.src.math.exp2f
+    libc.src.math.exp2m1f
+    libc.src.math.expf
+    libc.src.math.expm1
+    libc.src.math.expm1f
+    libc.src.math.fabs
+    libc.src.math.fabsf
+    libc.src.math.fabsf128
+    libc.src.math.fabsf80
+    libc.src.math.fabsl
+    libc.src.math.fadd
+    libc.src.math.faddl
+    libc.src.math.fadd
+    libc.src.math.fdim
+    libc.src.math.fdimf
+    libc.src.math.fdimf128
+    libc.src.math.fdiml
+    libc.src.math.fdiv
+    libc.src.math.fdivl
+    libc.src.math.ffma
+    libc.src.math.ffmal
+    libc.src.math.floor
+    libc.src.math.floorf
+    libc.src.math.floorf128
+    libc.src.math.floorl
+    libc.src.math.fma
+    libc.src.math.fmabf16
+    libc.src.math.fmaf
+    libc.src.math.fmax
+    libc.src.math.fmaxf
+    libc.src.math.fmaxf128
+    libc.src.math.fmaximum
+    libc.src.math.fmaximum_mag
+    libc.src.math.fmaximum_mag_num
+    libc.src.math.fmaximum_mag_numf
+    libc.src.math.fmaximum_mag_numf128
+    libc.src.math.fmaximum_mag_numl
+    libc.src.math.fmaximum_magf
+    libc.src.math.fmaximum_magf128
+    libc.src.math.fmaximum_magl
+    libc.src.math.fmaximum_num
+    libc.src.math.fmaximum_numf
+    libc.src.math.fmaximum_numf128
+    libc.src.math.fmaximum_numl
+    libc.src.math.fmaximumf
+    libc.src.math.fmaximumf128
+    libc.src.math.fmaximuml
+    libc.src.math.fmaxl
+    libc.src.math.fmin
+    libc.src.math.fminf
+    libc.src.math.fminf128
+    libc.src.math.fminimum
+    libc.src.math.fminimum_mag
+    libc.src.math.fminimum_mag_num
+    libc.src.math.fminimum_mag_numf
+    libc.src.math.fminimum_mag_numf128
+    libc.src.math.fminimum_mag_numl
+    libc.src.math.fminimum_magf
+    libc.src.math.fminimum_magf128
+    libc.src.math.fminimum_magl
+    libc.src.math.fminimum_num
+    libc.src.math.fminimum_numf
+    libc.src.math.fminimum_numf128
+    libc.src.math.fminimum_numl
+    libc.src.math.fminimumf
+    libc.src.math.fminimumf128
+    libc.src.math.fminimuml
+    libc.src.math.fminl
+    libc.src.math.fmod
+    libc.src.math.fmodf
+    # libc.src.math.fmodl
+    libc.src.math.fmul
+    libc.src.math.fmull
+    libc.src.math.frexp
+    libc.src.math.frexpf
+    libc.src.math.frexpl
+    libc.src.math.fromfp
+    libc.src.math.fromfpf
+    libc.src.math.fromfpl
+    libc.src.math.fromfpx
+    libc.src.math.fromfpxf
+    libc.src.math.fromfpxl
+    libc.src.math.fsqrt
+    libc.src.math.fsqrtl
+    libc.src.math.fsub
+    libc.src.math.fsubl
+    libc.src.math.getpayload
+    libc.src.math.getpayloadf
+    libc.src.math.getpayloadl
+    libc.src.math.hypot
+    libc.src.math.hypotf
+    libc.src.math.ilogb
+    libc.src.math.ilogbf
+    libc.src.math.ilogbl
+    libc.src.math.iscanonical
+    libc.src.math.iscanonicalf
+    libc.src.math.iscanonicalf128
+    libc.src.math.iscanonicall
+    libc.src.math.isnan
+    libc.src.math.isnanf
+    libc.src.math.isnanf128
+    libc.src.math.isnanl
+    libc.src.math.issignaling
+    libc.src.math.issignalingf
+    libc.src.math.issignalingf128
+    libc.src.math.issignalingl
+    libc.src.math.ldexp
+    libc.src.math.ldexpf
+    libc.src.math.ldexpl
+    libc.src.math.lgammaf
+    libc.src.math.llogb
+    libc.src.math.llogbf
+    libc.src.math.llogbl
+    libc.src.math.llrint
+    libc.src.math.llrintf
+    libc.src.math.llrintf128
+    libc.src.math.llrintl
+    libc.src.math.llround
+    libc.src.math.llroundf
+    libc.src.math.llroundf128
+    libc.src.math.llroundl
+    libc.src.math.log
+    libc.src.math.log10
+    libc.src.math.log10f
+    libc.src.math.log1p
+    libc.src.math.log1pf
+    libc.src.math.log2
+    libc.src.math.log2f
+    libc.src.math.logb
+    libc.src.math.logbf
+    libc.src.math.logbl
+    libc.src.math.logf
+    libc.src.math.lrint
+    libc.src.math.lrintf
+    libc.src.math.lrintf128
+    libc.src.math.lrintl
+    libc.src.math.lround
+    libc.src.math.lroundf
+    libc.src.math.lroundf128
+    libc.src.math.lroundl
+    libc.src.math.modf
+    libc.src.math.modff
+    libc.src.math.modfl
+    libc.src.math.nan
+    libc.src.math.nanf
+    libc.src.math.nanl
+    libc.src.math.nearbyint
+    libc.src.math.nearbyintf
+    libc.src.math.nearbyintf128
+    libc.src.math.nearbyintl
+    libc.src.math.nextafter
+    libc.src.math.nextafterf
+    libc.src.math.nextafterl
+    libc.src.math.nextdown
+    libc.src.math.nextdownf
+    libc.src.math.nextdownl
+    libc.src.math.nexttoward
+    libc.src.math.nexttowardf
+    libc.src.math.nexttowardl
+    libc.src.math.nextup
+    libc.src.math.nextupf
+    libc.src.math.nextupl
+    libc.src.math.pow
+    libc.src.math.powf
+    libc.src.math.remainder
+    libc.src.math.remainderf
+    libc.src.math.remainderl
+    libc.src.math.remquo
+    libc.src.math.remquof
+    libc.src.math.remquol
+    libc.src.math.rint
+    libc.src.math.rintf
+    libc.src.math.rintf128
+    libc.src.math.rintl
+    libc.src.math.round
+    libc.src.math.roundeven
+    libc.src.math.roundevenf
+    libc.src.math.roundevenf128
+    libc.src.math.roundevenl
+    libc.src.math.roundf
+    libc.src.math.roundf128
+    libc.src.math.roundl
+    libc.src.math.scalbln
+    libc.src.math.scalblnf
+    libc.src.math.scalblnl
+    libc.src.math.scalbn
+    libc.src.math.scalbnf
+    libc.src.math.scalbnl
+    libc.src.math.setpayload
+    libc.src.math.setpayloadf
+    libc.src.math.setpayloadl
+    libc.src.math.setpayloadsig
+    libc.src.math.setpayloadsigf
+    libc.src.math.setpayloadsigl
+    libc.src.math.sin
+    libc.src.math.sincos
+    libc.src.math.sincosf
+    libc.src.math.sinf
+    libc.src.math.sinhf
+    libc.src.math.sinpif
+    libc.src.math.sqrt
+    libc.src.math.sqrtf
+    libc.src.math.sqrtf128
+    libc.src.math.sqrtl
+    libc.src.math.tan
+    libc.src.math.tanf
+    libc.src.math.tanhf
+    libc.src.math.totalorder
+    libc.src.math.totalorderf
+    libc.src.math.totalorderl
+    libc.src.math.totalordermag
+    libc.src.math.totalordermagf
+    libc.src.math.totalordermagl
+    libc.src.math.trunc
+    libc.src.math.truncf
+    libc.src.math.truncf128
+    libc.src.math.truncl
+    libc.src.math.ufromfp
+    libc.src.math.ufromfpf
+    libc.src.math.ufromfpl
+    libc.src.math.ufromfpx
+    libc.src.math.ufromfpxf
+    libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_CFLOAT16)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # complex.h C23 _Complex _Float16 entrypoints
+    libc.src.complex.crealf16
+    libc.src.complex.cimagf16
+    libc.src.complex.conjf16
+    libc.src.complex.cprojf16
+  )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT16)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C23 _Float16 entrypoints
+    libc.src.math.acosf16
+    libc.src.math.acoshf16
+    libc.src.math.asinf16
+    libc.src.math.asinhf16
+    libc.src.math.atan2f16
+    libc.src.math.canonicalizef16
+    libc.src.math.cbrtf16
+    libc.src.math.ceilf16
+    libc.src.math.copysignf16
+    libc.src.math.cosf16
+    libc.src.math.coshf16
+    libc.src.math.cospif16
+    libc.src.math.exp10f16
+    libc.src.math.exp10m1f16
+    libc.src.math.exp2f16
+    libc.src.math.exp2m1f16
+    libc.src.math.expf16
+    libc.src.math.expm1f16
+    libc.src.math.f16add
+    libc.src.math.f16addf
+    libc.src.math.f16addl
+    libc.src.math.f16div
+    libc.src.math.f16divf
+    libc.src.math.f16divl
+    libc.src.math.f16fma
+    libc.src.math.f16fmaf
+    libc.src.math.f16fmal
+    libc.src.math.f16mul
+    libc.src.math.f16mulf
+    libc.src.math.f16mull
+    libc.src.math.f16sqrt
+    libc.src.math.f16sqrtf
+    libc.src.math.f16sqrtl
+    libc.src.math.f16sub
+    libc.src.math.f16subf
+    libc.src.math.f16subl
+    libc.src.math.fabsf16
+    libc.src.math.fdimf16
+    libc.src.math.floorf16
+    libc.src.math.fmaf16
+    libc.src.math.fmaxf16
+    libc.src.math.fmaximum_mag_numf16
+    libc.src.math.fmaximum_magf16
+    libc.src.math.fmaximum_numf16
+    libc.src.math.fmaximumf16
+    libc.src.math.fminf16
+    libc.src.math.fminimum_mag_numf16
+    libc.src.math.fminimum_magf16
+    libc.src.math.fminimum_numf16
+    libc.src.math.fminimumf16
+    libc.src.math.fmodf16
+    libc.src.math.frexpf16
+    libc.src.math.fromfpf16
+    libc.src.math.fromfpxf16
+    libc.src.math.getpayloadf16
+    libc.src.math.hypotf16
+    libc.src.math.ilogbf16
+    libc.src.math.iscanonicalf16
+    libc.src.math.isnanf16
+    libc.src.math.issignalingf16
+    libc.src.math.ldexpf16
+    libc.src.math.lgammaf16
+    libc.src.math.llogbf16
+    libc.src.math.llrintf16
+    libc.src.math.llroundf16
+    libc.src.math.log10f16
+    libc.src.math.log10p1f16
+    libc.src.math.log2f16
+    libc.src.math.log2p1f16
+    libc.src.math.logbf16
+    libc.src.math.logf16
+    libc.src.math.lrintf16
+    libc.src.math.lroundf16
+    libc.src.math.modff16
+    libc.src.math.nanf16
+    libc.src.math.nearbyintf16
+    libc.src.math.nextafterf16
+    libc.src.math.nextdownf16
+    libc.src.math.nexttowardf16
+    libc.src.math.nextupf16
+    libc.src.math.remainderf16
+    libc.src.math.remquof16
+    libc.src.math.rintf16
+    libc.src.math.roundevenf16
+    libc.src.math.roundf16
+    libc.src.math.scalblnf16
+    libc.src.math.scalbnf16
+    libc.src.math.setpayloadf16
+    libc.src.math.setpayloadsigf16
+    libc.src.math.sinf16
+    libc.src.math.sinhf16
+    libc.src.math.sinpif16
+    libc.src.math.sqrtf16
+    libc.src.math.tanf16
+    libc.src.math.tanhf16
+    libc.src.math.tanpif16
+    libc.src.math.totalorderf16
+    libc.src.math.totalordermagf16
+    libc.src.math.truncf16
+    libc.src.math.ufromfpf16
+    libc.src.math.ufromfpxf16
+  )
+
+  if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+    list(APPEND TARGET_LIBM_ENTRYPOINTS
+      # math.h C23 mixed _Float16 and _Float128 entrypoints
+      libc.src.math.f16addf128
+      libc.src.math.f16divf128
+      libc.src.math.f16fmaf128
+      libc.src.math.f16mulf128
+      libc.src.math.f16sqrtf128
+      libc.src.math.f16subf128
+    )
+  endif()
+endif()
+
+if(LIBC_TYPES_HAS_CFLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # complex.h C23 _Complex _Float128 entrypoints
+    libc.src.complex.crealf128
+    libc.src.complex.cimagf128
+    libc.src.complex.conjf128
+    libc.src.complex.cprojf128
+  )
+endif()
+
+if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C23 _Float128 entrypoints
+    libc.src.math.canonicalizef128
+    libc.src.math.daddf128
+    libc.src.math.ddivf128
+    libc.src.math.dfmaf128
+    libc.src.math.dmulf128
+    libc.src.math.dsqrtf128
+    libc.src.math.dsubf128
+    libc.src.math.faddf128
+    libc.src.math.fdivf128
+    libc.src.math.ffmaf128
+    # libc.src.math.fmodf128
+    libc.src.math.fmulf128
+    libc.src.math.frexpf128
+    libc.src.math.fromfpf128
+    libc.src.math.fromfpxf128
+    libc.src.math.fsqrtf128
+    libc.src.math.fsubf128
+    libc.src.math.getpayloadf128
+    libc.src.math.ilogbf128
+    libc.src.math.ldexpf128
+    libc.src.math.llogbf128
+    libc.src.math.logbf128
+    libc.src.math.modff128
+    libc.src.math.nanf128
+    libc.src.math.nextafterf128
+    libc.src.math.nextdownf128
+    libc.src.math.nextupf128
+    libc.src.math.remainderf128
+    libc.src.math.remquof128
+    libc.src.math.scalblnf128
+    libc.src.math.scalbnf128
+    libc.src.math.setpayloadf128
+    libc.src.math.setpayloadsigf128
+    libc.src.math.totalorderf128
+    libc.src.math.totalordermagf128
+    libc.src.math.ufromfpf128
+    libc.src.math.ufromfpxf128
+  )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+  # bfloat16 entrypoints
+  libc.src.math.atanbf16
+  libc.src.math.acosbf16
+  libc.src.math.asinbf16
+  libc.src.math.bf16add
+  libc.src.math.bf16addf
+  libc.src.math.bf16addl
+  libc.src.math.bf16div
+  libc.src.math.bf16divf
+  libc.src.math.bf16divl
+  libc.src.math.bf16fma
+  libc.src.math.bf16fmaf
+  libc.src.math.bf16fmal
+  libc.src.math.bf16mul
+  libc.src.math.bf16mulf
+  libc.src.math.bf16mull
+  libc.src.math.bf16sub
+  libc.src.math.bf16subf
+  libc.src.math.bf16subl
+  libc.src.math.canonicalizebf16
+  libc.src.math.ceilbf16
+  libc.src.math.copysignbf16
+  libc.src.math.exp2bf16
+  libc.src.math.expbf16
+  libc.src.math.fabsbf16
+  libc.src.math.fdimbf16
+  libc.src.math.floorbf16
+  libc.src.math.fmaxbf16
+  libc.src.math.fmaximumbf16
+  libc.src.math.fmaximum_magbf16
+  libc.src.math.fmaximum_mag_numbf16
+  libc.src.math.fmaximum_numbf16
+  libc.src.math.fminbf16
+  libc.src.math.fminimumbf16
+  libc.src.math.fminimum_magbf16
+  libc.src.math.fminimum_mag_numbf16
+  libc.src.math.fminimum_numbf16
+  libc.src.math.fmodbf16
+  libc.src.math.frexpbf16
+  libc.src.math.fromfpbf16
+  libc.src.math.fromfpxbf16
+  libc.src.math.getpayloadbf16
+  libc.src.math.hypotbf16
+  libc.src.math.ilogbbf16
+  libc.src.math.iscanonicalbf16
+  libc.src.math.issignalingbf16
+  libc.src.math.ldexpbf16
+  libc.src.math.llogbbf16
+  libc.src.math.llrintbf16
+  libc.src.math.llroundbf16
+  libc.src.math.log_bf16
+  libc.src.math.logbbf16
+  libc.src.math.lrintbf16
+  libc.src.math.lroundbf16
+  libc.src.math.modfbf16
+  libc.src.math.nanbf16
+  libc.src.math.nearbyintbf16
+  libc.src.math.nextafterbf16
+  libc.src.math.nextdownbf16
+  libc.src.math.nexttowardbf16
+  libc.src.math.nextupbf16
+  libc.src.math.remainderbf16
+  libc.src.math.remquobf16
+  libc.src.math.rintbf16
+  libc.src.math.roundbf16
+  libc.src.math.roundevenbf16
+  libc.src.math.scalblnbf16
+  libc.src.math.scalbnbf16
+  libc.src.math.setpayloadbf16
+  libc.src.math.setpayloadsigbf16
+  libc.src.math.sqrtbf16
+  libc.src.math.tanbf16
+  libc.src.math.truncbf16
+  libc.src.math.totalorderbf16
+  libc.src.math.totalordermagbf16
+  libc.src.math.ufromfpbf16
+  libc.src.math.ufromfpxbf16
+)
+
+if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C++23 mixed bfloat16 and _Float128 entrypoints
+    libc.src.math.bf16addf128
+    libc.src.math.bf16divf128
+    libc.src.math.bf16fmaf128
+    libc.src.math.bf16mulf128
+    libc.src.math.bf16subf128
+  )
+endif()
+
+if(LIBC_COMPILER_HAS_FIXED_POINT)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # stdfix.h _Fract and _Accum entrypoints
+    libc.src.stdfix.abshk
+    libc.src.stdfix.abshr
+    libc.src.stdfix.absk
+    libc.src.stdfix.abslk
+    libc.src.stdfix.abslr
+    libc.src.stdfix.absr
+    libc.src.stdfix.exphk
+    libc.src.stdfix.expk
+    libc.src.stdfix.roundhk
+    libc.src.stdfix.roundhr
+    libc.src.stdfix.roundk
+    libc.src.stdfix.roundlk
+    libc.src.stdfix.roundlr
+    libc.src.stdfix.roundr
+    libc.src.stdfix.rounduhk
+    libc.src.stdfix.rounduhr
+    libc.src.stdfix.rounduk
+    libc.src.stdfix.roundulk
+    libc.src.stdfix.roundulr
+    libc.src.stdfix.roundur
+    libc.src.stdfix.sqrtuhk
+    libc.src.stdfix.sqrtuhr
+    libc.src.stdfix.sqrtuk
+    libc.src.stdfix.sqrtur
+    # libc.src.stdfix.sqrtulk
+    libc.src.stdfix.sqrtulr
+    libc.src.stdfix.uhksqrtus
+    libc.src.stdfix.uksqrtui
+    libc.src.stdfix.hrbits
+    libc.src.stdfix.uhrbits
+    libc.src.stdfix.rbits
+    libc.src.stdfix.urbits
+    libc.src.stdfix.lrbits
+    libc.src.stdfix.ulrbits
+    libc.src.stdfix.hkbits
+    libc.src.stdfix.uhkbits
+    libc.src.stdfix.kbits
+    libc.src.stdfix.ukbits
+    libc.src.stdfix.lkbits
+    libc.src.stdfix.ulkbits
+    libc.src.stdfix.bitshr
+    libc.src.stdfix.bitsr
+    libc.src.stdfix.bitslr
+    libc.src.stdfix.bitshk
+    libc.src.stdfix.bitsk
+    libc.src.stdfix.bitslk
+    libc.src.stdfix.bitsuhr
+    libc.src.stdfix.bitsur
+    libc.src.stdfix.bitsulr
+    libc.src.stdfix.bitsuhk
+    libc.src.stdfix.bitsuk
+    libc.src.stdfix.bitsulk
+    libc.src.stdfix.countlshr
+    libc.src.stdfix.countlsr
+    libc.src.stdfix.countlslr
+    libc.src.stdfix.countlshk
+    libc.src.stdfix.countlsk
+    libc.src.stdfix.countlslk
+    libc.src.stdfix.countlsuhr
+    libc.src.stdfix.countlsur
+    libc.src.stdfix.countlsulr
+    libc.src.stdfix.countlsuhk
+    libc.src.stdfix.countlsuk
+    libc.src.stdfix.countlsulk
+    libc.src.stdfix.idivr
+    libc.src.stdfix.idivlr
+    libc.src.stdfix.idivk
+    libc.src.stdfix.idivlk
+    libc.src.stdfix.idivur
+    libc.src.stdfix.idivulr
+    libc.src.stdfix.idivuk
+    libc.src.stdfix.idivulk
+    libc.src.stdfix.divir
+    libc.src.stdfix.divilr
+    libc.src.stdfix.divik
+    libc.src.stdfix.divilk
+    libc.src.stdfix.diviur
+    libc.src.stdfix.diviulr
+    libc.src.stdfix.diviuk
+    libc.src.stdfix.diviulk
+    libc.src.stdfix.rdivi
+    libc.src.stdfix.lrdivi
+    libc.src.stdfix.kdivi
+    libc.src.stdfix.lkdivi
+    libc.src.stdfix.urdivi
+    libc.src.stdfix.ulrdivi
+    libc.src.stdfix.ukdivi
+    libc.src.stdfix.ulkdivi
+  )
+endif()
+
+if(LLVM_LIBC_ENABLE_EXPERIMENTAL_ENTRYPOINTS)
+  list(APPEND TARGET_LIBC_ENTRYPOINTS
+    # libintl.h entrypoints
+    libc.src.libintl.bind_textdomain_codeset
+    libc.src.libintl.bindtextdomain
+    libc.src.libintl.dcgettext
+    libc.src.libintl.dcgettext_l
+    libc.src.libintl.dcngettext
+    libc.src.libintl.dcngettext_l
+    libc.src.libintl.dgettext
+    libc.src.libintl.dgettext_l
+    libc.src.libintl.dngettext
+    libc.src.libintl.dngettext_l
+    libc.src.libintl.gettext
+    libc.src.libintl.gettext_l
+    libc.src.libintl.ngettext
+    libc.src.libintl.ngettext_l
+    libc.src.libintl.textdomain
+
+    # regex.h entrypoints
+    libc.src.regex.regcomp
+    libc.src.regex.regexec
+    libc.src.regex.regerror
+    libc.src.regex.regfree
+  )
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+  ${TARGET_LIBC_ENTRYPOINTS}
+  ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/darwin/aarch64/entrypoints.txt b/libc/config/darwin/aarch64/entrypoints.txt
index 5600b82ad3410b..60a9be95a6b93a 100644
--- a/libc/config/darwin/aarch64/entrypoints.txt
+++ b/libc/config/darwin/aarch64/entrypoints.txt
@@ -1,792 +1,794 @@
-set(TARGET_LIBC_ENTRYPOINTS
-    # ctype.h entrypoints
-    libc.src.ctype.isalnum
-    libc.src.ctype.isalpha
-    libc.src.ctype.isascii
-    libc.src.ctype.isblank
-    libc.src.ctype.iscntrl
-    libc.src.ctype.isdigit
-    libc.src.ctype.isgraph
-    libc.src.ctype.islower
-    libc.src.ctype.isprint
-    libc.src.ctype.ispunct
-    libc.src.ctype.isspace
-    libc.src.ctype.isupper
-    libc.src.ctype.isxdigit
-    libc.src.ctype.toascii
-    libc.src.ctype.tolower
-    libc.src.ctype.toupper
-
-    # errno.h entrypoints
-    libc.src.errno.errno
-
-    # string.h entrypoints
-    libc.src.string.memccpy
-    libc.src.string.memchr
-    libc.src.string.memcmp
-    libc.src.string.memcpy
-    libc.src.string.memmem
-    libc.src.string.memmove
-    libc.src.string.mempcpy
-    libc.src.string.memrchr
-    libc.src.string.memset
-    libc.src.string.stpcpy
-    libc.src.string.stpncpy
-    libc.src.string.strcasestr
-    libc.src.string.strcat
-    libc.src.string.strchr
-    libc.src.string.strchrnul
-    libc.src.string.strcmp
-    libc.src.string.strcpy
-    libc.src.string.strcspn
-    libc.src.string.strlcat
-    libc.src.string.strlcpy
-    libc.src.string.strlen
-    libc.src.string.strncat
-    libc.src.string.strncmp
-    libc.src.string.strncpy
-    libc.src.string.strnlen
-    libc.src.string.strnlen_s
-    libc.src.string.strpbrk
-    libc.src.string.strrchr
-    libc.src.string.strspn
-    libc.src.string.strstr
-    libc.src.string.strtok
-    libc.src.string.strtok_r
-
-    # string.h entrypoints that depend on malloc
-    libc.src.string.strdup
-    libc.src.string.strndup
-
-    # strings.h entrypoints
-    libc.src.strings.bcmp
-    libc.src.strings.bcopy
-    libc.src.strings.bzero
-    libc.src.strings.strcasecmp
-    libc.src.strings.strncasecmp
-
-    # inttypes.h entrypoints
-    libc.src.inttypes.imaxabs
-    libc.src.inttypes.imaxdiv
-    libc.src.inttypes.strtoimax
-    libc.src.inttypes.strtoumax
-
-    # stdlib.h entrypoints
-    libc.src.stdlib.abs
-    libc.src.stdlib.atoi
-    libc.src.stdlib.atof
-    libc.src.stdlib.atol
-    libc.src.stdlib.atoll
-    libc.src.stdlib.bsearch
-    libc.src.stdlib.div
-    libc.src.stdlib.labs
-    libc.src.stdlib.ldiv
-    libc.src.stdlib.llabs
-    libc.src.stdlib.lldiv
-    libc.src.stdlib.memalignment
-    libc.src.stdlib.qsort
-    libc.src.stdlib.rand
-    libc.src.stdlib.srand
-    libc.src.stdlib.strtod
-    libc.src.stdlib.strtof
-    libc.src.stdlib.strtol
-    libc.src.stdlib.strtold
-    libc.src.stdlib.strtoll
-    libc.src.stdlib.strtoul
-    libc.src.stdlib.strtoull
-
-    # stdlib.h external entrypoints
-    libc.src.stdlib.malloc
-    libc.src.stdlib.calloc
-    libc.src.stdlib.realloc
-    libc.src.stdlib.free
-
-    # wctype.h entrypoints
-    libc.src.wctype.iswalpha
-    libc.src.wctype.iswgraph
-    libc.src.wctype.iswcntrl
-    libc.src.wctype.iswdigit
-    libc.src.wctype.iswupper
-    libc.src.wctype.iswalnum
-    libc.src.wctype.iswlower
-    libc.src.wctype.iswspace
-    libc.src.wctype.iswblank
-    libc.src.wctype.iswxdigit
-    libc.src.wctype.iswpunct
-    libc.src.wctype.iswprint
-    libc.src.wctype.iswctype
-    libc.src.wctype.wctype
-)
-
-if(LLVM_LIBC_FULL_BUILD)
-  list(APPEND TARGET_LIBC_ENTRYPOINTS
-    # signal.h entrypoints
-    libc.src.signal.sigaddset
-    libc.src.signal.sigdelset
-    libc.src.signal.sigemptyset
-    libc.src.signal.sigfillset
-    libc.src.signal.sigprocmask
-
-    # setjmp.h entrypoints
-    libc.src.setjmp.longjmp
-    libc.src.setjmp.setjmp
-    libc.src.setjmp.siglongjmp
-    libc.src.setjmp.sigsetjmp
-    libc.src.stdlib._Exit
-  )
-endif()
-
-
-set(TARGET_LIBM_ENTRYPOINTS
-    # complex.h entrypoints
-    libc.src.complex.cabs
-    libc.src.complex.cabsf
-    libc.src.complex.carg
-    libc.src.complex.cargf
-    libc.src.complex.creal
-    libc.src.complex.crealf
-    libc.src.complex.creall
-    libc.src.complex.cimag
-    libc.src.complex.cimagf
-    libc.src.complex.cimagl
-    libc.src.complex.conj
-    libc.src.complex.conjf
-    libc.src.complex.conjl
-    libc.src.complex.cproj
-    libc.src.complex.cprojf
-    libc.src.complex.cprojl
-
-    # fenv.h entrypoints
-    libc.src.fenv.feclearexcept
-    libc.src.fenv.fedisableexcept
-    libc.src.fenv.feenableexcept
-    libc.src.fenv.fegetenv
-    libc.src.fenv.fegetexcept
-    libc.src.fenv.fegetexceptflag
-    libc.src.fenv.fegetround
-    libc.src.fenv.feholdexcept
-    libc.src.fenv.feraiseexcept
-    libc.src.fenv.fesetenv
-    libc.src.fenv.fesetexcept
-    libc.src.fenv.fesetexceptflag
-    libc.src.fenv.fesetround
-    libc.src.fenv.fetestexcept
-    libc.src.fenv.fetestexceptflag
-    libc.src.fenv.feupdateenv
-
-    # math.h entrypoints
-    libc.src.math.acos
-    libc.src.math.acosf
-    libc.src.math.acoshf
-    libc.src.math.acospif
-    libc.src.math.asin
-    libc.src.math.asinf
-    libc.src.math.asinhf
-    libc.src.math.asinpi
-    libc.src.math.asinpif
-    libc.src.math.atan2
-    libc.src.math.atan2f
-    libc.src.math.atan2f128
-    libc.src.math.atan
-    libc.src.math.atanf
-    libc.src.math.atanhf
-    libc.src.math.canonicalize
-    libc.src.math.canonicalizef
-    libc.src.math.canonicalizel
-    libc.src.math.cbrt
-    libc.src.math.cbrtf
-    libc.src.math.cbrtbf16
-    libc.src.math.ceil
-    libc.src.math.ceilf
-    libc.src.math.ceilf128
-    libc.src.math.ceill
-    libc.src.math.copysign
-    libc.src.math.copysignf
-    libc.src.math.copysignf128
-    libc.src.math.copysignl
-    libc.src.math.cos
-    libc.src.math.cosf
-    libc.src.math.coshf
-    libc.src.math.cospif
-    libc.src.math.dfmal
-    libc.src.math.dmull
-    libc.src.math.dsqrtl
-    libc.src.math.daddl
-    libc.src.math.ddivl
-    libc.src.math.dsubl
-    libc.src.math.erff
-    libc.src.math.exp
-    libc.src.math.exp10
-    libc.src.math.exp10f
-    libc.src.math.exp10m1f
-    libc.src.math.exp2
-    libc.src.math.exp2f
-    libc.src.math.exp2m1f
-    libc.src.math.expf
-    libc.src.math.expm1
-    libc.src.math.expm1f
-    libc.src.math.fabs
-    libc.src.math.fabsf
-    libc.src.math.fabsf128
-    libc.src.math.fabsl
-    libc.src.math.fadd
-    libc.src.math.faddl
-    libc.src.math.fadd
-    libc.src.math.fdim
-    libc.src.math.fdimf
-    libc.src.math.fdimf128
-    libc.src.math.fdiml
-    libc.src.math.fdiv
-    libc.src.math.fdivl
-    libc.src.math.ffma
-    libc.src.math.ffmal
-    libc.src.math.floor
-    libc.src.math.floorf
-    libc.src.math.floorf128
-    libc.src.math.floorl
-    libc.src.math.fma
-    libc.src.math.fmabf16
-    libc.src.math.fmaf
-    libc.src.math.fmax
-    libc.src.math.fmaxf
-    libc.src.math.fmaxf128
-    libc.src.math.fmaximum
-    libc.src.math.fmaximum_mag
-    libc.src.math.fmaximum_mag_num
-    libc.src.math.fmaximum_mag_numf
-    libc.src.math.fmaximum_mag_numf128
-    libc.src.math.fmaximum_mag_numl
-    libc.src.math.fmaximum_magf
-    libc.src.math.fmaximum_magf128
-    libc.src.math.fmaximum_magl
-    libc.src.math.fmaximum_num
-    libc.src.math.fmaximum_numf
-    libc.src.math.fmaximum_numf128
-    libc.src.math.fmaximum_numl
-    libc.src.math.fmaximumf
-    libc.src.math.fmaximumf128
-    libc.src.math.fmaximuml
-    libc.src.math.fmaxl
-    libc.src.math.fmin
-    libc.src.math.fminf
-    libc.src.math.fminf128
-    libc.src.math.fminimum
-    libc.src.math.fminimum_mag
-    libc.src.math.fminimum_mag_num
-    libc.src.math.fminimum_mag_numf
-    libc.src.math.fminimum_mag_numf128
-    libc.src.math.fminimum_mag_numl
-    libc.src.math.fminimum_magf
-    libc.src.math.fminimum_magf128
-    libc.src.math.fminimum_magl
-    libc.src.math.fminimum_num
-    libc.src.math.fminimum_numf
-    libc.src.math.fminimum_numf128
-    libc.src.math.fminimum_numl
-    libc.src.math.fminimumf
-    libc.src.math.fminimumf128
-    libc.src.math.fminimuml
-    libc.src.math.fminl
-    libc.src.math.fmod
-    libc.src.math.fmodf
-    libc.src.math.fmodl
-    libc.src.math.fmul
-    libc.src.math.fmull
-    libc.src.math.frexp
-    libc.src.math.frexpf
-    libc.src.math.frexpl
-    libc.src.math.fromfp
-    libc.src.math.fromfpf
-    libc.src.math.fromfpl
-    libc.src.math.fromfpx
-    libc.src.math.fromfpxf
-    libc.src.math.fromfpxl
-    libc.src.math.fsqrt
-    libc.src.math.fsqrtl
-    libc.src.math.fsub
-    libc.src.math.fsubl
-    libc.src.math.getpayload
-    libc.src.math.getpayloadf
-    libc.src.math.getpayloadl
-    libc.src.math.hypot
-    libc.src.math.hypotf
-    libc.src.math.ilogb
-    libc.src.math.ilogbf
-    libc.src.math.ilogbl
-    libc.src.math.iscanonical
-    libc.src.math.iscanonicalf
-    libc.src.math.iscanonicalf128
-    libc.src.math.iscanonicall
-    libc.src.math.isnan
-    libc.src.math.isnanf
-    libc.src.math.isnanf128
-    libc.src.math.isnanl
-    libc.src.math.issignaling
-    libc.src.math.issignalingf
-    libc.src.math.issignalingf128
-    libc.src.math.issignalingl
-    libc.src.math.ldexp
-    libc.src.math.ldexpf
-    libc.src.math.ldexpl
-    libc.src.math.lgammaf
-    libc.src.math.llogb
-    libc.src.math.llogbf
-    libc.src.math.llogbl
-    libc.src.math.llrint
-    libc.src.math.llrintf
-    libc.src.math.llrintf128
-    libc.src.math.llrintl
-    libc.src.math.llround
-    libc.src.math.llroundf
-    libc.src.math.llroundf128
-    libc.src.math.llroundl
-    libc.src.math.log
-    libc.src.math.log10
-    libc.src.math.log10f
-    libc.src.math.log1p
-    libc.src.math.log1pf
-    libc.src.math.log2
-    libc.src.math.log2f
-    libc.src.math.logb
-    libc.src.math.logbf
-    libc.src.math.logbl
-    libc.src.math.logf
-    libc.src.math.lrint
-    libc.src.math.lrintf
-    libc.src.math.lrintf128
-    libc.src.math.lrintl
-    libc.src.math.lround
-    libc.src.math.lroundf
-    libc.src.math.lroundf128
-    libc.src.math.lroundl
-    libc.src.math.modf
-    libc.src.math.modff
-    libc.src.math.modfl
-    libc.src.math.nan
-    libc.src.math.nanf
-    libc.src.math.nanl
-    libc.src.math.nearbyint
-    libc.src.math.nearbyintf
-    libc.src.math.nearbyintf128
-    libc.src.math.nearbyintl
-    libc.src.math.nextafter
-    libc.src.math.nextafterf
-    libc.src.math.nextafterl
-    libc.src.math.nextdown
-    libc.src.math.nextdownf
-    libc.src.math.nextdownl
-    libc.src.math.nexttoward
-    libc.src.math.nexttowardf
-    libc.src.math.nexttowardl
-    libc.src.math.nextup
-    libc.src.math.nextupf
-    libc.src.math.nextupl
-    libc.src.math.pow
-    libc.src.math.powf
-    libc.src.math.remainder
-    libc.src.math.remainderf
-    libc.src.math.remainderl
-    libc.src.math.remquo
-    libc.src.math.remquof
-    libc.src.math.remquol
-    libc.src.math.rint
-    libc.src.math.rintf
-    libc.src.math.rintf128
-    libc.src.math.rintl
-    libc.src.math.round
-    libc.src.math.roundeven
-    libc.src.math.roundevenf
-    libc.src.math.roundevenf128
-    libc.src.math.roundevenl
-    libc.src.math.roundf
-    libc.src.math.roundf128
-    libc.src.math.roundl
-    libc.src.math.scalbln
-    libc.src.math.scalblnf
-    libc.src.math.scalblnl
-    libc.src.math.scalbn
-    libc.src.math.scalbnf
-    libc.src.math.scalbnl
-    libc.src.math.setpayload
-    libc.src.math.setpayloadf
-    libc.src.math.setpayloadl
-    libc.src.math.setpayloadsig
-    libc.src.math.setpayloadsigf
-    libc.src.math.setpayloadsigl
-    libc.src.math.sin
-    libc.src.math.sincos
-    libc.src.math.sincosf
-    libc.src.math.sinf
-    libc.src.math.sinhf
-    libc.src.math.sinpif
-    libc.src.math.sqrt
-    libc.src.math.sqrtf
-    libc.src.math.sqrtf128
-    libc.src.math.sqrtl
-    libc.src.math.tan
-    libc.src.math.tanf
-    libc.src.math.tanhf
-    libc.src.math.tanpif
-    libc.src.math.totalorder
-    libc.src.math.totalorderf
-    libc.src.math.totalorderl
-    libc.src.math.totalordermag
-    libc.src.math.totalordermagf
-    libc.src.math.totalordermagl
-    libc.src.math.trunc
-    libc.src.math.truncf
-    libc.src.math.truncf128
-    libc.src.math.truncl
-    libc.src.math.ufromfp
-    libc.src.math.ufromfpf
-    libc.src.math.ufromfpl
-    libc.src.math.ufromfpx
-    libc.src.math.ufromfpxf
-    libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_CFLOAT16)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # complex.h C23 _Complex _Float16 entrypoints
-    libc.src.complex.crealf16
-    libc.src.complex.cimagf16
-    libc.src.complex.conjf16
-    libc.src.complex.cprojf16
-  )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT16)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C23 _Float16 entrypoints
-    libc.src.math.acosf16
-    libc.src.math.acoshf16
-    libc.src.math.asinf16
-    libc.src.math.asinhf16
-    libc.src.math.atan2f16
-    libc.src.math.canonicalizef16
-    libc.src.math.cbrtf16
-    libc.src.math.ceilf16
-    libc.src.math.copysignf16
-    libc.src.math.cosf16
-    libc.src.math.coshf16
-    libc.src.math.cospif16
-    libc.src.math.exp10f16
-    libc.src.math.exp10m1f16
-    libc.src.math.exp2f16
-    libc.src.math.exp2m1f16
-    libc.src.math.expf16
-    libc.src.math.expm1f16
-    libc.src.math.f16add
-    libc.src.math.f16addf
-    libc.src.math.f16addl
-    libc.src.math.f16div
-    libc.src.math.f16divf
-    libc.src.math.f16divl
-    libc.src.math.f16fma
-    libc.src.math.f16fmaf
-    libc.src.math.f16fmal
-    libc.src.math.f16mul
-    libc.src.math.f16mulf
-    libc.src.math.f16mull
-    libc.src.math.f16sqrt
-    libc.src.math.f16sqrtf
-    libc.src.math.f16sqrtl
-    libc.src.math.f16sub
-    libc.src.math.f16subf
-    libc.src.math.f16subl
-    libc.src.math.fabsf16
-    libc.src.math.fdimf16
-    libc.src.math.floorf16
-    libc.src.math.fmaf16
-    libc.src.math.fmaxf16
-    libc.src.math.fmaximum_mag_numf16
-    libc.src.math.fmaximum_magf16
-    libc.src.math.fmaximum_numf16
-    libc.src.math.fmaximumf16
-    libc.src.math.fminf16
-    libc.src.math.fminimum_mag_numf16
-    libc.src.math.fminimum_magf16
-    libc.src.math.fminimum_numf16
-    libc.src.math.fminimumf16
-    libc.src.math.fmodf16
-    libc.src.math.frexpf16
-    libc.src.math.fromfpf16
-    libc.src.math.fromfpxf16
-    libc.src.math.getpayloadf16
-    libc.src.math.hypotf16
-    libc.src.math.ilogbf16
-    libc.src.math.iscanonicalf16
-    libc.src.math.isnanf16
-    libc.src.math.issignalingf16
-    libc.src.math.ldexpf16
-    libc.src.math.lgammaf16
-    libc.src.math.llogbf16
-    libc.src.math.llrintf16
-    libc.src.math.llroundf16
-    libc.src.math.log10f16
-    libc.src.math.log10p1f16
-    libc.src.math.log2f16
-    libc.src.math.log2p1f16
-    libc.src.math.logbf16
-    libc.src.math.logf16
-    libc.src.math.lrintf16
-    libc.src.math.lroundf16
-    libc.src.math.modff16
-    libc.src.math.nanf16
-    libc.src.math.nearbyintf16
-    libc.src.math.nextafterf16
-    libc.src.math.nextdownf16
-    libc.src.math.nexttowardf16
-    libc.src.math.nextupf16
-    libc.src.math.remainderf16
-    libc.src.math.remquof16
-    libc.src.math.rintf16
-    libc.src.math.roundevenf16
-    libc.src.math.roundf16
-    libc.src.math.scalblnf16
-    libc.src.math.scalbnf16
-    libc.src.math.setpayloadf16
-    libc.src.math.setpayloadsigf16
-    libc.src.math.sinf16
-    libc.src.math.sinhf16
-    libc.src.math.sinpif16
-    libc.src.math.sqrtf16
-    libc.src.math.tanf16
-    libc.src.math.tanhf16
-    libc.src.math.tanpif16
-    libc.src.math.totalorderf16
-    libc.src.math.totalordermagf16
-    libc.src.math.truncf16
-    libc.src.math.ufromfpf16
-    libc.src.math.ufromfpxf16
-  )
-
-  if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-    list(APPEND TARGET_LIBM_ENTRYPOINTS
-      # math.h C23 mixed _Float16 and _Float128 entrypoints
-      libc.src.math.f16addf128
-      libc.src.math.f16divf128
-      libc.src.math.f16fmaf128
-      libc.src.math.f16mulf128
-      libc.src.math.f16sqrtf128
-      libc.src.math.f16subf128
-    )
-  endif()
-endif()
-
-if(LIBC_TYPES_HAS_CFLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # complex.h C23 _Complex _Float128 entrypoints
-    libc.src.complex.crealf128
-    libc.src.complex.cimagf128
-    libc.src.complex.conjf128
-    libc.src.complex.cprojf128
-  )
-endif()
-
-if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C23 _Float128 entrypoints
-    libc.src.math.canonicalizef128
-    libc.src.math.daddf128
-    libc.src.math.ddivf128
-    libc.src.math.dfmaf128
-    libc.src.math.dmulf128
-    libc.src.math.dsqrtf128
-    libc.src.math.dsubf128
-    libc.src.math.faddf128
-    libc.src.math.fdivf128
-    libc.src.math.ffmaf128
-    libc.src.math.fmodf128
-    libc.src.math.fmulf128
-    libc.src.math.frexpf128
-    libc.src.math.fromfpf128
-    libc.src.math.fromfpxf128
-    libc.src.math.fsqrtf128
-    libc.src.math.fsubf128
-    libc.src.math.getpayloadf128
-    libc.src.math.ilogbf128
-    libc.src.math.ldexpf128
-    libc.src.math.llogbf128
-    libc.src.math.logbf128
-    libc.src.math.modff128
-    libc.src.math.nanf128
-    libc.src.math.nextafterf128
-    libc.src.math.nextdownf128
-    libc.src.math.nextupf128
-    libc.src.math.remainderf128
-    libc.src.math.remquof128
-    libc.src.math.scalblnf128
-    libc.src.math.scalbnf128
-    libc.src.math.setpayloadf128
-    libc.src.math.setpayloadsigf128
-    libc.src.math.totalorderf128
-    libc.src.math.totalordermagf128
-    libc.src.math.ufromfpf128
-    libc.src.math.ufromfpxf128
-  )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
-  # bfloat16 entrypoints
-  libc.src.math.atanbf16
-  libc.src.math.acosbf16
-  libc.src.math.asinbf16
-  libc.src.math.bf16add
-  libc.src.math.bf16addf
-  libc.src.math.bf16addl
-  libc.src.math.bf16div
-  libc.src.math.bf16divf
-  libc.src.math.bf16divl
-  libc.src.math.bf16fma
-  libc.src.math.bf16fmaf
-  libc.src.math.bf16fmal
-  libc.src.math.bf16mul
-  libc.src.math.bf16mulf
-  libc.src.math.bf16mull
-  libc.src.math.bf16sub
-  libc.src.math.bf16subf
-  libc.src.math.bf16subl
-  libc.src.math.canonicalizebf16
-  libc.src.math.ceilbf16
-  libc.src.math.copysignbf16
-  libc.src.math.exp2bf16
-  libc.src.math.expbf16
-  libc.src.math.fabsbf16
-  libc.src.math.fdimbf16
-  libc.src.math.floorbf16
-  libc.src.math.fmaxbf16
-  libc.src.math.fmaximumbf16
-  libc.src.math.fmaximum_magbf16
-  libc.src.math.fmaximum_mag_numbf16
-  libc.src.math.fmaximum_numbf16
-  libc.src.math.fminbf16
-  libc.src.math.fminimumbf16
-  libc.src.math.fminimum_magbf16
-  libc.src.math.fminimum_mag_numbf16
-  libc.src.math.fminimum_numbf16
-  libc.src.math.fmodbf16
-  libc.src.math.frexpbf16
-  libc.src.math.fromfpbf16
-  libc.src.math.fromfpxbf16
-  libc.src.math.getpayloadbf16
-  libc.src.math.hypotbf16
-  libc.src.math.ilogbbf16
-  libc.src.math.iscanonicalbf16
-  libc.src.math.issignalingbf16
-  libc.src.math.ldexpbf16
-  libc.src.math.llogbbf16
-  libc.src.math.llrintbf16
-  libc.src.math.llroundbf16
-  libc.src.math.log_bf16
-  libc.src.math.logbbf16
-  libc.src.math.lrintbf16
-  libc.src.math.lroundbf16
-  libc.src.math.modfbf16
-  libc.src.math.nanbf16
-  libc.src.math.nearbyintbf16
-  libc.src.math.nextafterbf16
-  libc.src.math.nextdownbf16
-  libc.src.math.nexttowardbf16
-  libc.src.math.nextupbf16
-  libc.src.math.remainderbf16
-  libc.src.math.remquobf16
-  libc.src.math.rintbf16
-  libc.src.math.roundbf16
-  libc.src.math.roundevenbf16
-  libc.src.math.scalblnbf16
-  libc.src.math.scalbnbf16
-  libc.src.math.setpayloadbf16
-  libc.src.math.setpayloadsigbf16
-  libc.src.math.sqrtbf16
-  libc.src.math.tanbf16
-  libc.src.math.truncbf16
-  libc.src.math.totalorderbf16
-  libc.src.math.totalordermagbf16
-  libc.src.math.ufromfpbf16
-  libc.src.math.ufromfpxbf16
-)
-
-if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C++23 mixed bfloat16 and _Float128 entrypoints
-    libc.src.math.bf16addf128
-    libc.src.math.bf16mulf128
-    libc.src.math.bf16subf128
-  )
-endif()
-
-if(LIBC_COMPILER_HAS_FIXED_POINT)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # stdfix.h _Fract and _Accum entrypoints
-    libc.src.stdfix.abshk
-    libc.src.stdfix.abshr
-    libc.src.stdfix.absk
-    libc.src.stdfix.abslk
-    libc.src.stdfix.abslr
-    libc.src.stdfix.absr
-    libc.src.stdfix.exphk
-    libc.src.stdfix.expk
-    libc.src.stdfix.roundhk
-    libc.src.stdfix.roundhr
-    libc.src.stdfix.roundk
-    libc.src.stdfix.roundlk
-    libc.src.stdfix.roundlr
-    libc.src.stdfix.roundr
-    libc.src.stdfix.rounduhk
-    libc.src.stdfix.rounduhr
-    libc.src.stdfix.rounduk
-    libc.src.stdfix.roundulk
-    libc.src.stdfix.roundulr
-    libc.src.stdfix.roundur
-    libc.src.stdfix.sqrtuhk
-    libc.src.stdfix.sqrtuhr
-    libc.src.stdfix.sqrtuk
-    libc.src.stdfix.sqrtur
-    # libc.src.stdfix.sqrtulk
-    libc.src.stdfix.sqrtulr
-    libc.src.stdfix.uhksqrtus
-    libc.src.stdfix.uksqrtui
-    libc.src.stdfix.hrbits
-    libc.src.stdfix.uhrbits
-    libc.src.stdfix.rbits
-    libc.src.stdfix.urbits
-    libc.src.stdfix.lrbits
-    libc.src.stdfix.ulrbits
-    libc.src.stdfix.hkbits
-    libc.src.stdfix.uhkbits
-    libc.src.stdfix.kbits
-    libc.src.stdfix.ukbits
-    libc.src.stdfix.lkbits
-    libc.src.stdfix.ulkbits
-    libc.src.stdfix.bitshr
-    libc.src.stdfix.bitsr
-    libc.src.stdfix.bitslr
-    libc.src.stdfix.bitshk
-    libc.src.stdfix.bitsk
-    libc.src.stdfix.bitslk
-    libc.src.stdfix.bitsuhr
-    libc.src.stdfix.bitsur
-    libc.src.stdfix.bitsulr
-    libc.src.stdfix.bitsuhk
-    libc.src.stdfix.bitsuk
-    libc.src.stdfix.bitsulk
-    libc.src.stdfix.countlshr
-    libc.src.stdfix.countlsr
-    libc.src.stdfix.countlslr
-    libc.src.stdfix.countlshk
-    libc.src.stdfix.countlsk
-    libc.src.stdfix.countlslk
-    libc.src.stdfix.countlsuhr
-    libc.src.stdfix.countlsur
-    libc.src.stdfix.countlsulr
-    libc.src.stdfix.countlsuhk
-    libc.src.stdfix.countlsuk
-    libc.src.stdfix.countlsulk
-  )
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
-  ${TARGET_LIBC_ENTRYPOINTS}
-  ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+    # ctype.h entrypoints
+    libc.src.ctype.isalnum
+    libc.src.ctype.isalpha
+    libc.src.ctype.isascii
+    libc.src.ctype.isblank
+    libc.src.ctype.iscntrl
+    libc.src.ctype.isdigit
+    libc.src.ctype.isgraph
+    libc.src.ctype.islower
+    libc.src.ctype.isprint
+    libc.src.ctype.ispunct
+    libc.src.ctype.isspace
+    libc.src.ctype.isupper
+    libc.src.ctype.isxdigit
+    libc.src.ctype.toascii
+    libc.src.ctype.tolower
+    libc.src.ctype.toupper
+
+    # errno.h entrypoints
+    libc.src.errno.errno
+
+    # string.h entrypoints
+    libc.src.string.memccpy
+    libc.src.string.memchr
+    libc.src.string.memcmp
+    libc.src.string.memcpy
+    libc.src.string.memmem
+    libc.src.string.memmove
+    libc.src.string.mempcpy
+    libc.src.string.memrchr
+    libc.src.string.memset
+    libc.src.string.stpcpy
+    libc.src.string.stpncpy
+    libc.src.string.strcasestr
+    libc.src.string.strcat
+    libc.src.string.strchr
+    libc.src.string.strchrnul
+    libc.src.string.strcmp
+    libc.src.string.strcpy
+    libc.src.string.strcspn
+    libc.src.string.strlcat
+    libc.src.string.strlcpy
+    libc.src.string.strlen
+    libc.src.string.strncat
+    libc.src.string.strncmp
+    libc.src.string.strncpy
+    libc.src.string.strnlen
+    libc.src.string.strnlen_s
+    libc.src.string.strpbrk
+    libc.src.string.strrchr
+    libc.src.string.strspn
+    libc.src.string.strstr
+    libc.src.string.strtok
+    libc.src.string.strtok_r
+
+    # string.h entrypoints that depend on malloc
+    libc.src.string.strdup
+    libc.src.string.strndup
+
+    # strings.h entrypoints
+    libc.src.strings.bcmp
+    libc.src.strings.bcopy
+    libc.src.strings.bzero
+    libc.src.strings.strcasecmp
+    libc.src.strings.strncasecmp
+
+    # inttypes.h entrypoints
+    libc.src.inttypes.imaxabs
+    libc.src.inttypes.imaxdiv
+    libc.src.inttypes.strtoimax
+    libc.src.inttypes.strtoumax
+
+    # stdlib.h entrypoints
+    libc.src.stdlib.abs
+    libc.src.stdlib.atoi
+    libc.src.stdlib.atof
+    libc.src.stdlib.atol
+    libc.src.stdlib.atoll
+    libc.src.stdlib.bsearch
+    libc.src.stdlib.div
+    libc.src.stdlib.labs
+    libc.src.stdlib.ldiv
+    libc.src.stdlib.llabs
+    libc.src.stdlib.lldiv
+    libc.src.stdlib.memalignment
+    libc.src.stdlib.qsort
+    libc.src.stdlib.rand
+    libc.src.stdlib.srand
+    libc.src.stdlib.strtod
+    libc.src.stdlib.strtof
+    libc.src.stdlib.strtol
+    libc.src.stdlib.strtold
+    libc.src.stdlib.strtoll
+    libc.src.stdlib.strtoul
+    libc.src.stdlib.strtoull
+
+    # stdlib.h external entrypoints
+    libc.src.stdlib.malloc
+    libc.src.stdlib.calloc
+    libc.src.stdlib.realloc
+    libc.src.stdlib.free
+
+    # wctype.h entrypoints
+    libc.src.wctype.iswalpha
+    libc.src.wctype.iswgraph
+    libc.src.wctype.iswcntrl
+    libc.src.wctype.iswdigit
+    libc.src.wctype.iswupper
+    libc.src.wctype.iswalnum
+    libc.src.wctype.iswlower
+    libc.src.wctype.iswspace
+    libc.src.wctype.iswblank
+    libc.src.wctype.iswxdigit
+    libc.src.wctype.iswpunct
+    libc.src.wctype.iswprint
+    libc.src.wctype.iswctype
+    libc.src.wctype.wctype
+)
+
+if(LLVM_LIBC_FULL_BUILD)
+  list(APPEND TARGET_LIBC_ENTRYPOINTS
+    # signal.h entrypoints
+    libc.src.signal.sigaddset
+    libc.src.signal.sigdelset
+    libc.src.signal.sigemptyset
+    libc.src.signal.sigfillset
+    libc.src.signal.sigprocmask
+
+    # setjmp.h entrypoints
+    libc.src.setjmp.longjmp
+    libc.src.setjmp.setjmp
+    libc.src.setjmp.siglongjmp
+    libc.src.setjmp.sigsetjmp
+    libc.src.stdlib._Exit
+  )
+endif()
+
+
+set(TARGET_LIBM_ENTRYPOINTS
+    # complex.h entrypoints
+    libc.src.complex.cabs
+    libc.src.complex.cabsf
+    libc.src.complex.carg
+    libc.src.complex.cargf
+    libc.src.complex.creal
+    libc.src.complex.crealf
+    libc.src.complex.creall
+    libc.src.complex.cimag
+    libc.src.complex.cimagf
+    libc.src.complex.cimagl
+    libc.src.complex.conj
+    libc.src.complex.conjf
+    libc.src.complex.conjl
+    libc.src.complex.cproj
+    libc.src.complex.cprojf
+    libc.src.complex.cprojl
+
+    # fenv.h entrypoints
+    libc.src.fenv.feclearexcept
+    libc.src.fenv.fedisableexcept
+    libc.src.fenv.feenableexcept
+    libc.src.fenv.fegetenv
+    libc.src.fenv.fegetexcept
+    libc.src.fenv.fegetexceptflag
+    libc.src.fenv.fegetround
+    libc.src.fenv.feholdexcept
+    libc.src.fenv.feraiseexcept
+    libc.src.fenv.fesetenv
+    libc.src.fenv.fesetexcept
+    libc.src.fenv.fesetexceptflag
+    libc.src.fenv.fesetround
+    libc.src.fenv.fetestexcept
+    libc.src.fenv.fetestexceptflag
+    libc.src.fenv.feupdateenv
+
+    # math.h entrypoints
+    libc.src.math.acos
+    libc.src.math.acosf
+    libc.src.math.acoshf
+    libc.src.math.acospif
+    libc.src.math.asin
+    libc.src.math.asinf
+    libc.src.math.asinhf
+    libc.src.math.asinpi
+    libc.src.math.asinpif
+    libc.src.math.atan2
+    libc.src.math.atan2f
+    libc.src.math.atan2f128
+    libc.src.math.atan
+    libc.src.math.atanf
+    libc.src.math.atanhf
+    libc.src.math.canonicalize
+    libc.src.math.canonicalizef
+    libc.src.math.canonicalizel
+    libc.src.math.cbrt
+    libc.src.math.cbrtf
+    libc.src.math.cbrtbf16
+    libc.src.math.ceil
+    libc.src.math.ceilf
+    libc.src.math.ceilf128
+    libc.src.math.ceill
+    libc.src.math.copysign
+    libc.src.math.copysignf
+    libc.src.math.copysignf128
+    libc.src.math.copysignf80
+    libc.src.math.copysignl
+    libc.src.math.cos
+    libc.src.math.cosf
+    libc.src.math.coshf
+    libc.src.math.cospif
+    libc.src.math.dfmal
+    libc.src.math.dmull
+    libc.src.math.dsqrtl
+    libc.src.math.daddl
+    libc.src.math.ddivl
+    libc.src.math.dsubl
+    libc.src.math.erff
+    libc.src.math.exp
+    libc.src.math.exp10
+    libc.src.math.exp10f
+    libc.src.math.exp10m1f
+    libc.src.math.exp2
+    libc.src.math.exp2f
+    libc.src.math.exp2m1f
+    libc.src.math.expf
+    libc.src.math.expm1
+    libc.src.math.expm1f
+    libc.src.math.fabs
+    libc.src.math.fabsf
+    libc.src.math.fabsf128
+    libc.src.math.fabsf80
+    libc.src.math.fabsl
+    libc.src.math.fadd
+    libc.src.math.faddl
+    libc.src.math.fadd
+    libc.src.math.fdim
+    libc.src.math.fdimf
+    libc.src.math.fdimf128
+    libc.src.math.fdiml
+    libc.src.math.fdiv
+    libc.src.math.fdivl
+    libc.src.math.ffma
+    libc.src.math.ffmal
+    libc.src.math.floor
+    libc.src.math.floorf
+    libc.src.math.floorf128
+    libc.src.math.floorl
+    libc.src.math.fma
+    libc.src.math.fmabf16
+    libc.src.math.fmaf
+    libc.src.math.fmax
+    libc.src.math.fmaxf
+    libc.src.math.fmaxf128
+    libc.src.math.fmaximum
+    libc.src.math.fmaximum_mag
+    libc.src.math.fmaximum_mag_num
+    libc.src.math.fmaximum_mag_numf
+    libc.src.math.fmaximum_mag_numf128
+    libc.src.math.fmaximum_mag_numl
+    libc.src.math.fmaximum_magf
+    libc.src.math.fmaximum_magf128
+    libc.src.math.fmaximum_magl
+    libc.src.math.fmaximum_num
+    libc.src.math.fmaximum_numf
+    libc.src.math.fmaximum_numf128
+    libc.src.math.fmaximum_numl
+    libc.src.math.fmaximumf
+    libc.src.math.fmaximumf128
+    libc.src.math.fmaximuml
+    libc.src.math.fmaxl
+    libc.src.math.fmin
+    libc.src.math.fminf
+    libc.src.math.fminf128
+    libc.src.math.fminimum
+    libc.src.math.fminimum_mag
+    libc.src.math.fminimum_mag_num
+    libc.src.math.fminimum_mag_numf
+    libc.src.math.fminimum_mag_numf128
+    libc.src.math.fminimum_mag_numl
+    libc.src.math.fminimum_magf
+    libc.src.math.fminimum_magf128
+    libc.src.math.fminimum_magl
+    libc.src.math.fminimum_num
+    libc.src.math.fminimum_numf
+    libc.src.math.fminimum_numf128
+    libc.src.math.fminimum_numl
+    libc.src.math.fminimumf
+    libc.src.math.fminimumf128
+    libc.src.math.fminimuml
+    libc.src.math.fminl
+    libc.src.math.fmod
+    libc.src.math.fmodf
+    libc.src.math.fmodl
+    libc.src.math.fmul
+    libc.src.math.fmull
+    libc.src.math.frexp
+    libc.src.math.frexpf
+    libc.src.math.frexpl
+    libc.src.math.fromfp
+    libc.src.math.fromfpf
+    libc.src.math.fromfpl
+    libc.src.math.fromfpx
+    libc.src.math.fromfpxf
+    libc.src.math.fromfpxl
+    libc.src.math.fsqrt
+    libc.src.math.fsqrtl
+    libc.src.math.fsub
+    libc.src.math.fsubl
+    libc.src.math.getpayload
+    libc.src.math.getpayloadf
+    libc.src.math.getpayloadl
+    libc.src.math.hypot
+    libc.src.math.hypotf
+    libc.src.math.ilogb
+    libc.src.math.ilogbf
+    libc.src.math.ilogbl
+    libc.src.math.iscanonical
+    libc.src.math.iscanonicalf
+    libc.src.math.iscanonicalf128
+    libc.src.math.iscanonicall
+    libc.src.math.isnan
+    libc.src.math.isnanf
+    libc.src.math.isnanf128
+    libc.src.math.isnanl
+    libc.src.math.issignaling
+    libc.src.math.issignalingf
+    libc.src.math.issignalingf128
+    libc.src.math.issignalingl
+    libc.src.math.ldexp
+    libc.src.math.ldexpf
+    libc.src.math.ldexpl
+    libc.src.math.lgammaf
+    libc.src.math.llogb
+    libc.src.math.llogbf
+    libc.src.math.llogbl
+    libc.src.math.llrint
+    libc.src.math.llrintf
+    libc.src.math.llrintf128
+    libc.src.math.llrintl
+    libc.src.math.llround
+    libc.src.math.llroundf
+    libc.src.math.llroundf128
+    libc.src.math.llroundl
+    libc.src.math.log
+    libc.src.math.log10
+    libc.src.math.log10f
+    libc.src.math.log1p
+    libc.src.math.log1pf
+    libc.src.math.log2
+    libc.src.math.log2f
+    libc.src.math.logb
+    libc.src.math.logbf
+    libc.src.math.logbl
+    libc.src.math.logf
+    libc.src.math.lrint
+    libc.src.math.lrintf
+    libc.src.math.lrintf128
+    libc.src.math.lrintl
+    libc.src.math.lround
+    libc.src.math.lroundf
+    libc.src.math.lroundf128
+    libc.src.math.lroundl
+    libc.src.math.modf
+    libc.src.math.modff
+    libc.src.math.modfl
+    libc.src.math.nan
+    libc.src.math.nanf
+    libc.src.math.nanl
+    libc.src.math.nearbyint
+    libc.src.math.nearbyintf
+    libc.src.math.nearbyintf128
+    libc.src.math.nearbyintl
+    libc.src.math.nextafter
+    libc.src.math.nextafterf
+    libc.src.math.nextafterl
+    libc.src.math.nextdown
+    libc.src.math.nextdownf
+    libc.src.math.nextdownl
+    libc.src.math.nexttoward
+    libc.src.math.nexttowardf
+    libc.src.math.nexttowardl
+    libc.src.math.nextup
+    libc.src.math.nextupf
+    libc.src.math.nextupl
+    libc.src.math.pow
+    libc.src.math.powf
+    libc.src.math.remainder
+    libc.src.math.remainderf
+    libc.src.math.remainderl
+    libc.src.math.remquo
+    libc.src.math.remquof
+    libc.src.math.remquol
+    libc.src.math.rint
+    libc.src.math.rintf
+    libc.src.math.rintf128
+    libc.src.math.rintl
+    libc.src.math.round
+    libc.src.math.roundeven
+    libc.src.math.roundevenf
+    libc.src.math.roundevenf128
+    libc.src.math.roundevenl
+    libc.src.math.roundf
+    libc.src.math.roundf128
+    libc.src.math.roundl
+    libc.src.math.scalbln
+    libc.src.math.scalblnf
+    libc.src.math.scalblnl
+    libc.src.math.scalbn
+    libc.src.math.scalbnf
+    libc.src.math.scalbnl
+    libc.src.math.setpayload
+    libc.src.math.setpayloadf
+    libc.src.math.setpayloadl
+    libc.src.math.setpayloadsig
+    libc.src.math.setpayloadsigf
+    libc.src.math.setpayloadsigl
+    libc.src.math.sin
+    libc.src.math.sincos
+    libc.src.math.sincosf
+    libc.src.math.sinf
+    libc.src.math.sinhf
+    libc.src.math.sinpif
+    libc.src.math.sqrt
+    libc.src.math.sqrtf
+    libc.src.math.sqrtf128
+    libc.src.math.sqrtl
+    libc.src.math.tan
+    libc.src.math.tanf
+    libc.src.math.tanhf
+    libc.src.math.tanpif
+    libc.src.math.totalorder
+    libc.src.math.totalorderf
+    libc.src.math.totalorderl
+    libc.src.math.totalordermag
+    libc.src.math.totalordermagf
+    libc.src.math.totalordermagl
+    libc.src.math.trunc
+    libc.src.math.truncf
+    libc.src.math.truncf128
+    libc.src.math.truncl
+    libc.src.math.ufromfp
+    libc.src.math.ufromfpf
+    libc.src.math.ufromfpl
+    libc.src.math.ufromfpx
+    libc.src.math.ufromfpxf
+    libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_CFLOAT16)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # complex.h C23 _Complex _Float16 entrypoints
+    libc.src.complex.crealf16
+    libc.src.complex.cimagf16
+    libc.src.complex.conjf16
+    libc.src.complex.cprojf16
+  )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT16)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C23 _Float16 entrypoints
+    libc.src.math.acosf16
+    libc.src.math.acoshf16
+    libc.src.math.asinf16
+    libc.src.math.asinhf16
+    libc.src.math.atan2f16
+    libc.src.math.canonicalizef16
+    libc.src.math.cbrtf16
+    libc.src.math.ceilf16
+    libc.src.math.copysignf16
+    libc.src.math.cosf16
+    libc.src.math.coshf16
+    libc.src.math.cospif16
+    libc.src.math.exp10f16
+    libc.src.math.exp10m1f16
+    libc.src.math.exp2f16
+    libc.src.math.exp2m1f16
+    libc.src.math.expf16
+    libc.src.math.expm1f16
+    libc.src.math.f16add
+    libc.src.math.f16addf
+    libc.src.math.f16addl
+    libc.src.math.f16div
+    libc.src.math.f16divf
+    libc.src.math.f16divl
+    libc.src.math.f16fma
+    libc.src.math.f16fmaf
+    libc.src.math.f16fmal
+    libc.src.math.f16mul
+    libc.src.math.f16mulf
+    libc.src.math.f16mull
+    libc.src.math.f16sqrt
+    libc.src.math.f16sqrtf
+    libc.src.math.f16sqrtl
+    libc.src.math.f16sub
+    libc.src.math.f16subf
+    libc.src.math.f16subl
+    libc.src.math.fabsf16
+    libc.src.math.fdimf16
+    libc.src.math.floorf16
+    libc.src.math.fmaf16
+    libc.src.math.fmaxf16
+    libc.src.math.fmaximum_mag_numf16
+    libc.src.math.fmaximum_magf16
+    libc.src.math.fmaximum_numf16
+    libc.src.math.fmaximumf16
+    libc.src.math.fminf16
+    libc.src.math.fminimum_mag_numf16
+    libc.src.math.fminimum_magf16
+    libc.src.math.fminimum_numf16
+    libc.src.math.fminimumf16
+    libc.src.math.fmodf16
+    libc.src.math.frexpf16
+    libc.src.math.fromfpf16
+    libc.src.math.fromfpxf16
+    libc.src.math.getpayloadf16
+    libc.src.math.hypotf16
+    libc.src.math.ilogbf16
+    libc.src.math.iscanonicalf16
+    libc.src.math.isnanf16
+    libc.src.math.issignalingf16
+    libc.src.math.ldexpf16
+    libc.src.math.lgammaf16
+    libc.src.math.llogbf16
+    libc.src.math.llrintf16
+    libc.src.math.llroundf16
+    libc.src.math.log10f16
+    libc.src.math.log10p1f16
+    libc.src.math.log2f16
+    libc.src.math.log2p1f16
+    libc.src.math.logbf16
+    libc.src.math.logf16
+    libc.src.math.lrintf16
+    libc.src.math.lroundf16
+    libc.src.math.modff16
+    libc.src.math.nanf16
+    libc.src.math.nearbyintf16
+    libc.src.math.nextafterf16
+    libc.src.math.nextdownf16
+    libc.src.math.nexttowardf16
+    libc.src.math.nextupf16
+    libc.src.math.remainderf16
+    libc.src.math.remquof16
+    libc.src.math.rintf16
+    libc.src.math.roundevenf16
+    libc.src.math.roundf16
+    libc.src.math.scalblnf16
+    libc.src.math.scalbnf16
+    libc.src.math.setpayloadf16
+    libc.src.math.setpayloadsigf16
+    libc.src.math.sinf16
+    libc.src.math.sinhf16
+    libc.src.math.sinpif16
+    libc.src.math.sqrtf16
+    libc.src.math.tanf16
+    libc.src.math.tanhf16
+    libc.src.math.tanpif16
+    libc.src.math.totalorderf16
+    libc.src.math.totalordermagf16
+    libc.src.math.truncf16
+    libc.src.math.ufromfpf16
+    libc.src.math.ufromfpxf16
+  )
+
+  if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+    list(APPEND TARGET_LIBM_ENTRYPOINTS
+      # math.h C23 mixed _Float16 and _Float128 entrypoints
+      libc.src.math.f16addf128
+      libc.src.math.f16divf128
+      libc.src.math.f16fmaf128
+      libc.src.math.f16mulf128
+      libc.src.math.f16sqrtf128
+      libc.src.math.f16subf128
+    )
+  endif()
+endif()
+
+if(LIBC_TYPES_HAS_CFLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # complex.h C23 _Complex _Float128 entrypoints
+    libc.src.complex.crealf128
+    libc.src.complex.cimagf128
+    libc.src.complex.conjf128
+    libc.src.complex.cprojf128
+  )
+endif()
+
+if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C23 _Float128 entrypoints
+    libc.src.math.canonicalizef128
+    libc.src.math.daddf128
+    libc.src.math.ddivf128
+    libc.src.math.dfmaf128
+    libc.src.math.dmulf128
+    libc.src.math.dsqrtf128
+    libc.src.math.dsubf128
+    libc.src.math.faddf128
+    libc.src.math.fdivf128
+    libc.src.math.ffmaf128
+    libc.src.math.fmodf128
+    libc.src.math.fmulf128
+    libc.src.math.frexpf128
+    libc.src.math.fromfpf128
+    libc.src.math.fromfpxf128
+    libc.src.math.fsqrtf128
+    libc.src.math.fsubf128
+    libc.src.math.getpayloadf128
+    libc.src.math.ilogbf128
+    libc.src.math.ldexpf128
+    libc.src.math.llogbf128
+    libc.src.math.logbf128
+    libc.src.math.modff128
+    libc.src.math.nanf128
+    libc.src.math.nextafterf128
+    libc.src.math.nextdownf128
+    libc.src.math.nextupf128
+    libc.src.math.remainderf128
+    libc.src.math.remquof128
+    libc.src.math.scalblnf128
+    libc.src.math.scalbnf128
+    libc.src.math.setpayloadf128
+    libc.src.math.setpayloadsigf128
+    libc.src.math.totalorderf128
+    libc.src.math.totalordermagf128
+    libc.src.math.ufromfpf128
+    libc.src.math.ufromfpxf128
+  )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+  # bfloat16 entrypoints
+  libc.src.math.atanbf16
+  libc.src.math.acosbf16
+  libc.src.math.asinbf16
+  libc.src.math.bf16add
+  libc.src.math.bf16addf
+  libc.src.math.bf16addl
+  libc.src.math.bf16div
+  libc.src.math.bf16divf
+  libc.src.math.bf16divl
+  libc.src.math.bf16fma
+  libc.src.math.bf16fmaf
+  libc.src.math.bf16fmal
+  libc.src.math.bf16mul
+  libc.src.math.bf16mulf
+  libc.src.math.bf16mull
+  libc.src.math.bf16sub
+  libc.src.math.bf16subf
+  libc.src.math.bf16subl
+  libc.src.math.canonicalizebf16
+  libc.src.math.ceilbf16
+  libc.src.math.copysignbf16
+  libc.src.math.exp2bf16
+  libc.src.math.expbf16
+  libc.src.math.fabsbf16
+  libc.src.math.fdimbf16
+  libc.src.math.floorbf16
+  libc.src.math.fmaxbf16
+  libc.src.math.fmaximumbf16
+  libc.src.math.fmaximum_magbf16
+  libc.src.math.fmaximum_mag_numbf16
+  libc.src.math.fmaximum_numbf16
+  libc.src.math.fminbf16
+  libc.src.math.fminimumbf16
+  libc.src.math.fminimum_magbf16
+  libc.src.math.fminimum_mag_numbf16
+  libc.src.math.fminimum_numbf16
+  libc.src.math.fmodbf16
+  libc.src.math.frexpbf16
+  libc.src.math.fromfpbf16
+  libc.src.math.fromfpxbf16
+  libc.src.math.getpayloadbf16
+  libc.src.math.hypotbf16
+  libc.src.math.ilogbbf16
+  libc.src.math.iscanonicalbf16
+  libc.src.math.issignalingbf16
+  libc.src.math.ldexpbf16
+  libc.src.math.llogbbf16
+  libc.src.math.llrintbf16
+  libc.src.math.llroundbf16
+  libc.src.math.log_bf16
+  libc.src.math.logbbf16
+  libc.src.math.lrintbf16
+  libc.src.math.lroundbf16
+  libc.src.math.modfbf16
+  libc.src.math.nanbf16
+  libc.src.math.nearbyintbf16
+  libc.src.math.nextafterbf16
+  libc.src.math.nextdownbf16
+  libc.src.math.nexttowardbf16
+  libc.src.math.nextupbf16
+  libc.src.math.remainderbf16
+  libc.src.math.remquobf16
+  libc.src.math.rintbf16
+  libc.src.math.roundbf16
+  libc.src.math.roundevenbf16
+  libc.src.math.scalblnbf16
+  libc.src.math.scalbnbf16
+  libc.src.math.setpayloadbf16
+  libc.src.math.setpayloadsigbf16
+  libc.src.math.sqrtbf16
+  libc.src.math.tanbf16
+  libc.src.math.truncbf16
+  libc.src.math.totalorderbf16
+  libc.src.math.totalordermagbf16
+  libc.src.math.ufromfpbf16
+  libc.src.math.ufromfpxbf16
+)
+
+if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C++23 mixed bfloat16 and _Float128 entrypoints
+    libc.src.math.bf16addf128
+    libc.src.math.bf16mulf128
+    libc.src.math.bf16subf128
+  )
+endif()
+
+if(LIBC_COMPILER_HAS_FIXED_POINT)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # stdfix.h _Fract and _Accum entrypoints
+    libc.src.stdfix.abshk
+    libc.src.stdfix.abshr
+    libc.src.stdfix.absk
+    libc.src.stdfix.abslk
+    libc.src.stdfix.abslr
+    libc.src.stdfix.absr
+    libc.src.stdfix.exphk
+    libc.src.stdfix.expk
+    libc.src.stdfix.roundhk
+    libc.src.stdfix.roundhr
+    libc.src.stdfix.roundk
+    libc.src.stdfix.roundlk
+    libc.src.stdfix.roundlr
+    libc.src.stdfix.roundr
+    libc.src.stdfix.rounduhk
+    libc.src.stdfix.rounduhr
+    libc.src.stdfix.rounduk
+    libc.src.stdfix.roundulk
+    libc.src.stdfix.roundulr
+    libc.src.stdfix.roundur
+    libc.src.stdfix.sqrtuhk
+    libc.src.stdfix.sqrtuhr
+    libc.src.stdfix.sqrtuk
+    libc.src.stdfix.sqrtur
+    # libc.src.stdfix.sqrtulk
+    libc.src.stdfix.sqrtulr
+    libc.src.stdfix.uhksqrtus
+    libc.src.stdfix.uksqrtui
+    libc.src.stdfix.hrbits
+    libc.src.stdfix.uhrbits
+    libc.src.stdfix.rbits
+    libc.src.stdfix.urbits
+    libc.src.stdfix.lrbits
+    libc.src.stdfix.ulrbits
+    libc.src.stdfix.hkbits
+    libc.src.stdfix.uhkbits
+    libc.src.stdfix.kbits
+    libc.src.stdfix.ukbits
+    libc.src.stdfix.lkbits
+    libc.src.stdfix.ulkbits
+    libc.src.stdfix.bitshr
+    libc.src.stdfix.bitsr
+    libc.src.stdfix.bitslr
+    libc.src.stdfix.bitshk
+    libc.src.stdfix.bitsk
+    libc.src.stdfix.bitslk
+    libc.src.stdfix.bitsuhr
+    libc.src.stdfix.bitsur
+    libc.src.stdfix.bitsulr
+    libc.src.stdfix.bitsuhk
+    libc.src.stdfix.bitsuk
+    libc.src.stdfix.bitsulk
+    libc.src.stdfix.countlshr
+    libc.src.stdfix.countlsr
+    libc.src.stdfix.countlslr
+    libc.src.stdfix.countlshk
+    libc.src.stdfix.countlsk
+    libc.src.stdfix.countlslk
+    libc.src.stdfix.countlsuhr
+    libc.src.stdfix.countlsur
+    libc.src.stdfix.countlsulr
+    libc.src.stdfix.countlsuhk
+    libc.src.stdfix.countlsuk
+    libc.src.stdfix.countlsulk
+  )
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+  ${TARGET_LIBC_ENTRYPOINTS}
+  ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/darwin/x86_64/entrypoints.txt b/libc/config/darwin/x86_64/entrypoints.txt
index e3fc845d2ed3af..2dcec05978469c 100644
--- a/libc/config/darwin/x86_64/entrypoints.txt
+++ b/libc/config/darwin/x86_64/entrypoints.txt
@@ -1,349 +1,351 @@
-set(TARGET_LIBC_ENTRYPOINTS
-    # ctype.h entrypoints
-    libc.src.ctype.isalnum
-    libc.src.ctype.isalpha
-    libc.src.ctype.isascii
-    libc.src.ctype.isblank
-    libc.src.ctype.iscntrl
-    libc.src.ctype.isdigit
-    libc.src.ctype.isgraph
-    libc.src.ctype.islower
-    libc.src.ctype.isprint
-    libc.src.ctype.ispunct
-    libc.src.ctype.isspace
-    libc.src.ctype.isupper
-    libc.src.ctype.isxdigit
-    libc.src.ctype.toascii
-    libc.src.ctype.tolower
-    libc.src.ctype.toupper
-
-    # search.h entrypoints
-    libc.src.search.lfind
-
-    # string.h entrypoints
-    libc.src.string.memccpy
-    libc.src.string.memchr
-    libc.src.string.memcmp
-    libc.src.string.memcpy
-    libc.src.string.memmem
-    libc.src.string.memmove
-    libc.src.string.mempcpy
-    libc.src.string.memrchr
-    libc.src.string.memset
-    libc.src.string.stpcpy
-    libc.src.string.stpncpy
-    libc.src.string.strcat
-    libc.src.string.strchr
-    libc.src.string.strchrnul
-    libc.src.string.strcmp
-    libc.src.string.strcpy
-    libc.src.string.strcspn
-    libc.src.string.strlcat
-    libc.src.string.strlcpy
-    libc.src.string.strlen
-    libc.src.string.strncat
-    libc.src.string.strncmp
-    libc.src.string.strncpy
-    libc.src.string.strnlen
-    libc.src.string.strnlen_s
-    libc.src.string.strpbrk
-    libc.src.string.strrchr
-    libc.src.string.strspn
-    libc.src.string.strstr
-    libc.src.string.strtok
-    libc.src.string.strtok_r
-
-    # string.h entrypoints that depend on malloc
-    libc.src.string.strdup
-    libc.src.string.strndup
-
-    # strings.h entrypoints
-    libc.src.strings.bcmp
-    libc.src.strings.bzero
-
-    # inttypes.h entrypoints
-    libc.src.inttypes.imaxabs
-    libc.src.inttypes.imaxdiv
-    libc.src.inttypes.strtoimax
-    libc.src.inttypes.strtoumax
-
-    # stdlib.h entrypoints
-    libc.src.stdlib.abs
-    libc.src.stdlib.atoi
-    libc.src.stdlib.atof
-    libc.src.stdlib.atol
-    libc.src.stdlib.atoll
-    libc.src.stdlib.bsearch
-    libc.src.stdlib.div
-    libc.src.stdlib.labs
-    libc.src.stdlib.ldiv
-    libc.src.stdlib.llabs
-    libc.src.stdlib.lldiv
-    libc.src.stdlib.memalignment
-    libc.src.stdlib.qsort
-    libc.src.stdlib.strtod
-    libc.src.stdlib.strtof
-    libc.src.stdlib.strtol
-    libc.src.stdlib.strtold
-    libc.src.stdlib.strtoll
-    libc.src.stdlib.strtoul
-    libc.src.stdlib.strtoull
-
-    # stdlib.h external entrypoints
-    libc.src.stdlib.malloc
-    libc.src.stdlib.calloc
-    libc.src.stdlib.realloc
-    libc.src.stdlib.free
-)
-
-set(TARGET_LIBM_ENTRYPOINTS
-    # fenv disabled on x86_64 MacOS for now.
-    # # fenv.h entrypoints
-    # libc.src.fenv.feclearexcept
-    # libc.src.fenv.fedisableexcept
-    # libc.src.fenv.feenableexcept
-    # libc.src.fenv.fegetenv
-    # libc.src.fenv.fegetexcept
-    # libc.src.fenv.fegetexceptflag
-    # libc.src.fenv.fegetround
-    # libc.src.fenv.feholdexcept
-    # libc.src.fenv.fesetenv
-    # libc.src.fenv.fesetexcept
-    # libc.src.fenv.fesetexceptflag
-    # libc.src.fenv.fesetround
-    # libc.src.fenv.feraiseexcept
-    # libc.src.fenv.fetestexcept
-    # libc.src.fenv.fetestexceptflag
-    # libc.src.fenv.feupdateenv
-
-    ## Currently disabled for failing tests.
-    # math.h entrypoints
-    #libc.src.math.atan2f128
-    #libc.src.math.copysign
-    #libc.src.math.copysignf
-    #libc.src.math.copysignf128
-    #libc.src.math.copysignl
-    #libc.src.math.ceil
-    #libc.src.math.ceilf
-    #libc.src.math.ceilf128
-    #libc.src.math.ceill
-    #libc.src.math.coshf
-    #libc.src.math.cosf
-    #libc.src.math.daddl
-    #libc.src.math.ddivl
-    #libc.src.math.dfmal
-    #libc.src.math.dsqrtl
-    #libc.src.math.dsubl
-    #libc.src.math.expf
-    #libc.src.math.exp2f
-    #libc.src.math.expm1f
-    #libc.src.math.fabs
-    #libc.src.math.fabsf
-    #libc.src.math.fabsf128
-    #libc.src.math.fabsl
-    #libc.src.math.fdim
-    #libc.src.math.fdimf
-    #libc.src.math.fdimf128
-    #libc.src.math.fdiml
-    #libc.src.math.fdiv
-    #libc.src.math.fdivl
-    #libc.src.math.ffma
-    #libc.src.math.ffmal
-    #libc.src.math.floor
-    #libc.src.math.floorf
-    #libc.src.math.floorf128
-    #libc.src.math.floorl
-    #libc.src.math.fma
-    #libc.src.math.fmabf16
-    #libc.src.math.fmaf
-    #libc.src.math.fmax
-    #libc.src.math.fmaxf
-    #libc.src.math.fmaxf128
-    #libc.src.math.fmaximum_mag_numf128
-    #libc.src.math.fmaximum_magf128
-    #libc.src.math.fmaximum_numf128
-    #libc.src.math.fmaximumf128
-    #libc.src.math.fmaxl
-    #libc.src.math.fmin
-    #libc.src.math.fminf
-    #libc.src.math.fminf128
-    #libc.src.math.fminimum_mag_numf128
-    #libc.src.math.fminimum_magf128
-    #libc.src.math.fminimum_numf128
-    #libc.src.math.fminimumf128
-    #libc.src.math.fminl
-    #libc.src.math.fmod
-    #libc.src.math.fmodf
-    #libc.src.math.frexp
-    #libc.src.math.frexpf
-    #libc.src.math.frexpl
-    #libc.src.math.fsub
-    #libc.src.math.fsubl
-    #libc.src.math.hypot
-    #libc.src.math.hypotf
-    #libc.src.math.ilogb
-    #libc.src.math.ilogbf
-    #libc.src.math.ilogbl
-    #libc.src.math.iscanonicalf128
-    #libc.src.math.isnanf128
-    #libc.src.math.issignalingf128
-    #libc.src.math.llrint
-    #libc.src.math.llrintf
-    #libc.src.math.llrintf128
-    #libc.src.math.llrintl
-    #libc.src.math.llround
-    #libc.src.math.llroundf
-    #libc.src.math.llroundf128
-    #libc.src.math.llroundl
-    #libc.src.math.lrint
-    #libc.src.math.lrintf
-    #libc.src.math.lrintf128
-    #libc.src.math.lrintl
-    #libc.src.math.lround
-    #libc.src.math.lroundf
-    #libc.src.math.lroundf128
-    #libc.src.math.lroundl
-    #libc.src.math.ldexp
-    #libc.src.math.ldexpf
-    #libc.src.math.ldexpl
-    #libc.src.math.log10f
-    #libc.src.math.log1pf
-    #libc.src.math.log2f
-    #libc.src.math.logf
-    #libc.src.math.logb
-    #libc.src.math.logbf
-    #libc.src.math.logbl
-    #libc.src.math.modf
-    #libc.src.math.modff
-    #libc.src.math.modfl
-    #libc.src.math.nan
-    #libc.src.math.nanf
-    #libc.src.math.nanl
-    #libc.src.math.nearbyint
-    #libc.src.math.nearbyintf
-    #libc.src.math.nearbyintf128
-    #libc.src.math.nearbyintl
-    #libc.src.math.nextafter
-    #libc.src.math.nextafterf
-    #libc.src.math.nextafterl
-    #libc.src.math.nexttoward
-    #libc.src.math.nexttowardf
-    #libc.src.math.nexttowardl
-    #libc.src.math.remainderf
-    #libc.src.math.remainder
-    #libc.src.math.remainderl
-    #libc.src.math.remquof
-    #libc.src.math.remquo
-    #libc.src.math.remquol
-    #libc.src.math.rint
-    #libc.src.math.rintf
-    #libc.src.math.rintf128
-    #libc.src.math.rintl
-    #libc.src.math.round
-    #libc.src.math.roundevenf128
-    #libc.src.math.roundf
-    #libc.src.math.roundf128
-    #libc.src.math.roundl
-    #libc.src.math.sincosf
-    #libc.src.math.sinhf
-    #libc.src.math.sinf
-    #libc.src.math.sqrt
-    #libc.src.math.sqrtf
-    #libc.src.math.sqrtf128
-    #libc.src.math.sqrtl
-    #libc.src.math.tanf
-    #libc.src.math.tanhf
-    #libc.src.math.totalordermag
-    #libc.src.math.totalordermagf
-    #libc.src.math.totalordermagl
-    #libc.src.math.trunc
-    #libc.src.math.truncf
-    #libc.src.math.truncf128
-    #libc.src.math.truncl
-)
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
-  # bfloat16 entrypoints
-  libc.src.math.atanbf16
-  libc.src.math.acosbf16
-  libc.src.math.asinbf16
-  libc.src.math.bf16add
-  libc.src.math.bf16addf
-  libc.src.math.bf16addl
-  libc.src.math.bf16div
-  libc.src.math.bf16divf
-  libc.src.math.bf16divl
-  libc.src.math.bf16fma
-  libc.src.math.bf16fmaf
-  libc.src.math.bf16fmal
-  libc.src.math.bf16mul
-  libc.src.math.bf16mulf
-  libc.src.math.bf16mull
-  libc.src.math.bf16sub
-  libc.src.math.bf16subf
-  libc.src.math.bf16subl
-  libc.src.math.canonicalizebf16
-  libc.src.math.ceilbf16
-  libc.src.math.copysignbf16
-  libc.src.math.exp2bf16
-  libc.src.math.expbf16
-  libc.src.math.fabsbf16
-  libc.src.math.fdimbf16
-  libc.src.math.floorbf16
-  libc.src.math.fmaxbf16
-  libc.src.math.fmaximumbf16
-  libc.src.math.fmaximum_magbf16
-  libc.src.math.fmaximum_mag_numbf16
-  libc.src.math.fmaximum_numbf16
-  libc.src.math.fminbf16
-  libc.src.math.fminimumbf16
-  libc.src.math.fminimum_magbf16
-  libc.src.math.fminimum_mag_numbf16
-  libc.src.math.fminimum_numbf16
-  libc.src.math.fmodbf16
-  libc.src.math.frexpbf16
-  libc.src.math.fromfpbf16
-  libc.src.math.fromfpxbf16
-  libc.src.math.getpayloadbf16
-  libc.src.math.hypotbf16
-  libc.src.math.ilogbbf16
-  libc.src.math.iscanonicalbf16
-  libc.src.math.issignalingbf16
-  libc.src.math.ldexpbf16
-  libc.src.math.llogbbf16
-  libc.src.math.llrintbf16
-  libc.src.math.llroundbf16
-  libc.src.math.log_bf16
-  libc.src.math.cbrtbf16
-  libc.src.math.logbbf16
-  libc.src.math.lrintbf16
-  libc.src.math.lroundbf16
-  libc.src.math.modfbf16
-  libc.src.math.nanbf16
-  libc.src.math.nearbyintbf16
-  libc.src.math.nextafterbf16
-  libc.src.math.nextdownbf16
-  libc.src.math.nexttowardbf16
-  libc.src.math.nextupbf16
-  libc.src.math.remainderbf16
-  libc.src.math.remquobf16
-  libc.src.math.rintbf16
-  libc.src.math.roundbf16
-  libc.src.math.roundevenbf16
-  libc.src.math.scalblnbf16
-  libc.src.math.scalbnbf16
-  libc.src.math.setpayloadbf16
-  libc.src.math.setpayloadsigbf16
-  libc.src.math.sqrtbf16
-  libc.src.math.tanbf16
-  libc.src.math.truncbf16
-  libc.src.math.totalorderbf16
-  libc.src.math.totalordermagbf16
-  libc.src.math.ufromfpbf16
-  libc.src.math.ufromfpxbf16
-)
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
-  ${TARGET_LIBC_ENTRYPOINTS}
-  ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+    # ctype.h entrypoints
+    libc.src.ctype.isalnum
+    libc.src.ctype.isalpha
+    libc.src.ctype.isascii
+    libc.src.ctype.isblank
+    libc.src.ctype.iscntrl
+    libc.src.ctype.isdigit
+    libc.src.ctype.isgraph
+    libc.src.ctype.islower
+    libc.src.ctype.isprint
+    libc.src.ctype.ispunct
+    libc.src.ctype.isspace
+    libc.src.ctype.isupper
+    libc.src.ctype.isxdigit
+    libc.src.ctype.toascii
+    libc.src.ctype.tolower
+    libc.src.ctype.toupper
+
+    # search.h entrypoints
+    libc.src.search.lfind
+
+    # string.h entrypoints
+    libc.src.string.memccpy
+    libc.src.string.memchr
+    libc.src.string.memcmp
+    libc.src.string.memcpy
+    libc.src.string.memmem
+    libc.src.string.memmove
+    libc.src.string.mempcpy
+    libc.src.string.memrchr
+    libc.src.string.memset
+    libc.src.string.stpcpy
+    libc.src.string.stpncpy
+    libc.src.string.strcat
+    libc.src.string.strchr
+    libc.src.string.strchrnul
+    libc.src.string.strcmp
+    libc.src.string.strcpy
+    libc.src.string.strcspn
+    libc.src.string.strlcat
+    libc.src.string.strlcpy
+    libc.src.string.strlen
+    libc.src.string.strncat
+    libc.src.string.strncmp
+    libc.src.string.strncpy
+    libc.src.string.strnlen
+    libc.src.string.strnlen_s
+    libc.src.string.strpbrk
+    libc.src.string.strrchr
+    libc.src.string.strspn
+    libc.src.string.strstr
+    libc.src.string.strtok
+    libc.src.string.strtok_r
+
+    # string.h entrypoints that depend on malloc
+    libc.src.string.strdup
+    libc.src.string.strndup
+
+    # strings.h entrypoints
+    libc.src.strings.bcmp
+    libc.src.strings.bzero
+
+    # inttypes.h entrypoints
+    libc.src.inttypes.imaxabs
+    libc.src.inttypes.imaxdiv
+    libc.src.inttypes.strtoimax
+    libc.src.inttypes.strtoumax
+
+    # stdlib.h entrypoints
+    libc.src.stdlib.abs
+    libc.src.stdlib.atoi
+    libc.src.stdlib.atof
+    libc.src.stdlib.atol
+    libc.src.stdlib.atoll
+    libc.src.stdlib.bsearch
+    libc.src.stdlib.div
+    libc.src.stdlib.labs
+    libc.src.stdlib.ldiv
+    libc.src.stdlib.llabs
+    libc.src.stdlib.lldiv
+    libc.src.stdlib.memalignment
+    libc.src.stdlib.qsort
+    libc.src.stdlib.strtod
+    libc.src.stdlib.strtof
+    libc.src.stdlib.strtol
+    libc.src.stdlib.strtold
+    libc.src.stdlib.strtoll
+    libc.src.stdlib.strtoul
+    libc.src.stdlib.strtoull
+
+    # stdlib.h external entrypoints
+    libc.src.stdlib.malloc
+    libc.src.stdlib.calloc
+    libc.src.stdlib.realloc
+    libc.src.stdlib.free
+)
+
+set(TARGET_LIBM_ENTRYPOINTS
+    # fenv disabled on x86_64 MacOS for now.
+    # # fenv.h entrypoints
+    # libc.src.fenv.feclearexcept
+    # libc.src.fenv.fedisableexcept
+    # libc.src.fenv.feenableexcept
+    # libc.src.fenv.fegetenv
+    # libc.src.fenv.fegetexcept
+    # libc.src.fenv.fegetexceptflag
+    # libc.src.fenv.fegetround
+    # libc.src.fenv.feholdexcept
+    # libc.src.fenv.fesetenv
+    # libc.src.fenv.fesetexcept
+    # libc.src.fenv.fesetexceptflag
+    # libc.src.fenv.fesetround
+    # libc.src.fenv.feraiseexcept
+    # libc.src.fenv.fetestexcept
+    # libc.src.fenv.fetestexceptflag
+    # libc.src.fenv.feupdateenv
+
+    ## Currently disabled for failing tests.
+    # math.h entrypoints
+    #libc.src.math.atan2f128
+    #libc.src.math.copysign
+    #libc.src.math.copysignf
+    #libc.src.math.copysignf128
+    libc.src.math.copysignf80
+    #libc.src.math.copysignl
+    #libc.src.math.ceil
+    #libc.src.math.ceilf
+    #libc.src.math.ceilf128
+    #libc.src.math.ceill
+    #libc.src.math.coshf
+    #libc.src.math.cosf
+    #libc.src.math.daddl
+    #libc.src.math.ddivl
+    #libc.src.math.dfmal
+    #libc.src.math.dsqrtl
+    #libc.src.math.dsubl
+    #libc.src.math.expf
+    #libc.src.math.exp2f
+    #libc.src.math.expm1f
+    #libc.src.math.fabs
+    #libc.src.math.fabsf
+    #libc.src.math.fabsf128
+    libc.src.math.fabsf80
+    #libc.src.math.fabsl
+    #libc.src.math.fdim
+    #libc.src.math.fdimf
+    #libc.src.math.fdimf128
+    #libc.src.math.fdiml
+    #libc.src.math.fdiv
+    #libc.src.math.fdivl
+    #libc.src.math.ffma
+    #libc.src.math.ffmal
+    #libc.src.math.floor
+    #libc.src.math.floorf
+    #libc.src.math.floorf128
+    #libc.src.math.floorl
+    #libc.src.math.fma
+    #libc.src.math.fmabf16
+    #libc.src.math.fmaf
+    #libc.src.math.fmax
+    #libc.src.math.fmaxf
+    #libc.src.math.fmaxf128
+    #libc.src.math.fmaximum_mag_numf128
+    #libc.src.math.fmaximum_magf128
+    #libc.src.math.fmaximum_numf128
+    #libc.src.math.fmaximumf128
+    #libc.src.math.fmaxl
+    #libc.src.math.fmin
+    #libc.src.math.fminf
+    #libc.src.math.fminf128
+    #libc.src.math.fminimum_mag_numf128
+    #libc.src.math.fminimum_magf128
+    #libc.src.math.fminimum_numf128
+    #libc.src.math.fminimumf128
+    #libc.src.math.fminl
+    #libc.src.math.fmod
+    #libc.src.math.fmodf
+    #libc.src.math.frexp
+    #libc.src.math.frexpf
+    #libc.src.math.frexpl
+    #libc.src.math.fsub
+    #libc.src.math.fsubl
+    #libc.src.math.hypot
+    #libc.src.math.hypotf
+    #libc.src.math.ilogb
+    #libc.src.math.ilogbf
+    #libc.src.math.ilogbl
+    #libc.src.math.iscanonicalf128
+    #libc.src.math.isnanf128
+    #libc.src.math.issignalingf128
+    #libc.src.math.llrint
+    #libc.src.math.llrintf
+    #libc.src.math.llrintf128
+    #libc.src.math.llrintl
+    #libc.src.math.llround
+    #libc.src.math.llroundf
+    #libc.src.math.llroundf128
+    #libc.src.math.llroundl
+    #libc.src.math.lrint
+    #libc.src.math.lrintf
+    #libc.src.math.lrintf128
+    #libc.src.math.lrintl
+    #libc.src.math.lround
+    #libc.src.math.lroundf
+    #libc.src.math.lroundf128
+    #libc.src.math.lroundl
+    #libc.src.math.ldexp
+    #libc.src.math.ldexpf
+    #libc.src.math.ldexpl
+    #libc.src.math.log10f
+    #libc.src.math.log1pf
+    #libc.src.math.log2f
+    #libc.src.math.logf
+    #libc.src.math.logb
+    #libc.src.math.logbf
+    #libc.src.math.logbl
+    #libc.src.math.modf
+    #libc.src.math.modff
+    #libc.src.math.modfl
+    #libc.src.math.nan
+    #libc.src.math.nanf
+    #libc.src.math.nanl
+    #libc.src.math.nearbyint
+    #libc.src.math.nearbyintf
+    #libc.src.math.nearbyintf128
+    #libc.src.math.nearbyintl
+    #libc.src.math.nextafter
+    #libc.src.math.nextafterf
+    #libc.src.math.nextafterl
+    #libc.src.math.nexttoward
+    #libc.src.math.nexttowardf
+    #libc.src.math.nexttowardl
+    #libc.src.math.remainderf
+    #libc.src.math.remainder
+    #libc.src.math.remainderl
+    #libc.src.math.remquof
+    #libc.src.math.remquo
+    #libc.src.math.remquol
+    #libc.src.math.rint
+    #libc.src.math.rintf
+    #libc.src.math.rintf128
+    #libc.src.math.rintl
+    #libc.src.math.round
+    #libc.src.math.roundevenf128
+    #libc.src.math.roundf
+    #libc.src.math.roundf128
+    #libc.src.math.roundl
+    #libc.src.math.sincosf
+    #libc.src.math.sinhf
+    #libc.src.math.sinf
+    #libc.src.math.sqrt
+    #libc.src.math.sqrtf
+    #libc.src.math.sqrtf128
+    #libc.src.math.sqrtl
+    #libc.src.math.tanf
+    #libc.src.math.tanhf
+    #libc.src.math.totalordermag
+    #libc.src.math.totalordermagf
+    #libc.src.math.totalordermagl
+    #libc.src.math.trunc
+    #libc.src.math.truncf
+    #libc.src.math.truncf128
+    #libc.src.math.truncl
+)
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+  # bfloat16 entrypoints
+  libc.src.math.atanbf16
+  libc.src.math.acosbf16
+  libc.src.math.asinbf16
+  libc.src.math.bf16add
+  libc.src.math.bf16addf
+  libc.src.math.bf16addl
+  libc.src.math.bf16div
+  libc.src.math.bf16divf
+  libc.src.math.bf16divl
+  libc.src.math.bf16fma
+  libc.src.math.bf16fmaf
+  libc.src.math.bf16fmal
+  libc.src.math.bf16mul
+  libc.src.math.bf16mulf
+  libc.src.math.bf16mull
+  libc.src.math.bf16sub
+  libc.src.math.bf16subf
+  libc.src.math.bf16subl
+  libc.src.math.canonicalizebf16
+  libc.src.math.ceilbf16
+  libc.src.math.copysignbf16
+  libc.src.math.exp2bf16
+  libc.src.math.expbf16
+  libc.src.math.fabsbf16
+  libc.src.math.fdimbf16
+  libc.src.math.floorbf16
+  libc.src.math.fmaxbf16
+  libc.src.math.fmaximumbf16
+  libc.src.math.fmaximum_magbf16
+  libc.src.math.fmaximum_mag_numbf16
+  libc.src.math.fmaximum_numbf16
+  libc.src.math.fminbf16
+  libc.src.math.fminimumbf16
+  libc.src.math.fminimum_magbf16
+  libc.src.math.fminimum_mag_numbf16
+  libc.src.math.fminimum_numbf16
+  libc.src.math.fmodbf16
+  libc.src.math.frexpbf16
+  libc.src.math.fromfpbf16
+  libc.src.math.fromfpxbf16
+  libc.src.math.getpayloadbf16
+  libc.src.math.hypotbf16
+  libc.src.math.ilogbbf16
+  libc.src.math.iscanonicalbf16
+  libc.src.math.issignalingbf16
+  libc.src.math.ldexpbf16
+  libc.src.math.llogbbf16
+  libc.src.math.llrintbf16
+  libc.src.math.llroundbf16
+  libc.src.math.log_bf16
+  libc.src.math.cbrtbf16
+  libc.src.math.logbbf16
+  libc.src.math.lrintbf16
+  libc.src.math.lroundbf16
+  libc.src.math.modfbf16
+  libc.src.math.nanbf16
+  libc.src.math.nearbyintbf16
+  libc.src.math.nextafterbf16
+  libc.src.math.nextdownbf16
+  libc.src.math.nexttowardbf16
+  libc.src.math.nextupbf16
+  libc.src.math.remainderbf16
+  libc.src.math.remquobf16
+  libc.src.math.rintbf16
+  libc.src.math.roundbf16
+  libc.src.math.roundevenbf16
+  libc.src.math.scalblnbf16
+  libc.src.math.scalbnbf16
+  libc.src.math.setpayloadbf16
+  libc.src.math.setpayloadsigbf16
+  libc.src.math.sqrtbf16
+  libc.src.math.tanbf16
+  libc.src.math.truncbf16
+  libc.src.math.totalorderbf16
+  libc.src.math.totalordermagbf16
+  libc.src.math.ufromfpbf16
+  libc.src.math.ufromfpxbf16
+)
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+  ${TARGET_LIBC_ENTRYPOINTS}
+  ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/freebsd/x86_64/entrypoints.txt b/libc/config/freebsd/x86_64/entrypoints.txt
index 8f6c178301c2f2..57b628e647577f 100644
--- a/libc/config/freebsd/x86_64/entrypoints.txt
+++ b/libc/config/freebsd/x86_64/entrypoints.txt
@@ -1,664 +1,666 @@
-set(TARGET_LIBC_ENTRYPOINTS
-    # ctype.h entrypoints
-    libc.src.ctype.isalnum
-    libc.src.ctype.isalpha
-    libc.src.ctype.isascii
-    libc.src.ctype.isblank
-    libc.src.ctype.iscntrl
-    libc.src.ctype.isdigit
-    libc.src.ctype.isgraph
-    libc.src.ctype.islower
-    libc.src.ctype.isprint
-    libc.src.ctype.ispunct
-    libc.src.ctype.isspace
-    libc.src.ctype.isupper
-    libc.src.ctype.isxdigit
-    libc.src.ctype.toascii
-    libc.src.ctype.tolower
-    libc.src.ctype.toupper
-
-    # string.h entrypoints
-    libc.src.string.memccpy
-    libc.src.string.memchr
-    libc.src.string.memcmp
-    libc.src.string.memcpy
-    libc.src.string.memmem
-    libc.src.string.memmove
-    libc.src.string.mempcpy
-    libc.src.string.memrchr
-    libc.src.string.memset
-    libc.src.string.stpcpy
-    libc.src.string.stpncpy
-    libc.src.string.strcasestr
-    libc.src.string.strcat
-    libc.src.string.strchr
-    libc.src.string.strchrnul
-    libc.src.string.strcmp
-    libc.src.string.strcpy
-    libc.src.string.strcspn
-    libc.src.string.strlcat
-    libc.src.string.strlcpy
-    libc.src.string.strlen
-    libc.src.string.strncat
-    libc.src.string.strncmp
-    libc.src.string.strncpy
-    libc.src.string.strnlen
-    libc.src.string.strpbrk
-    libc.src.string.strrchr
-    libc.src.string.strspn
-    libc.src.string.strstr
-    libc.src.string.strtok
-    libc.src.string.strtok_r
-
-    # string.h entrypoints that depend on malloc
-    libc.src.string.strdup
-    libc.src.string.strndup
-
-    # strings.h entrypoints
-    libc.src.strings.bcmp
-    libc.src.strings.bcopy
-    libc.src.strings.bzero
-    libc.src.strings.strcasecmp
-    libc.src.strings.strncasecmp
-
-    # inttypes.h entrypoints
-    libc.src.inttypes.imaxabs
-    libc.src.inttypes.imaxdiv
-    libc.src.inttypes.strtoimax
-    libc.src.inttypes.strtoumax
-
-    # stdlib.h entrypoints
-    libc.src.stdlib.abs
-    libc.src.stdlib.atoi
-    libc.src.stdlib.atof
-    libc.src.stdlib.atol
-    libc.src.stdlib.atoll
-    libc.src.stdlib.bsearch
-    libc.src.stdlib.div
-    libc.src.stdlib.labs
-    libc.src.stdlib.ldiv
-    libc.src.stdlib.llabs
-    libc.src.stdlib.lldiv
-    libc.src.stdlib.qsort
-    libc.src.stdlib.strtod
-    libc.src.stdlib.strtof
-    libc.src.stdlib.strtol
-    libc.src.stdlib.strtold
-    libc.src.stdlib.strtoll
-    libc.src.stdlib.strtoul
-    libc.src.stdlib.strtoull
-
-    # stdlib.h external entrypoints
-    libc.src.stdlib.malloc
-    libc.src.stdlib.calloc
-    libc.src.stdlib.realloc
-    libc.src.stdlib.aligned_alloc
-    libc.src.stdlib.free
-
-    # errno.h entrypoints
-    libc.src.errno.errno
-)
-
-set(TARGET_LIBM_ENTRYPOINTS
-    # fenv.h entrypoints
-    libc.src.fenv.feclearexcept
-    libc.src.fenv.fedisableexcept
-    libc.src.fenv.feenableexcept
-    libc.src.fenv.fegetenv
-    libc.src.fenv.fegetexcept
-    libc.src.fenv.fegetexceptflag
-    libc.src.fenv.fegetround
-    libc.src.fenv.feholdexcept
-    libc.src.fenv.fesetenv
-    libc.src.fenv.fesetexcept
-    libc.src.fenv.fesetexceptflag
-    libc.src.fenv.fesetround
-    libc.src.fenv.feraiseexcept
-    libc.src.fenv.fetestexcept
-    libc.src.fenv.fetestexceptflag
-    libc.src.fenv.feupdateenv
-
-    # math.h entrypoints
-    libc.src.math.acosf
-    libc.src.math.acoshf
-    libc.src.math.asinf
-    libc.src.math.asinhf
-    libc.src.math.atan2
-    libc.src.math.atan2f
-    libc.src.math.atan2f128
-    libc.src.math.atanf
-    libc.src.math.atanhf
-    libc.src.math.cbrt
-    libc.src.math.cbrtf
-    libc.src.math.copysign
-    libc.src.math.copysignf
-    libc.src.math.copysignf128
-    libc.src.math.copysignl
-    libc.src.math.ceil
-    libc.src.math.ceilf
-    libc.src.math.ceilf128
-    libc.src.math.ceill
-    libc.src.math.cos
-    libc.src.math.cosf
-    libc.src.math.coshf
-    libc.src.math.daddl
-    libc.src.math.ddivl
-    libc.src.math.dfmal
-    libc.src.math.dsubl
-    libc.src.math.erff
-    libc.src.math.exp
-    libc.src.math.expf
-    libc.src.math.exp10
-    libc.src.math.exp10f
-    libc.src.math.exp2
-    libc.src.math.exp2f
-    libc.src.math.expm1
-    libc.src.math.expm1f
-    libc.src.math.fabs
-    libc.src.math.fabsf
-    libc.src.math.fabsf128
-    libc.src.math.fabsl
-    libc.src.math.fadd
-    libc.src.math.faddl
-    libc.src.math.fdim
-    libc.src.math.fdimf
-    libc.src.math.fdimf128
-    libc.src.math.fdiml
-    libc.src.math.fdiv
-    libc.src.math.fdivl
-    libc.src.math.ffma
-    libc.src.math.ffmal
-    libc.src.math.floor
-    libc.src.math.floorf
-    libc.src.math.floorf128
-    libc.src.math.floorl
-    libc.src.math.fma
-    libc.src.math.fmaf
-    libc.src.math.fmaximum_mag_numf128
-    libc.src.math.fmaximum_magf128
-    libc.src.math.fmin
-    libc.src.math.fminf
-    libc.src.math.fminf128
-    libc.src.math.fminimum_mag_numf128
-    libc.src.math.fminimum_magf128
-    libc.src.math.fminl
-    libc.src.math.fmax
-    libc.src.math.fmaxf
-    libc.src.math.fmaxf128
-    libc.src.math.fmaxl
-    libc.src.math.fmaximum
-    libc.src.math.fmaximumf
-    libc.src.math.fmaximumf128
-    libc.src.math.fmaximuml
-    libc.src.math.fmaximum_num
-    libc.src.math.fmaximum_numf
-    libc.src.math.fmaximum_numf128
-    libc.src.math.fmaximum_numl
-    libc.src.math.fmaximum_mag
-    libc.src.math.fmaximum_magf
-    libc.src.math.fmaximum_magl
-    libc.src.math.fmaximum_mag_num
-    libc.src.math.fmaximum_mag_numf
-    libc.src.math.fmaximum_mag_numl
-    libc.src.math.fminimum
-    libc.src.math.fminimumf
-    libc.src.math.fminimumf128
-    libc.src.math.fminimuml
-    libc.src.math.fminimum_num
-    libc.src.math.fminimum_numf
-    libc.src.math.fminimum_numf128
-    libc.src.math.fminimum_numl
-    libc.src.math.fminimum_mag
-    libc.src.math.fminimum_magf
-    libc.src.math.fminimum_magl
-    libc.src.math.fminimum_mag_num
-    libc.src.math.fminimum_mag_numf
-    libc.src.math.fminimum_mag_numl
-    libc.src.math.fmul
-    libc.src.math.fmod
-    libc.src.math.fmodf
-    libc.src.math.fmodl
-    libc.src.math.frexp
-    libc.src.math.frexpf
-    libc.src.math.frexpl
-    libc.src.math.fsub
-    libc.src.math.fsubl
-    libc.src.math.hypot
-    libc.src.math.hypotf
-    libc.src.math.ilogb
-    libc.src.math.ilogbf
-    libc.src.math.ilogbl
-    libc.src.math.iscanonicalf128
-    libc.src.math.isnanf128
-    libc.src.math.issignalingf128
-    libc.src.math.ldexp
-    libc.src.math.ldexpf
-    libc.src.math.ldexpl
-    libc.src.math.lgammaf
-    libc.src.math.llrint
-    libc.src.math.llrintf
-    libc.src.math.llrintf128
-    libc.src.math.llrintl
-    libc.src.math.llround
-    libc.src.math.llroundf
-    libc.src.math.llroundf128
-    libc.src.math.llroundl
-    libc.src.math.log10
-    libc.src.math.log10f
-    libc.src.math.log1p
-    libc.src.math.log1pf
-    libc.src.math.log2
-    libc.src.math.log2f
-    libc.src.math.log
-    libc.src.math.logf
-    libc.src.math.logb
-    libc.src.math.logbf
-    libc.src.math.logbl
-    libc.src.math.lrint
-    libc.src.math.lrintf
-    libc.src.math.lrintf128
-    libc.src.math.lrintl
-    libc.src.math.lround
-    libc.src.math.lroundf
-    libc.src.math.lroundf128
-    libc.src.math.lroundl
-    libc.src.math.modf
-    libc.src.math.modff
-    libc.src.math.modfl
-    libc.src.math.nan
-    libc.src.math.nanf
-    libc.src.math.nanl
-    libc.src.math.nearbyint
-    libc.src.math.nearbyintf
-    libc.src.math.nearbyintf128
-    libc.src.math.nearbyintl
-    libc.src.math.nextafter
-    libc.src.math.nextafterf
-    libc.src.math.nextafterl
-    libc.src.math.nexttoward
-    libc.src.math.nexttowardf
-    libc.src.math.nexttowardl
-    libc.src.math.pow
-    libc.src.math.powf
-    libc.src.math.remainderf
-    libc.src.math.remainder
-    libc.src.math.remainderl
-    libc.src.math.remquof
-    libc.src.math.remquo
-    libc.src.math.remquol
-    libc.src.math.rint
-    libc.src.math.rintf
-    libc.src.math.rintf128
-    libc.src.math.rintl
-    libc.src.math.round
-    libc.src.math.roundevenf128
-    libc.src.math.roundf
-    libc.src.math.roundf128
-    libc.src.math.roundl
-    libc.src.math.scalbln
-    libc.src.math.scalblnf
-    libc.src.math.scalblnl
-    libc.src.math.scalbn
-    libc.src.math.scalbnf
-    libc.src.math.scalbnl
-    libc.src.math.sin
-    libc.src.math.sincosf
-    libc.src.math.sincosf
-    libc.src.math.sinf
-    libc.src.math.sinhf
-    libc.src.math.sqrt
-    libc.src.math.sqrtf
-    libc.src.math.sqrtf128
-    libc.src.math.sqrtl
-    libc.src.math.tan
-    libc.src.math.tanf
-    libc.src.math.tanhf
-    libc.src.math.trunc
-    libc.src.math.truncf
-    libc.src.math.truncf128
-    libc.src.math.truncl
-)
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
-    libc.src.math.acos
-    libc.src.math.acospif
-    libc.src.math.asin
-    libc.src.math.asinpi
-    libc.src.math.asinpif
-    libc.src.math.atan
-    libc.src.math.canonicalize
-    libc.src.math.canonicalizef
-    libc.src.math.canonicalizel
-    libc.src.math.cbrtbf16
-    libc.src.math.cospif
-    libc.src.math.dmull
-    libc.src.math.dsqrtl
-    libc.src.math.exp10m1f
-    libc.src.math.exp2m1f
-    libc.src.math.fmabf16
-    libc.src.math.fmull
-    libc.src.math.fromfp
-    libc.src.math.fromfpf
-    libc.src.math.fromfpl
-    libc.src.math.fromfpx
-    libc.src.math.fromfpxf
-    libc.src.math.fromfpxl
-    libc.src.math.fsqrt
-    libc.src.math.fsqrtl
-    libc.src.math.getpayload
-    libc.src.math.getpayloadf
-    libc.src.math.getpayloadl
-    libc.src.math.iscanonical
-    libc.src.math.iscanonicalf
-    libc.src.math.iscanonicall
-    libc.src.math.isnan
-    libc.src.math.isnanf
-    libc.src.math.isnanl
-    libc.src.math.issignaling
-    libc.src.math.issignalingf
-    libc.src.math.issignalingl
-    libc.src.math.llogb
-    libc.src.math.llogbf
-    libc.src.math.llogbl
-    libc.src.math.nextdown
-    libc.src.math.nextdownf
-    libc.src.math.nextdownl
-    libc.src.math.nextup
-    libc.src.math.nextupf
-    libc.src.math.nextupl
-    libc.src.math.roundeven
-    libc.src.math.roundevenf
-    libc.src.math.roundevenl
-    libc.src.math.setpayload
-    libc.src.math.setpayloadf
-    libc.src.math.setpayloadl
-    libc.src.math.setpayloadsig
-    libc.src.math.setpayloadsigf
-    libc.src.math.setpayloadsigl
-    libc.src.math.sincos
-    libc.src.math.sinpif
-    libc.src.math.tanpif
-    libc.src.math.totalorder
-    libc.src.math.totalorderf
-    libc.src.math.totalorderl
-    libc.src.math.totalordermag
-    libc.src.math.totalordermagf
-    libc.src.math.totalordermagl
-    libc.src.math.ufromfp
-    libc.src.math.ufromfpf
-    libc.src.math.ufromfpl
-    libc.src.math.ufromfpx
-    libc.src.math.ufromfpxf
-    libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_FLOAT16)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    libc.src.math.acosf16
-    libc.src.math.acoshf16
-    libc.src.math.acospif16
-    libc.src.math.asinf16
-    libc.src.math.asinhf16
-    libc.src.math.asinpif16
-    libc.src.math.atanf16
-    libc.src.math.atan2f16
-    libc.src.math.atanhf16
-    libc.src.math.atanpif16
-    libc.src.math.canonicalizef16
-    libc.src.math.cbrtf16
-    libc.src.math.ceilf16
-    libc.src.math.copysignf16
-    libc.src.math.cosf16
-    libc.src.math.coshf16
-    libc.src.math.cospif16
-    libc.src.math.erff16
-    libc.src.math.erfcf16
-    libc.src.math.exp10f16
-    libc.src.math.exp10m1f16
-    libc.src.math.exp2f16
-    libc.src.math.exp2m1f16
-    libc.src.math.expf16
-    libc.src.math.expm1f16
-    libc.src.math.f16add
-    libc.src.math.f16addf
-    libc.src.math.f16addl
-    libc.src.math.f16div
-    libc.src.math.f16divf
-    libc.src.math.f16divl
-    libc.src.math.f16fma
-    libc.src.math.f16fmaf
-    libc.src.math.f16fmal
-    libc.src.math.f16mul
-    libc.src.math.f16mulf
-    libc.src.math.f16mull
-    libc.src.math.f16sqrt
-    libc.src.math.f16sqrtf
-    libc.src.math.f16sqrtl
-    libc.src.math.f16sub
-    libc.src.math.f16subf
-    libc.src.math.f16subl
-    libc.src.math.fabsf16
-    libc.src.math.fdimf16
-    libc.src.math.floorf16
-    libc.src.math.fmaf16
-    libc.src.math.fmaxf16
-    libc.src.math.fmaximum_mag_numf16
-    libc.src.math.fmaximum_magf16
-    libc.src.math.fmaximum_numf16
-    libc.src.math.fmaximumf16
-    libc.src.math.fminf16
-    libc.src.math.fminimum_mag_numf16
-    libc.src.math.fminimum_magf16
-    libc.src.math.fminimum_numf16
-    libc.src.math.fminimumf16
-    libc.src.math.fmodf16
-    libc.src.math.frexpf16
-    libc.src.math.fromfpf16
-    libc.src.math.fromfpxf16
-    libc.src.math.getpayloadf16
-    libc.src.math.hypotf16
-    libc.src.math.ilogbf16
-    libc.src.math.iscanonicalf16
-    libc.src.math.issignalingf16
-    libc.src.math.ldexpf16
-    libc.src.math.lgammaf16
-    libc.src.math.llogbf16
-    libc.src.math.llrintf16
-    libc.src.math.llroundf16
-    libc.src.math.log10f16
-    libc.src.math.log10p1f16
-    libc.src.math.log2f16
-    libc.src.math.log2p1f16
-    libc.src.math.logbf16
-    libc.src.math.logf16
-    libc.src.math.lrintf16
-    libc.src.math.lroundf16
-    libc.src.math.modff16
-    libc.src.math.nanf16
-    libc.src.math.nearbyintf16
-    libc.src.math.nextafterf16
-    libc.src.math.nextdownf16
-    libc.src.math.nexttowardf16
-    libc.src.math.nextupf16
-    libc.src.math.remainderf16
-    libc.src.math.remquof16
-    libc.src.math.rintf16
-    libc.src.math.roundevenf16
-    libc.src.math.roundf16
-    libc.src.math.rsqrtf
-    libc.src.math.rsqrtf16
-    libc.src.math.scalblnf16
-    libc.src.math.scalbnf16
-    libc.src.math.setpayloadf16
-    libc.src.math.setpayloadsigf16
-    libc.src.math.sinf16
-    libc.src.math.sinhf16
-    libc.src.math.sinpif16
-    libc.src.math.sqrtf16
-    libc.src.math.tanf16
-    libc.src.math.tanhf16
-    libc.src.math.tanpif16
-    libc.src.math.totalorderf16
-    libc.src.math.totalordermagf16
-    libc.src.math.truncf16
-    libc.src.math.ufromfpf16
-    libc.src.math.ufromfpxf16
-  )
-
-  if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-    list(APPEND TARGET_LIBM_ENTRYPOINTS
-      libc.src.math.f16addf128
-      libc.src.math.f16divf128
-      libc.src.math.f16fmaf128
-      libc.src.math.f16mulf128
-      libc.src.math.f16sqrtf128
-      libc.src.math.f16subf128
-    )
-  endif()
-endif()
-
-if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    libc.src.math.atan2l
-    libc.src.math.canonicalizef128
-    libc.src.math.daddf128
-    libc.src.math.ddivf128
-    libc.src.math.dfmaf128
-    libc.src.math.dmulf128
-    libc.src.math.dsqrtf128
-    libc.src.math.dsubf128
-    libc.src.math.faddf128
-    libc.src.math.fdivf128
-    libc.src.math.ffmaf128
-    libc.src.math.fmodf128
-    libc.src.math.fmulf128
-    libc.src.math.frexpf128
-    libc.src.math.fromfpf128
-    libc.src.math.fromfpxf128
-    libc.src.math.fsqrtf128
-    libc.src.math.fsubf128
-    libc.src.math.getpayloadf128
-    libc.src.math.ilogbf128
-    libc.src.math.ldexpf128
-    libc.src.math.llogbf128
-    libc.src.math.logbf128
-    libc.src.math.modff128
-    libc.src.math.nanf128
-    libc.src.math.nextafterf128
-    libc.src.math.nextdownf128
-    libc.src.math.nextupf128
-    libc.src.math.remainderf128
-    libc.src.math.remquof128
-    libc.src.math.scalblnf128
-    libc.src.math.scalbnf128
-    libc.src.math.setpayloadf128
-    libc.src.math.setpayloadsigf128
-    libc.src.math.totalorderf128
-    libc.src.math.totalordermagf128
-    libc.src.math.ufromfpf128
-    libc.src.math.ufromfpxf128
-  )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
-  # bfloat16 entrypoints
-  libc.src.math.acosbf16
-  libc.src.math.asinbf16
-  libc.src.math.atanbf16
-  libc.src.math.bf16add
-  libc.src.math.bf16addf
-  libc.src.math.bf16addl
-  libc.src.math.bf16div
-  libc.src.math.bf16divf
-  libc.src.math.bf16divl
-  libc.src.math.bf16fma
-  libc.src.math.bf16fmaf
-  libc.src.math.bf16fmal
-  libc.src.math.bf16mul
-  libc.src.math.bf16mulf
-  libc.src.math.bf16mull
-  libc.src.math.bf16sub
-  libc.src.math.bf16subf
-  libc.src.math.bf16subl
-  libc.src.math.canonicalizebf16
-  libc.src.math.ceilbf16
-  libc.src.math.copysignbf16
-  libc.src.math.expbf16
-  libc.src.math.fabsbf16
-  libc.src.math.fdimbf16
-  libc.src.math.floorbf16
-  libc.src.math.fmaxbf16
-  libc.src.math.fmaximumbf16
-  libc.src.math.fmaximum_magbf16
-  libc.src.math.fmaximum_mag_numbf16
-  libc.src.math.fmaximum_numbf16
-  libc.src.math.fminbf16
-  libc.src.math.fminimumbf16
-  libc.src.math.fminimum_magbf16
-  libc.src.math.fminimum_mag_numbf16
-  libc.src.math.fminimum_numbf16
-  libc.src.math.fmodbf16
-  libc.src.math.frexpbf16
-  libc.src.math.fromfpbf16
-  libc.src.math.fromfpxbf16
-  libc.src.math.getpayloadbf16
-  libc.src.math.hypotbf16
-  libc.src.math.ilogbbf16
-  libc.src.math.iscanonicalbf16
-  libc.src.math.issignalingbf16
-  libc.src.math.ldexpbf16
-  libc.src.math.llogbbf16
-  libc.src.math.llrintbf16
-  libc.src.math.llroundbf16
-  libc.src.math.log_bf16
-  libc.src.math.logbbf16
-  libc.src.math.lrintbf16
-  libc.src.math.lroundbf16
-  libc.src.math.modfbf16
-  libc.src.math.nanbf16
-  libc.src.math.nearbyintbf16
-  libc.src.math.nextafterbf16
-  libc.src.math.nextdownbf16
-  libc.src.math.nexttowardbf16
-  libc.src.math.nextupbf16
-  libc.src.math.remainderbf16
-  libc.src.math.remquobf16
-  libc.src.math.rintbf16
-  libc.src.math.roundbf16
-  libc.src.math.roundevenbf16
-  libc.src.math.scalblnbf16
-  libc.src.math.scalbnbf16
-  libc.src.math.setpayloadbf16
-  libc.src.math.setpayloadsigbf16
-  libc.src.math.sqrtbf16
-  libc.src.math.tanbf16
-  libc.src.math.truncbf16
-  libc.src.math.totalorderbf16
-  libc.src.math.totalordermagbf16
-  libc.src.math.ufromfpbf16
-  libc.src.math.ufromfpxbf16
-)
-
-if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    libc.src.math.bf16addf128
-    libc.src.math.bf16divf128
-    libc.src.math.bf16fmaf128
-    libc.src.math.bf16mulf128
-    libc.src.math.bf16subf128
-  )
-endif()
-
-set(TARGET_LIBMVEC_ENTRYPOINTS)
-
-if(LIBC_COMPILER_HAS_EXT_VECTOR_TYPE)
-  list(APPEND TARGET_LIBMVEC_ENTRYPOINTS
-    libc.src.mathvec.expf
-  )
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
-  ${TARGET_LIBC_ENTRYPOINTS}
-  ${TARGET_LIBM_ENTRYPOINTS}
-  ${TARGET_LIBMVEC_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+    # ctype.h entrypoints
+    libc.src.ctype.isalnum
+    libc.src.ctype.isalpha
+    libc.src.ctype.isascii
+    libc.src.ctype.isblank
+    libc.src.ctype.iscntrl
+    libc.src.ctype.isdigit
+    libc.src.ctype.isgraph
+    libc.src.ctype.islower
+    libc.src.ctype.isprint
+    libc.src.ctype.ispunct
+    libc.src.ctype.isspace
+    libc.src.ctype.isupper
+    libc.src.ctype.isxdigit
+    libc.src.ctype.toascii
+    libc.src.ctype.tolower
+    libc.src.ctype.toupper
+
+    # string.h entrypoints
+    libc.src.string.memccpy
+    libc.src.string.memchr
+    libc.src.string.memcmp
+    libc.src.string.memcpy
+    libc.src.string.memmem
+    libc.src.string.memmove
+    libc.src.string.mempcpy
+    libc.src.string.memrchr
+    libc.src.string.memset
+    libc.src.string.stpcpy
+    libc.src.string.stpncpy
+    libc.src.string.strcasestr
+    libc.src.string.strcat
+    libc.src.string.strchr
+    libc.src.string.strchrnul
+    libc.src.string.strcmp
+    libc.src.string.strcpy
+    libc.src.string.strcspn
+    libc.src.string.strlcat
+    libc.src.string.strlcpy
+    libc.src.string.strlen
+    libc.src.string.strncat
+    libc.src.string.strncmp
+    libc.src.string.strncpy
+    libc.src.string.strnlen
+    libc.src.string.strpbrk
+    libc.src.string.strrchr
+    libc.src.string.strspn
+    libc.src.string.strstr
+    libc.src.string.strtok
+    libc.src.string.strtok_r
+
+    # string.h entrypoints that depend on malloc
+    libc.src.string.strdup
+    libc.src.string.strndup
+
+    # strings.h entrypoints
+    libc.src.strings.bcmp
+    libc.src.strings.bcopy
+    libc.src.strings.bzero
+    libc.src.strings.strcasecmp
+    libc.src.strings.strncasecmp
+
+    # inttypes.h entrypoints
+    libc.src.inttypes.imaxabs
+    libc.src.inttypes.imaxdiv
+    libc.src.inttypes.strtoimax
+    libc.src.inttypes.strtoumax
+
+    # stdlib.h entrypoints
+    libc.src.stdlib.abs
+    libc.src.stdlib.atoi
+    libc.src.stdlib.atof
+    libc.src.stdlib.atol
+    libc.src.stdlib.atoll
+    libc.src.stdlib.bsearch
+    libc.src.stdlib.div
+    libc.src.stdlib.labs
+    libc.src.stdlib.ldiv
+    libc.src.stdlib.llabs
+    libc.src.stdlib.lldiv
+    libc.src.stdlib.qsort
+    libc.src.stdlib.strtod
+    libc.src.stdlib.strtof
+    libc.src.stdlib.strtol
+    libc.src.stdlib.strtold
+    libc.src.stdlib.strtoll
+    libc.src.stdlib.strtoul
+    libc.src.stdlib.strtoull
+
+    # stdlib.h external entrypoints
+    libc.src.stdlib.malloc
+    libc.src.stdlib.calloc
+    libc.src.stdlib.realloc
+    libc.src.stdlib.aligned_alloc
+    libc.src.stdlib.free
+
+    # errno.h entrypoints
+    libc.src.errno.errno
+)
+
+set(TARGET_LIBM_ENTRYPOINTS
+    # fenv.h entrypoints
+    libc.src.fenv.feclearexcept
+    libc.src.fenv.fedisableexcept
+    libc.src.fenv.feenableexcept
+    libc.src.fenv.fegetenv
+    libc.src.fenv.fegetexcept
+    libc.src.fenv.fegetexceptflag
+    libc.src.fenv.fegetround
+    libc.src.fenv.feholdexcept
+    libc.src.fenv.fesetenv
+    libc.src.fenv.fesetexcept
+    libc.src.fenv.fesetexceptflag
+    libc.src.fenv.fesetround
+    libc.src.fenv.feraiseexcept
+    libc.src.fenv.fetestexcept
+    libc.src.fenv.fetestexceptflag
+    libc.src.fenv.feupdateenv
+
+    # math.h entrypoints
+    libc.src.math.acosf
+    libc.src.math.acoshf
+    libc.src.math.asinf
+    libc.src.math.asinhf
+    libc.src.math.atan2
+    libc.src.math.atan2f
+    libc.src.math.atan2f128
+    libc.src.math.atanf
+    libc.src.math.atanhf
+    libc.src.math.cbrt
+    libc.src.math.cbrtf
+    libc.src.math.copysign
+    libc.src.math.copysignf
+    libc.src.math.copysignf128
+    libc.src.math.copysignf80
+    libc.src.math.copysignl
+    libc.src.math.ceil
+    libc.src.math.ceilf
+    libc.src.math.ceilf128
+    libc.src.math.ceill
+    libc.src.math.cos
+    libc.src.math.cosf
+    libc.src.math.coshf
+    libc.src.math.daddl
+    libc.src.math.ddivl
+    libc.src.math.dfmal
+    libc.src.math.dsubl
+    libc.src.math.erff
+    libc.src.math.exp
+    libc.src.math.expf
+    libc.src.math.exp10
+    libc.src.math.exp10f
+    libc.src.math.exp2
+    libc.src.math.exp2f
+    libc.src.math.expm1
+    libc.src.math.expm1f
+    libc.src.math.fabs
+    libc.src.math.fabsf
+    libc.src.math.fabsf128
+    libc.src.math.fabsf80
+    libc.src.math.fabsl
+    libc.src.math.fadd
+    libc.src.math.faddl
+    libc.src.math.fdim
+    libc.src.math.fdimf
+    libc.src.math.fdimf128
+    libc.src.math.fdiml
+    libc.src.math.fdiv
+    libc.src.math.fdivl
+    libc.src.math.ffma
+    libc.src.math.ffmal
+    libc.src.math.floor
+    libc.src.math.floorf
+    libc.src.math.floorf128
+    libc.src.math.floorl
+    libc.src.math.fma
+    libc.src.math.fmaf
+    libc.src.math.fmaximum_mag_numf128
+    libc.src.math.fmaximum_magf128
+    libc.src.math.fmin
+    libc.src.math.fminf
+    libc.src.math.fminf128
+    libc.src.math.fminimum_mag_numf128
+    libc.src.math.fminimum_magf128
+    libc.src.math.fminl
+    libc.src.math.fmax
+    libc.src.math.fmaxf
+    libc.src.math.fmaxf128
+    libc.src.math.fmaxl
+    libc.src.math.fmaximum
+    libc.src.math.fmaximumf
+    libc.src.math.fmaximumf128
+    libc.src.math.fmaximuml
+    libc.src.math.fmaximum_num
+    libc.src.math.fmaximum_numf
+    libc.src.math.fmaximum_numf128
+    libc.src.math.fmaximum_numl
+    libc.src.math.fmaximum_mag
+    libc.src.math.fmaximum_magf
+    libc.src.math.fmaximum_magl
+    libc.src.math.fmaximum_mag_num
+    libc.src.math.fmaximum_mag_numf
+    libc.src.math.fmaximum_mag_numl
+    libc.src.math.fminimum
+    libc.src.math.fminimumf
+    libc.src.math.fminimumf128
+    libc.src.math.fminimuml
+    libc.src.math.fminimum_num
+    libc.src.math.fminimum_numf
+    libc.src.math.fminimum_numf128
+    libc.src.math.fminimum_numl
+    libc.src.math.fminimum_mag
+    libc.src.math.fminimum_magf
+    libc.src.math.fminimum_magl
+    libc.src.math.fminimum_mag_num
+    libc.src.math.fminimum_mag_numf
+    libc.src.math.fminimum_mag_numl
+    libc.src.math.fmul
+    libc.src.math.fmod
+    libc.src.math.fmodf
+    libc.src.math.fmodl
+    libc.src.math.frexp
+    libc.src.math.frexpf
+    libc.src.math.frexpl
+    libc.src.math.fsub
+    libc.src.math.fsubl
+    libc.src.math.hypot
+    libc.src.math.hypotf
+    libc.src.math.ilogb
+    libc.src.math.ilogbf
+    libc.src.math.ilogbl
+    libc.src.math.iscanonicalf128
+    libc.src.math.isnanf128
+    libc.src.math.issignalingf128
+    libc.src.math.ldexp
+    libc.src.math.ldexpf
+    libc.src.math.ldexpl
+    libc.src.math.lgammaf
+    libc.src.math.llrint
+    libc.src.math.llrintf
+    libc.src.math.llrintf128
+    libc.src.math.llrintl
+    libc.src.math.llround
+    libc.src.math.llroundf
+    libc.src.math.llroundf128
+    libc.src.math.llroundl
+    libc.src.math.log10
+    libc.src.math.log10f
+    libc.src.math.log1p
+    libc.src.math.log1pf
+    libc.src.math.log2
+    libc.src.math.log2f
+    libc.src.math.log
+    libc.src.math.logf
+    libc.src.math.logb
+    libc.src.math.logbf
+    libc.src.math.logbl
+    libc.src.math.lrint
+    libc.src.math.lrintf
+    libc.src.math.lrintf128
+    libc.src.math.lrintl
+    libc.src.math.lround
+    libc.src.math.lroundf
+    libc.src.math.lroundf128
+    libc.src.math.lroundl
+    libc.src.math.modf
+    libc.src.math.modff
+    libc.src.math.modfl
+    libc.src.math.nan
+    libc.src.math.nanf
+    libc.src.math.nanl
+    libc.src.math.nearbyint
+    libc.src.math.nearbyintf
+    libc.src.math.nearbyintf128
+    libc.src.math.nearbyintl
+    libc.src.math.nextafter
+    libc.src.math.nextafterf
+    libc.src.math.nextafterl
+    libc.src.math.nexttoward
+    libc.src.math.nexttowardf
+    libc.src.math.nexttowardl
+    libc.src.math.pow
+    libc.src.math.powf
+    libc.src.math.remainderf
+    libc.src.math.remainder
+    libc.src.math.remainderl
+    libc.src.math.remquof
+    libc.src.math.remquo
+    libc.src.math.remquol
+    libc.src.math.rint
+    libc.src.math.rintf
+    libc.src.math.rintf128
+    libc.src.math.rintl
+    libc.src.math.round
+    libc.src.math.roundevenf128
+    libc.src.math.roundf
+    libc.src.math.roundf128
+    libc.src.math.roundl
+    libc.src.math.scalbln
+    libc.src.math.scalblnf
+    libc.src.math.scalblnl
+    libc.src.math.scalbn
+    libc.src.math.scalbnf
+    libc.src.math.scalbnl
+    libc.src.math.sin
+    libc.src.math.sincosf
+    libc.src.math.sincosf
+    libc.src.math.sinf
+    libc.src.math.sinhf
+    libc.src.math.sqrt
+    libc.src.math.sqrtf
+    libc.src.math.sqrtf128
+    libc.src.math.sqrtl
+    libc.src.math.tan
+    libc.src.math.tanf
+    libc.src.math.tanhf
+    libc.src.math.trunc
+    libc.src.math.truncf
+    libc.src.math.truncf128
+    libc.src.math.truncl
+)
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+    libc.src.math.acos
+    libc.src.math.acospif
+    libc.src.math.asin
+    libc.src.math.asinpi
+    libc.src.math.asinpif
+    libc.src.math.atan
+    libc.src.math.canonicalize
+    libc.src.math.canonicalizef
+    libc.src.math.canonicalizel
+    libc.src.math.cbrtbf16
+    libc.src.math.cospif
+    libc.src.math.dmull
+    libc.src.math.dsqrtl
+    libc.src.math.exp10m1f
+    libc.src.math.exp2m1f
+    libc.src.math.fmabf16
+    libc.src.math.fmull
+    libc.src.math.fromfp
+    libc.src.math.fromfpf
+    libc.src.math.fromfpl
+    libc.src.math.fromfpx
+    libc.src.math.fromfpxf
+    libc.src.math.fromfpxl
+    libc.src.math.fsqrt
+    libc.src.math.fsqrtl
+    libc.src.math.getpayload
+    libc.src.math.getpayloadf
+    libc.src.math.getpayloadl
+    libc.src.math.iscanonical
+    libc.src.math.iscanonicalf
+    libc.src.math.iscanonicall
+    libc.src.math.isnan
+    libc.src.math.isnanf
+    libc.src.math.isnanl
+    libc.src.math.issignaling
+    libc.src.math.issignalingf
+    libc.src.math.issignalingl
+    libc.src.math.llogb
+    libc.src.math.llogbf
+    libc.src.math.llogbl
+    libc.src.math.nextdown
+    libc.src.math.nextdownf
+    libc.src.math.nextdownl
+    libc.src.math.nextup
+    libc.src.math.nextupf
+    libc.src.math.nextupl
+    libc.src.math.roundeven
+    libc.src.math.roundevenf
+    libc.src.math.roundevenl
+    libc.src.math.setpayload
+    libc.src.math.setpayloadf
+    libc.src.math.setpayloadl
+    libc.src.math.setpayloadsig
+    libc.src.math.setpayloadsigf
+    libc.src.math.setpayloadsigl
+    libc.src.math.sincos
+    libc.src.math.sinpif
+    libc.src.math.tanpif
+    libc.src.math.totalorder
+    libc.src.math.totalorderf
+    libc.src.math.totalorderl
+    libc.src.math.totalordermag
+    libc.src.math.totalordermagf
+    libc.src.math.totalordermagl
+    libc.src.math.ufromfp
+    libc.src.math.ufromfpf
+    libc.src.math.ufromfpl
+    libc.src.math.ufromfpx
+    libc.src.math.ufromfpxf
+    libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_FLOAT16)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    libc.src.math.acosf16
+    libc.src.math.acoshf16
+    libc.src.math.acospif16
+    libc.src.math.asinf16
+    libc.src.math.asinhf16
+    libc.src.math.asinpif16
+    libc.src.math.atanf16
+    libc.src.math.atan2f16
+    libc.src.math.atanhf16
+    libc.src.math.atanpif16
+    libc.src.math.canonicalizef16
+    libc.src.math.cbrtf16
+    libc.src.math.ceilf16
+    libc.src.math.copysignf16
+    libc.src.math.cosf16
+    libc.src.math.coshf16
+    libc.src.math.cospif16
+    libc.src.math.erff16
+    libc.src.math.erfcf16
+    libc.src.math.exp10f16
+    libc.src.math.exp10m1f16
+    libc.src.math.exp2f16
+    libc.src.math.exp2m1f16
+    libc.src.math.expf16
+    libc.src.math.expm1f16
+    libc.src.math.f16add
+    libc.src.math.f16addf
+    libc.src.math.f16addl
+    libc.src.math.f16div
+    libc.src.math.f16divf
+    libc.src.math.f16divl
+    libc.src.math.f16fma
+    libc.src.math.f16fmaf
+    libc.src.math.f16fmal
+    libc.src.math.f16mul
+    libc.src.math.f16mulf
+    libc.src.math.f16mull
+    libc.src.math.f16sqrt
+    libc.src.math.f16sqrtf
+    libc.src.math.f16sqrtl
+    libc.src.math.f16sub
+    libc.src.math.f16subf
+    libc.src.math.f16subl
+    libc.src.math.fabsf16
+    libc.src.math.fdimf16
+    libc.src.math.floorf16
+    libc.src.math.fmaf16
+    libc.src.math.fmaxf16
+    libc.src.math.fmaximum_mag_numf16
+    libc.src.math.fmaximum_magf16
+    libc.src.math.fmaximum_numf16
+    libc.src.math.fmaximumf16
+    libc.src.math.fminf16
+    libc.src.math.fminimum_mag_numf16
+    libc.src.math.fminimum_magf16
+    libc.src.math.fminimum_numf16
+    libc.src.math.fminimumf16
+    libc.src.math.fmodf16
+    libc.src.math.frexpf16
+    libc.src.math.fromfpf16
+    libc.src.math.fromfpxf16
+    libc.src.math.getpayloadf16
+    libc.src.math.hypotf16
+    libc.src.math.ilogbf16
+    libc.src.math.iscanonicalf16
+    libc.src.math.issignalingf16
+    libc.src.math.ldexpf16
+    libc.src.math.lgammaf16
+    libc.src.math.llogbf16
+    libc.src.math.llrintf16
+    libc.src.math.llroundf16
+    libc.src.math.log10f16
+    libc.src.math.log10p1f16
+    libc.src.math.log2f16
+    libc.src.math.log2p1f16
+    libc.src.math.logbf16
+    libc.src.math.logf16
+    libc.src.math.lrintf16
+    libc.src.math.lroundf16
+    libc.src.math.modff16
+    libc.src.math.nanf16
+    libc.src.math.nearbyintf16
+    libc.src.math.nextafterf16
+    libc.src.math.nextdownf16
+    libc.src.math.nexttowardf16
+    libc.src.math.nextupf16
+    libc.src.math.remainderf16
+    libc.src.math.remquof16
+    libc.src.math.rintf16
+    libc.src.math.roundevenf16
+    libc.src.math.roundf16
+    libc.src.math.rsqrtf
+    libc.src.math.rsqrtf16
+    libc.src.math.scalblnf16
+    libc.src.math.scalbnf16
+    libc.src.math.setpayloadf16
+    libc.src.math.setpayloadsigf16
+    libc.src.math.sinf16
+    libc.src.math.sinhf16
+    libc.src.math.sinpif16
+    libc.src.math.sqrtf16
+    libc.src.math.tanf16
+    libc.src.math.tanhf16
+    libc.src.math.tanpif16
+    libc.src.math.totalorderf16
+    libc.src.math.totalordermagf16
+    libc.src.math.truncf16
+    libc.src.math.ufromfpf16
+    libc.src.math.ufromfpxf16
+  )
+
+  if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+    list(APPEND TARGET_LIBM_ENTRYPOINTS
+      libc.src.math.f16addf128
+      libc.src.math.f16divf128
+      libc.src.math.f16fmaf128
+      libc.src.math.f16mulf128
+      libc.src.math.f16sqrtf128
+      libc.src.math.f16subf128
+    )
+  endif()
+endif()
+
+if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    libc.src.math.atan2l
+    libc.src.math.canonicalizef128
+    libc.src.math.daddf128
+    libc.src.math.ddivf128
+    libc.src.math.dfmaf128
+    libc.src.math.dmulf128
+    libc.src.math.dsqrtf128
+    libc.src.math.dsubf128
+    libc.src.math.faddf128
+    libc.src.math.fdivf128
+    libc.src.math.ffmaf128
+    libc.src.math.fmodf128
+    libc.src.math.fmulf128
+    libc.src.math.frexpf128
+    libc.src.math.fromfpf128
+    libc.src.math.fromfpxf128
+    libc.src.math.fsqrtf128
+    libc.src.math.fsubf128
+    libc.src.math.getpayloadf128
+    libc.src.math.ilogbf128
+    libc.src.math.ldexpf128
+    libc.src.math.llogbf128
+    libc.src.math.logbf128
+    libc.src.math.modff128
+    libc.src.math.nanf128
+    libc.src.math.nextafterf128
+    libc.src.math.nextdownf128
+    libc.src.math.nextupf128
+    libc.src.math.remainderf128
+    libc.src.math.remquof128
+    libc.src.math.scalblnf128
+    libc.src.math.scalbnf128
+    libc.src.math.setpayloadf128
+    libc.src.math.setpayloadsigf128
+    libc.src.math.totalorderf128
+    libc.src.math.totalordermagf128
+    libc.src.math.ufromfpf128
+    libc.src.math.ufromfpxf128
+  )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+  # bfloat16 entrypoints
+  libc.src.math.acosbf16
+  libc.src.math.asinbf16
+  libc.src.math.atanbf16
+  libc.src.math.bf16add
+  libc.src.math.bf16addf
+  libc.src.math.bf16addl
+  libc.src.math.bf16div
+  libc.src.math.bf16divf
+  libc.src.math.bf16divl
+  libc.src.math.bf16fma
+  libc.src.math.bf16fmaf
+  libc.src.math.bf16fmal
+  libc.src.math.bf16mul
+  libc.src.math.bf16mulf
+  libc.src.math.bf16mull
+  libc.src.math.bf16sub
+  libc.src.math.bf16subf
+  libc.src.math.bf16subl
+  libc.src.math.canonicalizebf16
+  libc.src.math.ceilbf16
+  libc.src.math.copysignbf16
+  libc.src.math.expbf16
+  libc.src.math.fabsbf16
+  libc.src.math.fdimbf16
+  libc.src.math.floorbf16
+  libc.src.math.fmaxbf16
+  libc.src.math.fmaximumbf16
+  libc.src.math.fmaximum_magbf16
+  libc.src.math.fmaximum_mag_numbf16
+  libc.src.math.fmaximum_numbf16
+  libc.src.math.fminbf16
+  libc.src.math.fminimumbf16
+  libc.src.math.fminimum_magbf16
+  libc.src.math.fminimum_mag_numbf16
+  libc.src.math.fminimum_numbf16
+  libc.src.math.fmodbf16
+  libc.src.math.frexpbf16
+  libc.src.math.fromfpbf16
+  libc.src.math.fromfpxbf16
+  libc.src.math.getpayloadbf16
+  libc.src.math.hypotbf16
+  libc.src.math.ilogbbf16
+  libc.src.math.iscanonicalbf16
+  libc.src.math.issignalingbf16
+  libc.src.math.ldexpbf16
+  libc.src.math.llogbbf16
+  libc.src.math.llrintbf16
+  libc.src.math.llroundbf16
+  libc.src.math.log_bf16
+  libc.src.math.logbbf16
+  libc.src.math.lrintbf16
+  libc.src.math.lroundbf16
+  libc.src.math.modfbf16
+  libc.src.math.nanbf16
+  libc.src.math.nearbyintbf16
+  libc.src.math.nextafterbf16
+  libc.src.math.nextdownbf16
+  libc.src.math.nexttowardbf16
+  libc.src.math.nextupbf16
+  libc.src.math.remainderbf16
+  libc.src.math.remquobf16
+  libc.src.math.rintbf16
+  libc.src.math.roundbf16
+  libc.src.math.roundevenbf16
+  libc.src.math.scalblnbf16
+  libc.src.math.scalbnbf16
+  libc.src.math.setpayloadbf16
+  libc.src.math.setpayloadsigbf16
+  libc.src.math.sqrtbf16
+  libc.src.math.tanbf16
+  libc.src.math.truncbf16
+  libc.src.math.totalorderbf16
+  libc.src.math.totalordermagbf16
+  libc.src.math.ufromfpbf16
+  libc.src.math.ufromfpxbf16
+)
+
+if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    libc.src.math.bf16addf128
+    libc.src.math.bf16divf128
+    libc.src.math.bf16fmaf128
+    libc.src.math.bf16mulf128
+    libc.src.math.bf16subf128
+  )
+endif()
+
+set(TARGET_LIBMVEC_ENTRYPOINTS)
+
+if(LIBC_COMPILER_HAS_EXT_VECTOR_TYPE)
+  list(APPEND TARGET_LIBMVEC_ENTRYPOINTS
+    libc.src.mathvec.expf
+  )
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+  ${TARGET_LIBC_ENTRYPOINTS}
+  ${TARGET_LIBM_ENTRYPOINTS}
+  ${TARGET_LIBMVEC_ENTRYPOINTS}
+)
diff --git a/libc/config/gpu/amdgpu/entrypoints.txt b/libc/config/gpu/amdgpu/entrypoints.txt
index 2eaef608e9a7ac..857c9f3281ec2c 100644
--- a/libc/config/gpu/amdgpu/entrypoints.txt
+++ b/libc/config/gpu/amdgpu/entrypoints.txt
@@ -1,762 +1,764 @@
-set(TARGET_LIBC_ENTRYPOINTS
-    # assert.h entrypoints
-    libc.src.assert.__assert_fail
-
-    # ctype.h entrypoints
-    libc.src.ctype.isalnum
-    libc.src.ctype.isalnum_l
-    libc.src.ctype.isalpha
-    libc.src.ctype.isalpha_l
-    libc.src.ctype.isascii
-    libc.src.ctype.isblank
-    libc.src.ctype.isblank_l
-    libc.src.ctype.iscntrl
-    libc.src.ctype.iscntrl_l
-    libc.src.ctype.isdigit
-    libc.src.ctype.isdigit_l
-    libc.src.ctype.isgraph
-    libc.src.ctype.isgraph_l
-    libc.src.ctype.islower
-    libc.src.ctype.islower_l
-    libc.src.ctype.isprint
-    libc.src.ctype.isprint_l
-    libc.src.ctype.ispunct
-    libc.src.ctype.ispunct_l
-    libc.src.ctype.isspace
-    libc.src.ctype.isspace_l
-    libc.src.ctype.isupper
-    libc.src.ctype.isupper_l
-    libc.src.ctype.isxdigit
-    libc.src.ctype.isxdigit_l
-    libc.src.ctype.toascii
-    libc.src.ctype.tolower
-    libc.src.ctype.tolower_l
-    libc.src.ctype.toupper
-    libc.src.ctype.toupper_l
-
-    # string.h entrypoints
-    libc.src.string.memccpy
-    libc.src.string.memchr
-    libc.src.string.memcmp
-    libc.src.string.memcpy
-    libc.src.string.memmem
-    libc.src.string.memmove
-    libc.src.string.mempcpy
-    libc.src.string.memrchr
-    libc.src.string.memset
-    libc.src.string.stpcpy
-    libc.src.string.stpncpy
-    libc.src.string.strcasestr
-    libc.src.string.strcat
-    libc.src.string.strchr
-    libc.src.string.strchrnul
-    libc.src.string.strcmp
-    libc.src.string.strcoll
-    libc.src.string.strcoll_l
-    libc.src.string.strcpy
-    libc.src.string.strcspn
-    libc.src.string.strdup
-    libc.src.string.strerror
-    libc.src.string.strlcat
-    libc.src.string.strlcpy
-    libc.src.string.strlen
-    libc.src.string.strncat
-    libc.src.string.strncmp
-    libc.src.string.strncpy
-    libc.src.string.strndup
-    libc.src.string.strnlen
-    libc.src.string.strnlen_s
-    libc.src.string.strpbrk
-    libc.src.string.strrchr
-    libc.src.string.strsep
-    libc.src.string.strspn
-    libc.src.string.strstr
-    libc.src.string.strtok
-    libc.src.string.strtok_r
-    libc.src.string.strxfrm
-    libc.src.string.strxfrm_l
-
-    # strings.h entrypoints
-    libc.src.strings.bcmp
-    libc.src.strings.bcopy
-    libc.src.strings.bzero
-    libc.src.strings.index
-    libc.src.strings.rindex
-    libc.src.strings.strcasecmp
-    libc.src.strings.strncasecmp
-
-    # stdbit.h entrypoints
-    libc.src.stdbit.stdc_bit_ceil_uc
-    libc.src.stdbit.stdc_bit_ceil_ui
-    libc.src.stdbit.stdc_bit_ceil_ul
-    libc.src.stdbit.stdc_bit_ceil_ull
-    libc.src.stdbit.stdc_bit_ceil_us
-    libc.src.stdbit.stdc_bit_floor_uc
-    libc.src.stdbit.stdc_bit_floor_ui
-    libc.src.stdbit.stdc_bit_floor_ul
-    libc.src.stdbit.stdc_bit_floor_ull
-    libc.src.stdbit.stdc_bit_floor_us
-    libc.src.stdbit.stdc_bit_width_uc
-    libc.src.stdbit.stdc_bit_width_ui
-    libc.src.stdbit.stdc_bit_width_ul
-    libc.src.stdbit.stdc_bit_width_ull
-    libc.src.stdbit.stdc_bit_width_us
-    libc.src.stdbit.stdc_count_ones_uc
-    libc.src.stdbit.stdc_count_ones_ui
-    libc.src.stdbit.stdc_count_ones_ul
-    libc.src.stdbit.stdc_count_ones_ull
-    libc.src.stdbit.stdc_count_ones_us
-    libc.src.stdbit.stdc_count_zeros_uc
-    libc.src.stdbit.stdc_count_zeros_ui
-    libc.src.stdbit.stdc_count_zeros_ul
-    libc.src.stdbit.stdc_count_zeros_ull
-    libc.src.stdbit.stdc_count_zeros_us
-    libc.src.stdbit.stdc_first_leading_one_uc
-    libc.src.stdbit.stdc_first_leading_one_ui
-    libc.src.stdbit.stdc_first_leading_one_ul
-    libc.src.stdbit.stdc_first_leading_one_ull
-    libc.src.stdbit.stdc_first_leading_one_us
-    libc.src.stdbit.stdc_first_leading_zero_uc
-    libc.src.stdbit.stdc_first_leading_zero_ui
-    libc.src.stdbit.stdc_first_leading_zero_ul
-    libc.src.stdbit.stdc_first_leading_zero_ull
-    libc.src.stdbit.stdc_first_leading_zero_us
-    libc.src.stdbit.stdc_first_trailing_one_uc
-    libc.src.stdbit.stdc_first_trailing_one_ui
-    libc.src.stdbit.stdc_first_trailing_one_ul
-    libc.src.stdbit.stdc_first_trailing_one_ull
-    libc.src.stdbit.stdc_first_trailing_one_us
-    libc.src.stdbit.stdc_first_trailing_zero_uc
-    libc.src.stdbit.stdc_first_trailing_zero_ui
-    libc.src.stdbit.stdc_first_trailing_zero_ul
-    libc.src.stdbit.stdc_first_trailing_zero_ull
-    libc.src.stdbit.stdc_first_trailing_zero_us
-    libc.src.stdbit.stdc_has_single_bit_uc
-    libc.src.stdbit.stdc_has_single_bit_ui
-    libc.src.stdbit.stdc_has_single_bit_ul
-    libc.src.stdbit.stdc_has_single_bit_ull
-    libc.src.stdbit.stdc_has_single_bit_us
-    libc.src.stdbit.stdc_leading_ones_uc
-    libc.src.stdbit.stdc_leading_ones_ui
-    libc.src.stdbit.stdc_leading_ones_ul
-    libc.src.stdbit.stdc_leading_ones_ull
-    libc.src.stdbit.stdc_leading_ones_us
-    libc.src.stdbit.stdc_leading_zeros_uc
-    libc.src.stdbit.stdc_leading_zeros_ui
-    libc.src.stdbit.stdc_leading_zeros_ul
-    libc.src.stdbit.stdc_leading_zeros_ull
-    libc.src.stdbit.stdc_leading_zeros_us
-    libc.src.stdbit.stdc_trailing_ones_uc
-    libc.src.stdbit.stdc_trailing_ones_ui
-    libc.src.stdbit.stdc_trailing_ones_ul
-    libc.src.stdbit.stdc_trailing_ones_ull
-    libc.src.stdbit.stdc_trailing_ones_us
-    libc.src.stdbit.stdc_trailing_zeros_uc
-    libc.src.stdbit.stdc_trailing_zeros_ui
-    libc.src.stdbit.stdc_trailing_zeros_ul
-    libc.src.stdbit.stdc_trailing_zeros_ull
-    libc.src.stdbit.stdc_trailing_zeros_us
-
-    # stdlib.h entrypoints
-    libc.src.stdlib._Exit
-    libc.src.stdlib.abort
-    libc.src.stdlib.abs
-    libc.src.stdlib.atexit
-    libc.src.stdlib.atof
-    libc.src.stdlib.atoi
-    libc.src.stdlib.atol
-    libc.src.stdlib.atoll
-    libc.src.stdlib.bsearch
-    libc.src.stdlib.div
-    libc.src.stdlib.exit
-    libc.src.stdlib.labs
-    libc.src.stdlib.ldiv
-    libc.src.stdlib.llabs
-    libc.src.stdlib.lldiv
-    libc.src.stdlib.memalignment
-    libc.src.stdlib.qsort
-    libc.src.stdlib.qsort_r
-    libc.src.stdlib.rand
-    libc.src.stdlib.srand
-    libc.src.stdlib.strtod
-    libc.src.stdlib.strtod_l
-    libc.src.stdlib.strtof
-    libc.src.stdlib.strtof_l
-    libc.src.stdlib.strtol
-    libc.src.stdlib.strtol_l
-    libc.src.stdlib.strtold
-    libc.src.stdlib.strtold_l
-    libc.src.stdlib.strtoll
-    libc.src.stdlib.strtoll_l
-    libc.src.stdlib.strtoul
-    libc.src.stdlib.strtoul_l
-    libc.src.stdlib.strtoull
-    libc.src.stdlib.strtoull_l
-    libc.src.stdlib.at_quick_exit
-    libc.src.stdlib.quick_exit
-    libc.src.stdlib.getenv
-    libc.src.stdlib.system
-
-    # TODO: Implement these correctly
-    libc.src.stdlib.aligned_alloc
-    libc.src.stdlib.calloc
-    libc.src.stdlib.free
-    libc.src.stdlib.malloc
-    libc.src.stdlib.realloc
-
-    # errno.h entrypoints
-    libc.src.errno.errno
-
-    # stdio.h entrypoints
-    libc.src.stdio.clearerr
-    libc.src.stdio.fclose
-    libc.src.stdio.printf
-    libc.src.stdio.vprintf
-    libc.src.stdio.fprintf
-    libc.src.stdio.vfprintf
-    libc.src.stdio.snprintf
-    libc.src.stdio.sprintf
-    libc.src.stdio.vsnprintf
-    libc.src.stdio.vsprintf
-    libc.src.stdio.asprintf
-    libc.src.stdio.vasprintf
-    libc.src.stdio.scanf
-    libc.src.stdio.vscanf
-    libc.src.stdio.fscanf
-    libc.src.stdio.vfscanf
-    libc.src.stdio.sscanf
-    libc.src.stdio.vsscanf
-    libc.src.stdio.feof
-    libc.src.stdio.ferror
-    libc.src.stdio.fflush
-    libc.src.stdio.fgetc
-    libc.src.stdio.fgets
-    libc.src.stdio.fopen
-    libc.src.stdio.fputc
-    libc.src.stdio.fputs
-    libc.src.stdio.fread
-    libc.src.stdio.fseek
-    libc.src.stdio.ftell
-    libc.src.stdio.fwrite
-    libc.src.stdio.getc
-    libc.src.stdio.getchar
-    libc.src.stdio.putc
-    libc.src.stdio.putchar
-    libc.src.stdio.puts
-    libc.src.stdio.remove
-    libc.src.stdio.rename
-    libc.src.stdio.stderr
-    libc.src.stdio.stdin
-    libc.src.stdio.stdout
-    libc.src.stdio.ungetc
-
-    # inttypes.h entrypoints
-    libc.src.inttypes.imaxabs
-    libc.src.inttypes.imaxdiv
-    libc.src.inttypes.strtoimax
-    libc.src.inttypes.strtoumax
-
-    # time.h entrypoints
-    libc.src.time.clock
-    libc.src.time.clock_gettime
-    libc.src.time.timespec_get
-    libc.src.time.nanosleep
-    libc.src.time.strftime
-    libc.src.time.strftime_l
-    libc.src.time.mktime
-
-    # wchar.h entrypoints
-    libc.src.wchar.wcslen
-    libc.src.wchar.wctob
-
-    # locale.h entrypoints
-    libc.src.locale.localeconv
-    libc.src.locale.duplocale
-    libc.src.locale.freelocale
-    libc.src.locale.localeconv
-    libc.src.locale.newlocale
-    libc.src.locale.setlocale
-    libc.src.locale.uselocale
-)
-
-set(TARGET_LIBM_ENTRYPOINTS
-    # complex.h entrypoints
-    libc.src.complex.cabs
-    libc.src.complex.cabsf
-    libc.src.complex.carg
-    libc.src.complex.cargf
-    libc.src.complex.creal
-    libc.src.complex.crealf
-    libc.src.complex.creall
-    libc.src.complex.cimag
-    libc.src.complex.cimagf
-    libc.src.complex.cimagl
-    libc.src.complex.conj
-    libc.src.complex.conjf
-    libc.src.complex.conjl
-    libc.src.complex.cproj
-    libc.src.complex.cprojf
-    libc.src.complex.cprojl
-
-    # math.h entrypoints
-    libc.src.math.acos
-    libc.src.math.acosf
-    libc.src.math.acoshf
-    libc.src.math.acospif
-    libc.src.math.asin
-    libc.src.math.asinf
-    libc.src.math.asinhf
-    libc.src.math.asinpi
-    libc.src.math.asinpif
-    libc.src.math.atan
-    libc.src.math.atan2
-    libc.src.math.atan2f
-    libc.src.math.atan2f128
-    libc.src.math.atan2l
-    libc.src.math.atanf
-    libc.src.math.atanhf
-    libc.src.math.canonicalize
-    libc.src.math.canonicalizef
-    libc.src.math.canonicalizel
-    libc.src.math.cbrt
-    libc.src.math.cbrtf
-    libc.src.math.cbrtbf16
-    libc.src.math.ceil
-    libc.src.math.ceilf
-    libc.src.math.ceilf128
-    libc.src.math.ceill
-    libc.src.math.copysign
-    libc.src.math.copysignf
-    libc.src.math.copysignf128
-    libc.src.math.copysignl
-    libc.src.math.cos
-    libc.src.math.cosf
-    libc.src.math.coshf
-    libc.src.math.cospif
-    libc.src.math.ddivl
-    libc.src.math.dfmal
-    libc.src.math.dmull
-    libc.src.math.dsqrtl
-    libc.src.math.erff
-    libc.src.math.exp
-    libc.src.math.exp10
-    libc.src.math.exp10f
-    libc.src.math.exp2
-    libc.src.math.exp2f
-    libc.src.math.exp2m1f
-    libc.src.math.expf
-    libc.src.math.expm1
-    libc.src.math.expm1f
-    libc.src.math.fabs
-    libc.src.math.fabsf
-    libc.src.math.fabsf128
-    libc.src.math.fabsl
-    libc.src.math.fadd
-    libc.src.math.faddl
-    libc.src.math.fdim
-    libc.src.math.fdimf
-    libc.src.math.fdimf128
-    libc.src.math.fdiml
-    libc.src.math.fdiv
-    libc.src.math.fdivl
-    libc.src.math.ffma
-    libc.src.math.ffmal
-    libc.src.math.floor
-    libc.src.math.floorf
-    libc.src.math.floorf128
-    libc.src.math.floorl
-    libc.src.math.fma
-    libc.src.math.fmabf16
-    libc.src.math.fmaf
-    libc.src.math.fmax
-    libc.src.math.fmaxf
-    libc.src.math.fmaxf128
-    libc.src.math.fmaximum
-    libc.src.math.fmaximum_mag_numf128
-    libc.src.math.fmaximum_magf128
-    libc.src.math.fmaximumf
-    libc.src.math.fmaximumf128
-    libc.src.math.fmaximuml
-    libc.src.math.fmaximum_mag
-    libc.src.math.fmaximum_magf
-    libc.src.math.fmaximum_magl
-    libc.src.math.fmaximum_mag_num
-    libc.src.math.fmaximum_mag_numf
-    libc.src.math.fmaximum_mag_numl
-    libc.src.math.fmaximum_num
-    libc.src.math.fmaximum_numf
-    libc.src.math.fmaximum_numf128
-    libc.src.math.fmaximum_numl
-    libc.src.math.fmaxl
-    libc.src.math.fmin
-    libc.src.math.fminf
-    libc.src.math.fminf128
-    libc.src.math.fminimum
-    libc.src.math.fminimum_mag_numf128
-    libc.src.math.fminimum_magf128
-    libc.src.math.fminimumf
-    libc.src.math.fminimumf128
-    libc.src.math.fminimuml
-    libc.src.math.fminimum_mag
-    libc.src.math.fminimum_magf
-    libc.src.math.fminimum_magl
-    libc.src.math.fminimum_mag_num
-    libc.src.math.fminimum_mag_numf
-    libc.src.math.fminimum_mag_numl
-    libc.src.math.fminimum_num
-    libc.src.math.fminimum_numf
-    libc.src.math.fminimum_numf128
-    libc.src.math.fminimum_numl
-    libc.src.math.fminl
-    libc.src.math.fmod
-    libc.src.math.fmodf
-    libc.src.math.fmodl
-    libc.src.math.fmul
-    libc.src.math.fmull
-    libc.src.math.frexp
-    libc.src.math.frexpf
-    libc.src.math.frexpl
-    libc.src.math.fromfp
-    libc.src.math.fromfpf
-    libc.src.math.fromfpl
-    libc.src.math.fromfpx
-    libc.src.math.fromfpxf
-    libc.src.math.fromfpxl
-    libc.src.math.fsqrt
-    libc.src.math.fsqrtl
-    libc.src.math.fsub
-    libc.src.math.fsubl
-    libc.src.math.getpayload
-    libc.src.math.getpayloadf
-    libc.src.math.getpayloadl
-    libc.src.math.hypot
-    libc.src.math.hypotf
-    libc.src.math.ilogb
-    libc.src.math.ilogbf
-    libc.src.math.ilogbl
-    libc.src.math.iscanonicalf128
-    libc.src.math.isnan
-    libc.src.math.isnanf
-    libc.src.math.isnanf128
-    libc.src.math.isnanl
-    libc.src.math.issignalingf128
-    libc.src.math.ldexp
-    libc.src.math.ldexpf
-    libc.src.math.ldexpl
-    libc.src.math.lgamma
-    libc.src.math.lgamma_r
-    libc.src.math.lgammaf
-    libc.src.math.llogb
-    libc.src.math.llogbf
-    libc.src.math.llogbl
-    libc.src.math.llrint
-    libc.src.math.llrintf
-    libc.src.math.llrintf128
-    libc.src.math.llrintl
-    libc.src.math.llround
-    libc.src.math.llroundf
-    libc.src.math.llroundf128
-    libc.src.math.llroundl
-    libc.src.math.log
-    libc.src.math.log10
-    libc.src.math.log10f
-    libc.src.math.log1p
-    libc.src.math.log1pf
-    libc.src.math.log2
-    libc.src.math.log2f
-    libc.src.math.logb
-    libc.src.math.logbf
-    libc.src.math.logbl
-    libc.src.math.logf
-    libc.src.math.lrint
-    libc.src.math.lrintf
-    libc.src.math.lrintf128
-    libc.src.math.lrintl
-    libc.src.math.lround
-    libc.src.math.lroundf
-    libc.src.math.lroundf128
-    libc.src.math.lroundl
-    libc.src.math.modf
-    libc.src.math.modff
-    libc.src.math.modfl
-    libc.src.math.nan
-    libc.src.math.nanf
-    libc.src.math.nanl
-    libc.src.math.nearbyint
-    libc.src.math.nearbyintf
-    libc.src.math.nearbyintf128
-    libc.src.math.nearbyintl
-    libc.src.math.nextafter
-    libc.src.math.nextafterf
-    libc.src.math.nextafterl
-    libc.src.math.nextdown
-    libc.src.math.nextdownf
-    libc.src.math.nextdownl
-    libc.src.math.nexttoward
-    libc.src.math.nexttowardf
-    libc.src.math.nexttowardl
-    libc.src.math.nextup
-    libc.src.math.nextupf
-    libc.src.math.nextupl
-    libc.src.math.pow
-    libc.src.math.powf
-    libc.src.math.remainder
-    libc.src.math.remainderf
-    libc.src.math.remainderl
-    libc.src.math.remquo
-    libc.src.math.remquof
-    libc.src.math.remquol
-    libc.src.math.rint
-    libc.src.math.rintf
-    libc.src.math.rintf128
-    libc.src.math.rintl
-    libc.src.math.roundeven
-    libc.src.math.roundevenf
-    libc.src.math.roundevenf128
-    libc.src.math.roundevenl
-    libc.src.math.round
-    libc.src.math.roundf
-    libc.src.math.roundf128
-    libc.src.math.roundl
-    libc.src.math.scalbln
-    libc.src.math.scalblnf
-    libc.src.math.scalblnl
-    libc.src.math.scalbn
-    libc.src.math.scalbnf
-    libc.src.math.scalbnl
-    libc.src.math.setpayload
-    libc.src.math.setpayloadf
-    libc.src.math.setpayloadl
-    libc.src.math.setpayloadsig
-    libc.src.math.setpayloadsigf
-    libc.src.math.setpayloadsigl
-    libc.src.math.sin
-    libc.src.math.sincos
-    libc.src.math.sincosf
-    libc.src.math.sinf
-    libc.src.math.sinhf
-    libc.src.math.sinpif
-    libc.src.math.sqrt
-    libc.src.math.sqrtf
-    libc.src.math.sqrtf128
-    libc.src.math.sqrtl
-    libc.src.math.tan
-    libc.src.math.tanf
-    libc.src.math.tanhf
-    libc.src.math.tanpif
-    libc.src.math.tgamma
-    libc.src.math.tgammaf
-    libc.src.math.totalorder
-    libc.src.math.totalorderf
-    libc.src.math.totalorderl
-    libc.src.math.totalordermag
-    libc.src.math.totalordermagf
-    libc.src.math.totalordermagl
-    libc.src.math.trunc
-    libc.src.math.truncf
-    libc.src.math.truncf128
-    libc.src.math.truncl
-    libc.src.math.ufromfp
-    libc.src.math.ufromfpf
-    libc.src.math.ufromfpl
-    libc.src.math.ufromfpx
-    libc.src.math.ufromfpxf
-    libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_FLOAT16)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C23 _Float16 entrypoints
-    libc.src.math.acosf16
-    libc.src.math.acoshf16
-    libc.src.math.acospif16
-    libc.src.math.asinf16
-    libc.src.math.asinhf16
-    libc.src.math.atanf16
-    libc.src.math.atan2f16
-    libc.src.math.atanhf16
-    libc.src.math.canonicalizef16
-    libc.src.math.cbrtf16
-    libc.src.math.ceilf16
-    libc.src.math.copysignf16
-    libc.src.math.cosf16
-    libc.src.math.coshf16
-    libc.src.math.cospif16
-    libc.src.math.erff16
-    libc.src.math.erfcf16
-    libc.src.math.exp10f16
-    libc.src.math.exp10m1f16
-    libc.src.math.exp2f16
-    # libc.src.math.exp2m1f16
-    libc.src.math.expf16
-    libc.src.math.expm1f16
-    libc.src.math.f16add
-    libc.src.math.f16addf
-    libc.src.math.f16addl
-    libc.src.math.f16div
-    libc.src.math.f16divf
-    libc.src.math.f16divl
-    libc.src.math.f16fma
-    libc.src.math.f16fmaf
-    libc.src.math.f16fmal
-    libc.src.math.f16mul
-    libc.src.math.f16mulf
-    libc.src.math.f16mull
-    libc.src.math.f16sqrt
-    libc.src.math.f16sqrtf
-    libc.src.math.f16sqrtl
-    libc.src.math.f16sub
-    libc.src.math.f16subf
-    libc.src.math.f16subl
-    libc.src.math.fabsf16
-    libc.src.math.fdimf16
-    libc.src.math.floorf16
-    libc.src.math.fmaf16
-    libc.src.math.fmaxf16
-    libc.src.math.fmaximum_mag_numf16
-    libc.src.math.fmaximum_magf16
-    libc.src.math.fmaximum_numf16
-    libc.src.math.fmaximumf16
-    libc.src.math.fminf16
-    libc.src.math.fminimum_mag_numf16
-    libc.src.math.fminimum_magf16
-    libc.src.math.fminimum_numf16
-    libc.src.math.fminimumf16
-    libc.src.math.fmodf16
-    libc.src.math.frexpf16
-    libc.src.math.fromfpf16
-    libc.src.math.fromfpxf16
-    libc.src.math.getpayloadf16
-    libc.src.math.hypotf16
-    libc.src.math.ilogbf16
-    libc.src.math.iscanonicalf16
-    libc.src.math.isnanf16
-    libc.src.math.issignalingf16
-    libc.src.math.ldexpf16
-    libc.src.math.lgammaf16
-    libc.src.math.llogbf16
-    libc.src.math.llrintf16
-    libc.src.math.llroundf16
-    libc.src.math.log10f16
-    libc.src.math.log10p1f16
-    libc.src.math.log2f16
-    libc.src.math.log2p1f16
-    libc.src.math.logbf16
-    libc.src.math.logf16
-    libc.src.math.lrintf16
-    libc.src.math.lroundf16
-    libc.src.math.modff16
-    libc.src.math.nanf16
-    libc.src.math.nearbyintf16
-    libc.src.math.nextafterf16
-    libc.src.math.nextdownf16
-    libc.src.math.nexttowardf16
-    libc.src.math.nextupf16
-    libc.src.math.remainderf16
-    libc.src.math.remquof16
-    libc.src.math.rintf16
-    libc.src.math.roundevenf16
-    libc.src.math.roundf16
-    libc.src.math.scalblnf16
-    libc.src.math.scalbnf16
-    libc.src.math.setpayloadf16
-    libc.src.math.setpayloadsigf16
-    libc.src.math.sinf16
-    libc.src.math.sinhf16
-    libc.src.math.sinpif16
-    libc.src.math.sqrtf16
-    libc.src.math.tanf16
-    libc.src.math.tanhf16
-    libc.src.math.tanpif16
-    libc.src.math.totalorderf16
-    libc.src.math.totalordermagf16
-    libc.src.math.truncf16
-    libc.src.math.ufromfpf16
-    libc.src.math.ufromfpxf16
-  )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
-  # bfloat16 entrypoints
-  libc.src.math.atanbf16
-  libc.src.math.acosbf16
-  libc.src.math.asinbf16
-  libc.src.math.bf16add
-  libc.src.math.bf16addf
-  libc.src.math.bf16addl
-  libc.src.math.bf16div
-  libc.src.math.bf16divf
-  libc.src.math.bf16divl
-  libc.src.math.bf16fma
-  libc.src.math.bf16fmaf
-  libc.src.math.bf16fmal
-  libc.src.math.bf16mul
-  libc.src.math.bf16mulf
-  libc.src.math.bf16mull
-  libc.src.math.bf16sub
-  libc.src.math.bf16subf
-  libc.src.math.bf16subl
-  libc.src.math.canonicalizebf16
-  libc.src.math.ceilbf16
-  libc.src.math.copysignbf16
-  libc.src.math.exp2bf16
-  libc.src.math.expbf16
-  libc.src.math.fabsbf16
-  libc.src.math.fdimbf16
-  libc.src.math.floorbf16
-  libc.src.math.fmaxbf16
-  libc.src.math.fmaximumbf16
-  libc.src.math.fmaximum_magbf16
-  libc.src.math.fmaximum_mag_numbf16
-  libc.src.math.fmaximum_numbf16
-  libc.src.math.fminbf16
-  libc.src.math.fminimumbf16
-  libc.src.math.fminimum_magbf16
-  libc.src.math.fminimum_mag_numbf16
-  libc.src.math.fminimum_numbf16
-  libc.src.math.fmodbf16
-  libc.src.math.frexpbf16
-  libc.src.math.fromfpbf16
-  libc.src.math.fromfpxbf16
-  libc.src.math.getpayloadbf16
-  libc.src.math.hypotbf16
-  libc.src.math.ilogbbf16
-  libc.src.math.iscanonicalbf16
-  libc.src.math.issignalingbf16
-  libc.src.math.ldexpbf16
-  libc.src.math.llogbbf16
-  libc.src.math.llrintbf16
-  libc.src.math.llroundbf16
-  libc.src.math.log_bf16
-  libc.src.math.logbbf16
-  libc.src.math.lrintbf16
-  libc.src.math.lroundbf16
-  libc.src.math.modfbf16
-  libc.src.math.nanbf16
-  libc.src.math.nearbyintbf16
-  libc.src.math.nextafterbf16
-  libc.src.math.nextdownbf16
-  libc.src.math.nexttowardbf16
-  libc.src.math.nextupbf16
-  libc.src.math.remainderbf16
-  libc.src.math.remquobf16
-  libc.src.math.rintbf16
-  libc.src.math.roundbf16
-  libc.src.math.roundevenbf16
-  libc.src.math.scalblnbf16
-  libc.src.math.scalbnbf16
-  libc.src.math.setpayloadbf16
-  libc.src.math.setpayloadsigbf16
-  libc.src.math.sqrtbf16
-  libc.src.math.tanbf16
-  libc.src.math.truncbf16
-  libc.src.math.totalorderbf16
-  libc.src.math.totalordermagbf16
-  libc.src.math.ufromfpbf16
-  libc.src.math.ufromfpxbf16
-)
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
-  ${TARGET_LIBC_ENTRYPOINTS}
-  ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+    # assert.h entrypoints
+    libc.src.assert.__assert_fail
+
+    # ctype.h entrypoints
+    libc.src.ctype.isalnum
+    libc.src.ctype.isalnum_l
+    libc.src.ctype.isalpha
+    libc.src.ctype.isalpha_l
+    libc.src.ctype.isascii
+    libc.src.ctype.isblank
+    libc.src.ctype.isblank_l
+    libc.src.ctype.iscntrl
+    libc.src.ctype.iscntrl_l
+    libc.src.ctype.isdigit
+    libc.src.ctype.isdigit_l
+    libc.src.ctype.isgraph
+    libc.src.ctype.isgraph_l
+    libc.src.ctype.islower
+    libc.src.ctype.islower_l
+    libc.src.ctype.isprint
+    libc.src.ctype.isprint_l
+    libc.src.ctype.ispunct
+    libc.src.ctype.ispunct_l
+    libc.src.ctype.isspace
+    libc.src.ctype.isspace_l
+    libc.src.ctype.isupper
+    libc.src.ctype.isupper_l
+    libc.src.ctype.isxdigit
+    libc.src.ctype.isxdigit_l
+    libc.src.ctype.toascii
+    libc.src.ctype.tolower
+    libc.src.ctype.tolower_l
+    libc.src.ctype.toupper
+    libc.src.ctype.toupper_l
+
+    # string.h entrypoints
+    libc.src.string.memccpy
+    libc.src.string.memchr
+    libc.src.string.memcmp
+    libc.src.string.memcpy
+    libc.src.string.memmem
+    libc.src.string.memmove
+    libc.src.string.mempcpy
+    libc.src.string.memrchr
+    libc.src.string.memset
+    libc.src.string.stpcpy
+    libc.src.string.stpncpy
+    libc.src.string.strcasestr
+    libc.src.string.strcat
+    libc.src.string.strchr
+    libc.src.string.strchrnul
+    libc.src.string.strcmp
+    libc.src.string.strcoll
+    libc.src.string.strcoll_l
+    libc.src.string.strcpy
+    libc.src.string.strcspn
+    libc.src.string.strdup
+    libc.src.string.strerror
+    libc.src.string.strlcat
+    libc.src.string.strlcpy
+    libc.src.string.strlen
+    libc.src.string.strncat
+    libc.src.string.strncmp
+    libc.src.string.strncpy
+    libc.src.string.strndup
+    libc.src.string.strnlen
+    libc.src.string.strnlen_s
+    libc.src.string.strpbrk
+    libc.src.string.strrchr
+    libc.src.string.strsep
+    libc.src.string.strspn
+    libc.src.string.strstr
+    libc.src.string.strtok
+    libc.src.string.strtok_r
+    libc.src.string.strxfrm
+    libc.src.string.strxfrm_l
+
+    # strings.h entrypoints
+    libc.src.strings.bcmp
+    libc.src.strings.bcopy
+    libc.src.strings.bzero
+    libc.src.strings.index
+    libc.src.strings.rindex
+    libc.src.strings.strcasecmp
+    libc.src.strings.strncasecmp
+
+    # stdbit.h entrypoints
+    libc.src.stdbit.stdc_bit_ceil_uc
+    libc.src.stdbit.stdc_bit_ceil_ui
+    libc.src.stdbit.stdc_bit_ceil_ul
+    libc.src.stdbit.stdc_bit_ceil_ull
+    libc.src.stdbit.stdc_bit_ceil_us
+    libc.src.stdbit.stdc_bit_floor_uc
+    libc.src.stdbit.stdc_bit_floor_ui
+    libc.src.stdbit.stdc_bit_floor_ul
+    libc.src.stdbit.stdc_bit_floor_ull
+    libc.src.stdbit.stdc_bit_floor_us
+    libc.src.stdbit.stdc_bit_width_uc
+    libc.src.stdbit.stdc_bit_width_ui
+    libc.src.stdbit.stdc_bit_width_ul
+    libc.src.stdbit.stdc_bit_width_ull
+    libc.src.stdbit.stdc_bit_width_us
+    libc.src.stdbit.stdc_count_ones_uc
+    libc.src.stdbit.stdc_count_ones_ui
+    libc.src.stdbit.stdc_count_ones_ul
+    libc.src.stdbit.stdc_count_ones_ull
+    libc.src.stdbit.stdc_count_ones_us
+    libc.src.stdbit.stdc_count_zeros_uc
+    libc.src.stdbit.stdc_count_zeros_ui
+    libc.src.stdbit.stdc_count_zeros_ul
+    libc.src.stdbit.stdc_count_zeros_ull
+    libc.src.stdbit.stdc_count_zeros_us
+    libc.src.stdbit.stdc_first_leading_one_uc
+    libc.src.stdbit.stdc_first_leading_one_ui
+    libc.src.stdbit.stdc_first_leading_one_ul
+    libc.src.stdbit.stdc_first_leading_one_ull
+    libc.src.stdbit.stdc_first_leading_one_us
+    libc.src.stdbit.stdc_first_leading_zero_uc
+    libc.src.stdbit.stdc_first_leading_zero_ui
+    libc.src.stdbit.stdc_first_leading_zero_ul
+    libc.src.stdbit.stdc_first_leading_zero_ull
+    libc.src.stdbit.stdc_first_leading_zero_us
+    libc.src.stdbit.stdc_first_trailing_one_uc
+    libc.src.stdbit.stdc_first_trailing_one_ui
+    libc.src.stdbit.stdc_first_trailing_one_ul
+    libc.src.stdbit.stdc_first_trailing_one_ull
+    libc.src.stdbit.stdc_first_trailing_one_us
+    libc.src.stdbit.stdc_first_trailing_zero_uc
+    libc.src.stdbit.stdc_first_trailing_zero_ui
+    libc.src.stdbit.stdc_first_trailing_zero_ul
+    libc.src.stdbit.stdc_first_trailing_zero_ull
+    libc.src.stdbit.stdc_first_trailing_zero_us
+    libc.src.stdbit.stdc_has_single_bit_uc
+    libc.src.stdbit.stdc_has_single_bit_ui
+    libc.src.stdbit.stdc_has_single_bit_ul
+    libc.src.stdbit.stdc_has_single_bit_ull
+    libc.src.stdbit.stdc_has_single_bit_us
+    libc.src.stdbit.stdc_leading_ones_uc
+    libc.src.stdbit.stdc_leading_ones_ui
+    libc.src.stdbit.stdc_leading_ones_ul
+    libc.src.stdbit.stdc_leading_ones_ull
+    libc.src.stdbit.stdc_leading_ones_us
+    libc.src.stdbit.stdc_leading_zeros_uc
+    libc.src.stdbit.stdc_leading_zeros_ui
+    libc.src.stdbit.stdc_leading_zeros_ul
+    libc.src.stdbit.stdc_leading_zeros_ull
+    libc.src.stdbit.stdc_leading_zeros_us
+    libc.src.stdbit.stdc_trailing_ones_uc
+    libc.src.stdbit.stdc_trailing_ones_ui
+    libc.src.stdbit.stdc_trailing_ones_ul
+    libc.src.stdbit.stdc_trailing_ones_ull
+    libc.src.stdbit.stdc_trailing_ones_us
+    libc.src.stdbit.stdc_trailing_zeros_uc
+    libc.src.stdbit.stdc_trailing_zeros_ui
+    libc.src.stdbit.stdc_trailing_zeros_ul
+    libc.src.stdbit.stdc_trailing_zeros_ull
+    libc.src.stdbit.stdc_trailing_zeros_us
+
+    # stdlib.h entrypoints
+    libc.src.stdlib._Exit
+    libc.src.stdlib.abort
+    libc.src.stdlib.abs
+    libc.src.stdlib.atexit
+    libc.src.stdlib.atof
+    libc.src.stdlib.atoi
+    libc.src.stdlib.atol
+    libc.src.stdlib.atoll
+    libc.src.stdlib.bsearch
+    libc.src.stdlib.div
+    libc.src.stdlib.exit
+    libc.src.stdlib.labs
+    libc.src.stdlib.ldiv
+    libc.src.stdlib.llabs
+    libc.src.stdlib.lldiv
+    libc.src.stdlib.memalignment
+    libc.src.stdlib.qsort
+    libc.src.stdlib.qsort_r
+    libc.src.stdlib.rand
+    libc.src.stdlib.srand
+    libc.src.stdlib.strtod
+    libc.src.stdlib.strtod_l
+    libc.src.stdlib.strtof
+    libc.src.stdlib.strtof_l
+    libc.src.stdlib.strtol
+    libc.src.stdlib.strtol_l
+    libc.src.stdlib.strtold
+    libc.src.stdlib.strtold_l
+    libc.src.stdlib.strtoll
+    libc.src.stdlib.strtoll_l
+    libc.src.stdlib.strtoul
+    libc.src.stdlib.strtoul_l
+    libc.src.stdlib.strtoull
+    libc.src.stdlib.strtoull_l
+    libc.src.stdlib.at_quick_exit
+    libc.src.stdlib.quick_exit
+    libc.src.stdlib.getenv
+    libc.src.stdlib.system
+
+    # TODO: Implement these correctly
+    libc.src.stdlib.aligned_alloc
+    libc.src.stdlib.calloc
+    libc.src.stdlib.free
+    libc.src.stdlib.malloc
+    libc.src.stdlib.realloc
+
+    # errno.h entrypoints
+    libc.src.errno.errno
+
+    # stdio.h entrypoints
+    libc.src.stdio.clearerr
+    libc.src.stdio.fclose
+    libc.src.stdio.printf
+    libc.src.stdio.vprintf
+    libc.src.stdio.fprintf
+    libc.src.stdio.vfprintf
+    libc.src.stdio.snprintf
+    libc.src.stdio.sprintf
+    libc.src.stdio.vsnprintf
+    libc.src.stdio.vsprintf
+    libc.src.stdio.asprintf
+    libc.src.stdio.vasprintf
+    libc.src.stdio.scanf
+    libc.src.stdio.vscanf
+    libc.src.stdio.fscanf
+    libc.src.stdio.vfscanf
+    libc.src.stdio.sscanf
+    libc.src.stdio.vsscanf
+    libc.src.stdio.feof
+    libc.src.stdio.ferror
+    libc.src.stdio.fflush
+    libc.src.stdio.fgetc
+    libc.src.stdio.fgets
+    libc.src.stdio.fopen
+    libc.src.stdio.fputc
+    libc.src.stdio.fputs
+    libc.src.stdio.fread
+    libc.src.stdio.fseek
+    libc.src.stdio.ftell
+    libc.src.stdio.fwrite
+    libc.src.stdio.getc
+    libc.src.stdio.getchar
+    libc.src.stdio.putc
+    libc.src.stdio.putchar
+    libc.src.stdio.puts
+    libc.src.stdio.remove
+    libc.src.stdio.rename
+    libc.src.stdio.stderr
+    libc.src.stdio.stdin
+    libc.src.stdio.stdout
+    libc.src.stdio.ungetc
+
+    # inttypes.h entrypoints
+    libc.src.inttypes.imaxabs
+    libc.src.inttypes.imaxdiv
+    libc.src.inttypes.strtoimax
+    libc.src.inttypes.strtoumax
+
+    # time.h entrypoints
+    libc.src.time.clock
+    libc.src.time.clock_gettime
+    libc.src.time.timespec_get
+    libc.src.time.nanosleep
+    libc.src.time.strftime
+    libc.src.time.strftime_l
+    libc.src.time.mktime
+
+    # wchar.h entrypoints
+    libc.src.wchar.wcslen
+    libc.src.wchar.wctob
+
+    # locale.h entrypoints
+    libc.src.locale.localeconv
+    libc.src.locale.duplocale
+    libc.src.locale.freelocale
+    libc.src.locale.localeconv
+    libc.src.locale.newlocale
+    libc.src.locale.setlocale
+    libc.src.locale.uselocale
+)
+
+set(TARGET_LIBM_ENTRYPOINTS
+    # complex.h entrypoints
+    libc.src.complex.cabs
+    libc.src.complex.cabsf
+    libc.src.complex.carg
+    libc.src.complex.cargf
+    libc.src.complex.creal
+    libc.src.complex.crealf
+    libc.src.complex.creall
+    libc.src.complex.cimag
+    libc.src.complex.cimagf
+    libc.src.complex.cimagl
+    libc.src.complex.conj
+    libc.src.complex.conjf
+    libc.src.complex.conjl
+    libc.src.complex.cproj
+    libc.src.complex.cprojf
+    libc.src.complex.cprojl
+
+    # math.h entrypoints
+    libc.src.math.acos
+    libc.src.math.acosf
+    libc.src.math.acoshf
+    libc.src.math.acospif
+    libc.src.math.asin
+    libc.src.math.asinf
+    libc.src.math.asinhf
+    libc.src.math.asinpi
+    libc.src.math.asinpif
+    libc.src.math.atan
+    libc.src.math.atan2
+    libc.src.math.atan2f
+    libc.src.math.atan2f128
+    libc.src.math.atan2l
+    libc.src.math.atanf
+    libc.src.math.atanhf
+    libc.src.math.canonicalize
+    libc.src.math.canonicalizef
+    libc.src.math.canonicalizel
+    libc.src.math.cbrt
+    libc.src.math.cbrtf
+    libc.src.math.cbrtbf16
+    libc.src.math.ceil
+    libc.src.math.ceilf
+    libc.src.math.ceilf128
+    libc.src.math.ceill
+    libc.src.math.copysign
+    libc.src.math.copysignf
+    libc.src.math.copysignf128
+    libc.src.math.copysignf80
+    libc.src.math.copysignl
+    libc.src.math.cos
+    libc.src.math.cosf
+    libc.src.math.coshf
+    libc.src.math.cospif
+    libc.src.math.ddivl
+    libc.src.math.dfmal
+    libc.src.math.dmull
+    libc.src.math.dsqrtl
+    libc.src.math.erff
+    libc.src.math.exp
+    libc.src.math.exp10
+    libc.src.math.exp10f
+    libc.src.math.exp2
+    libc.src.math.exp2f
+    libc.src.math.exp2m1f
+    libc.src.math.expf
+    libc.src.math.expm1
+    libc.src.math.expm1f
+    libc.src.math.fabs
+    libc.src.math.fabsf
+    libc.src.math.fabsf128
+    libc.src.math.fabsf80
+    libc.src.math.fabsl
+    libc.src.math.fadd
+    libc.src.math.faddl
+    libc.src.math.fdim
+    libc.src.math.fdimf
+    libc.src.math.fdimf128
+    libc.src.math.fdiml
+    libc.src.math.fdiv
+    libc.src.math.fdivl
+    libc.src.math.ffma
+    libc.src.math.ffmal
+    libc.src.math.floor
+    libc.src.math.floorf
+    libc.src.math.floorf128
+    libc.src.math.floorl
+    libc.src.math.fma
+    libc.src.math.fmabf16
+    libc.src.math.fmaf
+    libc.src.math.fmax
+    libc.src.math.fmaxf
+    libc.src.math.fmaxf128
+    libc.src.math.fmaximum
+    libc.src.math.fmaximum_mag_numf128
+    libc.src.math.fmaximum_magf128
+    libc.src.math.fmaximumf
+    libc.src.math.fmaximumf128
+    libc.src.math.fmaximuml
+    libc.src.math.fmaximum_mag
+    libc.src.math.fmaximum_magf
+    libc.src.math.fmaximum_magl
+    libc.src.math.fmaximum_mag_num
+    libc.src.math.fmaximum_mag_numf
+    libc.src.math.fmaximum_mag_numl
+    libc.src.math.fmaximum_num
+    libc.src.math.fmaximum_numf
+    libc.src.math.fmaximum_numf128
+    libc.src.math.fmaximum_numl
+    libc.src.math.fmaxl
+    libc.src.math.fmin
+    libc.src.math.fminf
+    libc.src.math.fminf128
+    libc.src.math.fminimum
+    libc.src.math.fminimum_mag_numf128
+    libc.src.math.fminimum_magf128
+    libc.src.math.fminimumf
+    libc.src.math.fminimumf128
+    libc.src.math.fminimuml
+    libc.src.math.fminimum_mag
+    libc.src.math.fminimum_magf
+    libc.src.math.fminimum_magl
+    libc.src.math.fminimum_mag_num
+    libc.src.math.fminimum_mag_numf
+    libc.src.math.fminimum_mag_numl
+    libc.src.math.fminimum_num
+    libc.src.math.fminimum_numf
+    libc.src.math.fminimum_numf128
+    libc.src.math.fminimum_numl
+    libc.src.math.fminl
+    libc.src.math.fmod
+    libc.src.math.fmodf
+    libc.src.math.fmodl
+    libc.src.math.fmul
+    libc.src.math.fmull
+    libc.src.math.frexp
+    libc.src.math.frexpf
+    libc.src.math.frexpl
+    libc.src.math.fromfp
+    libc.src.math.fromfpf
+    libc.src.math.fromfpl
+    libc.src.math.fromfpx
+    libc.src.math.fromfpxf
+    libc.src.math.fromfpxl
+    libc.src.math.fsqrt
+    libc.src.math.fsqrtl
+    libc.src.math.fsub
+    libc.src.math.fsubl
+    libc.src.math.getpayload
+    libc.src.math.getpayloadf
+    libc.src.math.getpayloadl
+    libc.src.math.hypot
+    libc.src.math.hypotf
+    libc.src.math.ilogb
+    libc.src.math.ilogbf
+    libc.src.math.ilogbl
+    libc.src.math.iscanonicalf128
+    libc.src.math.isnan
+    libc.src.math.isnanf
+    libc.src.math.isnanf128
+    libc.src.math.isnanl
+    libc.src.math.issignalingf128
+    libc.src.math.ldexp
+    libc.src.math.ldexpf
+    libc.src.math.ldexpl
+    libc.src.math.lgamma
+    libc.src.math.lgamma_r
+    libc.src.math.lgammaf
+    libc.src.math.llogb
+    libc.src.math.llogbf
+    libc.src.math.llogbl
+    libc.src.math.llrint
+    libc.src.math.llrintf
+    libc.src.math.llrintf128
+    libc.src.math.llrintl
+    libc.src.math.llround
+    libc.src.math.llroundf
+    libc.src.math.llroundf128
+    libc.src.math.llroundl
+    libc.src.math.log
+    libc.src.math.log10
+    libc.src.math.log10f
+    libc.src.math.log1p
+    libc.src.math.log1pf
+    libc.src.math.log2
+    libc.src.math.log2f
+    libc.src.math.logb
+    libc.src.math.logbf
+    libc.src.math.logbl
+    libc.src.math.logf
+    libc.src.math.lrint
+    libc.src.math.lrintf
+    libc.src.math.lrintf128
+    libc.src.math.lrintl
+    libc.src.math.lround
+    libc.src.math.lroundf
+    libc.src.math.lroundf128
+    libc.src.math.lroundl
+    libc.src.math.modf
+    libc.src.math.modff
+    libc.src.math.modfl
+    libc.src.math.nan
+    libc.src.math.nanf
+    libc.src.math.nanl
+    libc.src.math.nearbyint
+    libc.src.math.nearbyintf
+    libc.src.math.nearbyintf128
+    libc.src.math.nearbyintl
+    libc.src.math.nextafter
+    libc.src.math.nextafterf
+    libc.src.math.nextafterl
+    libc.src.math.nextdown
+    libc.src.math.nextdownf
+    libc.src.math.nextdownl
+    libc.src.math.nexttoward
+    libc.src.math.nexttowardf
+    libc.src.math.nexttowardl
+    libc.src.math.nextup
+    libc.src.math.nextupf
+    libc.src.math.nextupl
+    libc.src.math.pow
+    libc.src.math.powf
+    libc.src.math.remainder
+    libc.src.math.remainderf
+    libc.src.math.remainderl
+    libc.src.math.remquo
+    libc.src.math.remquof
+    libc.src.math.remquol
+    libc.src.math.rint
+    libc.src.math.rintf
+    libc.src.math.rintf128
+    libc.src.math.rintl
+    libc.src.math.roundeven
+    libc.src.math.roundevenf
+    libc.src.math.roundevenf128
+    libc.src.math.roundevenl
+    libc.src.math.round
+    libc.src.math.roundf
+    libc.src.math.roundf128
+    libc.src.math.roundl
+    libc.src.math.scalbln
+    libc.src.math.scalblnf
+    libc.src.math.scalblnl
+    libc.src.math.scalbn
+    libc.src.math.scalbnf
+    libc.src.math.scalbnl
+    libc.src.math.setpayload
+    libc.src.math.setpayloadf
+    libc.src.math.setpayloadl
+    libc.src.math.setpayloadsig
+    libc.src.math.setpayloadsigf
+    libc.src.math.setpayloadsigl
+    libc.src.math.sin
+    libc.src.math.sincos
+    libc.src.math.sincosf
+    libc.src.math.sinf
+    libc.src.math.sinhf
+    libc.src.math.sinpif
+    libc.src.math.sqrt
+    libc.src.math.sqrtf
+    libc.src.math.sqrtf128
+    libc.src.math.sqrtl
+    libc.src.math.tan
+    libc.src.math.tanf
+    libc.src.math.tanhf
+    libc.src.math.tanpif
+    libc.src.math.tgamma
+    libc.src.math.tgammaf
+    libc.src.math.totalorder
+    libc.src.math.totalorderf
+    libc.src.math.totalorderl
+    libc.src.math.totalordermag
+    libc.src.math.totalordermagf
+    libc.src.math.totalordermagl
+    libc.src.math.trunc
+    libc.src.math.truncf
+    libc.src.math.truncf128
+    libc.src.math.truncl
+    libc.src.math.ufromfp
+    libc.src.math.ufromfpf
+    libc.src.math.ufromfpl
+    libc.src.math.ufromfpx
+    libc.src.math.ufromfpxf
+    libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_FLOAT16)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C23 _Float16 entrypoints
+    libc.src.math.acosf16
+    libc.src.math.acoshf16
+    libc.src.math.acospif16
+    libc.src.math.asinf16
+    libc.src.math.asinhf16
+    libc.src.math.atanf16
+    libc.src.math.atan2f16
+    libc.src.math.atanhf16
+    libc.src.math.canonicalizef16
+    libc.src.math.cbrtf16
+    libc.src.math.ceilf16
+    libc.src.math.copysignf16
+    libc.src.math.cosf16
+    libc.src.math.coshf16
+    libc.src.math.cospif16
+    libc.src.math.erff16
+    libc.src.math.erfcf16
+    libc.src.math.exp10f16
+    libc.src.math.exp10m1f16
+    libc.src.math.exp2f16
+    # libc.src.math.exp2m1f16
+    libc.src.math.expf16
+    libc.src.math.expm1f16
+    libc.src.math.f16add
+    libc.src.math.f16addf
+    libc.src.math.f16addl
+    libc.src.math.f16div
+    libc.src.math.f16divf
+    libc.src.math.f16divl
+    libc.src.math.f16fma
+    libc.src.math.f16fmaf
+    libc.src.math.f16fmal
+    libc.src.math.f16mul
+    libc.src.math.f16mulf
+    libc.src.math.f16mull
+    libc.src.math.f16sqrt
+    libc.src.math.f16sqrtf
+    libc.src.math.f16sqrtl
+    libc.src.math.f16sub
+    libc.src.math.f16subf
+    libc.src.math.f16subl
+    libc.src.math.fabsf16
+    libc.src.math.fdimf16
+    libc.src.math.floorf16
+    libc.src.math.fmaf16
+    libc.src.math.fmaxf16
+    libc.src.math.fmaximum_mag_numf16
+    libc.src.math.fmaximum_magf16
+    libc.src.math.fmaximum_numf16
+    libc.src.math.fmaximumf16
+    libc.src.math.fminf16
+    libc.src.math.fminimum_mag_numf16
+    libc.src.math.fminimum_magf16
+    libc.src.math.fminimum_numf16
+    libc.src.math.fminimumf16
+    libc.src.math.fmodf16
+    libc.src.math.frexpf16
+    libc.src.math.fromfpf16
+    libc.src.math.fromfpxf16
+    libc.src.math.getpayloadf16
+    libc.src.math.hypotf16
+    libc.src.math.ilogbf16
+    libc.src.math.iscanonicalf16
+    libc.src.math.isnanf16
+    libc.src.math.issignalingf16
+    libc.src.math.ldexpf16
+    libc.src.math.lgammaf16
+    libc.src.math.llogbf16
+    libc.src.math.llrintf16
+    libc.src.math.llroundf16
+    libc.src.math.log10f16
+    libc.src.math.log10p1f16
+    libc.src.math.log2f16
+    libc.src.math.log2p1f16
+    libc.src.math.logbf16
+    libc.src.math.logf16
+    libc.src.math.lrintf16
+    libc.src.math.lroundf16
+    libc.src.math.modff16
+    libc.src.math.nanf16
+    libc.src.math.nearbyintf16
+    libc.src.math.nextafterf16
+    libc.src.math.nextdownf16
+    libc.src.math.nexttowardf16
+    libc.src.math.nextupf16
+    libc.src.math.remainderf16
+    libc.src.math.remquof16
+    libc.src.math.rintf16
+    libc.src.math.roundevenf16
+    libc.src.math.roundf16
+    libc.src.math.scalblnf16
+    libc.src.math.scalbnf16
+    libc.src.math.setpayloadf16
+    libc.src.math.setpayloadsigf16
+    libc.src.math.sinf16
+    libc.src.math.sinhf16
+    libc.src.math.sinpif16
+    libc.src.math.sqrtf16
+    libc.src.math.tanf16
+    libc.src.math.tanhf16
+    libc.src.math.tanpif16
+    libc.src.math.totalorderf16
+    libc.src.math.totalordermagf16
+    libc.src.math.truncf16
+    libc.src.math.ufromfpf16
+    libc.src.math.ufromfpxf16
+  )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+  # bfloat16 entrypoints
+  libc.src.math.atanbf16
+  libc.src.math.acosbf16
+  libc.src.math.asinbf16
+  libc.src.math.bf16add
+  libc.src.math.bf16addf
+  libc.src.math.bf16addl
+  libc.src.math.bf16div
+  libc.src.math.bf16divf
+  libc.src.math.bf16divl
+  libc.src.math.bf16fma
+  libc.src.math.bf16fmaf
+  libc.src.math.bf16fmal
+  libc.src.math.bf16mul
+  libc.src.math.bf16mulf
+  libc.src.math.bf16mull
+  libc.src.math.bf16sub
+  libc.src.math.bf16subf
+  libc.src.math.bf16subl
+  libc.src.math.canonicalizebf16
+  libc.src.math.ceilbf16
+  libc.src.math.copysignbf16
+  libc.src.math.exp2bf16
+  libc.src.math.expbf16
+  libc.src.math.fabsbf16
+  libc.src.math.fdimbf16
+  libc.src.math.floorbf16
+  libc.src.math.fmaxbf16
+  libc.src.math.fmaximumbf16
+  libc.src.math.fmaximum_magbf16
+  libc.src.math.fmaximum_mag_numbf16
+  libc.src.math.fmaximum_numbf16
+  libc.src.math.fminbf16
+  libc.src.math.fminimumbf16
+  libc.src.math.fminimum_magbf16
+  libc.src.math.fminimum_mag_numbf16
+  libc.src.math.fminimum_numbf16
+  libc.src.math.fmodbf16
+  libc.src.math.frexpbf16
+  libc.src.math.fromfpbf16
+  libc.src.math.fromfpxbf16
+  libc.src.math.getpayloadbf16
+  libc.src.math.hypotbf16
+  libc.src.math.ilogbbf16
+  libc.src.math.iscanonicalbf16
+  libc.src.math.issignalingbf16
+  libc.src.math.ldexpbf16
+  libc.src.math.llogbbf16
+  libc.src.math.llrintbf16
+  libc.src.math.llroundbf16
+  libc.src.math.log_bf16
+  libc.src.math.logbbf16
+  libc.src.math.lrintbf16
+  libc.src.math.lroundbf16
+  libc.src.math.modfbf16
+  libc.src.math.nanbf16
+  libc.src.math.nearbyintbf16
+  libc.src.math.nextafterbf16
+  libc.src.math.nextdownbf16
+  libc.src.math.nexttowardbf16
+  libc.src.math.nextupbf16
+  libc.src.math.remainderbf16
+  libc.src.math.remquobf16
+  libc.src.math.rintbf16
+  libc.src.math.roundbf16
+  libc.src.math.roundevenbf16
+  libc.src.math.scalblnbf16
+  libc.src.math.scalbnbf16
+  libc.src.math.setpayloadbf16
+  libc.src.math.setpayloadsigbf16
+  libc.src.math.sqrtbf16
+  libc.src.math.tanbf16
+  libc.src.math.truncbf16
+  libc.src.math.totalorderbf16
+  libc.src.math.totalordermagbf16
+  libc.src.math.ufromfpbf16
+  libc.src.math.ufromfpxbf16
+)
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+  ${TARGET_LIBC_ENTRYPOINTS}
+  ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/gpu/nvptx/entrypoints.txt b/libc/config/gpu/nvptx/entrypoints.txt
index 79d0c733ec3c01..861e83f6c9089e 100644
--- a/libc/config/gpu/nvptx/entrypoints.txt
+++ b/libc/config/gpu/nvptx/entrypoints.txt
@@ -1,778 +1,780 @@
-set(TARGET_LIBC_ENTRYPOINTS
-    # assert.h entrypoints
-    libc.src.assert.__assert_fail
-
-    # ctype.h entrypoints
-    libc.src.ctype.isalnum
-    libc.src.ctype.isalnum_l
-    libc.src.ctype.isalpha
-    libc.src.ctype.isalpha_l
-    libc.src.ctype.isascii
-    libc.src.ctype.isblank
-    libc.src.ctype.isblank_l
-    libc.src.ctype.iscntrl
-    libc.src.ctype.iscntrl_l
-    libc.src.ctype.isdigit
-    libc.src.ctype.isdigit_l
-    libc.src.ctype.isgraph
-    libc.src.ctype.isgraph_l
-    libc.src.ctype.islower
-    libc.src.ctype.islower_l
-    libc.src.ctype.isprint
-    libc.src.ctype.isprint_l
-    libc.src.ctype.ispunct
-    libc.src.ctype.ispunct_l
-    libc.src.ctype.isspace
-    libc.src.ctype.isspace_l
-    libc.src.ctype.isupper
-    libc.src.ctype.isupper_l
-    libc.src.ctype.isxdigit
-    libc.src.ctype.isxdigit_l
-    libc.src.ctype.toascii
-    libc.src.ctype.tolower
-    libc.src.ctype.tolower_l
-    libc.src.ctype.toupper
-    libc.src.ctype.toupper_l
-
-    # string.h entrypoints
-    libc.src.string.memccpy
-    libc.src.string.memchr
-    libc.src.string.memcmp
-    libc.src.string.memcpy
-    libc.src.string.memmem
-    libc.src.string.memmove
-    libc.src.string.mempcpy
-    libc.src.string.memrchr
-    libc.src.string.memset
-    libc.src.string.stpcpy
-    libc.src.string.stpncpy
-    libc.src.string.strcasestr
-    libc.src.string.strcat
-    libc.src.string.strchr
-    libc.src.string.strchrnul
-    libc.src.string.strcmp
-    libc.src.string.strcoll
-    libc.src.string.strcoll_l
-    libc.src.string.strcpy
-    libc.src.string.strcspn
-    libc.src.string.strdup
-    libc.src.string.strerror
-    libc.src.string.strlcat
-    libc.src.string.strlcpy
-    libc.src.string.strlen
-    libc.src.string.strncat
-    libc.src.string.strncmp
-    libc.src.string.strncpy
-    libc.src.string.strndup
-    libc.src.string.strnlen
-    libc.src.string.strnlen_s
-    libc.src.string.strpbrk
-    libc.src.string.strrchr
-    libc.src.string.strsep
-    libc.src.string.strspn
-    libc.src.string.strstr
-    libc.src.string.strtok
-    libc.src.string.strtok_r
-    libc.src.string.strxfrm
-    libc.src.string.strxfrm_l
-
-    # strings.h entrypoints
-    libc.src.strings.bcmp
-    libc.src.strings.bcopy
-    libc.src.strings.bzero
-    libc.src.strings.index
-    libc.src.strings.rindex
-    libc.src.strings.strcasecmp
-    libc.src.strings.strncasecmp
-
-    # stdbit.h entrypoints
-    libc.src.stdbit.stdc_bit_ceil_uc
-    libc.src.stdbit.stdc_bit_ceil_ui
-    libc.src.stdbit.stdc_bit_ceil_ul
-    libc.src.stdbit.stdc_bit_ceil_ull
-    libc.src.stdbit.stdc_bit_ceil_us
-    libc.src.stdbit.stdc_bit_floor_uc
-    libc.src.stdbit.stdc_bit_floor_ui
-    libc.src.stdbit.stdc_bit_floor_ul
-    libc.src.stdbit.stdc_bit_floor_ull
-    libc.src.stdbit.stdc_bit_floor_us
-    libc.src.stdbit.stdc_bit_width_uc
-    libc.src.stdbit.stdc_bit_width_ui
-    libc.src.stdbit.stdc_bit_width_ul
-    libc.src.stdbit.stdc_bit_width_ull
-    libc.src.stdbit.stdc_bit_width_us
-    libc.src.stdbit.stdc_count_ones_uc
-    libc.src.stdbit.stdc_count_ones_ui
-    libc.src.stdbit.stdc_count_ones_ul
-    libc.src.stdbit.stdc_count_ones_ull
-    libc.src.stdbit.stdc_count_ones_us
-    libc.src.stdbit.stdc_count_zeros_uc
-    libc.src.stdbit.stdc_count_zeros_ui
-    libc.src.stdbit.stdc_count_zeros_ul
-    libc.src.stdbit.stdc_count_zeros_ull
-    libc.src.stdbit.stdc_count_zeros_us
-    libc.src.stdbit.stdc_first_leading_one_uc
-    libc.src.stdbit.stdc_first_leading_one_ui
-    libc.src.stdbit.stdc_first_leading_one_ul
-    libc.src.stdbit.stdc_first_leading_one_ull
-    libc.src.stdbit.stdc_first_leading_one_us
-    libc.src.stdbit.stdc_first_leading_zero_uc
-    libc.src.stdbit.stdc_first_leading_zero_ui
-    libc.src.stdbit.stdc_first_leading_zero_ul
-    libc.src.stdbit.stdc_first_leading_zero_ull
-    libc.src.stdbit.stdc_first_leading_zero_us
-    libc.src.stdbit.stdc_first_trailing_one_uc
-    libc.src.stdbit.stdc_first_trailing_one_ui
-    libc.src.stdbit.stdc_first_trailing_one_ul
-    libc.src.stdbit.stdc_first_trailing_one_ull
-    libc.src.stdbit.stdc_first_trailing_one_us
-    libc.src.stdbit.stdc_first_trailing_zero_uc
-    libc.src.stdbit.stdc_first_trailing_zero_ui
-    libc.src.stdbit.stdc_first_trailing_zero_ul
-    libc.src.stdbit.stdc_first_trailing_zero_ull
-    libc.src.stdbit.stdc_first_trailing_zero_us
-    libc.src.stdbit.stdc_has_single_bit_uc
-    libc.src.stdbit.stdc_has_single_bit_ui
-    libc.src.stdbit.stdc_has_single_bit_ul
-    libc.src.stdbit.stdc_has_single_bit_ull
-    libc.src.stdbit.stdc_has_single_bit_us
-    libc.src.stdbit.stdc_leading_ones_uc
-    libc.src.stdbit.stdc_leading_ones_ui
-    libc.src.stdbit.stdc_leading_ones_ul
-    libc.src.stdbit.stdc_leading_ones_ull
-    libc.src.stdbit.stdc_leading_ones_us
-    libc.src.stdbit.stdc_leading_zeros_uc
-    libc.src.stdbit.stdc_leading_zeros_ui
-    libc.src.stdbit.stdc_leading_zeros_ul
-    libc.src.stdbit.stdc_leading_zeros_ull
-    libc.src.stdbit.stdc_leading_zeros_us
-    libc.src.stdbit.stdc_trailing_ones_uc
-    libc.src.stdbit.stdc_trailing_ones_ui
-    libc.src.stdbit.stdc_trailing_ones_ul
-    libc.src.stdbit.stdc_trailing_ones_ull
-    libc.src.stdbit.stdc_trailing_ones_us
-    libc.src.stdbit.stdc_trailing_zeros_uc
-    libc.src.stdbit.stdc_trailing_zeros_ui
-    libc.src.stdbit.stdc_trailing_zeros_ul
-    libc.src.stdbit.stdc_trailing_zeros_ull
-    libc.src.stdbit.stdc_trailing_zeros_us
-
-    # stdlib.h entrypoints
-    libc.src.stdlib._Exit
-    libc.src.stdlib.abort
-    libc.src.stdlib.abs
-    libc.src.stdlib.atexit
-    libc.src.stdlib.atof
-    libc.src.stdlib.atoi
-    libc.src.stdlib.atol
-    libc.src.stdlib.atoll
-    libc.src.stdlib.bsearch
-    libc.src.stdlib.div
-    libc.src.stdlib.exit
-    libc.src.stdlib.labs
-    libc.src.stdlib.ldiv
-    libc.src.stdlib.llabs
-    libc.src.stdlib.lldiv
-    libc.src.stdlib.memalignment
-    libc.src.stdlib.qsort
-    libc.src.stdlib.qsort_r
-    libc.src.stdlib.rand
-    libc.src.stdlib.srand
-    libc.src.stdlib.strtod
-    libc.src.stdlib.strtod_l
-    libc.src.stdlib.strtof
-    libc.src.stdlib.strtof_l
-    libc.src.stdlib.strtol
-    libc.src.stdlib.strtol_l
-    libc.src.stdlib.strtold
-    libc.src.stdlib.strtold_l
-    libc.src.stdlib.strtoll
-    libc.src.stdlib.strtoll_l
-    libc.src.stdlib.strtoul
-    libc.src.stdlib.strtoul_l
-    libc.src.stdlib.strtoull
-    libc.src.stdlib.strtoull_l
-    libc.src.stdlib.at_quick_exit
-    libc.src.stdlib.quick_exit
-    libc.src.stdlib.getenv
-    libc.src.stdlib.system
-
-    # TODO: Implement these correctly
-    libc.src.stdlib.aligned_alloc
-    libc.src.stdlib.calloc
-    libc.src.stdlib.free
-    libc.src.stdlib.malloc
-    libc.src.stdlib.realloc
-
-    # errno.h entrypoints
-    libc.src.errno.errno
-
-    # stdio.h entrypoints
-    libc.src.stdio.clearerr
-    libc.src.stdio.fclose
-    libc.src.stdio.printf
-    libc.src.stdio.vprintf
-    libc.src.stdio.fprintf
-    libc.src.stdio.vfprintf
-    libc.src.stdio.snprintf
-    libc.src.stdio.sprintf
-    libc.src.stdio.vsnprintf
-    libc.src.stdio.vsprintf
-    libc.src.stdio.asprintf
-    libc.src.stdio.vasprintf
-    libc.src.stdio.scanf
-    libc.src.stdio.vscanf
-    libc.src.stdio.fscanf
-    libc.src.stdio.vfscanf
-    libc.src.stdio.sscanf
-    libc.src.stdio.vsscanf
-    libc.src.stdio.feof
-    libc.src.stdio.ferror
-    libc.src.stdio.fflush
-    libc.src.stdio.fgetc
-    libc.src.stdio.fgets
-    libc.src.stdio.fopen
-    libc.src.stdio.fputc
-    libc.src.stdio.fputs
-    libc.src.stdio.fread
-    libc.src.stdio.fseek
-    libc.src.stdio.ftell
-    libc.src.stdio.fwrite
-    libc.src.stdio.getc
-    libc.src.stdio.getchar
-    libc.src.stdio.putc
-    libc.src.stdio.putchar
-    libc.src.stdio.puts
-    libc.src.stdio.remove
-    libc.src.stdio.rename
-    libc.src.stdio.stderr
-    libc.src.stdio.stdin
-    libc.src.stdio.stdout
-    libc.src.stdio.ungetc
-
-    # inttypes.h entrypoints
-    libc.src.inttypes.imaxabs
-    libc.src.inttypes.imaxdiv
-    libc.src.inttypes.strtoimax
-    libc.src.inttypes.strtoumax
-
-    # time.h entrypoints
-    libc.src.time.clock
-    libc.src.time.clock_gettime
-    libc.src.time.timespec_get
-    libc.src.time.nanosleep
-    libc.src.time.strftime
-    libc.src.time.strftime_l
-    libc.src.time.mktime
-
-    # wchar.h entrypoints
-    libc.src.wchar.wcslen
-    libc.src.wchar.wctob
-
-    # locale.h entrypoints
-    libc.src.locale.localeconv
-    libc.src.locale.duplocale
-    libc.src.locale.freelocale
-    libc.src.locale.localeconv
-    libc.src.locale.newlocale
-    libc.src.locale.setlocale
-    libc.src.locale.uselocale
-)
-
-set(TARGET_LIBM_ENTRYPOINTS
-    # complex.h entrypoints
-    libc.src.complex.creal
-    libc.src.complex.crealf
-    libc.src.complex.creall
-    libc.src.complex.cimag
-    libc.src.complex.cimagf
-    libc.src.complex.cimagl
-    libc.src.complex.conj
-    libc.src.complex.conjf
-    libc.src.complex.conjl
-    libc.src.complex.cproj
-    libc.src.complex.cprojf
-    libc.src.complex.cprojl
-
-    # math.h entrypoints
-    libc.src.math.acos
-    libc.src.math.acosf
-    libc.src.math.acoshf
-    libc.src.math.acospif
-    libc.src.math.asin
-    libc.src.math.asinf
-    libc.src.math.asinhf
-    libc.src.math.asinpi
-    libc.src.math.asinpif
-    libc.src.math.atan
-    libc.src.math.atan2
-    libc.src.math.atan2f
-    libc.src.math.atan2f128
-    libc.src.math.atan2l
-    libc.src.math.atanf
-    libc.src.math.atanhf
-    libc.src.math.canonicalize
-    libc.src.math.canonicalizef
-    libc.src.math.canonicalizel
-    libc.src.math.cbrt
-    libc.src.math.cbrtf
-    libc.src.math.cbrtbf16
-    libc.src.math.ceil
-    libc.src.math.ceilf
-    libc.src.math.ceilf128
-    libc.src.math.ceill
-    libc.src.math.copysign
-    libc.src.math.copysignf
-    libc.src.math.copysignf128
-    libc.src.math.copysignl
-    libc.src.math.cos
-    libc.src.math.cosf
-    libc.src.math.coshf
-    libc.src.math.cospif
-    libc.src.math.ddivl
-    libc.src.math.dfmal
-    libc.src.math.dmull
-    libc.src.math.dsqrtl
-    libc.src.math.erff
-    libc.src.math.exp
-    libc.src.math.exp10
-    libc.src.math.exp10f
-    libc.src.math.exp2
-    libc.src.math.exp2f
-    libc.src.math.exp2m1f
-    libc.src.math.expf
-    libc.src.math.expm1
-    libc.src.math.expm1f
-    libc.src.math.fabs
-    libc.src.math.fabsf
-    libc.src.math.fabsf128
-    libc.src.math.fabsl
-    libc.src.math.fadd
-    libc.src.math.faddl
-    libc.src.math.fdim
-    libc.src.math.fdimf
-    libc.src.math.fdimf128
-    libc.src.math.fdiml
-    libc.src.math.fdiv
-    libc.src.math.fdivl
-    libc.src.math.ffma
-    libc.src.math.ffmal
-    libc.src.math.floor
-    libc.src.math.floorf
-    libc.src.math.floorf128
-    libc.src.math.floorl
-    libc.src.math.fma
-    libc.src.math.fmabf16
-    libc.src.math.fmaf
-    libc.src.math.fmax
-    libc.src.math.fmaxf
-    libc.src.math.fmaxf128
-    libc.src.math.fmaximum
-    libc.src.math.fmaximum_mag_numf128
-    libc.src.math.fmaximum_magf128
-    libc.src.math.fmaximumf
-    libc.src.math.fmaximumf128
-    libc.src.math.fmaximuml
-    libc.src.math.fmaximum_mag
-    libc.src.math.fmaximum_magf
-    libc.src.math.fmaximum_magl
-    libc.src.math.fmaximum_mag_num
-    libc.src.math.fmaximum_mag_numf
-    libc.src.math.fmaximum_mag_numl
-    libc.src.math.fmaximum_num
-    libc.src.math.fmaximum_numf
-    libc.src.math.fmaximum_numf128
-    libc.src.math.fmaximum_numl
-    libc.src.math.fmaxl
-    libc.src.math.fmin
-    libc.src.math.fminf
-    libc.src.math.fminf128
-    libc.src.math.fminimum
-    libc.src.math.fminimum_mag_numf128
-    libc.src.math.fminimum_magf128
-    libc.src.math.fminimumf
-    libc.src.math.fminimumf128
-    libc.src.math.fminimuml
-    libc.src.math.fminimum_mag
-    libc.src.math.fminimum_magf
-    libc.src.math.fminimum_magl
-    libc.src.math.fminimum_mag_num
-    libc.src.math.fminimum_mag_numf
-    libc.src.math.fminimum_mag_numl
-    libc.src.math.fminimum_num
-    libc.src.math.fminimum_numf
-    libc.src.math.fminimum_numf128
-    libc.src.math.fminimum_numl
-    libc.src.math.fminl
-    libc.src.math.fmod
-    libc.src.math.fmodf
-    libc.src.math.fmodl
-    libc.src.math.fmul
-    libc.src.math.fmull
-    libc.src.math.frexp
-    libc.src.math.frexpf
-    libc.src.math.frexpl
-    # FIXME: Broken.
-    # libc.src.math.fromfp
-    # libc.src.math.fromfpf
-    # libc.src.math.fromfpl
-    # libc.src.math.fromfpx
-    # libc.src.math.fromfpxf
-    # libc.src.math.fromfpxl
-    libc.src.math.fsqrt
-    libc.src.math.fsqrtl
-    libc.src.math.fsub
-    libc.src.math.fsubl
-    libc.src.math.getpayload
-    libc.src.math.getpayloadf
-    libc.src.math.getpayloadl
-    libc.src.math.hypot
-    libc.src.math.hypotf
-    libc.src.math.ilogb
-    libc.src.math.ilogbf
-    libc.src.math.ilogbl
-    libc.src.math.iscanonicalf128
-    libc.src.math.isnan
-    libc.src.math.isnanf
-    libc.src.math.isnanf128
-    libc.src.math.isnanl
-    libc.src.math.issignalingf128
-    libc.src.math.ldexp
-    libc.src.math.ldexpf
-    libc.src.math.ldexpl
-    libc.src.math.lgamma
-    libc.src.math.lgamma_r
-    libc.src.math.lgammaf
-    libc.src.math.llogb
-    libc.src.math.llogbf
-    libc.src.math.llogbl
-    libc.src.math.llrint
-    libc.src.math.llrintf
-    libc.src.math.llrintf128
-    libc.src.math.llrintl
-    libc.src.math.llround
-    libc.src.math.llroundf
-    libc.src.math.llroundf128
-    libc.src.math.llroundl
-    libc.src.math.log
-    libc.src.math.log10
-    libc.src.math.log10f
-    libc.src.math.log1p
-    libc.src.math.log1pf
-    libc.src.math.log2
-    libc.src.math.log2f
-    libc.src.math.logb
-    libc.src.math.logbf
-    libc.src.math.logbl
-    libc.src.math.logf
-    libc.src.math.lrint
-    libc.src.math.lrintf
-    libc.src.math.lrintf128
-    libc.src.math.lrintl
-    libc.src.math.lround
-    libc.src.math.lroundf
-    libc.src.math.lroundf128
-    libc.src.math.lroundl
-    libc.src.math.modf
-    libc.src.math.modff
-    libc.src.math.modfl
-    libc.src.math.nan
-    libc.src.math.nanf
-    libc.src.math.nanl
-    libc.src.math.nearbyint
-    libc.src.math.nearbyintf
-    libc.src.math.nearbyintf128
-    libc.src.math.nearbyintl
-    libc.src.math.nextafter
-    libc.src.math.nextafterf
-    libc.src.math.nextafterl
-    libc.src.math.nextdown
-    libc.src.math.nextdownf
-    libc.src.math.nextdownl
-    libc.src.math.nexttoward
-    libc.src.math.nexttowardf
-    libc.src.math.nexttowardl
-    libc.src.math.nextup
-    libc.src.math.nextupf
-    libc.src.math.nextupl
-    libc.src.math.pow
-    libc.src.math.powf
-    libc.src.math.remainder
-    libc.src.math.remainderf
-    libc.src.math.remainderl
-    libc.src.math.remquo
-    libc.src.math.remquof
-    libc.src.math.remquol
-    libc.src.math.rint
-    libc.src.math.rintf
-    libc.src.math.rintf128
-    libc.src.math.rintl
-    libc.src.math.roundeven
-    libc.src.math.roundevenf
-    libc.src.math.roundevenf128
-    libc.src.math.roundevenl
-    libc.src.math.round
-    libc.src.math.roundf
-    libc.src.math.roundf128
-    libc.src.math.roundl
-    libc.src.math.scalbln
-    libc.src.math.scalblnf
-    libc.src.math.scalblnl
-    libc.src.math.scalbn
-    libc.src.math.scalbnf
-    libc.src.math.scalbnl
-    libc.src.math.setpayload
-    libc.src.math.setpayloadf
-    libc.src.math.setpayloadl
-    libc.src.math.setpayloadsig
-    libc.src.math.setpayloadsigf
-    libc.src.math.setpayloadsigl
-    libc.src.math.sin
-    libc.src.math.sincos
-    libc.src.math.sincosf
-    libc.src.math.sinf
-    libc.src.math.sinhf
-    libc.src.math.sinpif
-    libc.src.math.sqrt
-    libc.src.math.sqrtf
-    libc.src.math.sqrtf128
-    libc.src.math.sqrtl
-    libc.src.math.tan
-    libc.src.math.tanf
-    libc.src.math.tanhf
-    libc.src.math.tanpif
-    libc.src.math.tgamma
-    libc.src.math.tgammaf
-    libc.src.math.totalorder
-    libc.src.math.totalorderf
-    libc.src.math.totalorderl
-    libc.src.math.totalordermag
-    libc.src.math.totalordermagf
-    libc.src.math.totalordermagl
-    libc.src.math.trunc
-    libc.src.math.truncf
-    libc.src.math.truncf128
-    libc.src.math.truncl
-    # FIXME: Broken.
-    # libc.src.math.ufromfp
-    # libc.src.math.ufromfpf
-    # libc.src.math.ufromfpl
-    # libc.src.math.ufromfpx
-    # libc.src.math.ufromfpxf
-    # libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_FLOAT16)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C23 _Float16 entrypoints
-    libc.src.math.acosf16
-    libc.src.math.acoshf16
-    libc.src.math.acospif16
-    libc.src.math.asinf16
-    libc.src.math.asinhf16
-    libc.src.math.atanf16
-    libc.src.math.atan2f16
-    libc.src.math.atanhf16
-    libc.src.math.canonicalizef16
-    libc.src.math.cbrtf16
-    libc.src.math.ceilf16
-    libc.src.math.copysignf16
-    libc.src.math.cosf16
-    libc.src.math.coshf16
-    libc.src.math.cospif16
-    libc.src.math.erff16
-    libc.src.math.erfcf16
-    libc.src.math.exp10f16
-    libc.src.math.exp10m1f16
-    libc.src.math.exp2f16
-    libc.src.math.exp2m1f16
-    libc.src.math.expf16
-    libc.src.math.expm1f16
-    libc.src.math.f16add
-    libc.src.math.f16addf
-    libc.src.math.f16addl
-    libc.src.math.f16div
-    libc.src.math.f16divf
-    libc.src.math.f16divl
-    libc.src.math.f16fma
-    libc.src.math.f16fmaf
-    libc.src.math.f16fmal
-    libc.src.math.f16mul
-    libc.src.math.f16mulf
-    libc.src.math.f16mull
-    libc.src.math.f16sqrt
-    libc.src.math.f16sqrtf
-    libc.src.math.f16sqrtl
-    libc.src.math.f16sub
-    libc.src.math.f16subf
-    libc.src.math.f16subl
-    libc.src.math.fabsf16
-    libc.src.math.fdimf16
-    libc.src.math.floorf16
-    libc.src.math.fmaf16
-    libc.src.math.fmaxf16
-    libc.src.math.fmaximum_mag_numf16
-    libc.src.math.fmaximum_magf16
-    libc.src.math.fmaximum_numf16
-    libc.src.math.fmaximumf16
-    libc.src.math.fminf16
-    libc.src.math.fminimum_mag_numf16
-    libc.src.math.fminimum_magf16
-    libc.src.math.fminimum_numf16
-    libc.src.math.fminimumf16
-    libc.src.math.fmodf16
-    libc.src.math.frexpf16
-    libc.src.math.fromfpf16
-    libc.src.math.fromfpxf16
-    libc.src.math.getpayloadf16
-    libc.src.math.hypotf16
-    libc.src.math.ilogbf16
-    libc.src.math.iscanonicalf16
-    libc.src.math.isnanf16
-    libc.src.math.issignalingf16
-    libc.src.math.ldexpf16
-    libc.src.math.lgammaf16
-    libc.src.math.llogbf16
-    libc.src.math.llrintf16
-    libc.src.math.llroundf16
-    libc.src.math.log10f16
-    libc.src.math.log10p1f16
-    libc.src.math.log2f16
-    libc.src.math.log2p1f16
-    libc.src.math.logbf16
-    libc.src.math.logf16
-    libc.src.math.lrintf16
-    libc.src.math.lroundf16
-    libc.src.math.modff16
-    libc.src.math.nanf16
-    libc.src.math.nearbyintf16
-    libc.src.math.nextafterf16
-    libc.src.math.nextdownf16
-    libc.src.math.nexttowardf16
-    libc.src.math.nextupf16
-    libc.src.math.remainderf16
-    libc.src.math.remquof16
-    libc.src.math.rintf16
-    libc.src.math.roundevenf16
-    libc.src.math.roundf16
-    libc.src.math.scalblnf16
-    libc.src.math.scalbnf16
-    libc.src.math.setpayloadf16
-    libc.src.math.setpayloadsigf16
-    libc.src.math.sinf16
-    libc.src.math.sinhf16
-    libc.src.math.sinpif16
-    libc.src.math.sqrtf16
-    libc.src.math.tanf16
-    libc.src.math.tanhf16
-    libc.src.math.tanpif16
-    libc.src.math.totalorderf16
-    libc.src.math.totalordermagf16
-    libc.src.math.truncf16
-    libc.src.math.ufromfpf16
-    libc.src.math.ufromfpxf16
-  )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
-  # complex.h entrypoints
-  libc.src.complex.cabs
-  libc.src.complex.cabsf
-  libc.src.complex.carg
-  libc.src.complex.cargf
-  libc.src.complex.creal
-  libc.src.complex.crealf
-  libc.src.complex.creall
-  libc.src.complex.cimag
-  libc.src.complex.cimagf
-  libc.src.complex.cimagl
-  libc.src.complex.conj
-  libc.src.complex.conjf
-  libc.src.complex.conjl
-  libc.src.complex.cproj
-  libc.src.complex.cprojf
-  libc.src.complex.cprojl
-
-  # bfloat16 entrypoints
-  libc.src.math.atanbf16
-  libc.src.math.acosbf16
-  libc.src.math.asinbf16
-  libc.src.math.bf16add
-  libc.src.math.bf16addf
-  libc.src.math.bf16addl
-  libc.src.math.bf16div
-  libc.src.math.bf16divf
-  libc.src.math.bf16divl
-  libc.src.math.bf16fma
-  libc.src.math.bf16fmaf
-  libc.src.math.bf16fmal
-  libc.src.math.bf16mul
-  libc.src.math.bf16mulf
-  libc.src.math.bf16mull
-  libc.src.math.bf16sub
-  libc.src.math.bf16subf
-  libc.src.math.bf16subl
-  libc.src.math.canonicalizebf16
-  libc.src.math.ceilbf16
-  libc.src.math.copysignbf16
-  libc.src.math.exp2bf16
-  libc.src.math.expbf16
-  libc.src.math.fabsbf16
-  libc.src.math.fdimbf16
-  libc.src.math.floorbf16
-  libc.src.math.fmaxbf16
-  libc.src.math.fmaximumbf16
-  libc.src.math.fmaximum_magbf16
-  libc.src.math.fmaximum_mag_numbf16
-  libc.src.math.fmaximum_numbf16
-  libc.src.math.fminbf16
-  libc.src.math.fminimumbf16
-  libc.src.math.fminimum_magbf16
-  libc.src.math.fminimum_mag_numbf16
-  libc.src.math.fminimum_numbf16
-  libc.src.math.fmodbf16
-  libc.src.math.frexpbf16
-  libc.src.math.fromfpbf16
-  libc.src.math.fromfpxbf16
-  libc.src.math.getpayloadbf16
-  libc.src.math.hypotbf16
-  libc.src.math.ilogbbf16
-  libc.src.math.iscanonicalbf16
-  libc.src.math.issignalingbf16
-  libc.src.math.ldexpbf16
-  libc.src.math.llogbbf16
-  libc.src.math.llrintbf16
-  libc.src.math.llroundbf16
-  libc.src.math.log_bf16
-  libc.src.math.logbbf16
-  libc.src.math.lrintbf16
-  libc.src.math.lroundbf16
-  libc.src.math.modfbf16
-  libc.src.math.nanbf16
-  libc.src.math.nearbyintbf16
-  libc.src.math.nextafterbf16
-  libc.src.math.nextdownbf16
-  libc.src.math.nexttowardbf16
-  libc.src.math.nextupbf16
-  libc.src.math.remainderbf16
-  libc.src.math.remquobf16
-  libc.src.math.rintbf16
-  libc.src.math.roundbf16
-  libc.src.math.roundevenbf16
-  libc.src.math.scalblnbf16
-  libc.src.math.scalbnbf16
-  libc.src.math.setpayloadbf16
-  libc.src.math.setpayloadsigbf16
-  libc.src.math.sqrtbf16
-  libc.src.math.tanbf16
-  libc.src.math.truncbf16
-  libc.src.math.totalorderbf16
-  libc.src.math.totalordermagbf16
-  libc.src.math.ufromfpbf16
-  libc.src.math.ufromfpxbf16
-)
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
-  ${TARGET_LIBC_ENTRYPOINTS}
-  ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+    # assert.h entrypoints
+    libc.src.assert.__assert_fail
+
+    # ctype.h entrypoints
+    libc.src.ctype.isalnum
+    libc.src.ctype.isalnum_l
+    libc.src.ctype.isalpha
+    libc.src.ctype.isalpha_l
+    libc.src.ctype.isascii
+    libc.src.ctype.isblank
+    libc.src.ctype.isblank_l
+    libc.src.ctype.iscntrl
+    libc.src.ctype.iscntrl_l
+    libc.src.ctype.isdigit
+    libc.src.ctype.isdigit_l
+    libc.src.ctype.isgraph
+    libc.src.ctype.isgraph_l
+    libc.src.ctype.islower
+    libc.src.ctype.islower_l
+    libc.src.ctype.isprint
+    libc.src.ctype.isprint_l
+    libc.src.ctype.ispunct
+    libc.src.ctype.ispunct_l
+    libc.src.ctype.isspace
+    libc.src.ctype.isspace_l
+    libc.src.ctype.isupper
+    libc.src.ctype.isupper_l
+    libc.src.ctype.isxdigit
+    libc.src.ctype.isxdigit_l
+    libc.src.ctype.toascii
+    libc.src.ctype.tolower
+    libc.src.ctype.tolower_l
+    libc.src.ctype.toupper
+    libc.src.ctype.toupper_l
+
+    # string.h entrypoints
+    libc.src.string.memccpy
+    libc.src.string.memchr
+    libc.src.string.memcmp
+    libc.src.string.memcpy
+    libc.src.string.memmem
+    libc.src.string.memmove
+    libc.src.string.mempcpy
+    libc.src.string.memrchr
+    libc.src.string.memset
+    libc.src.string.stpcpy
+    libc.src.string.stpncpy
+    libc.src.string.strcasestr
+    libc.src.string.strcat
+    libc.src.string.strchr
+    libc.src.string.strchrnul
+    libc.src.string.strcmp
+    libc.src.string.strcoll
+    libc.src.string.strcoll_l
+    libc.src.string.strcpy
+    libc.src.string.strcspn
+    libc.src.string.strdup
+    libc.src.string.strerror
+    libc.src.string.strlcat
+    libc.src.string.strlcpy
+    libc.src.string.strlen
+    libc.src.string.strncat
+    libc.src.string.strncmp
+    libc.src.string.strncpy
+    libc.src.string.strndup
+    libc.src.string.strnlen
+    libc.src.string.strnlen_s
+    libc.src.string.strpbrk
+    libc.src.string.strrchr
+    libc.src.string.strsep
+    libc.src.string.strspn
+    libc.src.string.strstr
+    libc.src.string.strtok
+    libc.src.string.strtok_r
+    libc.src.string.strxfrm
+    libc.src.string.strxfrm_l
+
+    # strings.h entrypoints
+    libc.src.strings.bcmp
+    libc.src.strings.bcopy
+    libc.src.strings.bzero
+    libc.src.strings.index
+    libc.src.strings.rindex
+    libc.src.strings.strcasecmp
+    libc.src.strings.strncasecmp
+
+    # stdbit.h entrypoints
+    libc.src.stdbit.stdc_bit_ceil_uc
+    libc.src.stdbit.stdc_bit_ceil_ui
+    libc.src.stdbit.stdc_bit_ceil_ul
+    libc.src.stdbit.stdc_bit_ceil_ull
+    libc.src.stdbit.stdc_bit_ceil_us
+    libc.src.stdbit.stdc_bit_floor_uc
+    libc.src.stdbit.stdc_bit_floor_ui
+    libc.src.stdbit.stdc_bit_floor_ul
+    libc.src.stdbit.stdc_bit_floor_ull
+    libc.src.stdbit.stdc_bit_floor_us
+    libc.src.stdbit.stdc_bit_width_uc
+    libc.src.stdbit.stdc_bit_width_ui
+    libc.src.stdbit.stdc_bit_width_ul
+    libc.src.stdbit.stdc_bit_width_ull
+    libc.src.stdbit.stdc_bit_width_us
+    libc.src.stdbit.stdc_count_ones_uc
+    libc.src.stdbit.stdc_count_ones_ui
+    libc.src.stdbit.stdc_count_ones_ul
+    libc.src.stdbit.stdc_count_ones_ull
+    libc.src.stdbit.stdc_count_ones_us
+    libc.src.stdbit.stdc_count_zeros_uc
+    libc.src.stdbit.stdc_count_zeros_ui
+    libc.src.stdbit.stdc_count_zeros_ul
+    libc.src.stdbit.stdc_count_zeros_ull
+    libc.src.stdbit.stdc_count_zeros_us
+    libc.src.stdbit.stdc_first_leading_one_uc
+    libc.src.stdbit.stdc_first_leading_one_ui
+    libc.src.stdbit.stdc_first_leading_one_ul
+    libc.src.stdbit.stdc_first_leading_one_ull
+    libc.src.stdbit.stdc_first_leading_one_us
+    libc.src.stdbit.stdc_first_leading_zero_uc
+    libc.src.stdbit.stdc_first_leading_zero_ui
+    libc.src.stdbit.stdc_first_leading_zero_ul
+    libc.src.stdbit.stdc_first_leading_zero_ull
+    libc.src.stdbit.stdc_first_leading_zero_us
+    libc.src.stdbit.stdc_first_trailing_one_uc
+    libc.src.stdbit.stdc_first_trailing_one_ui
+    libc.src.stdbit.stdc_first_trailing_one_ul
+    libc.src.stdbit.stdc_first_trailing_one_ull
+    libc.src.stdbit.stdc_first_trailing_one_us
+    libc.src.stdbit.stdc_first_trailing_zero_uc
+    libc.src.stdbit.stdc_first_trailing_zero_ui
+    libc.src.stdbit.stdc_first_trailing_zero_ul
+    libc.src.stdbit.stdc_first_trailing_zero_ull
+    libc.src.stdbit.stdc_first_trailing_zero_us
+    libc.src.stdbit.stdc_has_single_bit_uc
+    libc.src.stdbit.stdc_has_single_bit_ui
+    libc.src.stdbit.stdc_has_single_bit_ul
+    libc.src.stdbit.stdc_has_single_bit_ull
+    libc.src.stdbit.stdc_has_single_bit_us
+    libc.src.stdbit.stdc_leading_ones_uc
+    libc.src.stdbit.stdc_leading_ones_ui
+    libc.src.stdbit.stdc_leading_ones_ul
+    libc.src.stdbit.stdc_leading_ones_ull
+    libc.src.stdbit.stdc_leading_ones_us
+    libc.src.stdbit.stdc_leading_zeros_uc
+    libc.src.stdbit.stdc_leading_zeros_ui
+    libc.src.stdbit.stdc_leading_zeros_ul
+    libc.src.stdbit.stdc_leading_zeros_ull
+    libc.src.stdbit.stdc_leading_zeros_us
+    libc.src.stdbit.stdc_trailing_ones_uc
+    libc.src.stdbit.stdc_trailing_ones_ui
+    libc.src.stdbit.stdc_trailing_ones_ul
+    libc.src.stdbit.stdc_trailing_ones_ull
+    libc.src.stdbit.stdc_trailing_ones_us
+    libc.src.stdbit.stdc_trailing_zeros_uc
+    libc.src.stdbit.stdc_trailing_zeros_ui
+    libc.src.stdbit.stdc_trailing_zeros_ul
+    libc.src.stdbit.stdc_trailing_zeros_ull
+    libc.src.stdbit.stdc_trailing_zeros_us
+
+    # stdlib.h entrypoints
+    libc.src.stdlib._Exit
+    libc.src.stdlib.abort
+    libc.src.stdlib.abs
+    libc.src.stdlib.atexit
+    libc.src.stdlib.atof
+    libc.src.stdlib.atoi
+    libc.src.stdlib.atol
+    libc.src.stdlib.atoll
+    libc.src.stdlib.bsearch
+    libc.src.stdlib.div
+    libc.src.stdlib.exit
+    libc.src.stdlib.labs
+    libc.src.stdlib.ldiv
+    libc.src.stdlib.llabs
+    libc.src.stdlib.lldiv
+    libc.src.stdlib.memalignment
+    libc.src.stdlib.qsort
+    libc.src.stdlib.qsort_r
+    libc.src.stdlib.rand
+    libc.src.stdlib.srand
+    libc.src.stdlib.strtod
+    libc.src.stdlib.strtod_l
+    libc.src.stdlib.strtof
+    libc.src.stdlib.strtof_l
+    libc.src.stdlib.strtol
+    libc.src.stdlib.strtol_l
+    libc.src.stdlib.strtold
+    libc.src.stdlib.strtold_l
+    libc.src.stdlib.strtoll
+    libc.src.stdlib.strtoll_l
+    libc.src.stdlib.strtoul
+    libc.src.stdlib.strtoul_l
+    libc.src.stdlib.strtoull
+    libc.src.stdlib.strtoull_l
+    libc.src.stdlib.at_quick_exit
+    libc.src.stdlib.quick_exit
+    libc.src.stdlib.getenv
+    libc.src.stdlib.system
+
+    # TODO: Implement these correctly
+    libc.src.stdlib.aligned_alloc
+    libc.src.stdlib.calloc
+    libc.src.stdlib.free
+    libc.src.stdlib.malloc
+    libc.src.stdlib.realloc
+
+    # errno.h entrypoints
+    libc.src.errno.errno
+
+    # stdio.h entrypoints
+    libc.src.stdio.clearerr
+    libc.src.stdio.fclose
+    libc.src.stdio.printf
+    libc.src.stdio.vprintf
+    libc.src.stdio.fprintf
+    libc.src.stdio.vfprintf
+    libc.src.stdio.snprintf
+    libc.src.stdio.sprintf
+    libc.src.stdio.vsnprintf
+    libc.src.stdio.vsprintf
+    libc.src.stdio.asprintf
+    libc.src.stdio.vasprintf
+    libc.src.stdio.scanf
+    libc.src.stdio.vscanf
+    libc.src.stdio.fscanf
+    libc.src.stdio.vfscanf
+    libc.src.stdio.sscanf
+    libc.src.stdio.vsscanf
+    libc.src.stdio.feof
+    libc.src.stdio.ferror
+    libc.src.stdio.fflush
+    libc.src.stdio.fgetc
+    libc.src.stdio.fgets
+    libc.src.stdio.fopen
+    libc.src.stdio.fputc
+    libc.src.stdio.fputs
+    libc.src.stdio.fread
+    libc.src.stdio.fseek
+    libc.src.stdio.ftell
+    libc.src.stdio.fwrite
+    libc.src.stdio.getc
+    libc.src.stdio.getchar
+    libc.src.stdio.putc
+    libc.src.stdio.putchar
+    libc.src.stdio.puts
+    libc.src.stdio.remove
+    libc.src.stdio.rename
+    libc.src.stdio.stderr
+    libc.src.stdio.stdin
+    libc.src.stdio.stdout
+    libc.src.stdio.ungetc
+
+    # inttypes.h entrypoints
+    libc.src.inttypes.imaxabs
+    libc.src.inttypes.imaxdiv
+    libc.src.inttypes.strtoimax
+    libc.src.inttypes.strtoumax
+
+    # time.h entrypoints
+    libc.src.time.clock
+    libc.src.time.clock_gettime
+    libc.src.time.timespec_get
+    libc.src.time.nanosleep
+    libc.src.time.strftime
+    libc.src.time.strftime_l
+    libc.src.time.mktime
+
+    # wchar.h entrypoints
+    libc.src.wchar.wcslen
+    libc.src.wchar.wctob
+
+    # locale.h entrypoints
+    libc.src.locale.localeconv
+    libc.src.locale.duplocale
+    libc.src.locale.freelocale
+    libc.src.locale.localeconv
+    libc.src.locale.newlocale
+    libc.src.locale.setlocale
+    libc.src.locale.uselocale
+)
+
+set(TARGET_LIBM_ENTRYPOINTS
+    # complex.h entrypoints
+    libc.src.complex.creal
+    libc.src.complex.crealf
+    libc.src.complex.creall
+    libc.src.complex.cimag
+    libc.src.complex.cimagf
+    libc.src.complex.cimagl
+    libc.src.complex.conj
+    libc.src.complex.conjf
+    libc.src.complex.conjl
+    libc.src.complex.cproj
+    libc.src.complex.cprojf
+    libc.src.complex.cprojl
+
+    # math.h entrypoints
+    libc.src.math.acos
+    libc.src.math.acosf
+    libc.src.math.acoshf
+    libc.src.math.acospif
+    libc.src.math.asin
+    libc.src.math.asinf
+    libc.src.math.asinhf
+    libc.src.math.asinpi
+    libc.src.math.asinpif
+    libc.src.math.atan
+    libc.src.math.atan2
+    libc.src.math.atan2f
+    libc.src.math.atan2f128
+    libc.src.math.atan2l
+    libc.src.math.atanf
+    libc.src.math.atanhf
+    libc.src.math.canonicalize
+    libc.src.math.canonicalizef
+    libc.src.math.canonicalizel
+    libc.src.math.cbrt
+    libc.src.math.cbrtf
+    libc.src.math.cbrtbf16
+    libc.src.math.ceil
+    libc.src.math.ceilf
+    libc.src.math.ceilf128
+    libc.src.math.ceill
+    libc.src.math.copysign
+    libc.src.math.copysignf
+    libc.src.math.copysignf128
+    libc.src.math.copysignf80
+    libc.src.math.copysignl
+    libc.src.math.cos
+    libc.src.math.cosf
+    libc.src.math.coshf
+    libc.src.math.cospif
+    libc.src.math.ddivl
+    libc.src.math.dfmal
+    libc.src.math.dmull
+    libc.src.math.dsqrtl
+    libc.src.math.erff
+    libc.src.math.exp
+    libc.src.math.exp10
+    libc.src.math.exp10f
+    libc.src.math.exp2
+    libc.src.math.exp2f
+    libc.src.math.exp2m1f
+    libc.src.math.expf
+    libc.src.math.expm1
+    libc.src.math.expm1f
+    libc.src.math.fabs
+    libc.src.math.fabsf
+    libc.src.math.fabsf128
+    libc.src.math.fabsf80
+    libc.src.math.fabsl
+    libc.src.math.fadd
+    libc.src.math.faddl
+    libc.src.math.fdim
+    libc.src.math.fdimf
+    libc.src.math.fdimf128
+    libc.src.math.fdiml
+    libc.src.math.fdiv
+    libc.src.math.fdivl
+    libc.src.math.ffma
+    libc.src.math.ffmal
+    libc.src.math.floor
+    libc.src.math.floorf
+    libc.src.math.floorf128
+    libc.src.math.floorl
+    libc.src.math.fma
+    libc.src.math.fmabf16
+    libc.src.math.fmaf
+    libc.src.math.fmax
+    libc.src.math.fmaxf
+    libc.src.math.fmaxf128
+    libc.src.math.fmaximum
+    libc.src.math.fmaximum_mag_numf128
+    libc.src.math.fmaximum_magf128
+    libc.src.math.fmaximumf
+    libc.src.math.fmaximumf128
+    libc.src.math.fmaximuml
+    libc.src.math.fmaximum_mag
+    libc.src.math.fmaximum_magf
+    libc.src.math.fmaximum_magl
+    libc.src.math.fmaximum_mag_num
+    libc.src.math.fmaximum_mag_numf
+    libc.src.math.fmaximum_mag_numl
+    libc.src.math.fmaximum_num
+    libc.src.math.fmaximum_numf
+    libc.src.math.fmaximum_numf128
+    libc.src.math.fmaximum_numl
+    libc.src.math.fmaxl
+    libc.src.math.fmin
+    libc.src.math.fminf
+    libc.src.math.fminf128
+    libc.src.math.fminimum
+    libc.src.math.fminimum_mag_numf128
+    libc.src.math.fminimum_magf128
+    libc.src.math.fminimumf
+    libc.src.math.fminimumf128
+    libc.src.math.fminimuml
+    libc.src.math.fminimum_mag
+    libc.src.math.fminimum_magf
+    libc.src.math.fminimum_magl
+    libc.src.math.fminimum_mag_num
+    libc.src.math.fminimum_mag_numf
+    libc.src.math.fminimum_mag_numl
+    libc.src.math.fminimum_num
+    libc.src.math.fminimum_numf
+    libc.src.math.fminimum_numf128
+    libc.src.math.fminimum_numl
+    libc.src.math.fminl
+    libc.src.math.fmod
+    libc.src.math.fmodf
+    libc.src.math.fmodl
+    libc.src.math.fmul
+    libc.src.math.fmull
+    libc.src.math.frexp
+    libc.src.math.frexpf
+    libc.src.math.frexpl
+    # FIXME: Broken.
+    # libc.src.math.fromfp
+    # libc.src.math.fromfpf
+    # libc.src.math.fromfpl
+    # libc.src.math.fromfpx
+    # libc.src.math.fromfpxf
+    # libc.src.math.fromfpxl
+    libc.src.math.fsqrt
+    libc.src.math.fsqrtl
+    libc.src.math.fsub
+    libc.src.math.fsubl
+    libc.src.math.getpayload
+    libc.src.math.getpayloadf
+    libc.src.math.getpayloadl
+    libc.src.math.hypot
+    libc.src.math.hypotf
+    libc.src.math.ilogb
+    libc.src.math.ilogbf
+    libc.src.math.ilogbl
+    libc.src.math.iscanonicalf128
+    libc.src.math.isnan
+    libc.src.math.isnanf
+    libc.src.math.isnanf128
+    libc.src.math.isnanl
+    libc.src.math.issignalingf128
+    libc.src.math.ldexp
+    libc.src.math.ldexpf
+    libc.src.math.ldexpl
+    libc.src.math.lgamma
+    libc.src.math.lgamma_r
+    libc.src.math.lgammaf
+    libc.src.math.llogb
+    libc.src.math.llogbf
+    libc.src.math.llogbl
+    libc.src.math.llrint
+    libc.src.math.llrintf
+    libc.src.math.llrintf128
+    libc.src.math.llrintl
+    libc.src.math.llround
+    libc.src.math.llroundf
+    libc.src.math.llroundf128
+    libc.src.math.llroundl
+    libc.src.math.log
+    libc.src.math.log10
+    libc.src.math.log10f
+    libc.src.math.log1p
+    libc.src.math.log1pf
+    libc.src.math.log2
+    libc.src.math.log2f
+    libc.src.math.logb
+    libc.src.math.logbf
+    libc.src.math.logbl
+    libc.src.math.logf
+    libc.src.math.lrint
+    libc.src.math.lrintf
+    libc.src.math.lrintf128
+    libc.src.math.lrintl
+    libc.src.math.lround
+    libc.src.math.lroundf
+    libc.src.math.lroundf128
+    libc.src.math.lroundl
+    libc.src.math.modf
+    libc.src.math.modff
+    libc.src.math.modfl
+    libc.src.math.nan
+    libc.src.math.nanf
+    libc.src.math.nanl
+    libc.src.math.nearbyint
+    libc.src.math.nearbyintf
+    libc.src.math.nearbyintf128
+    libc.src.math.nearbyintl
+    libc.src.math.nextafter
+    libc.src.math.nextafterf
+    libc.src.math.nextafterl
+    libc.src.math.nextdown
+    libc.src.math.nextdownf
+    libc.src.math.nextdownl
+    libc.src.math.nexttoward
+    libc.src.math.nexttowardf
+    libc.src.math.nexttowardl
+    libc.src.math.nextup
+    libc.src.math.nextupf
+    libc.src.math.nextupl
+    libc.src.math.pow
+    libc.src.math.powf
+    libc.src.math.remainder
+    libc.src.math.remainderf
+    libc.src.math.remainderl
+    libc.src.math.remquo
+    libc.src.math.remquof
+    libc.src.math.remquol
+    libc.src.math.rint
+    libc.src.math.rintf
+    libc.src.math.rintf128
+    libc.src.math.rintl
+    libc.src.math.roundeven
+    libc.src.math.roundevenf
+    libc.src.math.roundevenf128
+    libc.src.math.roundevenl
+    libc.src.math.round
+    libc.src.math.roundf
+    libc.src.math.roundf128
+    libc.src.math.roundl
+    libc.src.math.scalbln
+    libc.src.math.scalblnf
+    libc.src.math.scalblnl
+    libc.src.math.scalbn
+    libc.src.math.scalbnf
+    libc.src.math.scalbnl
+    libc.src.math.setpayload
+    libc.src.math.setpayloadf
+    libc.src.math.setpayloadl
+    libc.src.math.setpayloadsig
+    libc.src.math.setpayloadsigf
+    libc.src.math.setpayloadsigl
+    libc.src.math.sin
+    libc.src.math.sincos
+    libc.src.math.sincosf
+    libc.src.math.sinf
+    libc.src.math.sinhf
+    libc.src.math.sinpif
+    libc.src.math.sqrt
+    libc.src.math.sqrtf
+    libc.src.math.sqrtf128
+    libc.src.math.sqrtl
+    libc.src.math.tan
+    libc.src.math.tanf
+    libc.src.math.tanhf
+    libc.src.math.tanpif
+    libc.src.math.tgamma
+    libc.src.math.tgammaf
+    libc.src.math.totalorder
+    libc.src.math.totalorderf
+    libc.src.math.totalorderl
+    libc.src.math.totalordermag
+    libc.src.math.totalordermagf
+    libc.src.math.totalordermagl
+    libc.src.math.trunc
+    libc.src.math.truncf
+    libc.src.math.truncf128
+    libc.src.math.truncl
+    # FIXME: Broken.
+    # libc.src.math.ufromfp
+    # libc.src.math.ufromfpf
+    # libc.src.math.ufromfpl
+    # libc.src.math.ufromfpx
+    # libc.src.math.ufromfpxf
+    # libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_FLOAT16)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C23 _Float16 entrypoints
+    libc.src.math.acosf16
+    libc.src.math.acoshf16
+    libc.src.math.acospif16
+    libc.src.math.asinf16
+    libc.src.math.asinhf16
+    libc.src.math.atanf16
+    libc.src.math.atan2f16
+    libc.src.math.atanhf16
+    libc.src.math.canonicalizef16
+    libc.src.math.cbrtf16
+    libc.src.math.ceilf16
+    libc.src.math.copysignf16
+    libc.src.math.cosf16
+    libc.src.math.coshf16
+    libc.src.math.cospif16
+    libc.src.math.erff16
+    libc.src.math.erfcf16
+    libc.src.math.exp10f16
+    libc.src.math.exp10m1f16
+    libc.src.math.exp2f16
+    libc.src.math.exp2m1f16
+    libc.src.math.expf16
+    libc.src.math.expm1f16
+    libc.src.math.f16add
+    libc.src.math.f16addf
+    libc.src.math.f16addl
+    libc.src.math.f16div
+    libc.src.math.f16divf
+    libc.src.math.f16divl
+    libc.src.math.f16fma
+    libc.src.math.f16fmaf
+    libc.src.math.f16fmal
+    libc.src.math.f16mul
+    libc.src.math.f16mulf
+    libc.src.math.f16mull
+    libc.src.math.f16sqrt
+    libc.src.math.f16sqrtf
+    libc.src.math.f16sqrtl
+    libc.src.math.f16sub
+    libc.src.math.f16subf
+    libc.src.math.f16subl
+    libc.src.math.fabsf16
+    libc.src.math.fdimf16
+    libc.src.math.floorf16
+    libc.src.math.fmaf16
+    libc.src.math.fmaxf16
+    libc.src.math.fmaximum_mag_numf16
+    libc.src.math.fmaximum_magf16
+    libc.src.math.fmaximum_numf16
+    libc.src.math.fmaximumf16
+    libc.src.math.fminf16
+    libc.src.math.fminimum_mag_numf16
+    libc.src.math.fminimum_magf16
+    libc.src.math.fminimum_numf16
+    libc.src.math.fminimumf16
+    libc.src.math.fmodf16
+    libc.src.math.frexpf16
+    libc.src.math.fromfpf16
+    libc.src.math.fromfpxf16
+    libc.src.math.getpayloadf16
+    libc.src.math.hypotf16
+    libc.src.math.ilogbf16
+    libc.src.math.iscanonicalf16
+    libc.src.math.isnanf16
+    libc.src.math.issignalingf16
+    libc.src.math.ldexpf16
+    libc.src.math.lgammaf16
+    libc.src.math.llogbf16
+    libc.src.math.llrintf16
+    libc.src.math.llroundf16
+    libc.src.math.log10f16
+    libc.src.math.log10p1f16
+    libc.src.math.log2f16
+    libc.src.math.log2p1f16
+    libc.src.math.logbf16
+    libc.src.math.logf16
+    libc.src.math.lrintf16
+    libc.src.math.lroundf16
+    libc.src.math.modff16
+    libc.src.math.nanf16
+    libc.src.math.nearbyintf16
+    libc.src.math.nextafterf16
+    libc.src.math.nextdownf16
+    libc.src.math.nexttowardf16
+    libc.src.math.nextupf16
+    libc.src.math.remainderf16
+    libc.src.math.remquof16
+    libc.src.math.rintf16
+    libc.src.math.roundevenf16
+    libc.src.math.roundf16
+    libc.src.math.scalblnf16
+    libc.src.math.scalbnf16
+    libc.src.math.setpayloadf16
+    libc.src.math.setpayloadsigf16
+    libc.src.math.sinf16
+    libc.src.math.sinhf16
+    libc.src.math.sinpif16
+    libc.src.math.sqrtf16
+    libc.src.math.tanf16
+    libc.src.math.tanhf16
+    libc.src.math.tanpif16
+    libc.src.math.totalorderf16
+    libc.src.math.totalordermagf16
+    libc.src.math.truncf16
+    libc.src.math.ufromfpf16
+    libc.src.math.ufromfpxf16
+  )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+  # complex.h entrypoints
+  libc.src.complex.cabs
+  libc.src.complex.cabsf
+  libc.src.complex.carg
+  libc.src.complex.cargf
+  libc.src.complex.creal
+  libc.src.complex.crealf
+  libc.src.complex.creall
+  libc.src.complex.cimag
+  libc.src.complex.cimagf
+  libc.src.complex.cimagl
+  libc.src.complex.conj
+  libc.src.complex.conjf
+  libc.src.complex.conjl
+  libc.src.complex.cproj
+  libc.src.complex.cprojf
+  libc.src.complex.cprojl
+
+  # bfloat16 entrypoints
+  libc.src.math.atanbf16
+  libc.src.math.acosbf16
+  libc.src.math.asinbf16
+  libc.src.math.bf16add
+  libc.src.math.bf16addf
+  libc.src.math.bf16addl
+  libc.src.math.bf16div
+  libc.src.math.bf16divf
+  libc.src.math.bf16divl
+  libc.src.math.bf16fma
+  libc.src.math.bf16fmaf
+  libc.src.math.bf16fmal
+  libc.src.math.bf16mul
+  libc.src.math.bf16mulf
+  libc.src.math.bf16mull
+  libc.src.math.bf16sub
+  libc.src.math.bf16subf
+  libc.src.math.bf16subl
+  libc.src.math.canonicalizebf16
+  libc.src.math.ceilbf16
+  libc.src.math.copysignbf16
+  libc.src.math.exp2bf16
+  libc.src.math.expbf16
+  libc.src.math.fabsbf16
+  libc.src.math.fdimbf16
+  libc.src.math.floorbf16
+  libc.src.math.fmaxbf16
+  libc.src.math.fmaximumbf16
+  libc.src.math.fmaximum_magbf16
+  libc.src.math.fmaximum_mag_numbf16
+  libc.src.math.fmaximum_numbf16
+  libc.src.math.fminbf16
+  libc.src.math.fminimumbf16
+  libc.src.math.fminimum_magbf16
+  libc.src.math.fminimum_mag_numbf16
+  libc.src.math.fminimum_numbf16
+  libc.src.math.fmodbf16
+  libc.src.math.frexpbf16
+  libc.src.math.fromfpbf16
+  libc.src.math.fromfpxbf16
+  libc.src.math.getpayloadbf16
+  libc.src.math.hypotbf16
+  libc.src.math.ilogbbf16
+  libc.src.math.iscanonicalbf16
+  libc.src.math.issignalingbf16
+  libc.src.math.ldexpbf16
+  libc.src.math.llogbbf16
+  libc.src.math.llrintbf16
+  libc.src.math.llroundbf16
+  libc.src.math.log_bf16
+  libc.src.math.logbbf16
+  libc.src.math.lrintbf16
+  libc.src.math.lroundbf16
+  libc.src.math.modfbf16
+  libc.src.math.nanbf16
+  libc.src.math.nearbyintbf16
+  libc.src.math.nextafterbf16
+  libc.src.math.nextdownbf16
+  libc.src.math.nexttowardbf16
+  libc.src.math.nextupbf16
+  libc.src.math.remainderbf16
+  libc.src.math.remquobf16
+  libc.src.math.rintbf16
+  libc.src.math.roundbf16
+  libc.src.math.roundevenbf16
+  libc.src.math.scalblnbf16
+  libc.src.math.scalbnbf16
+  libc.src.math.setpayloadbf16
+  libc.src.math.setpayloadsigbf16
+  libc.src.math.sqrtbf16
+  libc.src.math.tanbf16
+  libc.src.math.truncbf16
+  libc.src.math.totalorderbf16
+  libc.src.math.totalordermagbf16
+  libc.src.math.ufromfpbf16
+  libc.src.math.ufromfpxbf16
+)
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+  ${TARGET_LIBC_ENTRYPOINTS}
+  ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/linux/aarch64/entrypoints.txt b/libc/config/linux/aarch64/entrypoints.txt
index ae4d060ad2e65c..11a6bc689a6a27 100644
--- a/libc/config/linux/aarch64/entrypoints.txt
+++ b/libc/config/linux/aarch64/entrypoints.txt
@@ -1,1609 +1,1611 @@
-set(TARGET_LIBC_ENTRYPOINTS
-    # ctype.h entrypoints
-    libc.src.ctype.isalnum
-    libc.src.ctype.isalpha
-    libc.src.ctype.isascii
-    libc.src.ctype.isblank
-    libc.src.ctype.iscntrl
-    libc.src.ctype.isdigit
-    libc.src.ctype.isgraph
-    libc.src.ctype.islower
-    libc.src.ctype.isprint
-    libc.src.ctype.ispunct
-    libc.src.ctype.isspace
-    libc.src.ctype.isupper
-    libc.src.ctype.isxdigit
-    libc.src.ctype.toascii
-    libc.src.ctype.tolower
-    libc.src.ctype.toupper
-
-    # dlfcn.h entrypoints
-    libc.src.dlfcn.dlclose
-    libc.src.dlfcn.dlerror
-    libc.src.dlfcn.dlopen
-    libc.src.dlfcn.dlsym
-
-    # err.h entrypoints
-    libc.src.err.err
-    libc.src.err.verr
-    libc.src.err.errx
-    libc.src.err.verrx
-    libc.src.err.warn
-    libc.src.err.vwarn
-    libc.src.err.warnx
-    libc.src.err.vwarnx
-
-    # errno.h entrypoints
-    libc.src.errno.errno
-
-    # fcntl.h entrypoints
-    libc.src.fcntl.creat
-    libc.src.fcntl.fallocate
-    libc.src.fcntl.fcntl
-    libc.src.fcntl.open
-    libc.src.fcntl.openat
-    libc.src.fcntl.posix_fadvise
-    libc.src.fcntl.posix_fadvise64
-    libc.src.fcntl.posix_fallocate
-
-    # grp.h entrypoints
-    libc.src.grp.endgrent
-    libc.src.grp.getgrent
-    libc.src.grp.getgrgid
-    libc.src.grp.getgrgid_r
-    libc.src.grp.getgrouplist
-    libc.src.grp.getgrnam
-    libc.src.grp.getgrnam_r
-    libc.src.grp.setgrent
-
-    # poll.h entrypoints
-    libc.src.poll.poll
-    libc.src.poll.ppoll
-
-    # pwd.h entrypoints
-    libc.src.pwd.endpwent
-    libc.src.pwd.getpwent
-    libc.src.pwd.getpwent_r
-    libc.src.pwd.getpwnam
-    libc.src.pwd.getpwnam_r
-    libc.src.pwd.getpwuid
-    libc.src.pwd.getpwuid_r
-    libc.src.pwd.setpwent
-
-    # sched.h entrypoints
-    libc.src.sched.sched_get_priority_max
-    libc.src.sched.sched_get_priority_min
-    libc.src.sched.sched_getaffinity
-    libc.src.sched.sched_getcpu
-    libc.src.sched.sched_getparam
-    libc.src.sched.sched_getscheduler
-    libc.src.sched.sched_rr_get_interval
-    libc.src.sched.sched_setaffinity
-    libc.src.sched.sched_setparam
-    libc.src.sched.sched_setscheduler
-    libc.src.sched.sched_yield
-
-    # string.h entrypoints
-    libc.src.string.memccpy
-    libc.src.string.memchr
-    libc.src.string.memcmp
-    libc.src.string.memcpy
-    libc.src.string.memmem
-    libc.src.string.memmove
-    libc.src.string.mempcpy
-    libc.src.string.memrchr
-    libc.src.string.memset
-    libc.src.string.memset_explicit
-    libc.src.string.stpcpy
-    libc.src.string.stpncpy
-    libc.src.string.strcasestr
-    libc.src.string.strcat
-    libc.src.string.strchr
-    libc.src.string.strchrnul
-    libc.src.string.strcmp
-    libc.src.string.strcoll
-    libc.src.string.strcpy
-    libc.src.string.strcspn
-    libc.src.string.strdup
-    libc.src.string.strerror
-    libc.src.string.strerror_r
-    libc.src.string.strlcat
-    libc.src.string.strlcpy
-    libc.src.string.strlen
-    libc.src.string.strncat
-    libc.src.string.strncmp
-    libc.src.string.strncpy
-    libc.src.string.strndup
-    libc.src.string.strnlen
-    libc.src.string.strnlen_s
-    libc.src.string.strpbrk
-    libc.src.string.strrchr
-    libc.src.string.strsep
-    libc.src.string.strsignal
-    libc.src.string.strspn
-    libc.src.string.strstr
-    libc.src.string.strtok
-    libc.src.string.strtok_r
-    libc.src.string.strxfrm
-
-    # strings.h entrypoints
-    libc.src.strings.bcmp
-    libc.src.strings.bcopy
-    libc.src.strings.bzero
-    libc.src.strings.ffs
-    libc.src.strings.ffsl
-    libc.src.strings.ffsll
-    libc.src.strings.index
-    libc.src.strings.rindex
-    libc.src.strings.strcasecmp
-    libc.src.strings.strncasecmp
-
-    # inttypes.h entrypoints
-    libc.src.inttypes.imaxabs
-    libc.src.inttypes.imaxdiv
-    libc.src.inttypes.strtoimax
-    libc.src.inttypes.strtoumax
-
-    # libgen.h entrypoints
-    libc.src.libgen.basename
-    libc.src.libgen.dirname
-
-    # stdbit.h entrypoints
-    libc.src.stdbit.stdc_bit_ceil_uc
-    libc.src.stdbit.stdc_bit_ceil_ui
-    libc.src.stdbit.stdc_bit_ceil_ul
-    libc.src.stdbit.stdc_bit_ceil_ull
-    libc.src.stdbit.stdc_bit_ceil_us
-    libc.src.stdbit.stdc_bit_floor_uc
-    libc.src.stdbit.stdc_bit_floor_ui
-    libc.src.stdbit.stdc_bit_floor_ul
-    libc.src.stdbit.stdc_bit_floor_ull
-    libc.src.stdbit.stdc_bit_floor_us
-    libc.src.stdbit.stdc_bit_width_uc
-    libc.src.stdbit.stdc_bit_width_ui
-    libc.src.stdbit.stdc_bit_width_ul
-    libc.src.stdbit.stdc_bit_width_ull
-    libc.src.stdbit.stdc_bit_width_us
-    libc.src.stdbit.stdc_count_ones_uc
-    libc.src.stdbit.stdc_count_ones_ui
-    libc.src.stdbit.stdc_count_ones_ul
-    libc.src.stdbit.stdc_count_ones_ull
-    libc.src.stdbit.stdc_count_ones_us
-    libc.src.stdbit.stdc_count_zeros_uc
-    libc.src.stdbit.stdc_count_zeros_ui
-    libc.src.stdbit.stdc_count_zeros_ul
-    libc.src.stdbit.stdc_count_zeros_ull
-    libc.src.stdbit.stdc_count_zeros_us
-    libc.src.stdbit.stdc_first_leading_one_uc
-    libc.src.stdbit.stdc_first_leading_one_ui
-    libc.src.stdbit.stdc_first_leading_one_ul
-    libc.src.stdbit.stdc_first_leading_one_ull
-    libc.src.stdbit.stdc_first_leading_one_us
-    libc.src.stdbit.stdc_first_leading_zero_uc
-    libc.src.stdbit.stdc_first_leading_zero_ui
-    libc.src.stdbit.stdc_first_leading_zero_ul
-    libc.src.stdbit.stdc_first_leading_zero_ull
-    libc.src.stdbit.stdc_first_leading_zero_us
-    libc.src.stdbit.stdc_first_trailing_one_uc
-    libc.src.stdbit.stdc_first_trailing_one_ui
-    libc.src.stdbit.stdc_first_trailing_one_ul
-    libc.src.stdbit.stdc_first_trailing_one_ull
-    libc.src.stdbit.stdc_first_trailing_one_us
-    libc.src.stdbit.stdc_first_trailing_zero_uc
-    libc.src.stdbit.stdc_first_trailing_zero_ui
-    libc.src.stdbit.stdc_first_trailing_zero_ul
-    libc.src.stdbit.stdc_first_trailing_zero_ull
-    libc.src.stdbit.stdc_first_trailing_zero_us
-    libc.src.stdbit.stdc_has_single_bit_uc
-    libc.src.stdbit.stdc_has_single_bit_ui
-    libc.src.stdbit.stdc_has_single_bit_ul
-    libc.src.stdbit.stdc_has_single_bit_ull
-    libc.src.stdbit.stdc_has_single_bit_us
-    libc.src.stdbit.stdc_leading_ones_uc
-    libc.src.stdbit.stdc_leading_ones_ui
-    libc.src.stdbit.stdc_leading_ones_ul
-    libc.src.stdbit.stdc_leading_ones_ull
-    libc.src.stdbit.stdc_leading_ones_us
-    libc.src.stdbit.stdc_leading_zeros_uc
-    libc.src.stdbit.stdc_leading_zeros_ui
-    libc.src.stdbit.stdc_leading_zeros_ul
-    libc.src.stdbit.stdc_leading_zeros_ull
-    libc.src.stdbit.stdc_leading_zeros_us
-    libc.src.stdbit.stdc_trailing_ones_uc
-    libc.src.stdbit.stdc_trailing_ones_ui
-    libc.src.stdbit.stdc_trailing_ones_ul
-    libc.src.stdbit.stdc_trailing_ones_ull
-    libc.src.stdbit.stdc_trailing_ones_us
-    libc.src.stdbit.stdc_trailing_zeros_uc
-    libc.src.stdbit.stdc_trailing_zeros_ui
-    libc.src.stdbit.stdc_trailing_zeros_ul
-    libc.src.stdbit.stdc_trailing_zeros_ull
-    libc.src.stdbit.stdc_trailing_zeros_us
-
-    # stdlib.h entrypoints
-    libc.src.stdlib.abs
-    libc.src.stdlib.atof
-    libc.src.stdlib.atoi
-    libc.src.stdlib.atol
-    libc.src.stdlib.atoll
-    libc.src.stdlib.bsearch
-    libc.src.stdlib.div
-    libc.src.stdlib.getloadavg
-    libc.src.stdlib.labs
-    libc.src.stdlib.ldiv
-    libc.src.stdlib.llabs
-    libc.src.stdlib.lldiv
-    libc.src.stdlib.memalignment
-    libc.src.stdlib.mkdtemp
-    libc.src.stdlib.mkostemp
-    libc.src.stdlib.mkstemp
-    libc.src.stdlib.qsort
-    libc.src.stdlib.qsort_r
-    libc.src.stdlib.rand
-    libc.src.stdlib.realpath
-    libc.src.stdlib.srand
-    libc.src.stdlib.strfromd
-    libc.src.stdlib.strfromf
-    libc.src.stdlib.strfromf128
-    # TODO: long double support is buggy with clang-11. Re-enable when buildbots are upgraded.
-    # libc.src.stdlib.strfroml
-    libc.src.stdlib.strtod
-    libc.src.stdlib.strtof
-    libc.src.stdlib.strtol
-    libc.src.stdlib.strtold
-    libc.src.stdlib.strtoll
-    libc.src.stdlib.strtoul
-    libc.src.stdlib.strtoull
-
-    # stdlib.h external entrypoints
-    libc.src.stdlib.aligned_alloc
-    libc.src.stdlib.calloc
-    libc.src.stdlib.free
-    libc.src.stdlib.malloc
-    libc.src.stdlib.posix_memalign
-    libc.src.stdlib.realloc
-
-    # stdio.h entrypoints
-    libc.src.stdio.fprintf
-    libc.src.stdio.fscanf
-    libc.src.stdio.vfscanf
-    libc.src.stdio.printf
-    libc.src.stdio.remove
-    libc.src.stdio.rename
-    libc.src.stdio.renameat
-    libc.src.stdio.scanf
-    libc.src.stdio.vscanf
-    libc.src.stdio.snprintf
-    libc.src.stdio.sprintf
-    libc.src.stdio.asprintf
-    libc.src.stdio.sscanf
-    libc.src.stdio.stderr
-    libc.src.stdio.stdin
-    libc.src.stdio.stdout
-    libc.src.stdio.tmpfile
-    libc.src.stdio.tmpnam
-    libc.src.stdio.vsscanf
-    libc.src.stdio.vfprintf
-    libc.src.stdio.vprintf
-    libc.src.stdio.vsnprintf
-    libc.src.stdio.vsprintf
-    libc.src.stdio.vasprintf
-
-    # sys/epoll.h entrypoints
-    libc.src.sys.epoll.epoll_create
-    libc.src.sys.epoll.epoll_create1
-    libc.src.sys.epoll.epoll_ctl
-    libc.src.sys.epoll.epoll_pwait
-    libc.src.sys.epoll.epoll_wait
-    # TODO: Need to check if pwait2 is available before providing.
-    # https://github.com/llvm/llvm-project/issues/80060
-    # libc.src.sys.epoll.epoll_pwait2
-
-    # sys/eventfd.h entrypoints
-    libc.src.sys.eventfd.eventfd
-
-    # sys/file.h entrypoints
-    libc.src.sys.file.flock
-
-    # sys/ioctl.h entrypoints
-    libc.src.sys.ioctl.ioctl
-
-    # sys/mman.h entrypoints
-    libc.src.sys.mman.madvise
-    libc.src.sys.mman.memfd_create
-    libc.src.sys.mman.mincore
-    libc.src.sys.mman.mlock
-    libc.src.sys.mman.mlock2
-    libc.src.sys.mman.mlockall
-    libc.src.sys.mman.mmap
-    libc.src.sys.mman.mremap
-    libc.src.sys.mman.mprotect
-    libc.src.sys.mman.msync
-    libc.src.sys.mman.munlock
-    libc.src.sys.mman.munlockall
-    libc.src.sys.mman.munmap
-    libc.src.sys.mman.remap_file_pages
-    libc.src.sys.mman.posix_madvise
-    libc.src.sys.mman.shm_open
-    libc.src.sys.mman.shm_unlink
-
-    # sys/random.h entrypoints
-    libc.src.sys.random.getrandom
-    libc.src.sys.random.getentropy
-
-    # sys/resource.h entrypoints
-    libc.src.sys.resource.getpriority
-    libc.src.sys.resource.getrlimit
-    libc.src.sys.resource.getrusage
-    libc.src.sys.resource.setpriority
-    libc.src.sys.resource.setrlimit
-
-    # sys/sendfile.h entrypoints
-    libc.src.sys.sendfile.sendfile
-
-    # sys/socket.h entrypoints
-    libc.src.sys.socket.accept
-    libc.src.sys.socket.accept4
-    libc.src.sys.socket.bind
-    libc.src.sys.socket.connect
-    libc.src.sys.socket.getpeername
-    libc.src.sys.socket.getsockname
-    libc.src.sys.socket.getsockopt
-    libc.src.sys.socket.listen
-    libc.src.sys.socket.recv
-    libc.src.sys.socket.recvfrom
-    libc.src.sys.socket.send
-    libc.src.sys.socket.sendto
-    libc.src.sys.socket.setsockopt
-    libc.src.sys.socket.shutdown
-    libc.src.sys.socket.sockatmark
-    libc.src.sys.socket.socket
-    libc.src.sys.socket.socketpair
-    # TODO: These functions are not compatible with 64-bit musl. They need to
-    # be excluded if overlaying musl.
-    libc.src.sys.socket.recvmmsg
-    libc.src.sys.socket.recvmsg
-    libc.src.sys.socket.sendmmsg
-    libc.src.sys.socket.sendmsg
-
-    # sys/stat.h entrypoints
-    libc.src.sys.stat.chmod
-    libc.src.sys.stat.fchmod
-    libc.src.sys.stat.fchmodat
-    libc.src.sys.stat.fstat
-    libc.src.sys.stat.fstatat
-    libc.src.sys.stat.futimens
-    libc.src.sys.stat.lstat
-    libc.src.sys.stat.mkdir
-    libc.src.sys.stat.mkdirat
-    libc.src.sys.stat.mkfifo
-    libc.src.sys.stat.mkfifoat
-    libc.src.sys.stat.mknod
-    libc.src.sys.stat.mknodat
-    libc.src.sys.stat.stat
-    libc.src.sys.stat.umask
-    libc.src.sys.stat.utimensat
-
-    # sys/statfs.h entrypoints
-    libc.src.sys.statfs.fstatfs
-    libc.src.sys.statfs.statfs
-
-    # sys/statvfs.h entrypoints
-    libc.src.sys.statvfs.fstatvfs
-    libc.src.sys.statvfs.statvfs
-
-    # sys/sysinfo.h entrypoints
-    libc.src.sys.sysinfo.sysinfo
-
-    # sys/utsname.h entrypoints
-    libc.src.sys.utsname.uname
-
-    # sys/wait.h entrypoints
-    libc.src.sys.wait.wait
-    libc.src.sys.wait.wait4
-    libc.src.sys.wait.waitid
-    libc.src.sys.wait.waitpid
-
-    # sys/xattr.h entrypoints
-    libc.src.sys.xattr.fgetxattr
-    libc.src.sys.xattr.flistxattr
-    libc.src.sys.xattr.fsetxattr
-    libc.src.sys.xattr.getxattr
-    libc.src.sys.xattr.lgetxattr
-    libc.src.sys.xattr.listxattr
-    libc.src.sys.xattr.llistxattr
-    libc.src.sys.xattr.lsetxattr
-    libc.src.sys.xattr.setxattr
-
-    # sys/prctl.h entrypoints
-    libc.src.sys.prctl.prctl
-
-    # sys/personality.h entrypoints
-    libc.src.sys.personality.personality
-
-    # sys/auxv.h entrypoints
-    libc.src.sys.auxv.getauxval
-
-    # sys/sysmacros.h entrypoints
-    libc.src.sys.sysmacros.makedev
-    libc.src.sys.sysmacros.major
-    libc.src.sys.sysmacros.minor
-
-    # sys/inotify.h entrypoints
-    libc.src.sys.inotify.inotify_add_watch
-    libc.src.sys.inotify.inotify_init
-    libc.src.sys.inotify.inotify_init1
-    libc.src.sys.inotify.inotify_rm_watch
-
-    # termios.h entrypoints
-    libc.src.termios.cfgetispeed
-    libc.src.termios.cfgetospeed
-    libc.src.termios.cfsetispeed
-    libc.src.termios.cfsetospeed
-    libc.src.termios.tcdrain
-    libc.src.termios.tcflow
-    libc.src.termios.tcflush
-    libc.src.termios.tcgetattr
-    libc.src.termios.tcgetsid
-    libc.src.termios.tcgetwinsize
-    libc.src.termios.tcsendbreak
-    libc.src.termios.tcsetattr
-    libc.src.termios.tcsetwinsize
-
-    # unistd.h entrypoints
-    libc.src.unistd.alarm
-    libc.src.unistd.access
-    libc.src.unistd.chdir
-    libc.src.unistd.chown
-    libc.src.unistd.chroot
-    libc.src.unistd.close
-    libc.src.unistd.dup
-    libc.src.unistd.dup2
-    libc.src.unistd.dup3
-    libc.src.unistd.execle
-    libc.src.unistd.execve
-    libc.src.unistd.faccessat
-    libc.src.unistd.fchdir
-    libc.src.unistd.fchown
-    libc.src.unistd.fchownat
-    libc.src.unistd.fdatasync
-    libc.src.unistd.fexecve
-    libc.src.unistd.fpathconf
-    libc.src.unistd.fsync
-    libc.src.unistd.ftruncate
-    libc.src.unistd.getcwd
-    libc.src.unistd.getegid
-    libc.src.unistd.getentropy
-    libc.src.unistd.geteuid
-    libc.src.unistd.gethostname
-    libc.src.unistd.getpagesize
-    libc.src.unistd.getpgid
-    libc.src.unistd.getpgrp
-    libc.src.unistd.getpid
-    libc.src.unistd.getppid
-    libc.src.unistd.getsid
-    libc.src.unistd.gettid
-    libc.src.unistd.getgid
-    libc.src.unistd.getuid
-    libc.src.unistd.isatty
-    libc.src.unistd.lchown
-    libc.src.unistd.link
-    libc.src.unistd.linkat
-    libc.src.unistd.lockf
-    libc.src.unistd.lseek
-    libc.src.unistd.nice
-    libc.src.unistd.pathconf
-    libc.src.unistd.pause
-    libc.src.unistd.pipe
-    libc.src.unistd.pipe2
-    libc.src.unistd.pread
-    libc.src.unistd.pwrite
-    libc.src.unistd.read
-    libc.src.unistd.readlink
-    libc.src.unistd.readlinkat
-    libc.src.unistd.rmdir
-    libc.src.unistd.setpgid
-    libc.src.unistd.setsid
-    libc.src.unistd.sleep
-    libc.src.unistd.symlink
-    libc.src.unistd.symlinkat
-    libc.src.unistd.sync
-    libc.src.unistd.syncfs
-    libc.src.unistd.tcgetpgrp
-    libc.src.unistd.tcsetpgrp
-    libc.src.unistd.truncate
-    libc.src.unistd.unlink
-    libc.src.unistd.unlinkat
-    libc.src.unistd.usleep
-    libc.src.unistd.write
-
-    # wchar.h entrypoints
-    libc.src.wchar.wcscasecmp
-    libc.src.wchar.wcsncasecmp
-    libc.src.wchar.wcslen
-    libc.src.wchar.wctob
-
-    # wctype.h entrypoints
-    libc.src.wctype.iswalpha
-    libc.src.wctype.iswgraph
-    libc.src.wctype.iswcntrl
-    libc.src.wctype.iswdigit
-    libc.src.wctype.iswupper
-    libc.src.wctype.iswalnum
-    libc.src.wctype.iswlower
-    libc.src.wctype.iswspace
-    libc.src.wctype.iswblank
-    libc.src.wctype.iswxdigit
-    libc.src.wctype.iswpunct
-    libc.src.wctype.iswprint
-    libc.src.wctype.iswctype
-    libc.src.wctype.wctype
-    libc.src.wctype.towlower
-    libc.src.wctype.towupper
-
-    # sys/uio.h entrypoints
-    libc.src.sys.uio.writev
-    libc.src.sys.uio.readv
-
-    # sys/time.h entrypoints
-    libc.src.sys.time.setitimer
-    libc.src.sys.time.getitimer
-    libc.src.sys.time.gettimeofday
-)
-
-if(LLVM_LIBC_INCLUDE_SCUDO)
-  list(APPEND TARGET_LIBC_ENTRYPOINTS
-    # malloc.h external entrypoints
-    libc.src.stdlib.mallopt
-  )
-endif()
-
-set(TARGET_LIBM_ENTRYPOINTS
-    # complex.h entrypoints
-    libc.src.complex.cabs
-    libc.src.complex.cabsf
-    libc.src.complex.carg
-    libc.src.complex.cargf
-    libc.src.complex.creal
-    libc.src.complex.crealf
-    libc.src.complex.creall
-    libc.src.complex.cimag
-    libc.src.complex.cimagf
-    libc.src.complex.cimagl
-    libc.src.complex.conj
-    libc.src.complex.conjf
-    libc.src.complex.conjl
-    libc.src.complex.cproj
-    libc.src.complex.cprojf
-    libc.src.complex.cprojl
-
-    # fenv.h entrypoints
-    libc.src.fenv.feclearexcept
-    libc.src.fenv.fedisableexcept
-    libc.src.fenv.feenableexcept
-    libc.src.fenv.fegetenv
-    libc.src.fenv.fegetexcept
-    libc.src.fenv.fegetexceptflag
-    libc.src.fenv.fegetround
-    libc.src.fenv.feholdexcept
-    libc.src.fenv.feraiseexcept
-    libc.src.fenv.fesetenv
-    libc.src.fenv.fesetexcept
-    libc.src.fenv.fesetexceptflag
-    libc.src.fenv.fesetround
-    libc.src.fenv.fetestexcept
-    libc.src.fenv.fetestexceptflag
-    libc.src.fenv.feupdateenv
-
-    # math.h entrypoints
-    libc.src.math.acos
-    libc.src.math.acosf
-    libc.src.math.acoshf
-    libc.src.math.acospif
-    libc.src.math.asin
-    libc.src.math.asinf
-    libc.src.math.asinhf
-    libc.src.math.asinpi
-    libc.src.math.asinpif
-    libc.src.math.atan2
-    libc.src.math.atan2f
-    libc.src.math.atan2f128
-    libc.src.math.atan
-    libc.src.math.atanf
-    libc.src.math.atanhf
-    libc.src.math.canonicalize
-    libc.src.math.canonicalizef
-    libc.src.math.canonicalizel
-    libc.src.math.cbrt
-    libc.src.math.cbrtf
-    libc.src.math.cbrtbf16
-    libc.src.math.ceil
-    libc.src.math.ceilf
-    libc.src.math.ceilf128
-    libc.src.math.ceill
-    libc.src.math.copysign
-    libc.src.math.copysignf
-    libc.src.math.copysignf128
-    libc.src.math.copysignl
-    libc.src.math.cos
-    libc.src.math.cosf
-    libc.src.math.coshf
-    libc.src.math.cospif
-    libc.src.math.daddl
-    libc.src.math.ddivl
-    libc.src.math.dfmal
-    libc.src.math.dmull
-    libc.src.math.dsqrtl
-    libc.src.math.dsubl
-    libc.src.math.erff
-    libc.src.math.exp
-    libc.src.math.exp10
-    libc.src.math.exp10f
-    libc.src.math.exp10m1f
-    libc.src.math.exp2
-    libc.src.math.exp2f
-    libc.src.math.exp2m1f
-    libc.src.math.expf
-    libc.src.math.expm1
-    libc.src.math.expm1f
-    libc.src.math.fabs
-    libc.src.math.fabsf
-    libc.src.math.fabsf128
-    libc.src.math.fabsl
-    libc.src.math.fadd
-    libc.src.math.faddl
-    libc.src.math.fadd
-    libc.src.math.fdim
-    libc.src.math.fdimf
-    libc.src.math.fdimf128
-    libc.src.math.fdiml
-    libc.src.math.floor
-    libc.src.math.floorf
-    libc.src.math.floorf128
-    libc.src.math.floorl
-    libc.src.math.fma
-    libc.src.math.fmabf16
-    libc.src.math.fmaf
-    libc.src.math.fmax
-    libc.src.math.fmaxf
-    libc.src.math.fmaxf128
-    libc.src.math.fmaximum
-    libc.src.math.fmaximum_mag
-    libc.src.math.fmaximum_mag_num
-    libc.src.math.fmaximum_mag_numf
-    libc.src.math.fmaximum_mag_numf128
-    libc.src.math.fmaximum_mag_numl
-    libc.src.math.fmaximum_magf
-    libc.src.math.fmaximum_magf128
-    libc.src.math.fmaximum_magl
-    libc.src.math.fmaximum_num
-    libc.src.math.fmaximum_numf
-    libc.src.math.fmaximum_numf128
-    libc.src.math.fmaximum_numl
-    libc.src.math.fmaximumf
-    libc.src.math.fmaximumf128
-    libc.src.math.fmaximuml
-    libc.src.math.fmaxl
-    libc.src.math.fmin
-    libc.src.math.fminf
-    libc.src.math.fminf128
-    libc.src.math.fminimum
-    libc.src.math.fminimum_mag
-    libc.src.math.fminimum_mag_num
-    libc.src.math.fminimum_mag_numf
-    libc.src.math.fminimum_mag_numf128
-    libc.src.math.fminimum_mag_numl
-    libc.src.math.fminimum_magf
-    libc.src.math.fminimum_magf128
-    libc.src.math.fminimum_magl
-    libc.src.math.fminimum_num
-    libc.src.math.fminimum_numf
-    libc.src.math.fminimum_numf128
-    libc.src.math.fminimum_numl
-    libc.src.math.fminimumf
-    libc.src.math.fminimumf128
-    libc.src.math.fminimuml
-    libc.src.math.fminl
-    libc.src.math.fmod
-    libc.src.math.fmodf
-    libc.src.math.fmodl
-    libc.src.math.fmul
-    libc.src.math.fmull
-    libc.src.math.frexp
-    libc.src.math.frexpf
-    libc.src.math.frexpl
-    libc.src.math.fromfp
-    libc.src.math.fromfpf
-    libc.src.math.fromfpl
-    libc.src.math.fromfpx
-    libc.src.math.fromfpxf
-    libc.src.math.fromfpxl
-    libc.src.math.fsqrt
-    libc.src.math.fsqrtl
-    libc.src.math.fsub
-    libc.src.math.fsubl
-    libc.src.math.getpayload
-    libc.src.math.getpayloadf
-    libc.src.math.getpayloadl
-    libc.src.math.hypot
-    libc.src.math.hypotf
-    libc.src.math.ilogb
-    libc.src.math.ilogbf
-    libc.src.math.ilogbl
-    libc.src.math.iscanonical
-    libc.src.math.iscanonicalf
-    libc.src.math.iscanonicalf128
-    libc.src.math.iscanonicall
-    libc.src.math.isnan
-    libc.src.math.isnanf
-    libc.src.math.isnanf128
-    libc.src.math.isnanl
-    libc.src.math.issignaling
-    libc.src.math.issignalingf
-    libc.src.math.issignalingf128
-    libc.src.math.issignalingl
-    libc.src.math.ldexp
-    libc.src.math.ldexpf
-    libc.src.math.ldexpl
-    libc.src.math.lgammaf
-    libc.src.math.llogb
-    libc.src.math.llogbf
-    libc.src.math.llogbl
-    libc.src.math.llrint
-    libc.src.math.llrintf
-    libc.src.math.llrintf128
-    libc.src.math.llrintl
-    libc.src.math.llround
-    libc.src.math.llroundf
-    libc.src.math.llroundf128
-    libc.src.math.llroundl
-    libc.src.math.log
-    libc.src.math.log10
-    libc.src.math.log10f
-    libc.src.math.log1p
-    libc.src.math.log1pf
-    libc.src.math.log2
-    libc.src.math.log2f
-    libc.src.math.logb
-    libc.src.math.logbf
-    libc.src.math.logbl
-    libc.src.math.logf
-    libc.src.math.lrint
-    libc.src.math.lrintf
-    libc.src.math.lrintf128
-    libc.src.math.lrintl
-    libc.src.math.lround
-    libc.src.math.lroundf
-    libc.src.math.lroundf128
-    libc.src.math.lroundl
-    libc.src.math.modf
-    libc.src.math.modff
-    libc.src.math.modfl
-    libc.src.math.nan
-    libc.src.math.nanf
-    libc.src.math.nanl
-    libc.src.math.nearbyint
-    libc.src.math.nearbyintf
-    libc.src.math.nearbyintf128
-    libc.src.math.nearbyintl
-    libc.src.math.nextafter
-    libc.src.math.nextafterf
-    libc.src.math.nextafterl
-    libc.src.math.nextdown
-    libc.src.math.nextdownf
-    libc.src.math.nextdownl
-    libc.src.math.nexttoward
-    libc.src.math.nexttowardf
-    libc.src.math.nexttowardl
-    libc.src.math.nextup
-    libc.src.math.nextupf
-    libc.src.math.nextupl
-    libc.src.math.pow
-    libc.src.math.powf
-    libc.src.math.remainder
-    libc.src.math.remainderf
-    libc.src.math.remainderl
-    libc.src.math.remquo
-    libc.src.math.remquof
-    libc.src.math.remquol
-    libc.src.math.rint
-    libc.src.math.rintf
-    libc.src.math.rintf128
-    libc.src.math.rintl
-    libc.src.math.round
-    libc.src.math.roundeven
-    libc.src.math.roundevenf
-    libc.src.math.roundevenf128
-    libc.src.math.roundevenl
-    libc.src.math.roundf
-    libc.src.math.roundf128
-    libc.src.math.roundl
-    libc.src.math.scalbln
-    libc.src.math.scalblnf
-    libc.src.math.scalblnl
-    libc.src.math.scalbn
-    libc.src.math.scalbnf
-    libc.src.math.scalbnl
-    libc.src.math.setpayload
-    libc.src.math.setpayloadf
-    libc.src.math.setpayloadl
-    libc.src.math.setpayloadsig
-    libc.src.math.setpayloadsigf
-    libc.src.math.setpayloadsigl
-    libc.src.math.sin
-    libc.src.math.sincos
-    libc.src.math.sincosf
-    libc.src.math.sinf
-    libc.src.math.sinhf
-    libc.src.math.sinpif
-    libc.src.math.sqrt
-    libc.src.math.sqrtf
-    libc.src.math.sqrtf128
-    libc.src.math.sqrtl
-    libc.src.math.tan
-    libc.src.math.tanf
-    libc.src.math.tanhf
-    libc.src.math.tanpif
-    libc.src.math.totalorder
-    libc.src.math.totalorderf
-    libc.src.math.totalorderl
-    libc.src.math.totalordermag
-    libc.src.math.totalordermagf
-    libc.src.math.totalordermagl
-    libc.src.math.trunc
-    libc.src.math.truncf
-    libc.src.math.truncf128
-    libc.src.math.truncl
-    libc.src.math.ufromfp
-    libc.src.math.ufromfpf
-    libc.src.math.ufromfpl
-    libc.src.math.ufromfpx
-    libc.src.math.ufromfpxf
-    libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_CFLOAT16)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # complex.h C23 _Complex _Float16 entrypoints
-    libc.src.complex.crealf16
-    libc.src.complex.cimagf16
-    libc.src.complex.conjf16
-    libc.src.complex.cprojf16
-  )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT16)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C23 _Float16 entrypoints
-    libc.src.math.acoshf16
-    libc.src.math.asinpif16
-    libc.src.math.atan2f16
-    libc.src.math.canonicalizef16
-    libc.src.math.cbrtf16
-    libc.src.math.ceilf16
-    libc.src.math.copysignf16
-    libc.src.math.cospif16
-    libc.src.math.erff16
-    libc.src.math.erfcf16
-    libc.src.math.expf16
-    libc.src.math.f16add
-    libc.src.math.f16addf
-    # libc.src.math.f16addl
-    libc.src.math.f16div
-    libc.src.math.f16divf
-    # libc.src.math.f16divl
-    libc.src.math.f16fma
-    libc.src.math.f16fmaf
-    # libc.src.math.f16fmal
-    libc.src.math.f16mul
-    libc.src.math.f16mulf
-    # libc.src.math.f16mull
-    libc.src.math.f16sqrt
-    libc.src.math.f16sqrtf
-    # libc.src.math.f16sqrtl
-    libc.src.math.f16sub
-    libc.src.math.f16subf
-    # libc.src.math.f16subl
-    libc.src.math.fabsf16
-    libc.src.math.fdimf16
-    libc.src.math.fdiv
-    libc.src.math.fdivl
-    libc.src.math.ffma
-    libc.src.math.ffmal
-    libc.src.math.floorf16
-    libc.src.math.fmaf16
-    libc.src.math.fmaxf16
-    libc.src.math.fmaximum_mag_numf16
-    libc.src.math.fmaximum_magf16
-    libc.src.math.fmaximum_numf16
-    libc.src.math.fmaximumf16
-    libc.src.math.fminf16
-    libc.src.math.fminimum_mag_numf16
-    libc.src.math.fminimum_magf16
-    libc.src.math.fminimum_numf16
-    libc.src.math.fminimumf16
-    # libc.src.math.fmodf16
-    libc.src.math.frexpf16
-    libc.src.math.fromfpf16
-    libc.src.math.fromfpxf16
-    libc.src.math.getpayloadf16
-    libc.src.math.ilogbf16
-    libc.src.math.iscanonicalf16
-    libc.src.math.isnanf16
-    libc.src.math.issignalingf16
-    libc.src.math.ldexpf16
-    libc.src.math.lgammaf16
-    libc.src.math.llogbf16
-    libc.src.math.llrintf16
-    libc.src.math.llroundf16
-    libc.src.math.log10p1f16
-    libc.src.math.log2p1f16
-    libc.src.math.logbf16
-    libc.src.math.lrintf16
-    libc.src.math.lroundf16
-    # libc.src.math.modff16
-    libc.src.math.nanf16
-    libc.src.math.nearbyintf16
-    libc.src.math.nextafterf16
-    libc.src.math.nextdownf16
-    # Temporarily disable nexttowardf16 on aarch64 because the conversion
-    # between _Float16 and long double will crash clang-11.  This is fixed in
-    # clang-12 and after: https://godbolt.org/z/8ceT9454c
-    # libc.src.math.nexttowardf16
-    libc.src.math.nextupf16
-    libc.src.math.remainderf16
-    libc.src.math.remquof16
-    libc.src.math.rintf16
-    libc.src.math.roundevenf16
-    libc.src.math.roundf16
-    libc.src.math.rsqrtf
-    libc.src.math.rsqrtf16
-    libc.src.math.scalblnf16
-    libc.src.math.scalbnf16
-    libc.src.math.setpayloadf16
-    libc.src.math.setpayloadsigf16
-    libc.src.math.sinpif16
-    libc.src.math.sqrtf16
-    libc.src.math.totalorderf16
-    libc.src.math.totalordermagf16
-    libc.src.math.truncf16
-    libc.src.math.ufromfpf16
-    libc.src.math.ufromfpxf16
-  )
-
-  # if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-  #   list(APPEND TARGET_LIBM_ENTRYPOINTS
-  #     # math.h C23 mixed _Float16 and _Float128 entrypoints
-  #     libc.src.math.f16addf128
-  #     libc.src.math.f16divf128
-  #     libc.src.math.f16fmaf128
-  #     libc.src.math.f16mulf128
-  #     libc.src.math.f16sqrtf128
-  #     libc.src.math.f16subf128
-  #   )
-  # endif()
-endif()
-
-if(LIBC_TYPES_HAS_CFLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # complex.h C23 _Complex _Float128 entrypoints
-    libc.src.complex.crealf128
-    libc.src.complex.cimagf128
-    libc.src.complex.conjf128
-    libc.src.complex.cprojf128
-  )
-endif()
-
-if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C23 _Float128 entrypoints
-    libc.src.math.canonicalizef128
-    libc.src.math.daddf128
-    libc.src.math.ddivf128
-    libc.src.math.dfmaf128
-    libc.src.math.dmulf128
-    libc.src.math.dsqrtf128
-    libc.src.math.dsubf128
-    libc.src.math.faddf128
-    libc.src.math.fdivf128
-    libc.src.math.ffmaf128
-    libc.src.math.fmodf128
-    libc.src.math.fmulf128
-    libc.src.math.frexpf128
-    libc.src.math.fromfpf128
-    libc.src.math.fromfpxf128
-    libc.src.math.fsqrtf128
-    libc.src.math.fsubf128
-    libc.src.math.getpayloadf128
-    libc.src.math.ilogbf128
-    libc.src.math.ldexpf128
-    libc.src.math.llogbf128
-    libc.src.math.logbf128
-    libc.src.math.modff128
-    libc.src.math.nanf128
-    libc.src.math.nextafterf128
-    libc.src.math.nextdownf128
-    libc.src.math.nextupf128
-    libc.src.math.remainderf128
-    libc.src.math.remquof128
-    libc.src.math.scalblnf128
-    libc.src.math.scalbnf128
-    libc.src.math.setpayloadf128
-    libc.src.math.setpayloadsigf128
-    libc.src.math.totalorderf128
-    libc.src.math.totalordermagf128
-    libc.src.math.ufromfpf128
-    libc.src.math.ufromfpxf128
-  )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
-  # bfloat16 entrypoints
-  libc.src.math.atanbf16
-  libc.src.math.acosbf16
-  libc.src.math.asinbf16
-  libc.src.math.bf16add
-  libc.src.math.bf16addf
-  libc.src.math.bf16addl
-  libc.src.math.bf16div
-  libc.src.math.bf16divf
-  libc.src.math.bf16divl
-  libc.src.math.bf16fma
-  libc.src.math.bf16fmaf
-  libc.src.math.bf16fmal
-  libc.src.math.bf16mul
-  libc.src.math.bf16mulf
-  libc.src.math.bf16mull
-  libc.src.math.bf16sub
-  libc.src.math.bf16subf
-  libc.src.math.bf16subl
-  libc.src.math.canonicalizebf16
-  libc.src.math.ceilbf16
-  libc.src.math.copysignbf16
-  libc.src.math.exp2bf16
-  libc.src.math.expbf16
-  libc.src.math.fabsbf16
-  libc.src.math.fdimbf16
-  libc.src.math.floorbf16
-  libc.src.math.fmaxbf16
-  libc.src.math.fmaximumbf16
-  libc.src.math.fmaximum_magbf16
-  libc.src.math.fmaximum_mag_numbf16
-  libc.src.math.fmaximum_numbf16
-  libc.src.math.fminbf16
-  libc.src.math.fminimumbf16
-  libc.src.math.fminimum_magbf16
-  libc.src.math.fminimum_mag_numbf16
-  libc.src.math.fminimum_numbf16
-  libc.src.math.fmodbf16
-  libc.src.math.frexpbf16
-  libc.src.math.fromfpbf16
-  libc.src.math.fromfpxbf16
-  libc.src.math.getpayloadbf16
-  libc.src.math.hypotbf16
-  libc.src.math.ilogbbf16
-  libc.src.math.iscanonicalbf16
-  libc.src.math.issignalingbf16
-  libc.src.math.ldexpbf16
-  libc.src.math.llogbbf16
-  libc.src.math.llrintbf16
-  libc.src.math.llroundbf16
-  libc.src.math.log_bf16
-  libc.src.math.logbbf16
-  libc.src.math.lrintbf16
-  libc.src.math.lroundbf16
-  libc.src.math.modfbf16
-  libc.src.math.nanbf16
-  libc.src.math.nearbyintbf16
-  libc.src.math.nextafterbf16
-  libc.src.math.nextdownbf16
-  libc.src.math.nexttowardbf16
-  libc.src.math.nextupbf16
-  libc.src.math.remainderbf16
-  libc.src.math.remquobf16
-  libc.src.math.rintbf16
-  libc.src.math.roundbf16
-  libc.src.math.roundevenbf16
-  libc.src.math.scalblnbf16
-  libc.src.math.scalbnbf16
-  libc.src.math.setpayloadbf16
-  libc.src.math.setpayloadsigbf16
-  libc.src.math.sqrtbf16
-  libc.src.math.tanbf16
-  libc.src.math.truncbf16
-  libc.src.math.totalorderbf16
-  libc.src.math.totalordermagbf16
-  libc.src.math.ufromfpbf16
-  libc.src.math.ufromfpxbf16
-)
-
-if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C++23 mixed bfloat16 and _Float128 entrypoints
-    libc.src.math.bf16addf128
-    libc.src.math.bf16divf128
-    libc.src.math.bf16fmaf128
-    libc.src.math.bf16mulf128
-    libc.src.math.bf16subf128
-  )
-endif()
-
-if(LLVM_LIBC_FULL_BUILD)
-  list(APPEND TARGET_LIBC_ENTRYPOINTS
-    # assert.h entrypoints
-    libc.src.assert.__assert_fail
-
-    # compiler entrypoints (no corresponding header)
-    libc.src.compiler.__stack_chk_fail
-
-    # dirent.h entrypoints
-    libc.src.dirent.alphasort
-    libc.src.dirent.closedir
-    libc.src.dirent.dirfd
-    libc.src.dirent.opendir
-    libc.src.dirent.readdir
-    libc.src.dirent.scandir
-    libc.src.dirent.fdopendir
-
-    # errno.h entrypoints
-    libc.src.errno.program_invocation_name
-    libc.src.errno.program_invocation_short_name
-
-    # arpa/inet.h entrypoints
-    libc.src.arpa.inet.htonl
-    libc.src.arpa.inet.htons
-    libc.src.arpa.inet.inet_addr
-    libc.src.arpa.inet.inet_aton
-    libc.src.arpa.inet.inet_ntoa
-    libc.src.arpa.inet.inet_ntop
-    libc.src.arpa.inet.inet_pton
-    libc.src.arpa.inet.ntohl
-    libc.src.arpa.inet.ntohs
-
-    # net/if.h entrypoints
-    libc.src.net.if_indextoname
-    libc.src.net.if_nametoindex
-
-    # netinet/ether.h entrypoints
-    libc.src.netinet.ether.ether_ntoa
-    libc.src.netinet.ether.ether_ntoa_r
-
-    # netinet/in.h entrypoints
-    libc.src.netinet.in6addr_any
-    libc.src.netinet.in6addr_loopback
-
-    # pthread.h entrypoints
-    libc.src.pthread.__pthread_cleanup_pop
-    libc.src.pthread.__pthread_cleanup_push
-    libc.src.pthread.pthread_atfork
-    libc.src.pthread.pthread_attr_destroy
-    libc.src.pthread.pthread_attr_getdetachstate
-    libc.src.pthread.pthread_attr_getguardsize
-    libc.src.pthread.pthread_attr_getinheritsched
-    libc.src.pthread.pthread_attr_getschedparam
-    libc.src.pthread.pthread_attr_getschedpolicy
-    libc.src.pthread.pthread_attr_getscope
-    libc.src.pthread.pthread_attr_getstack
-    libc.src.pthread.pthread_attr_getstacksize
-    libc.src.pthread.pthread_attr_init
-    libc.src.pthread.pthread_attr_setdetachstate
-    libc.src.pthread.pthread_attr_setguardsize
-    libc.src.pthread.pthread_attr_setinheritsched
-    libc.src.pthread.pthread_attr_setschedparam
-    libc.src.pthread.pthread_attr_setschedpolicy
-    libc.src.pthread.pthread_attr_setscope
-    libc.src.pthread.pthread_attr_setstack
-    libc.src.pthread.pthread_attr_setstacksize
-    libc.src.pthread.pthread_condattr_destroy
-    libc.src.pthread.pthread_condattr_getclock
-    libc.src.pthread.pthread_condattr_getpshared
-    libc.src.pthread.pthread_condattr_init
-    libc.src.pthread.pthread_condattr_setclock
-    libc.src.pthread.pthread_condattr_setpshared
-    libc.src.pthread.pthread_cond_broadcast
-    libc.src.pthread.pthread_cond_clockwait
-    libc.src.pthread.pthread_cond_destroy
-    libc.src.pthread.pthread_cond_init
-    libc.src.pthread.pthread_cond_signal
-    libc.src.pthread.pthread_cond_timedwait
-    libc.src.pthread.pthread_cond_wait
-    libc.src.pthread.pthread_create
-    libc.src.pthread.pthread_detach
-    libc.src.pthread.pthread_equal
-    libc.src.pthread.pthread_exit
-    libc.src.pthread.pthread_getattr_np
-    libc.src.pthread.pthread_getname_np
-    libc.src.pthread.pthread_getschedparam
-    libc.src.pthread.pthread_getspecific
-    libc.src.pthread.pthread_getstack_np
-    libc.src.pthread.pthread_getthreadid_np
-    libc.src.pthread.pthread_getunique_np
-    libc.src.pthread.pthread_join
-    libc.src.pthread.pthread_key_create
-    libc.src.pthread.pthread_key_delete
-    libc.src.pthread.pthread_mutex_destroy
-    libc.src.pthread.pthread_mutex_init
-    libc.src.pthread.pthread_mutex_lock
-    libc.src.pthread.pthread_mutex_trylock
-    libc.src.pthread.pthread_mutex_unlock
-    libc.src.pthread.pthread_mutexattr_destroy
-    libc.src.pthread.pthread_mutexattr_getpshared
-    libc.src.pthread.pthread_mutexattr_getrobust
-    libc.src.pthread.pthread_mutexattr_gettype
-    libc.src.pthread.pthread_mutexattr_init
-    libc.src.pthread.pthread_mutexattr_setpshared
-    libc.src.pthread.pthread_mutexattr_setrobust
-    libc.src.pthread.pthread_mutexattr_settype
-    libc.src.pthread.pthread_once
-    libc.src.pthread.pthread_rwlock_clockrdlock
-    libc.src.pthread.pthread_rwlock_clockwrlock
-    libc.src.pthread.pthread_rwlock_destroy
-    libc.src.pthread.pthread_rwlock_init
-    libc.src.pthread.pthread_rwlock_rdlock
-    libc.src.pthread.pthread_rwlock_timedrdlock
-    libc.src.pthread.pthread_rwlock_timedwrlock
-    libc.src.pthread.pthread_rwlock_tryrdlock
-    libc.src.pthread.pthread_rwlock_trywrlock
-    libc.src.pthread.pthread_rwlock_unlock
-    libc.src.pthread.pthread_rwlock_wrlock
-    libc.src.pthread.pthread_rwlockattr_destroy
-    libc.src.pthread.pthread_rwlockattr_getkind_np
-    libc.src.pthread.pthread_rwlockattr_getpshared
-    libc.src.pthread.pthread_rwlockattr_init
-    libc.src.pthread.pthread_rwlockattr_setkind_np
-    libc.src.pthread.pthread_rwlockattr_setpshared
-    libc.src.pthread.pthread_spin_destroy
-    libc.src.pthread.pthread_spin_init
-    libc.src.pthread.pthread_spin_lock
-    libc.src.pthread.pthread_spin_trylock
-    libc.src.pthread.pthread_spin_unlock
-    libc.src.pthread.pthread_self
-    libc.src.pthread.pthread_setname_np
-    libc.src.pthread.pthread_setschedparam
-    libc.src.pthread.pthread_setspecific
-
-    # sched.h entrypoints
-    libc.src.sched.clone
-    libc.src.sched.__sched_andcpuset
-    libc.src.sched.__sched_clrcpuset
-    libc.src.sched.__sched_cpualloc
-    libc.src.sched.__sched_cpuequal
-    libc.src.sched.__sched_cpufree
-    libc.src.sched.__sched_getcpucount
-    libc.src.sched.__sched_getcpuisset
-    libc.src.sched.__sched_orcpuset
-    libc.src.sched.__sched_setcpuset
-    libc.src.sched.__sched_setcpuzero
-    libc.src.sched.__sched_xorcpuset
-
-    # semaphore.h entrypoints
-    libc.src.semaphore.sem_clockwait
-    libc.src.semaphore.sem_close
-    libc.src.semaphore.sem_destroy
-    libc.src.semaphore.sem_getvalue
-    libc.src.semaphore.sem_init
-    libc.src.semaphore.sem_open
-    libc.src.semaphore.sem_post
-    libc.src.semaphore.sem_timedwait
-    libc.src.semaphore.sem_trywait
-    libc.src.semaphore.sem_unlink
-    libc.src.semaphore.sem_wait
-
-    # strings.h entrypoints
-    libc.src.strings.strcasecmp_l
-    libc.src.strings.strncasecmp_l
-
-    # setjmp.h entrypoints
-    libc.src.setjmp.longjmp
-    libc.src.setjmp.setjmp
-    libc.src.setjmp.siglongjmp
-    libc.src.setjmp.sigsetjmp
-
-    # stdio.h entrypoints
-    libc.src.stdio.clearerr
-    libc.src.stdio.clearerr_unlocked
-    libc.src.stdio.fclose
-    libc.src.stdio.fdopen
-    libc.src.stdio.feof
-    libc.src.stdio.feof_unlocked
-    libc.src.stdio.ferror
-    libc.src.stdio.ferror_unlocked
-    libc.src.stdio.fflush
-    libc.src.stdio.fgetc
-    libc.src.stdio.fgetc_unlocked
-    libc.src.stdio.fgetpos
-    libc.src.stdio.fgets
-    libc.src.stdio.fileno
-    libc.src.stdio.flockfile
-    libc.src.stdio.fmemopen
-    libc.src.stdio.fopen
-    libc.src.stdio.freopen
-    libc.src.stdio.fopencookie
-    libc.src.stdio.fputc
-    libc.src.stdio.fputs
-    libc.src.stdio.fread
-    libc.src.stdio.fread_unlocked
-    libc.src.stdio.fseek
-    libc.src.stdio.fseeko
-    libc.src.stdio.fsetpos
-    libc.src.stdio.ftell
-    libc.src.stdio.ftello
-    libc.src.stdio.funlockfile
-    libc.src.stdio.fwrite
-    libc.src.stdio.fwrite_unlocked
-    libc.src.stdio.getc
-    libc.src.stdio.getc_unlocked
-    libc.src.stdio.getchar
-    libc.src.stdio.getchar_unlocked
-    libc.src.stdio.pclose
-    libc.src.stdio.perror
-    libc.src.stdio.popen
-    libc.src.stdio.putc
-    libc.src.stdio.putchar
-    libc.src.stdio.puts
-    libc.src.stdio.rewind
-    libc.src.stdio.setbuf
-    libc.src.stdio.setvbuf
-    libc.src.stdio.stderr
-    libc.src.stdio.stdin
-    libc.src.stdio.stdout
-    libc.src.stdio.ungetc
-
-    # stdlib.h entrypoints
-    libc.src.stdlib.__cxa_thread_atexit_impl
-    libc.src.stdlib._Exit
-    libc.src.stdlib.abort
-    libc.src.stdlib.at_quick_exit
-    libc.src.stdlib.atexit
-    libc.src.stdlib.clearenv
-    libc.src.stdlib.exit
-    libc.src.stdlib.getenv
-    libc.src.stdlib.putenv
-    libc.src.stdlib.secure_getenv
-    libc.src.stdlib.setenv
-    libc.src.stdlib.system
-    libc.src.stdlib.unsetenv
-    libc.src.stdlib.quick_exit
-
-    # signal.h entrypoints
-    libc.src.signal.kill
-    libc.src.signal.pthread_kill
-    libc.src.signal.pthread_sigmask
-    libc.src.signal.raise
-    libc.src.signal.sigaction
-    libc.src.signal.sigaddset
-    libc.src.signal.sigaltstack
-    libc.src.signal.sigdelset
-    libc.src.signal.sigemptyset
-    libc.src.signal.sigfillset
-    libc.src.signal.sigismember
-    libc.src.signal.signal
-    libc.src.signal.sigprocmask
-
-    # spawn.h entrypoints
-    libc.src.spawn.posix_spawn
-    libc.src.spawn.posix_spawn_file_actions_addclose
-    libc.src.spawn.posix_spawn_file_actions_adddup2
-    libc.src.spawn.posix_spawn_file_actions_addopen
-    libc.src.spawn.posix_spawn_file_actions_destroy
-    libc.src.spawn.posix_spawn_file_actions_init
-
-    # search.h entrypoints
-    libc.src.search.hcreate
-    libc.src.search.hcreate_r
-    libc.src.search.hdestroy
-    libc.src.search.hdestroy_r
-    libc.src.search.hsearch
-    libc.src.search.hsearch_r
-    libc.src.search.insque
-    libc.src.search.lfind
-    libc.src.search.lsearch
-    libc.src.search.remque
-    libc.src.search.tdelete
-    libc.src.search.tdestroy
-    libc.src.search.tfind
-    libc.src.search.tsearch
-    libc.src.search.twalk
-    libc.src.search.twalk_r
-
-    # threads.h entrypoints
-    libc.src.threads.call_once
-    libc.src.threads.cnd_broadcast
-    libc.src.threads.cnd_destroy
-    libc.src.threads.cnd_init
-    libc.src.threads.cnd_signal
-    libc.src.threads.cnd_timedwait
-    libc.src.threads.cnd_wait
-    libc.src.threads.mtx_destroy
-    libc.src.threads.mtx_init
-    libc.src.threads.mtx_lock
-    libc.src.threads.mtx_trylock
-    libc.src.threads.mtx_unlock
-    libc.src.threads.thrd_create
-    libc.src.threads.thrd_current
-    libc.src.threads.thrd_detach
-    libc.src.threads.thrd_equal
-    libc.src.threads.thrd_exit
-    libc.src.threads.thrd_join
-    libc.src.threads.tss_create
-    libc.src.threads.tss_delete
-    libc.src.threads.tss_get
-    libc.src.threads.tss_set
-
-    # time.h entrypoints
-    libc.src.time.asctime
-    libc.src.time.asctime_r
-    libc.src.time.ctime
-    libc.src.time.ctime_r
-    libc.src.time.clock
-    libc.src.time.clock_getcpuclockid
-    libc.src.time.clock_getres
-    libc.src.time.clock_gettime
-    libc.src.time.clock_settime
-    libc.src.time.difftime
-    libc.src.time.gmtime
-    libc.src.time.gmtime_r
-    libc.src.time.mktime
-    libc.src.time.nanosleep
-    libc.src.time.time
-    libc.src.time.timespec_get
-    libc.src.time.timer_create
-    libc.src.time.timer_delete
-    libc.src.time.timer_getoverrun
-    libc.src.time.timer_gettime
-    libc.src.time.timer_settime
-
-    # unistd.h entrypoints
-    libc.src.unistd.__llvm_libc_syscall
-    libc.src.unistd._exit
-    libc.src.unistd.confstr
-    libc.src.unistd.environ
-    libc.src.unistd.execl
-    libc.src.unistd.execlp
-    libc.src.unistd.execv
-    libc.src.unistd.execvp
-    libc.src.unistd.execvpe
-    libc.src.unistd.fork
-    libc.src.unistd.getopt
-    libc.src.unistd.optarg
-    libc.src.unistd.opterr
-    libc.src.unistd.optind
-    libc.src.unistd.optopt
-    libc.src.unistd.swab
-    libc.src.unistd.sysconf
-
-    # sys/select.h entrypoints
-    libc.src.sys.select.pselect
-    libc.src.sys.select.select
-
-    # link.h entrypoints
-    libc.src.link._r_debug
-    libc.src.link.dl_iterate_phdr
-
-    # wchar.h entrypoints
-    libc.src.wchar.fgetwc
-    libc.src.wchar.fgetws
-    libc.src.wchar.fputwc
-    libc.src.wchar.fputws
-    libc.src.wchar.fwide
-    libc.src.wchar.getwc
-    libc.src.wchar.getwchar
-    libc.src.wchar.putwc
-    libc.src.wchar.putwchar
-    libc.src.wchar.ungetwc
-  )
-endif()
-
-if(LLVM_LIBC_ENABLE_EXPERIMENTAL_ENTRYPOINTS)
-  if(LLVM_LIBC_FULL_BUILD)
-    list(APPEND TARGET_LIBC_ENTRYPOINTS
-      # fnmatch.h entrypoints
-      libc.src.fnmatch.fnmatch
-
-      # glob.h entrypoints
-      libc.src.glob.glob
-      libc.src.glob.globfree
-
-      # grp.h entrypoints
-      libc.src.grp.initgroups
-      libc.src.grp.setgroups
-
-      # libintl.h entrypoints
-      libc.src.libintl.bind_textdomain_codeset
-      libc.src.libintl.bindtextdomain
-      libc.src.libintl.dcgettext
-      libc.src.libintl.dcgettext_l
-      libc.src.libintl.dcngettext
-      libc.src.libintl.dcngettext_l
-      libc.src.libintl.dgettext
-      libc.src.libintl.dgettext_l
-      libc.src.libintl.dngettext
-      libc.src.libintl.dngettext_l
-      libc.src.libintl.gettext
-      libc.src.libintl.gettext_l
-      libc.src.libintl.ngettext
-      libc.src.libintl.ngettext_l
-      libc.src.libintl.textdomain
-
-      # net/if.h entrypoints
-      libc.src.net.if_freenameindex
-      libc.src.net.if_nameindex
-
-      # netdb.h entrypoints
-      libc.src.netdb.freeaddrinfo
-      libc.src.netdb.gai_strerror
-      libc.src.netdb.getaddrinfo
-
-      # regex.h entrypoints
-      libc.src.regex.regcomp
-      libc.src.regex.regexec
-      libc.src.regex.regerror
-      libc.src.regex.regfree
-
-      # sys/ptrace.h entrypoints
-      libc.src.sys.ptrace.ptrace
-
-      # time.h entrypoints
-      libc.src.time.strptime
-      libc.src.time.tz_variables
-      libc.src.time.tzset
-
-      # unistd.h entrypoints
-      libc.src.unistd.setegid
-      libc.src.unistd.seteuid
-      libc.src.unistd.setgid
-      libc.src.unistd.setregid
-      libc.src.unistd.setresgid
-      libc.src.unistd.setresuid
-      libc.src.unistd.setreuid
-      libc.src.unistd.setuid
-
-      # wchar.h entrypoints
-      libc.src.wchar.swprintf
-    )
-  endif()
-endif()
-
-set(TARGET_LIBMVEC_ENTRYPOINTS)
-
-if(LIBC_COMPILER_HAS_EXT_VECTOR_TYPE)
-  list(APPEND TARGET_LIBMVEC_ENTRYPOINTS
-    libc.src.mathvec.acosf
-    libc.src.mathvec.acoshf
-    libc.src.mathvec.acospif
-    libc.src.mathvec.asinf
-    libc.src.mathvec.asinhf
-    libc.src.mathvec.asinpif
-    libc.src.mathvec.atanf
-    libc.src.mathvec.atanhf
-    libc.src.mathvec.cbrtf
-    libc.src.mathvec.cosf
-    libc.src.mathvec.coshf
-    libc.src.mathvec.cospif
-    libc.src.mathvec.erff
-    libc.src.mathvec.exp2f
-    libc.src.mathvec.exp2m1f
-    libc.src.mathvec.exp10f
-    libc.src.mathvec.exp10m1f
-    libc.src.mathvec.expf
-    libc.src.mathvec.expm1f
-    libc.src.mathvec.log10f
-    libc.src.mathvec.log1pf
-    libc.src.mathvec.log2f
-    libc.src.mathvec.logf
-    libc.src.mathvec.rsqrtf
-    libc.src.mathvec.sinf
-    libc.src.mathvec.sinhf
-    libc.src.mathvec.sinpif
-    libc.src.mathvec.sqrtf
-    libc.src.mathvec.tanf
-    libc.src.mathvec.tanhf
-    libc.src.mathvec.tanpif
-  )
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
-  ${TARGET_LIBC_ENTRYPOINTS}
-  ${TARGET_LIBM_ENTRYPOINTS}
-  ${TARGET_LIBMVEC_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+    # ctype.h entrypoints
+    libc.src.ctype.isalnum
+    libc.src.ctype.isalpha
+    libc.src.ctype.isascii
+    libc.src.ctype.isblank
+    libc.src.ctype.iscntrl
+    libc.src.ctype.isdigit
+    libc.src.ctype.isgraph
+    libc.src.ctype.islower
+    libc.src.ctype.isprint
+    libc.src.ctype.ispunct
+    libc.src.ctype.isspace
+    libc.src.ctype.isupper
+    libc.src.ctype.isxdigit
+    libc.src.ctype.toascii
+    libc.src.ctype.tolower
+    libc.src.ctype.toupper
+
+    # dlfcn.h entrypoints
+    libc.src.dlfcn.dlclose
+    libc.src.dlfcn.dlerror
+    libc.src.dlfcn.dlopen
+    libc.src.dlfcn.dlsym
+
+    # err.h entrypoints
+    libc.src.err.err
+    libc.src.err.verr
+    libc.src.err.errx
+    libc.src.err.verrx
+    libc.src.err.warn
+    libc.src.err.vwarn
+    libc.src.err.warnx
+    libc.src.err.vwarnx
+
+    # errno.h entrypoints
+    libc.src.errno.errno
+
+    # fcntl.h entrypoints
+    libc.src.fcntl.creat
+    libc.src.fcntl.fallocate
+    libc.src.fcntl.fcntl
+    libc.src.fcntl.open
+    libc.src.fcntl.openat
+    libc.src.fcntl.posix_fadvise
+    libc.src.fcntl.posix_fadvise64
+    libc.src.fcntl.posix_fallocate
+
+    # grp.h entrypoints
+    libc.src.grp.endgrent
+    libc.src.grp.getgrent
+    libc.src.grp.getgrgid
+    libc.src.grp.getgrgid_r
+    libc.src.grp.getgrouplist
+    libc.src.grp.getgrnam
+    libc.src.grp.getgrnam_r
+    libc.src.grp.setgrent
+
+    # poll.h entrypoints
+    libc.src.poll.poll
+    libc.src.poll.ppoll
+
+    # pwd.h entrypoints
+    libc.src.pwd.endpwent
+    libc.src.pwd.getpwent
+    libc.src.pwd.getpwent_r
+    libc.src.pwd.getpwnam
+    libc.src.pwd.getpwnam_r
+    libc.src.pwd.getpwuid
+    libc.src.pwd.getpwuid_r
+    libc.src.pwd.setpwent
+
+    # sched.h entrypoints
+    libc.src.sched.sched_get_priority_max
+    libc.src.sched.sched_get_priority_min
+    libc.src.sched.sched_getaffinity
+    libc.src.sched.sched_getcpu
+    libc.src.sched.sched_getparam
+    libc.src.sched.sched_getscheduler
+    libc.src.sched.sched_rr_get_interval
+    libc.src.sched.sched_setaffinity
+    libc.src.sched.sched_setparam
+    libc.src.sched.sched_setscheduler
+    libc.src.sched.sched_yield
+
+    # string.h entrypoints
+    libc.src.string.memccpy
+    libc.src.string.memchr
+    libc.src.string.memcmp
+    libc.src.string.memcpy
+    libc.src.string.memmem
+    libc.src.string.memmove
+    libc.src.string.mempcpy
+    libc.src.string.memrchr
+    libc.src.string.memset
+    libc.src.string.memset_explicit
+    libc.src.string.stpcpy
+    libc.src.string.stpncpy
+    libc.src.string.strcasestr
+    libc.src.string.strcat
+    libc.src.string.strchr
+    libc.src.string.strchrnul
+    libc.src.string.strcmp
+    libc.src.string.strcoll
+    libc.src.string.strcpy
+    libc.src.string.strcspn
+    libc.src.string.strdup
+    libc.src.string.strerror
+    libc.src.string.strerror_r
+    libc.src.string.strlcat
+    libc.src.string.strlcpy
+    libc.src.string.strlen
+    libc.src.string.strncat
+    libc.src.string.strncmp
+    libc.src.string.strncpy
+    libc.src.string.strndup
+    libc.src.string.strnlen
+    libc.src.string.strnlen_s
+    libc.src.string.strpbrk
+    libc.src.string.strrchr
+    libc.src.string.strsep
+    libc.src.string.strsignal
+    libc.src.string.strspn
+    libc.src.string.strstr
+    libc.src.string.strtok
+    libc.src.string.strtok_r
+    libc.src.string.strxfrm
+
+    # strings.h entrypoints
+    libc.src.strings.bcmp
+    libc.src.strings.bcopy
+    libc.src.strings.bzero
+    libc.src.strings.ffs
+    libc.src.strings.ffsl
+    libc.src.strings.ffsll
+    libc.src.strings.index
+    libc.src.strings.rindex
+    libc.src.strings.strcasecmp
+    libc.src.strings.strncasecmp
+
+    # inttypes.h entrypoints
+    libc.src.inttypes.imaxabs
+    libc.src.inttypes.imaxdiv
+    libc.src.inttypes.strtoimax
+    libc.src.inttypes.strtoumax
+
+    # libgen.h entrypoints
+    libc.src.libgen.basename
+    libc.src.libgen.dirname
+
+    # stdbit.h entrypoints
+    libc.src.stdbit.stdc_bit_ceil_uc
+    libc.src.stdbit.stdc_bit_ceil_ui
+    libc.src.stdbit.stdc_bit_ceil_ul
+    libc.src.stdbit.stdc_bit_ceil_ull
+    libc.src.stdbit.stdc_bit_ceil_us
+    libc.src.stdbit.stdc_bit_floor_uc
+    libc.src.stdbit.stdc_bit_floor_ui
+    libc.src.stdbit.stdc_bit_floor_ul
+    libc.src.stdbit.stdc_bit_floor_ull
+    libc.src.stdbit.stdc_bit_floor_us
+    libc.src.stdbit.stdc_bit_width_uc
+    libc.src.stdbit.stdc_bit_width_ui
+    libc.src.stdbit.stdc_bit_width_ul
+    libc.src.stdbit.stdc_bit_width_ull
+    libc.src.stdbit.stdc_bit_width_us
+    libc.src.stdbit.stdc_count_ones_uc
+    libc.src.stdbit.stdc_count_ones_ui
+    libc.src.stdbit.stdc_count_ones_ul
+    libc.src.stdbit.stdc_count_ones_ull
+    libc.src.stdbit.stdc_count_ones_us
+    libc.src.stdbit.stdc_count_zeros_uc
+    libc.src.stdbit.stdc_count_zeros_ui
+    libc.src.stdbit.stdc_count_zeros_ul
+    libc.src.stdbit.stdc_count_zeros_ull
+    libc.src.stdbit.stdc_count_zeros_us
+    libc.src.stdbit.stdc_first_leading_one_uc
+    libc.src.stdbit.stdc_first_leading_one_ui
+    libc.src.stdbit.stdc_first_leading_one_ul
+    libc.src.stdbit.stdc_first_leading_one_ull
+    libc.src.stdbit.stdc_first_leading_one_us
+    libc.src.stdbit.stdc_first_leading_zero_uc
+    libc.src.stdbit.stdc_first_leading_zero_ui
+    libc.src.stdbit.stdc_first_leading_zero_ul
+    libc.src.stdbit.stdc_first_leading_zero_ull
+    libc.src.stdbit.stdc_first_leading_zero_us
+    libc.src.stdbit.stdc_first_trailing_one_uc
+    libc.src.stdbit.stdc_first_trailing_one_ui
+    libc.src.stdbit.stdc_first_trailing_one_ul
+    libc.src.stdbit.stdc_first_trailing_one_ull
+    libc.src.stdbit.stdc_first_trailing_one_us
+    libc.src.stdbit.stdc_first_trailing_zero_uc
+    libc.src.stdbit.stdc_first_trailing_zero_ui
+    libc.src.stdbit.stdc_first_trailing_zero_ul
+    libc.src.stdbit.stdc_first_trailing_zero_ull
+    libc.src.stdbit.stdc_first_trailing_zero_us
+    libc.src.stdbit.stdc_has_single_bit_uc
+    libc.src.stdbit.stdc_has_single_bit_ui
+    libc.src.stdbit.stdc_has_single_bit_ul
+    libc.src.stdbit.stdc_has_single_bit_ull
+    libc.src.stdbit.stdc_has_single_bit_us
+    libc.src.stdbit.stdc_leading_ones_uc
+    libc.src.stdbit.stdc_leading_ones_ui
+    libc.src.stdbit.stdc_leading_ones_ul
+    libc.src.stdbit.stdc_leading_ones_ull
+    libc.src.stdbit.stdc_leading_ones_us
+    libc.src.stdbit.stdc_leading_zeros_uc
+    libc.src.stdbit.stdc_leading_zeros_ui
+    libc.src.stdbit.stdc_leading_zeros_ul
+    libc.src.stdbit.stdc_leading_zeros_ull
+    libc.src.stdbit.stdc_leading_zeros_us
+    libc.src.stdbit.stdc_trailing_ones_uc
+    libc.src.stdbit.stdc_trailing_ones_ui
+    libc.src.stdbit.stdc_trailing_ones_ul
+    libc.src.stdbit.stdc_trailing_ones_ull
+    libc.src.stdbit.stdc_trailing_ones_us
+    libc.src.stdbit.stdc_trailing_zeros_uc
+    libc.src.stdbit.stdc_trailing_zeros_ui
+    libc.src.stdbit.stdc_trailing_zeros_ul
+    libc.src.stdbit.stdc_trailing_zeros_ull
+    libc.src.stdbit.stdc_trailing_zeros_us
+
+    # stdlib.h entrypoints
+    libc.src.stdlib.abs
+    libc.src.stdlib.atof
+    libc.src.stdlib.atoi
+    libc.src.stdlib.atol
+    libc.src.stdlib.atoll
+    libc.src.stdlib.bsearch
+    libc.src.stdlib.div
+    libc.src.stdlib.getloadavg
+    libc.src.stdlib.labs
+    libc.src.stdlib.ldiv
+    libc.src.stdlib.llabs
+    libc.src.stdlib.lldiv
+    libc.src.stdlib.memalignment
+    libc.src.stdlib.mkdtemp
+    libc.src.stdlib.mkostemp
+    libc.src.stdlib.mkstemp
+    libc.src.stdlib.qsort
+    libc.src.stdlib.qsort_r
+    libc.src.stdlib.rand
+    libc.src.stdlib.realpath
+    libc.src.stdlib.srand
+    libc.src.stdlib.strfromd
+    libc.src.stdlib.strfromf
+    libc.src.stdlib.strfromf128
+    # TODO: long double support is buggy with clang-11. Re-enable when buildbots are upgraded.
+    # libc.src.stdlib.strfroml
+    libc.src.stdlib.strtod
+    libc.src.stdlib.strtof
+    libc.src.stdlib.strtol
+    libc.src.stdlib.strtold
+    libc.src.stdlib.strtoll
+    libc.src.stdlib.strtoul
+    libc.src.stdlib.strtoull
+
+    # stdlib.h external entrypoints
+    libc.src.stdlib.aligned_alloc
+    libc.src.stdlib.calloc
+    libc.src.stdlib.free
+    libc.src.stdlib.malloc
+    libc.src.stdlib.posix_memalign
+    libc.src.stdlib.realloc
+
+    # stdio.h entrypoints
+    libc.src.stdio.fprintf
+    libc.src.stdio.fscanf
+    libc.src.stdio.vfscanf
+    libc.src.stdio.printf
+    libc.src.stdio.remove
+    libc.src.stdio.rename
+    libc.src.stdio.renameat
+    libc.src.stdio.scanf
+    libc.src.stdio.vscanf
+    libc.src.stdio.snprintf
+    libc.src.stdio.sprintf
+    libc.src.stdio.asprintf
+    libc.src.stdio.sscanf
+    libc.src.stdio.stderr
+    libc.src.stdio.stdin
+    libc.src.stdio.stdout
+    libc.src.stdio.tmpfile
+    libc.src.stdio.tmpnam
+    libc.src.stdio.vsscanf
+    libc.src.stdio.vfprintf
+    libc.src.stdio.vprintf
+    libc.src.stdio.vsnprintf
+    libc.src.stdio.vsprintf
+    libc.src.stdio.vasprintf
+
+    # sys/epoll.h entrypoints
+    libc.src.sys.epoll.epoll_create
+    libc.src.sys.epoll.epoll_create1
+    libc.src.sys.epoll.epoll_ctl
+    libc.src.sys.epoll.epoll_pwait
+    libc.src.sys.epoll.epoll_wait
+    # TODO: Need to check if pwait2 is available before providing.
+    # https://github.com/llvm/llvm-project/issues/80060
+    # libc.src.sys.epoll.epoll_pwait2
+
+    # sys/eventfd.h entrypoints
+    libc.src.sys.eventfd.eventfd
+
+    # sys/file.h entrypoints
+    libc.src.sys.file.flock
+
+    # sys/ioctl.h entrypoints
+    libc.src.sys.ioctl.ioctl
+
+    # sys/mman.h entrypoints
+    libc.src.sys.mman.madvise
+    libc.src.sys.mman.memfd_create
+    libc.src.sys.mman.mincore
+    libc.src.sys.mman.mlock
+    libc.src.sys.mman.mlock2
+    libc.src.sys.mman.mlockall
+    libc.src.sys.mman.mmap
+    libc.src.sys.mman.mremap
+    libc.src.sys.mman.mprotect
+    libc.src.sys.mman.msync
+    libc.src.sys.mman.munlock
+    libc.src.sys.mman.munlockall
+    libc.src.sys.mman.munmap
+    libc.src.sys.mman.remap_file_pages
+    libc.src.sys.mman.posix_madvise
+    libc.src.sys.mman.shm_open
+    libc.src.sys.mman.shm_unlink
+
+    # sys/random.h entrypoints
+    libc.src.sys.random.getrandom
+    libc.src.sys.random.getentropy
+
+    # sys/resource.h entrypoints
+    libc.src.sys.resource.getpriority
+    libc.src.sys.resource.getrlimit
+    libc.src.sys.resource.getrusage
+    libc.src.sys.resource.setpriority
+    libc.src.sys.resource.setrlimit
+
+    # sys/sendfile.h entrypoints
+    libc.src.sys.sendfile.sendfile
+
+    # sys/socket.h entrypoints
+    libc.src.sys.socket.accept
+    libc.src.sys.socket.accept4
+    libc.src.sys.socket.bind
+    libc.src.sys.socket.connect
+    libc.src.sys.socket.getpeername
+    libc.src.sys.socket.getsockname
+    libc.src.sys.socket.getsockopt
+    libc.src.sys.socket.listen
+    libc.src.sys.socket.recv
+    libc.src.sys.socket.recvfrom
+    libc.src.sys.socket.send
+    libc.src.sys.socket.sendto
+    libc.src.sys.socket.setsockopt
+    libc.src.sys.socket.shutdown
+    libc.src.sys.socket.sockatmark
+    libc.src.sys.socket.socket
+    libc.src.sys.socket.socketpair
+    # TODO: These functions are not compatible with 64-bit musl. They need to
+    # be excluded if overlaying musl.
+    libc.src.sys.socket.recvmmsg
+    libc.src.sys.socket.recvmsg
+    libc.src.sys.socket.sendmmsg
+    libc.src.sys.socket.sendmsg
+
+    # sys/stat.h entrypoints
+    libc.src.sys.stat.chmod
+    libc.src.sys.stat.fchmod
+    libc.src.sys.stat.fchmodat
+    libc.src.sys.stat.fstat
+    libc.src.sys.stat.fstatat
+    libc.src.sys.stat.futimens
+    libc.src.sys.stat.lstat
+    libc.src.sys.stat.mkdir
+    libc.src.sys.stat.mkdirat
+    libc.src.sys.stat.mkfifo
+    libc.src.sys.stat.mkfifoat
+    libc.src.sys.stat.mknod
+    libc.src.sys.stat.mknodat
+    libc.src.sys.stat.stat
+    libc.src.sys.stat.umask
+    libc.src.sys.stat.utimensat
+
+    # sys/statfs.h entrypoints
+    libc.src.sys.statfs.fstatfs
+    libc.src.sys.statfs.statfs
+
+    # sys/statvfs.h entrypoints
+    libc.src.sys.statvfs.fstatvfs
+    libc.src.sys.statvfs.statvfs
+
+    # sys/sysinfo.h entrypoints
+    libc.src.sys.sysinfo.sysinfo
+
+    # sys/utsname.h entrypoints
+    libc.src.sys.utsname.uname
+
+    # sys/wait.h entrypoints
+    libc.src.sys.wait.wait
+    libc.src.sys.wait.wait4
+    libc.src.sys.wait.waitid
+    libc.src.sys.wait.waitpid
+
+    # sys/xattr.h entrypoints
+    libc.src.sys.xattr.fgetxattr
+    libc.src.sys.xattr.flistxattr
+    libc.src.sys.xattr.fsetxattr
+    libc.src.sys.xattr.getxattr
+    libc.src.sys.xattr.lgetxattr
+    libc.src.sys.xattr.listxattr
+    libc.src.sys.xattr.llistxattr
+    libc.src.sys.xattr.lsetxattr
+    libc.src.sys.xattr.setxattr
+
+    # sys/prctl.h entrypoints
+    libc.src.sys.prctl.prctl
+
+    # sys/personality.h entrypoints
+    libc.src.sys.personality.personality
+
+    # sys/auxv.h entrypoints
+    libc.src.sys.auxv.getauxval
+
+    # sys/sysmacros.h entrypoints
+    libc.src.sys.sysmacros.makedev
+    libc.src.sys.sysmacros.major
+    libc.src.sys.sysmacros.minor
+
+    # sys/inotify.h entrypoints
+    libc.src.sys.inotify.inotify_add_watch
+    libc.src.sys.inotify.inotify_init
+    libc.src.sys.inotify.inotify_init1
+    libc.src.sys.inotify.inotify_rm_watch
+
+    # termios.h entrypoints
+    libc.src.termios.cfgetispeed
+    libc.src.termios.cfgetospeed
+    libc.src.termios.cfsetispeed
+    libc.src.termios.cfsetospeed
+    libc.src.termios.tcdrain
+    libc.src.termios.tcflow
+    libc.src.termios.tcflush
+    libc.src.termios.tcgetattr
+    libc.src.termios.tcgetsid
+    libc.src.termios.tcgetwinsize
+    libc.src.termios.tcsendbreak
+    libc.src.termios.tcsetattr
+    libc.src.termios.tcsetwinsize
+
+    # unistd.h entrypoints
+    libc.src.unistd.alarm
+    libc.src.unistd.access
+    libc.src.unistd.chdir
+    libc.src.unistd.chown
+    libc.src.unistd.chroot
+    libc.src.unistd.close
+    libc.src.unistd.dup
+    libc.src.unistd.dup2
+    libc.src.unistd.dup3
+    libc.src.unistd.execle
+    libc.src.unistd.execve
+    libc.src.unistd.faccessat
+    libc.src.unistd.fchdir
+    libc.src.unistd.fchown
+    libc.src.unistd.fchownat
+    libc.src.unistd.fdatasync
+    libc.src.unistd.fexecve
+    libc.src.unistd.fpathconf
+    libc.src.unistd.fsync
+    libc.src.unistd.ftruncate
+    libc.src.unistd.getcwd
+    libc.src.unistd.getegid
+    libc.src.unistd.getentropy
+    libc.src.unistd.geteuid
+    libc.src.unistd.gethostname
+    libc.src.unistd.getpagesize
+    libc.src.unistd.getpgid
+    libc.src.unistd.getpgrp
+    libc.src.unistd.getpid
+    libc.src.unistd.getppid
+    libc.src.unistd.getsid
+    libc.src.unistd.gettid
+    libc.src.unistd.getgid
+    libc.src.unistd.getuid
+    libc.src.unistd.isatty
+    libc.src.unistd.lchown
+    libc.src.unistd.link
+    libc.src.unistd.linkat
+    libc.src.unistd.lockf
+    libc.src.unistd.lseek
+    libc.src.unistd.nice
+    libc.src.unistd.pathconf
+    libc.src.unistd.pause
+    libc.src.unistd.pipe
+    libc.src.unistd.pipe2
+    libc.src.unistd.pread
+    libc.src.unistd.pwrite
+    libc.src.unistd.read
+    libc.src.unistd.readlink
+    libc.src.unistd.readlinkat
+    libc.src.unistd.rmdir
+    libc.src.unistd.setpgid
+    libc.src.unistd.setsid
+    libc.src.unistd.sleep
+    libc.src.unistd.symlink
+    libc.src.unistd.symlinkat
+    libc.src.unistd.sync
+    libc.src.unistd.syncfs
+    libc.src.unistd.tcgetpgrp
+    libc.src.unistd.tcsetpgrp
+    libc.src.unistd.truncate
+    libc.src.unistd.unlink
+    libc.src.unistd.unlinkat
+    libc.src.unistd.usleep
+    libc.src.unistd.write
+
+    # wchar.h entrypoints
+    libc.src.wchar.wcscasecmp
+    libc.src.wchar.wcsncasecmp
+    libc.src.wchar.wcslen
+    libc.src.wchar.wctob
+
+    # wctype.h entrypoints
+    libc.src.wctype.iswalpha
+    libc.src.wctype.iswgraph
+    libc.src.wctype.iswcntrl
+    libc.src.wctype.iswdigit
+    libc.src.wctype.iswupper
+    libc.src.wctype.iswalnum
+    libc.src.wctype.iswlower
+    libc.src.wctype.iswspace
+    libc.src.wctype.iswblank
+    libc.src.wctype.iswxdigit
+    libc.src.wctype.iswpunct
+    libc.src.wctype.iswprint
+    libc.src.wctype.iswctype
+    libc.src.wctype.wctype
+    libc.src.wctype.towlower
+    libc.src.wctype.towupper
+
+    # sys/uio.h entrypoints
+    libc.src.sys.uio.writev
+    libc.src.sys.uio.readv
+
+    # sys/time.h entrypoints
+    libc.src.sys.time.setitimer
+    libc.src.sys.time.getitimer
+    libc.src.sys.time.gettimeofday
+)
+
+if(LLVM_LIBC_INCLUDE_SCUDO)
+  list(APPEND TARGET_LIBC_ENTRYPOINTS
+    # malloc.h external entrypoints
+    libc.src.stdlib.mallopt
+  )
+endif()
+
+set(TARGET_LIBM_ENTRYPOINTS
+    # complex.h entrypoints
+    libc.src.complex.cabs
+    libc.src.complex.cabsf
+    libc.src.complex.carg
+    libc.src.complex.cargf
+    libc.src.complex.creal
+    libc.src.complex.crealf
+    libc.src.complex.creall
+    libc.src.complex.cimag
+    libc.src.complex.cimagf
+    libc.src.complex.cimagl
+    libc.src.complex.conj
+    libc.src.complex.conjf
+    libc.src.complex.conjl
+    libc.src.complex.cproj
+    libc.src.complex.cprojf
+    libc.src.complex.cprojl
+
+    # fenv.h entrypoints
+    libc.src.fenv.feclearexcept
+    libc.src.fenv.fedisableexcept
+    libc.src.fenv.feenableexcept
+    libc.src.fenv.fegetenv
+    libc.src.fenv.fegetexcept
+    libc.src.fenv.fegetexceptflag
+    libc.src.fenv.fegetround
+    libc.src.fenv.feholdexcept
+    libc.src.fenv.feraiseexcept
+    libc.src.fenv.fesetenv
+    libc.src.fenv.fesetexcept
+    libc.src.fenv.fesetexceptflag
+    libc.src.fenv.fesetround
+    libc.src.fenv.fetestexcept
+    libc.src.fenv.fetestexceptflag
+    libc.src.fenv.feupdateenv
+
+    # math.h entrypoints
+    libc.src.math.acos
+    libc.src.math.acosf
+    libc.src.math.acoshf
+    libc.src.math.acospif
+    libc.src.math.asin
+    libc.src.math.asinf
+    libc.src.math.asinhf
+    libc.src.math.asinpi
+    libc.src.math.asinpif
+    libc.src.math.atan2
+    libc.src.math.atan2f
+    libc.src.math.atan2f128
+    libc.src.math.atan
+    libc.src.math.atanf
+    libc.src.math.atanhf
+    libc.src.math.canonicalize
+    libc.src.math.canonicalizef
+    libc.src.math.canonicalizel
+    libc.src.math.cbrt
+    libc.src.math.cbrtf
+    libc.src.math.cbrtbf16
+    libc.src.math.ceil
+    libc.src.math.ceilf
+    libc.src.math.ceilf128
+    libc.src.math.ceill
+    libc.src.math.copysign
+    libc.src.math.copysignf
+    libc.src.math.copysignf128
+    libc.src.math.copysignf80
+    libc.src.math.copysignl
+    libc.src.math.cos
+    libc.src.math.cosf
+    libc.src.math.coshf
+    libc.src.math.cospif
+    libc.src.math.daddl
+    libc.src.math.ddivl
+    libc.src.math.dfmal
+    libc.src.math.dmull
+    libc.src.math.dsqrtl
+    libc.src.math.dsubl
+    libc.src.math.erff
+    libc.src.math.exp
+    libc.src.math.exp10
+    libc.src.math.exp10f
+    libc.src.math.exp10m1f
+    libc.src.math.exp2
+    libc.src.math.exp2f
+    libc.src.math.exp2m1f
+    libc.src.math.expf
+    libc.src.math.expm1
+    libc.src.math.expm1f
+    libc.src.math.fabs
+    libc.src.math.fabsf
+    libc.src.math.fabsf128
+    libc.src.math.fabsf80
+    libc.src.math.fabsl
+    libc.src.math.fadd
+    libc.src.math.faddl
+    libc.src.math.fadd
+    libc.src.math.fdim
+    libc.src.math.fdimf
+    libc.src.math.fdimf128
+    libc.src.math.fdiml
+    libc.src.math.floor
+    libc.src.math.floorf
+    libc.src.math.floorf128
+    libc.src.math.floorl
+    libc.src.math.fma
+    libc.src.math.fmabf16
+    libc.src.math.fmaf
+    libc.src.math.fmax
+    libc.src.math.fmaxf
+    libc.src.math.fmaxf128
+    libc.src.math.fmaximum
+    libc.src.math.fmaximum_mag
+    libc.src.math.fmaximum_mag_num
+    libc.src.math.fmaximum_mag_numf
+    libc.src.math.fmaximum_mag_numf128
+    libc.src.math.fmaximum_mag_numl
+    libc.src.math.fmaximum_magf
+    libc.src.math.fmaximum_magf128
+    libc.src.math.fmaximum_magl
+    libc.src.math.fmaximum_num
+    libc.src.math.fmaximum_numf
+    libc.src.math.fmaximum_numf128
+    libc.src.math.fmaximum_numl
+    libc.src.math.fmaximumf
+    libc.src.math.fmaximumf128
+    libc.src.math.fmaximuml
+    libc.src.math.fmaxl
+    libc.src.math.fmin
+    libc.src.math.fminf
+    libc.src.math.fminf128
+    libc.src.math.fminimum
+    libc.src.math.fminimum_mag
+    libc.src.math.fminimum_mag_num
+    libc.src.math.fminimum_mag_numf
+    libc.src.math.fminimum_mag_numf128
+    libc.src.math.fminimum_mag_numl
+    libc.src.math.fminimum_magf
+    libc.src.math.fminimum_magf128
+    libc.src.math.fminimum_magl
+    libc.src.math.fminimum_num
+    libc.src.math.fminimum_numf
+    libc.src.math.fminimum_numf128
+    libc.src.math.fminimum_numl
+    libc.src.math.fminimumf
+    libc.src.math.fminimumf128
+    libc.src.math.fminimuml
+    libc.src.math.fminl
+    libc.src.math.fmod
+    libc.src.math.fmodf
+    libc.src.math.fmodl
+    libc.src.math.fmul
+    libc.src.math.fmull
+    libc.src.math.frexp
+    libc.src.math.frexpf
+    libc.src.math.frexpl
+    libc.src.math.fromfp
+    libc.src.math.fromfpf
+    libc.src.math.fromfpl
+    libc.src.math.fromfpx
+    libc.src.math.fromfpxf
+    libc.src.math.fromfpxl
+    libc.src.math.fsqrt
+    libc.src.math.fsqrtl
+    libc.src.math.fsub
+    libc.src.math.fsubl
+    libc.src.math.getpayload
+    libc.src.math.getpayloadf
+    libc.src.math.getpayloadl
+    libc.src.math.hypot
+    libc.src.math.hypotf
+    libc.src.math.ilogb
+    libc.src.math.ilogbf
+    libc.src.math.ilogbl
+    libc.src.math.iscanonical
+    libc.src.math.iscanonicalf
+    libc.src.math.iscanonicalf128
+    libc.src.math.iscanonicall
+    libc.src.math.isnan
+    libc.src.math.isnanf
+    libc.src.math.isnanf128
+    libc.src.math.isnanl
+    libc.src.math.issignaling
+    libc.src.math.issignalingf
+    libc.src.math.issignalingf128
+    libc.src.math.issignalingl
+    libc.src.math.ldexp
+    libc.src.math.ldexpf
+    libc.src.math.ldexpl
+    libc.src.math.lgammaf
+    libc.src.math.llogb
+    libc.src.math.llogbf
+    libc.src.math.llogbl
+    libc.src.math.llrint
+    libc.src.math.llrintf
+    libc.src.math.llrintf128
+    libc.src.math.llrintl
+    libc.src.math.llround
+    libc.src.math.llroundf
+    libc.src.math.llroundf128
+    libc.src.math.llroundl
+    libc.src.math.log
+    libc.src.math.log10
+    libc.src.math.log10f
+    libc.src.math.log1p
+    libc.src.math.log1pf
+    libc.src.math.log2
+    libc.src.math.log2f
+    libc.src.math.logb
+    libc.src.math.logbf
+    libc.src.math.logbl
+    libc.src.math.logf
+    libc.src.math.lrint
+    libc.src.math.lrintf
+    libc.src.math.lrintf128
+    libc.src.math.lrintl
+    libc.src.math.lround
+    libc.src.math.lroundf
+    libc.src.math.lroundf128
+    libc.src.math.lroundl
+    libc.src.math.modf
+    libc.src.math.modff
+    libc.src.math.modfl
+    libc.src.math.nan
+    libc.src.math.nanf
+    libc.src.math.nanl
+    libc.src.math.nearbyint
+    libc.src.math.nearbyintf
+    libc.src.math.nearbyintf128
+    libc.src.math.nearbyintl
+    libc.src.math.nextafter
+    libc.src.math.nextafterf
+    libc.src.math.nextafterl
+    libc.src.math.nextdown
+    libc.src.math.nextdownf
+    libc.src.math.nextdownl
+    libc.src.math.nexttoward
+    libc.src.math.nexttowardf
+    libc.src.math.nexttowardl
+    libc.src.math.nextup
+    libc.src.math.nextupf
+    libc.src.math.nextupl
+    libc.src.math.pow
+    libc.src.math.powf
+    libc.src.math.remainder
+    libc.src.math.remainderf
+    libc.src.math.remainderl
+    libc.src.math.remquo
+    libc.src.math.remquof
+    libc.src.math.remquol
+    libc.src.math.rint
+    libc.src.math.rintf
+    libc.src.math.rintf128
+    libc.src.math.rintl
+    libc.src.math.round
+    libc.src.math.roundeven
+    libc.src.math.roundevenf
+    libc.src.math.roundevenf128
+    libc.src.math.roundevenl
+    libc.src.math.roundf
+    libc.src.math.roundf128
+    libc.src.math.roundl
+    libc.src.math.scalbln
+    libc.src.math.scalblnf
+    libc.src.math.scalblnl
+    libc.src.math.scalbn
+    libc.src.math.scalbnf
+    libc.src.math.scalbnl
+    libc.src.math.setpayload
+    libc.src.math.setpayloadf
+    libc.src.math.setpayloadl
+    libc.src.math.setpayloadsig
+    libc.src.math.setpayloadsigf
+    libc.src.math.setpayloadsigl
+    libc.src.math.sin
+    libc.src.math.sincos
+    libc.src.math.sincosf
+    libc.src.math.sinf
+    libc.src.math.sinhf
+    libc.src.math.sinpif
+    libc.src.math.sqrt
+    libc.src.math.sqrtf
+    libc.src.math.sqrtf128
+    libc.src.math.sqrtl
+    libc.src.math.tan
+    libc.src.math.tanf
+    libc.src.math.tanhf
+    libc.src.math.tanpif
+    libc.src.math.totalorder
+    libc.src.math.totalorderf
+    libc.src.math.totalorderl
+    libc.src.math.totalordermag
+    libc.src.math.totalordermagf
+    libc.src.math.totalordermagl
+    libc.src.math.trunc
+    libc.src.math.truncf
+    libc.src.math.truncf128
+    libc.src.math.truncl
+    libc.src.math.ufromfp
+    libc.src.math.ufromfpf
+    libc.src.math.ufromfpl
+    libc.src.math.ufromfpx
+    libc.src.math.ufromfpxf
+    libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_CFLOAT16)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # complex.h C23 _Complex _Float16 entrypoints
+    libc.src.complex.crealf16
+    libc.src.complex.cimagf16
+    libc.src.complex.conjf16
+    libc.src.complex.cprojf16
+  )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT16)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C23 _Float16 entrypoints
+    libc.src.math.acoshf16
+    libc.src.math.asinpif16
+    libc.src.math.atan2f16
+    libc.src.math.canonicalizef16
+    libc.src.math.cbrtf16
+    libc.src.math.ceilf16
+    libc.src.math.copysignf16
+    libc.src.math.cospif16
+    libc.src.math.erff16
+    libc.src.math.erfcf16
+    libc.src.math.expf16
+    libc.src.math.f16add
+    libc.src.math.f16addf
+    # libc.src.math.f16addl
+    libc.src.math.f16div
+    libc.src.math.f16divf
+    # libc.src.math.f16divl
+    libc.src.math.f16fma
+    libc.src.math.f16fmaf
+    # libc.src.math.f16fmal
+    libc.src.math.f16mul
+    libc.src.math.f16mulf
+    # libc.src.math.f16mull
+    libc.src.math.f16sqrt
+    libc.src.math.f16sqrtf
+    # libc.src.math.f16sqrtl
+    libc.src.math.f16sub
+    libc.src.math.f16subf
+    # libc.src.math.f16subl
+    libc.src.math.fabsf16
+    libc.src.math.fdimf16
+    libc.src.math.fdiv
+    libc.src.math.fdivl
+    libc.src.math.ffma
+    libc.src.math.ffmal
+    libc.src.math.floorf16
+    libc.src.math.fmaf16
+    libc.src.math.fmaxf16
+    libc.src.math.fmaximum_mag_numf16
+    libc.src.math.fmaximum_magf16
+    libc.src.math.fmaximum_numf16
+    libc.src.math.fmaximumf16
+    libc.src.math.fminf16
+    libc.src.math.fminimum_mag_numf16
+    libc.src.math.fminimum_magf16
+    libc.src.math.fminimum_numf16
+    libc.src.math.fminimumf16
+    # libc.src.math.fmodf16
+    libc.src.math.frexpf16
+    libc.src.math.fromfpf16
+    libc.src.math.fromfpxf16
+    libc.src.math.getpayloadf16
+    libc.src.math.ilogbf16
+    libc.src.math.iscanonicalf16
+    libc.src.math.isnanf16
+    libc.src.math.issignalingf16
+    libc.src.math.ldexpf16
+    libc.src.math.lgammaf16
+    libc.src.math.llogbf16
+    libc.src.math.llrintf16
+    libc.src.math.llroundf16
+    libc.src.math.log10p1f16
+    libc.src.math.log2p1f16
+    libc.src.math.logbf16
+    libc.src.math.lrintf16
+    libc.src.math.lroundf16
+    # libc.src.math.modff16
+    libc.src.math.nanf16
+    libc.src.math.nearbyintf16
+    libc.src.math.nextafterf16
+    libc.src.math.nextdownf16
+    # Temporarily disable nexttowardf16 on aarch64 because the conversion
+    # between _Float16 and long double will crash clang-11.  This is fixed in
+    # clang-12 and after: https://godbolt.org/z/8ceT9454c
+    # libc.src.math.nexttowardf16
+    libc.src.math.nextupf16
+    libc.src.math.remainderf16
+    libc.src.math.remquof16
+    libc.src.math.rintf16
+    libc.src.math.roundevenf16
+    libc.src.math.roundf16
+    libc.src.math.rsqrtf
+    libc.src.math.rsqrtf16
+    libc.src.math.scalblnf16
+    libc.src.math.scalbnf16
+    libc.src.math.setpayloadf16
+    libc.src.math.setpayloadsigf16
+    libc.src.math.sinpif16
+    libc.src.math.sqrtf16
+    libc.src.math.totalorderf16
+    libc.src.math.totalordermagf16
+    libc.src.math.truncf16
+    libc.src.math.ufromfpf16
+    libc.src.math.ufromfpxf16
+  )
+
+  # if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+  #   list(APPEND TARGET_LIBM_ENTRYPOINTS
+  #     # math.h C23 mixed _Float16 and _Float128 entrypoints
+  #     libc.src.math.f16addf128
+  #     libc.src.math.f16divf128
+  #     libc.src.math.f16fmaf128
+  #     libc.src.math.f16mulf128
+  #     libc.src.math.f16sqrtf128
+  #     libc.src.math.f16subf128
+  #   )
+  # endif()
+endif()
+
+if(LIBC_TYPES_HAS_CFLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # complex.h C23 _Complex _Float128 entrypoints
+    libc.src.complex.crealf128
+    libc.src.complex.cimagf128
+    libc.src.complex.conjf128
+    libc.src.complex.cprojf128
+  )
+endif()
+
+if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C23 _Float128 entrypoints
+    libc.src.math.canonicalizef128
+    libc.src.math.daddf128
+    libc.src.math.ddivf128
+    libc.src.math.dfmaf128
+    libc.src.math.dmulf128
+    libc.src.math.dsqrtf128
+    libc.src.math.dsubf128
+    libc.src.math.faddf128
+    libc.src.math.fdivf128
+    libc.src.math.ffmaf128
+    libc.src.math.fmodf128
+    libc.src.math.fmulf128
+    libc.src.math.frexpf128
+    libc.src.math.fromfpf128
+    libc.src.math.fromfpxf128
+    libc.src.math.fsqrtf128
+    libc.src.math.fsubf128
+    libc.src.math.getpayloadf128
+    libc.src.math.ilogbf128
+    libc.src.math.ldexpf128
+    libc.src.math.llogbf128
+    libc.src.math.logbf128
+    libc.src.math.modff128
+    libc.src.math.nanf128
+    libc.src.math.nextafterf128
+    libc.src.math.nextdownf128
+    libc.src.math.nextupf128
+    libc.src.math.remainderf128
+    libc.src.math.remquof128
+    libc.src.math.scalblnf128
+    libc.src.math.scalbnf128
+    libc.src.math.setpayloadf128
+    libc.src.math.setpayloadsigf128
+    libc.src.math.totalorderf128
+    libc.src.math.totalordermagf128
+    libc.src.math.ufromfpf128
+    libc.src.math.ufromfpxf128
+  )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+  # bfloat16 entrypoints
+  libc.src.math.atanbf16
+  libc.src.math.acosbf16
+  libc.src.math.asinbf16
+  libc.src.math.bf16add
+  libc.src.math.bf16addf
+  libc.src.math.bf16addl
+  libc.src.math.bf16div
+  libc.src.math.bf16divf
+  libc.src.math.bf16divl
+  libc.src.math.bf16fma
+  libc.src.math.bf16fmaf
+  libc.src.math.bf16fmal
+  libc.src.math.bf16mul
+  libc.src.math.bf16mulf
+  libc.src.math.bf16mull
+  libc.src.math.bf16sub
+  libc.src.math.bf16subf
+  libc.src.math.bf16subl
+  libc.src.math.canonicalizebf16
+  libc.src.math.ceilbf16
+  libc.src.math.copysignbf16
+  libc.src.math.exp2bf16
+  libc.src.math.expbf16
+  libc.src.math.fabsbf16
+  libc.src.math.fdimbf16
+  libc.src.math.floorbf16
+  libc.src.math.fmaxbf16
+  libc.src.math.fmaximumbf16
+  libc.src.math.fmaximum_magbf16
+  libc.src.math.fmaximum_mag_numbf16
+  libc.src.math.fmaximum_numbf16
+  libc.src.math.fminbf16
+  libc.src.math.fminimumbf16
+  libc.src.math.fminimum_magbf16
+  libc.src.math.fminimum_mag_numbf16
+  libc.src.math.fminimum_numbf16
+  libc.src.math.fmodbf16
+  libc.src.math.frexpbf16
+  libc.src.math.fromfpbf16
+  libc.src.math.fromfpxbf16
+  libc.src.math.getpayloadbf16
+  libc.src.math.hypotbf16
+  libc.src.math.ilogbbf16
+  libc.src.math.iscanonicalbf16
+  libc.src.math.issignalingbf16
+  libc.src.math.ldexpbf16
+  libc.src.math.llogbbf16
+  libc.src.math.llrintbf16
+  libc.src.math.llroundbf16
+  libc.src.math.log_bf16
+  libc.src.math.logbbf16
+  libc.src.math.lrintbf16
+  libc.src.math.lroundbf16
+  libc.src.math.modfbf16
+  libc.src.math.nanbf16
+  libc.src.math.nearbyintbf16
+  libc.src.math.nextafterbf16
+  libc.src.math.nextdownbf16
+  libc.src.math.nexttowardbf16
+  libc.src.math.nextupbf16
+  libc.src.math.remainderbf16
+  libc.src.math.remquobf16
+  libc.src.math.rintbf16
+  libc.src.math.roundbf16
+  libc.src.math.roundevenbf16
+  libc.src.math.scalblnbf16
+  libc.src.math.scalbnbf16
+  libc.src.math.setpayloadbf16
+  libc.src.math.setpayloadsigbf16
+  libc.src.math.sqrtbf16
+  libc.src.math.tanbf16
+  libc.src.math.truncbf16
+  libc.src.math.totalorderbf16
+  libc.src.math.totalordermagbf16
+  libc.src.math.ufromfpbf16
+  libc.src.math.ufromfpxbf16
+)
+
+if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C++23 mixed bfloat16 and _Float128 entrypoints
+    libc.src.math.bf16addf128
+    libc.src.math.bf16divf128
+    libc.src.math.bf16fmaf128
+    libc.src.math.bf16mulf128
+    libc.src.math.bf16subf128
+  )
+endif()
+
+if(LLVM_LIBC_FULL_BUILD)
+  list(APPEND TARGET_LIBC_ENTRYPOINTS
+    # assert.h entrypoints
+    libc.src.assert.__assert_fail
+
+    # compiler entrypoints (no corresponding header)
+    libc.src.compiler.__stack_chk_fail
+
+    # dirent.h entrypoints
+    libc.src.dirent.alphasort
+    libc.src.dirent.closedir
+    libc.src.dirent.dirfd
+    libc.src.dirent.opendir
+    libc.src.dirent.readdir
+    libc.src.dirent.scandir
+    libc.src.dirent.fdopendir
+
+    # errno.h entrypoints
+    libc.src.errno.program_invocation_name
+    libc.src.errno.program_invocation_short_name
+
+    # arpa/inet.h entrypoints
+    libc.src.arpa.inet.htonl
+    libc.src.arpa.inet.htons
+    libc.src.arpa.inet.inet_addr
+    libc.src.arpa.inet.inet_aton
+    libc.src.arpa.inet.inet_ntoa
+    libc.src.arpa.inet.inet_ntop
+    libc.src.arpa.inet.inet_pton
+    libc.src.arpa.inet.ntohl
+    libc.src.arpa.inet.ntohs
+
+    # net/if.h entrypoints
+    libc.src.net.if_indextoname
+    libc.src.net.if_nametoindex
+
+    # netinet/ether.h entrypoints
+    libc.src.netinet.ether.ether_ntoa
+    libc.src.netinet.ether.ether_ntoa_r
+
+    # netinet/in.h entrypoints
+    libc.src.netinet.in6addr_any
+    libc.src.netinet.in6addr_loopback
+
+    # pthread.h entrypoints
+    libc.src.pthread.__pthread_cleanup_pop
+    libc.src.pthread.__pthread_cleanup_push
+    libc.src.pthread.pthread_atfork
+    libc.src.pthread.pthread_attr_destroy
+    libc.src.pthread.pthread_attr_getdetachstate
+    libc.src.pthread.pthread_attr_getguardsize
+    libc.src.pthread.pthread_attr_getinheritsched
+    libc.src.pthread.pthread_attr_getschedparam
+    libc.src.pthread.pthread_attr_getschedpolicy
+    libc.src.pthread.pthread_attr_getscope
+    libc.src.pthread.pthread_attr_getstack
+    libc.src.pthread.pthread_attr_getstacksize
+    libc.src.pthread.pthread_attr_init
+    libc.src.pthread.pthread_attr_setdetachstate
+    libc.src.pthread.pthread_attr_setguardsize
+    libc.src.pthread.pthread_attr_setinheritsched
+    libc.src.pthread.pthread_attr_setschedparam
+    libc.src.pthread.pthread_attr_setschedpolicy
+    libc.src.pthread.pthread_attr_setscope
+    libc.src.pthread.pthread_attr_setstack
+    libc.src.pthread.pthread_attr_setstacksize
+    libc.src.pthread.pthread_condattr_destroy
+    libc.src.pthread.pthread_condattr_getclock
+    libc.src.pthread.pthread_condattr_getpshared
+    libc.src.pthread.pthread_condattr_init
+    libc.src.pthread.pthread_condattr_setclock
+    libc.src.pthread.pthread_condattr_setpshared
+    libc.src.pthread.pthread_cond_broadcast
+    libc.src.pthread.pthread_cond_clockwait
+    libc.src.pthread.pthread_cond_destroy
+    libc.src.pthread.pthread_cond_init
+    libc.src.pthread.pthread_cond_signal
+    libc.src.pthread.pthread_cond_timedwait
+    libc.src.pthread.pthread_cond_wait
+    libc.src.pthread.pthread_create
+    libc.src.pthread.pthread_detach
+    libc.src.pthread.pthread_equal
+    libc.src.pthread.pthread_exit
+    libc.src.pthread.pthread_getattr_np
+    libc.src.pthread.pthread_getname_np
+    libc.src.pthread.pthread_getschedparam
+    libc.src.pthread.pthread_getspecific
+    libc.src.pthread.pthread_getstack_np
+    libc.src.pthread.pthread_getthreadid_np
+    libc.src.pthread.pthread_getunique_np
+    libc.src.pthread.pthread_join
+    libc.src.pthread.pthread_key_create
+    libc.src.pthread.pthread_key_delete
+    libc.src.pthread.pthread_mutex_destroy
+    libc.src.pthread.pthread_mutex_init
+    libc.src.pthread.pthread_mutex_lock
+    libc.src.pthread.pthread_mutex_trylock
+    libc.src.pthread.pthread_mutex_unlock
+    libc.src.pthread.pthread_mutexattr_destroy
+    libc.src.pthread.pthread_mutexattr_getpshared
+    libc.src.pthread.pthread_mutexattr_getrobust
+    libc.src.pthread.pthread_mutexattr_gettype
+    libc.src.pthread.pthread_mutexattr_init
+    libc.src.pthread.pthread_mutexattr_setpshared
+    libc.src.pthread.pthread_mutexattr_setrobust
+    libc.src.pthread.pthread_mutexattr_settype
+    libc.src.pthread.pthread_once
+    libc.src.pthread.pthread_rwlock_clockrdlock
+    libc.src.pthread.pthread_rwlock_clockwrlock
+    libc.src.pthread.pthread_rwlock_destroy
+    libc.src.pthread.pthread_rwlock_init
+    libc.src.pthread.pthread_rwlock_rdlock
+    libc.src.pthread.pthread_rwlock_timedrdlock
+    libc.src.pthread.pthread_rwlock_timedwrlock
+    libc.src.pthread.pthread_rwlock_tryrdlock
+    libc.src.pthread.pthread_rwlock_trywrlock
+    libc.src.pthread.pthread_rwlock_unlock
+    libc.src.pthread.pthread_rwlock_wrlock
+    libc.src.pthread.pthread_rwlockattr_destroy
+    libc.src.pthread.pthread_rwlockattr_getkind_np
+    libc.src.pthread.pthread_rwlockattr_getpshared
+    libc.src.pthread.pthread_rwlockattr_init
+    libc.src.pthread.pthread_rwlockattr_setkind_np
+    libc.src.pthread.pthread_rwlockattr_setpshared
+    libc.src.pthread.pthread_spin_destroy
+    libc.src.pthread.pthread_spin_init
+    libc.src.pthread.pthread_spin_lock
+    libc.src.pthread.pthread_spin_trylock
+    libc.src.pthread.pthread_spin_unlock
+    libc.src.pthread.pthread_self
+    libc.src.pthread.pthread_setname_np
+    libc.src.pthread.pthread_setschedparam
+    libc.src.pthread.pthread_setspecific
+
+    # sched.h entrypoints
+    libc.src.sched.clone
+    libc.src.sched.__sched_andcpuset
+    libc.src.sched.__sched_clrcpuset
+    libc.src.sched.__sched_cpualloc
+    libc.src.sched.__sched_cpuequal
+    libc.src.sched.__sched_cpufree
+    libc.src.sched.__sched_getcpucount
+    libc.src.sched.__sched_getcpuisset
+    libc.src.sched.__sched_orcpuset
+    libc.src.sched.__sched_setcpuset
+    libc.src.sched.__sched_setcpuzero
+    libc.src.sched.__sched_xorcpuset
+
+    # semaphore.h entrypoints
+    libc.src.semaphore.sem_clockwait
+    libc.src.semaphore.sem_close
+    libc.src.semaphore.sem_destroy
+    libc.src.semaphore.sem_getvalue
+    libc.src.semaphore.sem_init
+    libc.src.semaphore.sem_open
+    libc.src.semaphore.sem_post
+    libc.src.semaphore.sem_timedwait
+    libc.src.semaphore.sem_trywait
+    libc.src.semaphore.sem_unlink
+    libc.src.semaphore.sem_wait
+
+    # strings.h entrypoints
+    libc.src.strings.strcasecmp_l
+    libc.src.strings.strncasecmp_l
+
+    # setjmp.h entrypoints
+    libc.src.setjmp.longjmp
+    libc.src.setjmp.setjmp
+    libc.src.setjmp.siglongjmp
+    libc.src.setjmp.sigsetjmp
+
+    # stdio.h entrypoints
+    libc.src.stdio.clearerr
+    libc.src.stdio.clearerr_unlocked
+    libc.src.stdio.fclose
+    libc.src.stdio.fdopen
+    libc.src.stdio.feof
+    libc.src.stdio.feof_unlocked
+    libc.src.stdio.ferror
+    libc.src.stdio.ferror_unlocked
+    libc.src.stdio.fflush
+    libc.src.stdio.fgetc
+    libc.src.stdio.fgetc_unlocked
+    libc.src.stdio.fgetpos
+    libc.src.stdio.fgets
+    libc.src.stdio.fileno
+    libc.src.stdio.flockfile
+    libc.src.stdio.fmemopen
+    libc.src.stdio.fopen
+    libc.src.stdio.freopen
+    libc.src.stdio.fopencookie
+    libc.src.stdio.fputc
+    libc.src.stdio.fputs
+    libc.src.stdio.fread
+    libc.src.stdio.fread_unlocked
+    libc.src.stdio.fseek
+    libc.src.stdio.fseeko
+    libc.src.stdio.fsetpos
+    libc.src.stdio.ftell
+    libc.src.stdio.ftello
+    libc.src.stdio.funlockfile
+    libc.src.stdio.fwrite
+    libc.src.stdio.fwrite_unlocked
+    libc.src.stdio.getc
+    libc.src.stdio.getc_unlocked
+    libc.src.stdio.getchar
+    libc.src.stdio.getchar_unlocked
+    libc.src.stdio.pclose
+    libc.src.stdio.perror
+    libc.src.stdio.popen
+    libc.src.stdio.putc
+    libc.src.stdio.putchar
+    libc.src.stdio.puts
+    libc.src.stdio.rewind
+    libc.src.stdio.setbuf
+    libc.src.stdio.setvbuf
+    libc.src.stdio.stderr
+    libc.src.stdio.stdin
+    libc.src.stdio.stdout
+    libc.src.stdio.ungetc
+
+    # stdlib.h entrypoints
+    libc.src.stdlib.__cxa_thread_atexit_impl
+    libc.src.stdlib._Exit
+    libc.src.stdlib.abort
+    libc.src.stdlib.at_quick_exit
+    libc.src.stdlib.atexit
+    libc.src.stdlib.clearenv
+    libc.src.stdlib.exit
+    libc.src.stdlib.getenv
+    libc.src.stdlib.putenv
+    libc.src.stdlib.secure_getenv
+    libc.src.stdlib.setenv
+    libc.src.stdlib.system
+    libc.src.stdlib.unsetenv
+    libc.src.stdlib.quick_exit
+
+    # signal.h entrypoints
+    libc.src.signal.kill
+    libc.src.signal.pthread_kill
+    libc.src.signal.pthread_sigmask
+    libc.src.signal.raise
+    libc.src.signal.sigaction
+    libc.src.signal.sigaddset
+    libc.src.signal.sigaltstack
+    libc.src.signal.sigdelset
+    libc.src.signal.sigemptyset
+    libc.src.signal.sigfillset
+    libc.src.signal.sigismember
+    libc.src.signal.signal
+    libc.src.signal.sigprocmask
+
+    # spawn.h entrypoints
+    libc.src.spawn.posix_spawn
+    libc.src.spawn.posix_spawn_file_actions_addclose
+    libc.src.spawn.posix_spawn_file_actions_adddup2
+    libc.src.spawn.posix_spawn_file_actions_addopen
+    libc.src.spawn.posix_spawn_file_actions_destroy
+    libc.src.spawn.posix_spawn_file_actions_init
+
+    # search.h entrypoints
+    libc.src.search.hcreate
+    libc.src.search.hcreate_r
+    libc.src.search.hdestroy
+    libc.src.search.hdestroy_r
+    libc.src.search.hsearch
+    libc.src.search.hsearch_r
+    libc.src.search.insque
+    libc.src.search.lfind
+    libc.src.search.lsearch
+    libc.src.search.remque
+    libc.src.search.tdelete
+    libc.src.search.tdestroy
+    libc.src.search.tfind
+    libc.src.search.tsearch
+    libc.src.search.twalk
+    libc.src.search.twalk_r
+
+    # threads.h entrypoints
+    libc.src.threads.call_once
+    libc.src.threads.cnd_broadcast
+    libc.src.threads.cnd_destroy
+    libc.src.threads.cnd_init
+    libc.src.threads.cnd_signal
+    libc.src.threads.cnd_timedwait
+    libc.src.threads.cnd_wait
+    libc.src.threads.mtx_destroy
+    libc.src.threads.mtx_init
+    libc.src.threads.mtx_lock
+    libc.src.threads.mtx_trylock
+    libc.src.threads.mtx_unlock
+    libc.src.threads.thrd_create
+    libc.src.threads.thrd_current
+    libc.src.threads.thrd_detach
+    libc.src.threads.thrd_equal
+    libc.src.threads.thrd_exit
+    libc.src.threads.thrd_join
+    libc.src.threads.tss_create
+    libc.src.threads.tss_delete
+    libc.src.threads.tss_get
+    libc.src.threads.tss_set
+
+    # time.h entrypoints
+    libc.src.time.asctime
+    libc.src.time.asctime_r
+    libc.src.time.ctime
+    libc.src.time.ctime_r
+    libc.src.time.clock
+    libc.src.time.clock_getcpuclockid
+    libc.src.time.clock_getres
+    libc.src.time.clock_gettime
+    libc.src.time.clock_settime
+    libc.src.time.difftime
+    libc.src.time.gmtime
+    libc.src.time.gmtime_r
+    libc.src.time.mktime
+    libc.src.time.nanosleep
+    libc.src.time.time
+    libc.src.time.timespec_get
+    libc.src.time.timer_create
+    libc.src.time.timer_delete
+    libc.src.time.timer_getoverrun
+    libc.src.time.timer_gettime
+    libc.src.time.timer_settime
+
+    # unistd.h entrypoints
+    libc.src.unistd.__llvm_libc_syscall
+    libc.src.unistd._exit
+    libc.src.unistd.confstr
+    libc.src.unistd.environ
+    libc.src.unistd.execl
+    libc.src.unistd.execlp
+    libc.src.unistd.execv
+    libc.src.unistd.execvp
+    libc.src.unistd.execvpe
+    libc.src.unistd.fork
+    libc.src.unistd.getopt
+    libc.src.unistd.optarg
+    libc.src.unistd.opterr
+    libc.src.unistd.optind
+    libc.src.unistd.optopt
+    libc.src.unistd.swab
+    libc.src.unistd.sysconf
+
+    # sys/select.h entrypoints
+    libc.src.sys.select.pselect
+    libc.src.sys.select.select
+
+    # link.h entrypoints
+    libc.src.link._r_debug
+    libc.src.link.dl_iterate_phdr
+
+    # wchar.h entrypoints
+    libc.src.wchar.fgetwc
+    libc.src.wchar.fgetws
+    libc.src.wchar.fputwc
+    libc.src.wchar.fputws
+    libc.src.wchar.fwide
+    libc.src.wchar.getwc
+    libc.src.wchar.getwchar
+    libc.src.wchar.putwc
+    libc.src.wchar.putwchar
+    libc.src.wchar.ungetwc
+  )
+endif()
+
+if(LLVM_LIBC_ENABLE_EXPERIMENTAL_ENTRYPOINTS)
+  if(LLVM_LIBC_FULL_BUILD)
+    list(APPEND TARGET_LIBC_ENTRYPOINTS
+      # fnmatch.h entrypoints
+      libc.src.fnmatch.fnmatch
+
+      # glob.h entrypoints
+      libc.src.glob.glob
+      libc.src.glob.globfree
+
+      # grp.h entrypoints
+      libc.src.grp.initgroups
+      libc.src.grp.setgroups
+
+      # libintl.h entrypoints
+      libc.src.libintl.bind_textdomain_codeset
+      libc.src.libintl.bindtextdomain
+      libc.src.libintl.dcgettext
+      libc.src.libintl.dcgettext_l
+      libc.src.libintl.dcngettext
+      libc.src.libintl.dcngettext_l
+      libc.src.libintl.dgettext
+      libc.src.libintl.dgettext_l
+      libc.src.libintl.dngettext
+      libc.src.libintl.dngettext_l
+      libc.src.libintl.gettext
+      libc.src.libintl.gettext_l
+      libc.src.libintl.ngettext
+      libc.src.libintl.ngettext_l
+      libc.src.libintl.textdomain
+
+      # net/if.h entrypoints
+      libc.src.net.if_freenameindex
+      libc.src.net.if_nameindex
+
+      # netdb.h entrypoints
+      libc.src.netdb.freeaddrinfo
+      libc.src.netdb.gai_strerror
+      libc.src.netdb.getaddrinfo
+
+      # regex.h entrypoints
+      libc.src.regex.regcomp
+      libc.src.regex.regexec
+      libc.src.regex.regerror
+      libc.src.regex.regfree
+
+      # sys/ptrace.h entrypoints
+      libc.src.sys.ptrace.ptrace
+
+      # time.h entrypoints
+      libc.src.time.strptime
+      libc.src.time.tz_variables
+      libc.src.time.tzset
+
+      # unistd.h entrypoints
+      libc.src.unistd.setegid
+      libc.src.unistd.seteuid
+      libc.src.unistd.setgid
+      libc.src.unistd.setregid
+      libc.src.unistd.setresgid
+      libc.src.unistd.setresuid
+      libc.src.unistd.setreuid
+      libc.src.unistd.setuid
+
+      # wchar.h entrypoints
+      libc.src.wchar.swprintf
+    )
+  endif()
+endif()
+
+set(TARGET_LIBMVEC_ENTRYPOINTS)
+
+if(LIBC_COMPILER_HAS_EXT_VECTOR_TYPE)
+  list(APPEND TARGET_LIBMVEC_ENTRYPOINTS
+    libc.src.mathvec.acosf
+    libc.src.mathvec.acoshf
+    libc.src.mathvec.acospif
+    libc.src.mathvec.asinf
+    libc.src.mathvec.asinhf
+    libc.src.mathvec.asinpif
+    libc.src.mathvec.atanf
+    libc.src.mathvec.atanhf
+    libc.src.mathvec.cbrtf
+    libc.src.mathvec.cosf
+    libc.src.mathvec.coshf
+    libc.src.mathvec.cospif
+    libc.src.mathvec.erff
+    libc.src.mathvec.exp2f
+    libc.src.mathvec.exp2m1f
+    libc.src.mathvec.exp10f
+    libc.src.mathvec.exp10m1f
+    libc.src.mathvec.expf
+    libc.src.mathvec.expm1f
+    libc.src.mathvec.log10f
+    libc.src.mathvec.log1pf
+    libc.src.mathvec.log2f
+    libc.src.mathvec.logf
+    libc.src.mathvec.rsqrtf
+    libc.src.mathvec.sinf
+    libc.src.mathvec.sinhf
+    libc.src.mathvec.sinpif
+    libc.src.mathvec.sqrtf
+    libc.src.mathvec.tanf
+    libc.src.mathvec.tanhf
+    libc.src.mathvec.tanpif
+  )
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+  ${TARGET_LIBC_ENTRYPOINTS}
+  ${TARGET_LIBM_ENTRYPOINTS}
+  ${TARGET_LIBMVEC_ENTRYPOINTS}
+)
diff --git a/libc/config/linux/arm/entrypoints.txt b/libc/config/linux/arm/entrypoints.txt
index e35ca9c7211ab3..06838dcc8e86a9 100644
--- a/libc/config/linux/arm/entrypoints.txt
+++ b/libc/config/linux/arm/entrypoints.txt
@@ -1,770 +1,772 @@
-set(TARGET_LIBC_ENTRYPOINTS
-    # ctype.h entrypoints
-    libc.src.ctype.isalnum
-    libc.src.ctype.isalpha
-    libc.src.ctype.isascii
-    libc.src.ctype.isblank
-    libc.src.ctype.iscntrl
-    libc.src.ctype.isdigit
-    libc.src.ctype.isgraph
-    libc.src.ctype.islower
-    libc.src.ctype.isprint
-    libc.src.ctype.ispunct
-    libc.src.ctype.isspace
-    libc.src.ctype.isupper
-    libc.src.ctype.isxdigit
-    libc.src.ctype.toascii
-    libc.src.ctype.tolower
-    libc.src.ctype.toupper
-
-    # err.h entrypoints
-    libc.src.err.err
-    libc.src.err.verr
-    libc.src.err.errx
-    libc.src.err.verrx
-    libc.src.err.warn
-    libc.src.err.vwarn
-    libc.src.err.warnx
-    libc.src.err.vwarnx
-
-    # errno.h entrypoints
-    libc.src.errno.errno
-
-    # grp.h entrypoints
-    libc.src.grp.endgrent
-    libc.src.grp.getgrent
-    libc.src.grp.getgrgid
-    libc.src.grp.getgrgid_r
-    libc.src.grp.getgrouplist
-    libc.src.grp.getgrnam
-    libc.src.grp.getgrnam_r
-    libc.src.grp.setgrent
-
-    # poll.h entrypoints
-    libc.src.poll.poll
-
-    # pwd.h entrypoints
-    libc.src.pwd.endpwent
-    libc.src.pwd.getpwent
-    libc.src.pwd.getpwent_r
-    libc.src.pwd.getpwnam
-    libc.src.pwd.getpwnam_r
-    libc.src.pwd.getpwuid
-    libc.src.pwd.getpwuid_r
-    libc.src.pwd.setpwent
-
-    # string.h entrypoints
-    libc.src.string.memccpy
-    libc.src.string.memchr
-    libc.src.string.memcmp
-    libc.src.string.memcpy
-    libc.src.string.memmem
-    libc.src.string.memmove
-    libc.src.string.mempcpy
-    libc.src.string.memrchr
-    libc.src.string.memset
-    libc.src.string.stpcpy
-    libc.src.string.stpncpy
-    libc.src.string.strcasestr
-    libc.src.string.strcat
-    libc.src.string.strchr
-    libc.src.string.strchrnul
-    libc.src.string.strcmp
-    libc.src.string.strcpy
-    libc.src.string.strcspn
-    libc.src.string.strlcat
-    libc.src.string.strlcpy
-    libc.src.string.strlen
-    libc.src.string.strncat
-    libc.src.string.strncmp
-    libc.src.string.strncpy
-    libc.src.string.strnlen
-    libc.src.string.strnlen_s
-    libc.src.string.strpbrk
-    libc.src.string.strrchr
-    libc.src.string.strsep
-    libc.src.string.strspn
-    libc.src.string.strstr
-    libc.src.string.strtok
-    libc.src.string.strtok_r
-
-    # strings.h entrypoints
-    libc.src.strings.bcmp
-    libc.src.strings.bcopy
-    libc.src.strings.bzero
-    libc.src.strings.index
-    libc.src.strings.rindex
-    libc.src.strings.strcasecmp
-    libc.src.strings.strncasecmp
-
-    # inttypes.h entrypoints
-    libc.src.inttypes.imaxabs
-    libc.src.inttypes.imaxdiv
-    libc.src.inttypes.strtoimax
-    libc.src.inttypes.strtoumax
-
-    # libgen.h entrypoints
-    libc.src.libgen.basename
-    libc.src.libgen.dirname
-
-    # stdbit.h entrypoints
-    libc.src.stdbit.stdc_bit_ceil_uc
-    libc.src.stdbit.stdc_bit_ceil_ui
-    libc.src.stdbit.stdc_bit_ceil_ul
-    libc.src.stdbit.stdc_bit_ceil_ull
-    libc.src.stdbit.stdc_bit_ceil_us
-    libc.src.stdbit.stdc_bit_floor_uc
-    libc.src.stdbit.stdc_bit_floor_ui
-    libc.src.stdbit.stdc_bit_floor_ul
-    libc.src.stdbit.stdc_bit_floor_ull
-    libc.src.stdbit.stdc_bit_floor_us
-    libc.src.stdbit.stdc_bit_width_uc
-    libc.src.stdbit.stdc_bit_width_ui
-    libc.src.stdbit.stdc_bit_width_ul
-    libc.src.stdbit.stdc_bit_width_ull
-    libc.src.stdbit.stdc_bit_width_us
-    libc.src.stdbit.stdc_count_ones_uc
-    libc.src.stdbit.stdc_count_ones_ui
-    libc.src.stdbit.stdc_count_ones_ul
-    libc.src.stdbit.stdc_count_ones_ull
-    libc.src.stdbit.stdc_count_ones_us
-    libc.src.stdbit.stdc_count_zeros_uc
-    libc.src.stdbit.stdc_count_zeros_ui
-    libc.src.stdbit.stdc_count_zeros_ul
-    libc.src.stdbit.stdc_count_zeros_ull
-    libc.src.stdbit.stdc_count_zeros_us
-    libc.src.stdbit.stdc_first_leading_one_uc
-    libc.src.stdbit.stdc_first_leading_one_ui
-    libc.src.stdbit.stdc_first_leading_one_ul
-    libc.src.stdbit.stdc_first_leading_one_ull
-    libc.src.stdbit.stdc_first_leading_one_us
-    libc.src.stdbit.stdc_first_leading_zero_uc
-    libc.src.stdbit.stdc_first_leading_zero_ui
-    libc.src.stdbit.stdc_first_leading_zero_ul
-    libc.src.stdbit.stdc_first_leading_zero_ull
-    libc.src.stdbit.stdc_first_leading_zero_us
-    libc.src.stdbit.stdc_first_trailing_one_uc
-    libc.src.stdbit.stdc_first_trailing_one_ui
-    libc.src.stdbit.stdc_first_trailing_one_ul
-    libc.src.stdbit.stdc_first_trailing_one_ull
-    libc.src.stdbit.stdc_first_trailing_one_us
-    libc.src.stdbit.stdc_first_trailing_zero_uc
-    libc.src.stdbit.stdc_first_trailing_zero_ui
-    libc.src.stdbit.stdc_first_trailing_zero_ul
-    libc.src.stdbit.stdc_first_trailing_zero_ull
-    libc.src.stdbit.stdc_first_trailing_zero_us
-    libc.src.stdbit.stdc_has_single_bit_uc
-    libc.src.stdbit.stdc_has_single_bit_ui
-    libc.src.stdbit.stdc_has_single_bit_ul
-    libc.src.stdbit.stdc_has_single_bit_ull
-    libc.src.stdbit.stdc_has_single_bit_us
-    libc.src.stdbit.stdc_leading_ones_uc
-    libc.src.stdbit.stdc_leading_ones_ui
-    libc.src.stdbit.stdc_leading_ones_ul
-    libc.src.stdbit.stdc_leading_ones_ull
-    libc.src.stdbit.stdc_leading_ones_us
-    libc.src.stdbit.stdc_leading_zeros_uc
-    libc.src.stdbit.stdc_leading_zeros_ui
-    libc.src.stdbit.stdc_leading_zeros_ul
-    libc.src.stdbit.stdc_leading_zeros_ull
-    libc.src.stdbit.stdc_leading_zeros_us
-    libc.src.stdbit.stdc_trailing_ones_uc
-    libc.src.stdbit.stdc_trailing_ones_ui
-    libc.src.stdbit.stdc_trailing_ones_ul
-    libc.src.stdbit.stdc_trailing_ones_ull
-    libc.src.stdbit.stdc_trailing_ones_us
-    libc.src.stdbit.stdc_trailing_zeros_uc
-    libc.src.stdbit.stdc_trailing_zeros_ui
-    libc.src.stdbit.stdc_trailing_zeros_ul
-    libc.src.stdbit.stdc_trailing_zeros_ull
-    libc.src.stdbit.stdc_trailing_zeros_us
-
-    # stdlib.h entrypoints
-    libc.src.stdlib.abs
-    libc.src.stdlib.atof
-    libc.src.stdlib.atoi
-    libc.src.stdlib.atol
-    libc.src.stdlib.atoll
-    libc.src.stdlib.bsearch
-    libc.src.stdlib.div
-    libc.src.stdlib.getloadavg
-    libc.src.stdlib.labs
-    libc.src.stdlib.ldiv
-    libc.src.stdlib.llabs
-    libc.src.stdlib.lldiv
-    libc.src.stdlib.memalignment
-    libc.src.stdlib.qsort
-    libc.src.stdlib.qsort_r
-    libc.src.stdlib.strtod
-    libc.src.stdlib.strtof
-    libc.src.stdlib.strtol
-    libc.src.stdlib.strtold
-    libc.src.stdlib.strtoll
-    libc.src.stdlib.strtoul
-    libc.src.stdlib.strtoull
-
-    # stdlib.h external entrypoints
-    libc.src.stdlib.aligned_alloc
-    libc.src.stdlib.free
-    libc.src.stdlib.malloc
-
-    # stdio.h entrypoints
-    libc.src.stdio.tmpfile
-
-    # sys/eventfd.h entrypoints
-    libc.src.sys.eventfd.eventfd
-
-    # sys/inotify.h entrypoints
-    libc.src.sys.inotify.inotify_add_watch
-    libc.src.sys.inotify.inotify_init
-    libc.src.sys.inotify.inotify_init1
-    libc.src.sys.inotify.inotify_rm_watch
-
-    # sys/ioctl.h entrypoints
-    libc.src.sys.ioctl.ioctl
-
-    # sys/mman.h entrypoints
-    libc.src.sys.mman.memfd_create
-    libc.src.sys.mman.mmap
-    libc.src.sys.mman.munmap
-
-    # sys/prctl.h entrypoints
-    libc.src.sys.prctl.prctl
-
-    # sys/sysinfo.h entrypoints
-    # Disabled due to QEMU test failures.
-    # libc.src.sys.sysinfo.sysinfo
-
-    # sys/personality.h entrypoints
-    libc.src.sys.personality.personality
-
-    # sys/epoll.h entrypoints
-    # Disabled due to epoll_wait syscalls not being available on this platform.
-    # libc.src.sys.epoll.epoll_wait
-    # libc.src.sys.epoll.epoll_pwait
-    # libc.src.sys.epoll.epoll_pwait2
-
-    # sys/time.h entrypoints
-    libc.src.sys.time.setitimer
-    libc.src.sys.time.getitimer
-
-    # unistd.h entrypoints
-    libc.src.unistd.alarm
-    libc.src.unistd.access
-    libc.src.unistd.chdir
-    libc.src.unistd.chown
-    libc.src.unistd.chroot
-    libc.src.unistd.close
-    libc.src.unistd.dup
-    libc.src.unistd.dup2
-    libc.src.unistd.dup3
-    libc.src.unistd.execve
-    libc.src.unistd.faccessat
-    libc.src.unistd.fchdir
-    libc.src.unistd.fchown
-    libc.src.unistd.fchownat
-    libc.src.unistd.fdatasync
-    libc.src.unistd.fexecve
-    libc.src.unistd.fsync
-    libc.src.unistd.ftruncate
-    libc.src.unistd.getcwd
-    libc.src.unistd.getegid
-    libc.src.unistd.getentropy
-    libc.src.unistd.geteuid
-    libc.src.unistd.gethostname
-    libc.src.unistd.getpagesize
-    libc.src.unistd.getpgid
-    libc.src.unistd.getpgrp
-    libc.src.unistd.getpid
-    libc.src.unistd.getppid
-    libc.src.unistd.getsid
-    libc.src.unistd.gettid
-    libc.src.unistd.getgid
-    libc.src.unistd.getuid
-    libc.src.unistd.isatty
-    libc.src.unistd.lchown
-    libc.src.unistd.link
-    libc.src.unistd.linkat
-    libc.src.unistd.lockf
-    libc.src.unistd.lseek
-    libc.src.unistd.nice
-    libc.src.unistd.pause
-    libc.src.unistd.pipe
-    libc.src.unistd.pipe2
-    libc.src.unistd.read
-    libc.src.unistd.readlink
-    libc.src.unistd.readlinkat
-    libc.src.unistd.rmdir
-    libc.src.unistd.setpgid
-    libc.src.unistd.setsid
-    libc.src.unistd.symlink
-    libc.src.unistd.symlinkat
-    libc.src.unistd.sync
-    libc.src.unistd.syncfs
-    libc.src.unistd.tcgetpgrp
-    libc.src.unistd.tcsetpgrp
-    libc.src.unistd.truncate
-    libc.src.unistd.unlink
-    libc.src.unistd.unlinkat
-    libc.src.unistd.write
-
-    # wctype.h entrypoints
-    libc.src.wctype.iswalpha
-    libc.src.wctype.iswgraph
-    libc.src.wctype.iswcntrl
-    libc.src.wctype.iswdigit
-    libc.src.wctype.iswupper
-    libc.src.wctype.iswalnum
-    libc.src.wctype.iswlower
-    libc.src.wctype.iswspace
-    libc.src.wctype.iswblank
-    libc.src.wctype.iswxdigit
-    libc.src.wctype.iswpunct
-    libc.src.wctype.iswprint
-    libc.src.wctype.iswctype
-    libc.src.wctype.wctype
-)
-
-if(LLVM_LIBC_FULL_BUILD)
-  list(APPEND TARGET_LIBC_ENTRYPOINTS
-    # search.h entrypoints
-    libc.src.search.lfind
-
-    # setjmp.h entrypoints
-    libc.src.setjmp.longjmp
-    libc.src.setjmp.setjmp
-    libc.src.setjmp.siglongjmp
-    libc.src.setjmp.sigsetjmp
-
-    # dirent.h entrypoints
-    libc.src.dirent.alphasort
-    libc.src.dirent.closedir
-    libc.src.dirent.dirfd
-    libc.src.dirent.opendir
-    libc.src.dirent.readdir
-    libc.src.dirent.fdopendir
-
-    # unistd.h entrypoints
-    libc.src.unistd.confstr
-    libc.src.unistd.sysconf
-  )
-endif()
-
-if(LLVM_LIBC_INCLUDE_SCUDO)
-  list(APPEND TARGET_LIBC_ENTRYPOINTS
-    # malloc.h external entrypoints
-    libc.src.stdlib.mallopt
-  )
-endif()
-
-set(TARGET_LIBM_ENTRYPOINTS
-    # complex.h entrypoints
-    libc.src.complex.cabs
-    libc.src.complex.cabsf
-    libc.src.complex.carg
-    libc.src.complex.cargf
-    libc.src.complex.creal
-    libc.src.complex.crealf
-    libc.src.complex.creall
-    libc.src.complex.cimag
-    libc.src.complex.cimagf
-    libc.src.complex.cimagl
-    libc.src.complex.conj
-    libc.src.complex.conjf
-    libc.src.complex.conjl
-    libc.src.complex.cproj
-    libc.src.complex.cprojf
-    libc.src.complex.cprojl
-
-    # fenv.h entrypoints
-    libc.src.fenv.feclearexcept
-    libc.src.fenv.fedisableexcept
-    libc.src.fenv.feenableexcept
-    libc.src.fenv.fegetenv
-    libc.src.fenv.fegetexcept
-    libc.src.fenv.fegetexceptflag
-    libc.src.fenv.fegetround
-    libc.src.fenv.feholdexcept
-    libc.src.fenv.feraiseexcept
-    libc.src.fenv.fesetenv
-    libc.src.fenv.fesetexcept
-    libc.src.fenv.fesetexceptflag
-    libc.src.fenv.fesetround
-    libc.src.fenv.fetestexcept
-    libc.src.fenv.fetestexceptflag
-    libc.src.fenv.feupdateenv
-
-    # math.h entrypoints
-    libc.src.math.acos
-    libc.src.math.acosf
-    libc.src.math.acoshf
-    libc.src.math.acospif
-    libc.src.math.asin
-    libc.src.math.asinf
-    libc.src.math.asinhf
-    libc.src.math.asinpi
-    libc.src.math.asinpif
-    libc.src.math.atan2
-    libc.src.math.atan2f
-    libc.src.math.atan2f128
-    libc.src.math.atan
-    libc.src.math.atanf
-    libc.src.math.atanhf
-    libc.src.math.cbrt
-    libc.src.math.cbrtf
-    libc.src.math.cbrtbf16
-    libc.src.math.ceil
-    libc.src.math.ceilf
-    libc.src.math.ceilf128
-    libc.src.math.ceill
-    libc.src.math.copysign
-    libc.src.math.copysignf
-    libc.src.math.copysignf128
-    libc.src.math.copysignl
-    libc.src.math.cos
-    libc.src.math.cosf
-    libc.src.math.coshf
-    libc.src.math.dfmal
-    libc.src.math.dsqrtl
-    libc.src.math.erff
-    libc.src.math.exp
-    libc.src.math.exp10
-    libc.src.math.exp10f
-    libc.src.math.exp2
-    libc.src.math.exp2f
-    libc.src.math.expf
-    libc.src.math.expm1
-    libc.src.math.expm1f
-    libc.src.math.fabs
-    libc.src.math.fabsf
-    libc.src.math.fabsf128
-    libc.src.math.fabsl
-    libc.src.math.fadd
-    libc.src.math.faddl
-    libc.src.math.fadd
-    libc.src.math.fdim
-    libc.src.math.fdimf
-    libc.src.math.fdimf128
-    libc.src.math.fdiml
-    libc.src.math.fdiv
-    libc.src.math.fdivl
-    libc.src.math.ffma
-    libc.src.math.ffmal
-    libc.src.math.floor
-    libc.src.math.floorf
-    libc.src.math.floorf128
-    libc.src.math.floorl
-    libc.src.math.fma
-    libc.src.math.fmabf16
-    libc.src.math.fmaf
-    libc.src.math.fmax
-    libc.src.math.fmaxf
-    libc.src.math.fmaxf128
-    libc.src.math.fmaximum
-    libc.src.math.fmaximum_mag
-    libc.src.math.fmaximum_mag_num
-    libc.src.math.fmaximum_mag_numf
-    libc.src.math.fmaximum_mag_numf128
-    libc.src.math.fmaximum_mag_numl
-    libc.src.math.fmaximum_magf
-    libc.src.math.fmaximum_magf128
-    libc.src.math.fmaximum_magl
-    libc.src.math.fmaximum_num
-    libc.src.math.fmaximum_numf
-    libc.src.math.fmaximum_numf128
-    libc.src.math.fmaximum_numl
-    libc.src.math.fmaximumf
-    libc.src.math.fmaximumf128
-    libc.src.math.fmaximuml
-    libc.src.math.fmaxl
-    libc.src.math.fmin
-    libc.src.math.fminf
-    libc.src.math.fminf128
-    libc.src.math.fminimum
-    libc.src.math.fminimum_mag
-    libc.src.math.fminimum_mag_num
-    libc.src.math.fminimum_mag_numf
-    libc.src.math.fminimum_mag_numf128
-    libc.src.math.fminimum_mag_numl
-    libc.src.math.fminimum_magf
-    libc.src.math.fminimum_magf128
-    libc.src.math.fminimum_magl
-    libc.src.math.fminimum_num
-    libc.src.math.fminimum_numf
-    libc.src.math.fminimum_numf128
-    libc.src.math.fminimum_numl
-    libc.src.math.fminimumf
-    libc.src.math.fminimumf128
-    libc.src.math.fminimuml
-    libc.src.math.fminl
-    libc.src.math.fmod
-    libc.src.math.fmodf
-    libc.src.math.fmul
-    libc.src.math.frexp
-    libc.src.math.frexpf
-    libc.src.math.frexpl
-    libc.src.math.fromfp
-    libc.src.math.fromfpf
-    libc.src.math.fromfpl
-    libc.src.math.fromfpx
-    libc.src.math.fromfpxf
-    libc.src.math.fromfpxl
-    libc.src.math.fsub
-    libc.src.math.fsubl
-    libc.src.math.getpayload
-    libc.src.math.getpayloadf
-    libc.src.math.getpayloadl
-    libc.src.math.hypot
-    libc.src.math.hypotf
-    libc.src.math.ilogb
-    libc.src.math.ilogbf
-    libc.src.math.ilogbl
-    libc.src.math.iscanonicalf128
-    libc.src.math.isnanf128
-    libc.src.math.issignalingf128
-    libc.src.math.ldexp
-    libc.src.math.ldexpf
-    libc.src.math.ldexpl
-    libc.src.math.lgammaf
-    libc.src.math.llogb
-    libc.src.math.llogbf
-    libc.src.math.llogbl
-    libc.src.math.llrint
-    libc.src.math.llrintf
-    libc.src.math.llrintf128
-    libc.src.math.llrintl
-    libc.src.math.llround
-    libc.src.math.llroundf
-    libc.src.math.llroundf128
-    libc.src.math.llroundl
-    libc.src.math.log
-    libc.src.math.log10
-    libc.src.math.log10f
-    libc.src.math.log1p
-    libc.src.math.log1pf
-    libc.src.math.log2
-    libc.src.math.log2f
-    libc.src.math.logb
-    libc.src.math.logbf
-    libc.src.math.logbl
-    libc.src.math.logf
-    libc.src.math.lrint
-    libc.src.math.lrintf
-    libc.src.math.lrintf128
-    libc.src.math.lrintl
-    libc.src.math.lround
-    libc.src.math.lroundf
-    libc.src.math.lroundf128
-    libc.src.math.lroundl
-    libc.src.math.modf
-    libc.src.math.modff
-    libc.src.math.modfl
-    libc.src.math.nan
-    libc.src.math.nanf
-    libc.src.math.nanl
-    libc.src.math.nearbyint
-    libc.src.math.nearbyintf
-    libc.src.math.nearbyintf128
-    libc.src.math.nearbyintl
-    libc.src.math.nextafter
-    libc.src.math.nextafterf
-    libc.src.math.nextafterl
-    libc.src.math.nextdown
-    libc.src.math.nextdownf
-    libc.src.math.nextdownl
-    libc.src.math.nexttoward
-    libc.src.math.nexttowardf
-    libc.src.math.nexttowardl
-    libc.src.math.nextup
-    libc.src.math.nextupf
-    libc.src.math.nextupl
-    libc.src.math.pow
-    libc.src.math.powf
-    libc.src.math.remainder
-    libc.src.math.remainderf
-    libc.src.math.remainderl
-    libc.src.math.remquo
-    libc.src.math.remquof
-    libc.src.math.remquol
-    libc.src.math.rint
-    libc.src.math.rintf
-    libc.src.math.rintf128
-    libc.src.math.rintl
-    libc.src.math.round
-    libc.src.math.roundevenf128
-    libc.src.math.roundf
-    libc.src.math.roundf128
-    libc.src.math.roundl
-    libc.src.math.scalbln
-    libc.src.math.scalblnf
-    libc.src.math.scalblnl
-    libc.src.math.scalbn
-    libc.src.math.scalbnf
-    libc.src.math.scalbnl
-    libc.src.math.setpayload
-    libc.src.math.setpayloadf
-    libc.src.math.setpayloadl
-    libc.src.math.setpayloadsig
-    libc.src.math.setpayloadsigf
-    libc.src.math.setpayloadsigl
-    libc.src.math.sin
-    libc.src.math.sincos
-    libc.src.math.sincosf
-    libc.src.math.sinf
-    libc.src.math.sinhf
-    libc.src.math.sqrt
-    libc.src.math.sqrtf
-    libc.src.math.sqrtf128
-    libc.src.math.sqrtl
-    libc.src.math.tan
-    libc.src.math.tanf
-    libc.src.math.tanhf
-    libc.src.math.tanpif
-    libc.src.math.totalorder
-    libc.src.math.totalorderf
-    libc.src.math.totalorderl
-    libc.src.math.totalordermag
-    libc.src.math.totalordermagf
-    libc.src.math.totalordermagl
-    libc.src.math.trunc
-    libc.src.math.truncf
-    libc.src.math.truncf128
-    libc.src.math.truncl
-    libc.src.math.ufromfp
-    libc.src.math.ufromfpf
-    libc.src.math.ufromfpl
-    libc.src.math.ufromfpx
-    libc.src.math.ufromfpxf
-    libc.src.math.ufromfpxl
-)
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
-  # bfloat16 entrypoints
-  libc.src.math.atanbf16
-  libc.src.math.acosbf16
-  libc.src.math.asinbf16
-  libc.src.math.bf16add
-  libc.src.math.bf16addf
-  libc.src.math.bf16addl
-  libc.src.math.bf16div
-  libc.src.math.bf16divf
-  libc.src.math.bf16divl
-  libc.src.math.bf16fma
-  libc.src.math.bf16fmaf
-  libc.src.math.bf16fmal
-  libc.src.math.bf16mul
-  libc.src.math.bf16mulf
-  libc.src.math.bf16mull
-  libc.src.math.bf16sub
-  libc.src.math.bf16subf
-  libc.src.math.bf16subl
-  libc.src.math.canonicalizebf16
-  libc.src.math.ceilbf16
-  libc.src.math.copysignbf16
-  libc.src.math.exp2bf16
-  libc.src.math.expbf16
-  libc.src.math.fabsbf16
-  libc.src.math.fdimbf16
-  libc.src.math.floorbf16
-  libc.src.math.fmaxbf16
-  libc.src.math.fmaximumbf16
-  libc.src.math.fmaximum_magbf16
-  libc.src.math.fmaximum_mag_numbf16
-  libc.src.math.fmaximum_numbf16
-  libc.src.math.fminbf16
-  libc.src.math.fminimumbf16
-  libc.src.math.fminimum_magbf16
-  libc.src.math.fminimum_mag_numbf16
-  libc.src.math.fminimum_numbf16
-  libc.src.math.fmodbf16
-  libc.src.math.frexpbf16
-  libc.src.math.fromfpbf16
-  libc.src.math.fromfpxbf16
-  libc.src.math.getpayloadbf16
-  libc.src.math.hypotbf16
-  libc.src.math.ilogbbf16
-  libc.src.math.iscanonicalbf16
-  libc.src.math.issignalingbf16
-  libc.src.math.ldexpbf16
-  libc.src.math.llogbbf16
-  libc.src.math.llrintbf16
-  libc.src.math.llroundbf16
-  libc.src.math.log_bf16
-  libc.src.math.logbbf16
-  libc.src.math.lrintbf16
-  libc.src.math.lroundbf16
-  libc.src.math.modfbf16
-  libc.src.math.nanbf16
-  libc.src.math.nearbyintbf16
-  libc.src.math.nextafterbf16
-  libc.src.math.nextdownbf16
-  libc.src.math.nexttowardbf16
-  libc.src.math.nextupbf16
-  libc.src.math.remainderbf16
-  libc.src.math.remquobf16
-  libc.src.math.rintbf16
-  libc.src.math.roundbf16
-  libc.src.math.roundevenbf16
-  libc.src.math.scalblnbf16
-  libc.src.math.scalbnbf16
-  libc.src.math.setpayloadbf16
-  libc.src.math.setpayloadsigbf16
-  libc.src.math.sqrtbf16
-  libc.src.math.tanbf16
-  libc.src.math.truncbf16
-  libc.src.math.totalorderbf16
-  libc.src.math.totalordermagbf16
-  libc.src.math.ufromfpbf16
-  libc.src.math.ufromfpxbf16
-)
-
-if(LLVM_LIBC_ENABLE_EXPERIMENTAL_ENTRYPOINTS)
-  if(LLVM_LIBC_FULL_BUILD)
-    list(APPEND TARGET_LIBC_ENTRYPOINTS
-      # grp.h entrypoints
-      libc.src.grp.initgroups
-      libc.src.grp.setgroups
-
-      # libintl.h entrypoints
-      libc.src.libintl.bind_textdomain_codeset
-      libc.src.libintl.bindtextdomain
-      libc.src.libintl.dcgettext
-      libc.src.libintl.dcgettext_l
-      libc.src.libintl.dcngettext
-      libc.src.libintl.dcngettext_l
-      libc.src.libintl.dgettext
-      libc.src.libintl.dgettext_l
-      libc.src.libintl.dngettext
-      libc.src.libintl.dngettext_l
-      libc.src.libintl.gettext
-      libc.src.libintl.gettext_l
-      libc.src.libintl.ngettext
-      libc.src.libintl.ngettext_l
-      libc.src.libintl.textdomain
-
-      # regex.h entrypoints
-      libc.src.regex.regcomp
-      libc.src.regex.regexec
-      libc.src.regex.regerror
-      libc.src.regex.regfree
-
-      # sys/ptrace.h entrypoints
-      libc.src.sys.ptrace.ptrace
-
-      # unistd.h entrypoints
-      libc.src.unistd.setegid
-      libc.src.unistd.seteuid
-      libc.src.unistd.setgid
-      libc.src.unistd.setregid
-      libc.src.unistd.setresgid
-      libc.src.unistd.setresuid
-      libc.src.unistd.setreuid
-      libc.src.unistd.setuid
-    )
-  endif()
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
-  ${TARGET_LIBC_ENTRYPOINTS}
-  ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+    # ctype.h entrypoints
+    libc.src.ctype.isalnum
+    libc.src.ctype.isalpha
+    libc.src.ctype.isascii
+    libc.src.ctype.isblank
+    libc.src.ctype.iscntrl
+    libc.src.ctype.isdigit
+    libc.src.ctype.isgraph
+    libc.src.ctype.islower
+    libc.src.ctype.isprint
+    libc.src.ctype.ispunct
+    libc.src.ctype.isspace
+    libc.src.ctype.isupper
+    libc.src.ctype.isxdigit
+    libc.src.ctype.toascii
+    libc.src.ctype.tolower
+    libc.src.ctype.toupper
+
+    # err.h entrypoints
+    libc.src.err.err
+    libc.src.err.verr
+    libc.src.err.errx
+    libc.src.err.verrx
+    libc.src.err.warn
+    libc.src.err.vwarn
+    libc.src.err.warnx
+    libc.src.err.vwarnx
+
+    # errno.h entrypoints
+    libc.src.errno.errno
+
+    # grp.h entrypoints
+    libc.src.grp.endgrent
+    libc.src.grp.getgrent
+    libc.src.grp.getgrgid
+    libc.src.grp.getgrgid_r
+    libc.src.grp.getgrouplist
+    libc.src.grp.getgrnam
+    libc.src.grp.getgrnam_r
+    libc.src.grp.setgrent
+
+    # poll.h entrypoints
+    libc.src.poll.poll
+
+    # pwd.h entrypoints
+    libc.src.pwd.endpwent
+    libc.src.pwd.getpwent
+    libc.src.pwd.getpwent_r
+    libc.src.pwd.getpwnam
+    libc.src.pwd.getpwnam_r
+    libc.src.pwd.getpwuid
+    libc.src.pwd.getpwuid_r
+    libc.src.pwd.setpwent
+
+    # string.h entrypoints
+    libc.src.string.memccpy
+    libc.src.string.memchr
+    libc.src.string.memcmp
+    libc.src.string.memcpy
+    libc.src.string.memmem
+    libc.src.string.memmove
+    libc.src.string.mempcpy
+    libc.src.string.memrchr
+    libc.src.string.memset
+    libc.src.string.stpcpy
+    libc.src.string.stpncpy
+    libc.src.string.strcasestr
+    libc.src.string.strcat
+    libc.src.string.strchr
+    libc.src.string.strchrnul
+    libc.src.string.strcmp
+    libc.src.string.strcpy
+    libc.src.string.strcspn
+    libc.src.string.strlcat
+    libc.src.string.strlcpy
+    libc.src.string.strlen
+    libc.src.string.strncat
+    libc.src.string.strncmp
+    libc.src.string.strncpy
+    libc.src.string.strnlen
+    libc.src.string.strnlen_s
+    libc.src.string.strpbrk
+    libc.src.string.strrchr
+    libc.src.string.strsep
+    libc.src.string.strspn
+    libc.src.string.strstr
+    libc.src.string.strtok
+    libc.src.string.strtok_r
+
+    # strings.h entrypoints
+    libc.src.strings.bcmp
+    libc.src.strings.bcopy
+    libc.src.strings.bzero
+    libc.src.strings.index
+    libc.src.strings.rindex
+    libc.src.strings.strcasecmp
+    libc.src.strings.strncasecmp
+
+    # inttypes.h entrypoints
+    libc.src.inttypes.imaxabs
+    libc.src.inttypes.imaxdiv
+    libc.src.inttypes.strtoimax
+    libc.src.inttypes.strtoumax
+
+    # libgen.h entrypoints
+    libc.src.libgen.basename
+    libc.src.libgen.dirname
+
+    # stdbit.h entrypoints
+    libc.src.stdbit.stdc_bit_ceil_uc
+    libc.src.stdbit.stdc_bit_ceil_ui
+    libc.src.stdbit.stdc_bit_ceil_ul
+    libc.src.stdbit.stdc_bit_ceil_ull
+    libc.src.stdbit.stdc_bit_ceil_us
+    libc.src.stdbit.stdc_bit_floor_uc
+    libc.src.stdbit.stdc_bit_floor_ui
+    libc.src.stdbit.stdc_bit_floor_ul
+    libc.src.stdbit.stdc_bit_floor_ull
+    libc.src.stdbit.stdc_bit_floor_us
+    libc.src.stdbit.stdc_bit_width_uc
+    libc.src.stdbit.stdc_bit_width_ui
+    libc.src.stdbit.stdc_bit_width_ul
+    libc.src.stdbit.stdc_bit_width_ull
+    libc.src.stdbit.stdc_bit_width_us
+    libc.src.stdbit.stdc_count_ones_uc
+    libc.src.stdbit.stdc_count_ones_ui
+    libc.src.stdbit.stdc_count_ones_ul
+    libc.src.stdbit.stdc_count_ones_ull
+    libc.src.stdbit.stdc_count_ones_us
+    libc.src.stdbit.stdc_count_zeros_uc
+    libc.src.stdbit.stdc_count_zeros_ui
+    libc.src.stdbit.stdc_count_zeros_ul
+    libc.src.stdbit.stdc_count_zeros_ull
+    libc.src.stdbit.stdc_count_zeros_us
+    libc.src.stdbit.stdc_first_leading_one_uc
+    libc.src.stdbit.stdc_first_leading_one_ui
+    libc.src.stdbit.stdc_first_leading_one_ul
+    libc.src.stdbit.stdc_first_leading_one_ull
+    libc.src.stdbit.stdc_first_leading_one_us
+    libc.src.stdbit.stdc_first_leading_zero_uc
+    libc.src.stdbit.stdc_first_leading_zero_ui
+    libc.src.stdbit.stdc_first_leading_zero_ul
+    libc.src.stdbit.stdc_first_leading_zero_ull
+    libc.src.stdbit.stdc_first_leading_zero_us
+    libc.src.stdbit.stdc_first_trailing_one_uc
+    libc.src.stdbit.stdc_first_trailing_one_ui
+    libc.src.stdbit.stdc_first_trailing_one_ul
+    libc.src.stdbit.stdc_first_trailing_one_ull
+    libc.src.stdbit.stdc_first_trailing_one_us
+    libc.src.stdbit.stdc_first_trailing_zero_uc
+    libc.src.stdbit.stdc_first_trailing_zero_ui
+    libc.src.stdbit.stdc_first_trailing_zero_ul
+    libc.src.stdbit.stdc_first_trailing_zero_ull
+    libc.src.stdbit.stdc_first_trailing_zero_us
+    libc.src.stdbit.stdc_has_single_bit_uc
+    libc.src.stdbit.stdc_has_single_bit_ui
+    libc.src.stdbit.stdc_has_single_bit_ul
+    libc.src.stdbit.stdc_has_single_bit_ull
+    libc.src.stdbit.stdc_has_single_bit_us
+    libc.src.stdbit.stdc_leading_ones_uc
+    libc.src.stdbit.stdc_leading_ones_ui
+    libc.src.stdbit.stdc_leading_ones_ul
+    libc.src.stdbit.stdc_leading_ones_ull
+    libc.src.stdbit.stdc_leading_ones_us
+    libc.src.stdbit.stdc_leading_zeros_uc
+    libc.src.stdbit.stdc_leading_zeros_ui
+    libc.src.stdbit.stdc_leading_zeros_ul
+    libc.src.stdbit.stdc_leading_zeros_ull
+    libc.src.stdbit.stdc_leading_zeros_us
+    libc.src.stdbit.stdc_trailing_ones_uc
+    libc.src.stdbit.stdc_trailing_ones_ui
+    libc.src.stdbit.stdc_trailing_ones_ul
+    libc.src.stdbit.stdc_trailing_ones_ull
+    libc.src.stdbit.stdc_trailing_ones_us
+    libc.src.stdbit.stdc_trailing_zeros_uc
+    libc.src.stdbit.stdc_trailing_zeros_ui
+    libc.src.stdbit.stdc_trailing_zeros_ul
+    libc.src.stdbit.stdc_trailing_zeros_ull
+    libc.src.stdbit.stdc_trailing_zeros_us
+
+    # stdlib.h entrypoints
+    libc.src.stdlib.abs
+    libc.src.stdlib.atof
+    libc.src.stdlib.atoi
+    libc.src.stdlib.atol
+    libc.src.stdlib.atoll
+    libc.src.stdlib.bsearch
+    libc.src.stdlib.div
+    libc.src.stdlib.getloadavg
+    libc.src.stdlib.labs
+    libc.src.stdlib.ldiv
+    libc.src.stdlib.llabs
+    libc.src.stdlib.lldiv
+    libc.src.stdlib.memalignment
+    libc.src.stdlib.qsort
+    libc.src.stdlib.qsort_r
+    libc.src.stdlib.strtod
+    libc.src.stdlib.strtof
+    libc.src.stdlib.strtol
+    libc.src.stdlib.strtold
+    libc.src.stdlib.strtoll
+    libc.src.stdlib.strtoul
+    libc.src.stdlib.strtoull
+
+    # stdlib.h external entrypoints
+    libc.src.stdlib.aligned_alloc
+    libc.src.stdlib.free
+    libc.src.stdlib.malloc
+
+    # stdio.h entrypoints
+    libc.src.stdio.tmpfile
+
+    # sys/eventfd.h entrypoints
+    libc.src.sys.eventfd.eventfd
+
+    # sys/inotify.h entrypoints
+    libc.src.sys.inotify.inotify_add_watch
+    libc.src.sys.inotify.inotify_init
+    libc.src.sys.inotify.inotify_init1
+    libc.src.sys.inotify.inotify_rm_watch
+
+    # sys/ioctl.h entrypoints
+    libc.src.sys.ioctl.ioctl
+
+    # sys/mman.h entrypoints
+    libc.src.sys.mman.memfd_create
+    libc.src.sys.mman.mmap
+    libc.src.sys.mman.munmap
+
+    # sys/prctl.h entrypoints
+    libc.src.sys.prctl.prctl
+
+    # sys/sysinfo.h entrypoints
+    # Disabled due to QEMU test failures.
+    # libc.src.sys.sysinfo.sysinfo
+
+    # sys/personality.h entrypoints
+    libc.src.sys.personality.personality
+
+    # sys/epoll.h entrypoints
+    # Disabled due to epoll_wait syscalls not being available on this platform.
+    # libc.src.sys.epoll.epoll_wait
+    # libc.src.sys.epoll.epoll_pwait
+    # libc.src.sys.epoll.epoll_pwait2
+
+    # sys/time.h entrypoints
+    libc.src.sys.time.setitimer
+    libc.src.sys.time.getitimer
+
+    # unistd.h entrypoints
+    libc.src.unistd.alarm
+    libc.src.unistd.access
+    libc.src.unistd.chdir
+    libc.src.unistd.chown
+    libc.src.unistd.chroot
+    libc.src.unistd.close
+    libc.src.unistd.dup
+    libc.src.unistd.dup2
+    libc.src.unistd.dup3
+    libc.src.unistd.execve
+    libc.src.unistd.faccessat
+    libc.src.unistd.fchdir
+    libc.src.unistd.fchown
+    libc.src.unistd.fchownat
+    libc.src.unistd.fdatasync
+    libc.src.unistd.fexecve
+    libc.src.unistd.fsync
+    libc.src.unistd.ftruncate
+    libc.src.unistd.getcwd
+    libc.src.unistd.getegid
+    libc.src.unistd.getentropy
+    libc.src.unistd.geteuid
+    libc.src.unistd.gethostname
+    libc.src.unistd.getpagesize
+    libc.src.unistd.getpgid
+    libc.src.unistd.getpgrp
+    libc.src.unistd.getpid
+    libc.src.unistd.getppid
+    libc.src.unistd.getsid
+    libc.src.unistd.gettid
+    libc.src.unistd.getgid
+    libc.src.unistd.getuid
+    libc.src.unistd.isatty
+    libc.src.unistd.lchown
+    libc.src.unistd.link
+    libc.src.unistd.linkat
+    libc.src.unistd.lockf
+    libc.src.unistd.lseek
+    libc.src.unistd.nice
+    libc.src.unistd.pause
+    libc.src.unistd.pipe
+    libc.src.unistd.pipe2
+    libc.src.unistd.read
+    libc.src.unistd.readlink
+    libc.src.unistd.readlinkat
+    libc.src.unistd.rmdir
+    libc.src.unistd.setpgid
+    libc.src.unistd.setsid
+    libc.src.unistd.symlink
+    libc.src.unistd.symlinkat
+    libc.src.unistd.sync
+    libc.src.unistd.syncfs
+    libc.src.unistd.tcgetpgrp
+    libc.src.unistd.tcsetpgrp
+    libc.src.unistd.truncate
+    libc.src.unistd.unlink
+    libc.src.unistd.unlinkat
+    libc.src.unistd.write
+
+    # wctype.h entrypoints
+    libc.src.wctype.iswalpha
+    libc.src.wctype.iswgraph
+    libc.src.wctype.iswcntrl
+    libc.src.wctype.iswdigit
+    libc.src.wctype.iswupper
+    libc.src.wctype.iswalnum
+    libc.src.wctype.iswlower
+    libc.src.wctype.iswspace
+    libc.src.wctype.iswblank
+    libc.src.wctype.iswxdigit
+    libc.src.wctype.iswpunct
+    libc.src.wctype.iswprint
+    libc.src.wctype.iswctype
+    libc.src.wctype.wctype
+)
+
+if(LLVM_LIBC_FULL_BUILD)
+  list(APPEND TARGET_LIBC_ENTRYPOINTS
+    # search.h entrypoints
+    libc.src.search.lfind
+
+    # setjmp.h entrypoints
+    libc.src.setjmp.longjmp
+    libc.src.setjmp.setjmp
+    libc.src.setjmp.siglongjmp
+    libc.src.setjmp.sigsetjmp
+
+    # dirent.h entrypoints
+    libc.src.dirent.alphasort
+    libc.src.dirent.closedir
+    libc.src.dirent.dirfd
+    libc.src.dirent.opendir
+    libc.src.dirent.readdir
+    libc.src.dirent.fdopendir
+
+    # unistd.h entrypoints
+    libc.src.unistd.confstr
+    libc.src.unistd.sysconf
+  )
+endif()
+
+if(LLVM_LIBC_INCLUDE_SCUDO)
+  list(APPEND TARGET_LIBC_ENTRYPOINTS
+    # malloc.h external entrypoints
+    libc.src.stdlib.mallopt
+  )
+endif()
+
+set(TARGET_LIBM_ENTRYPOINTS
+    # complex.h entrypoints
+    libc.src.complex.cabs
+    libc.src.complex.cabsf
+    libc.src.complex.carg
+    libc.src.complex.cargf
+    libc.src.complex.creal
+    libc.src.complex.crealf
+    libc.src.complex.creall
+    libc.src.complex.cimag
+    libc.src.complex.cimagf
+    libc.src.complex.cimagl
+    libc.src.complex.conj
+    libc.src.complex.conjf
+    libc.src.complex.conjl
+    libc.src.complex.cproj
+    libc.src.complex.cprojf
+    libc.src.complex.cprojl
+
+    # fenv.h entrypoints
+    libc.src.fenv.feclearexcept
+    libc.src.fenv.fedisableexcept
+    libc.src.fenv.feenableexcept
+    libc.src.fenv.fegetenv
+    libc.src.fenv.fegetexcept
+    libc.src.fenv.fegetexceptflag
+    libc.src.fenv.fegetround
+    libc.src.fenv.feholdexcept
+    libc.src.fenv.feraiseexcept
+    libc.src.fenv.fesetenv
+    libc.src.fenv.fesetexcept
+    libc.src.fenv.fesetexceptflag
+    libc.src.fenv.fesetround
+    libc.src.fenv.fetestexcept
+    libc.src.fenv.fetestexceptflag
+    libc.src.fenv.feupdateenv
+
+    # math.h entrypoints
+    libc.src.math.acos
+    libc.src.math.acosf
+    libc.src.math.acoshf
+    libc.src.math.acospif
+    libc.src.math.asin
+    libc.src.math.asinf
+    libc.src.math.asinhf
+    libc.src.math.asinpi
+    libc.src.math.asinpif
+    libc.src.math.atan2
+    libc.src.math.atan2f
+    libc.src.math.atan2f128
+    libc.src.math.atan
+    libc.src.math.atanf
+    libc.src.math.atanhf
+    libc.src.math.cbrt
+    libc.src.math.cbrtf
+    libc.src.math.cbrtbf16
+    libc.src.math.ceil
+    libc.src.math.ceilf
+    libc.src.math.ceilf128
+    libc.src.math.ceill
+    libc.src.math.copysign
+    libc.src.math.copysignf
+    libc.src.math.copysignf128
+    libc.src.math.copysignf80
+    libc.src.math.copysignl
+    libc.src.math.cos
+    libc.src.math.cosf
+    libc.src.math.coshf
+    libc.src.math.dfmal
+    libc.src.math.dsqrtl
+    libc.src.math.erff
+    libc.src.math.exp
+    libc.src.math.exp10
+    libc.src.math.exp10f
+    libc.src.math.exp2
+    libc.src.math.exp2f
+    libc.src.math.expf
+    libc.src.math.expm1
+    libc.src.math.expm1f
+    libc.src.math.fabs
+    libc.src.math.fabsf
+    libc.src.math.fabsf128
+    libc.src.math.fabsf80
+    libc.src.math.fabsl
+    libc.src.math.fadd
+    libc.src.math.faddl
+    libc.src.math.fadd
+    libc.src.math.fdim
+    libc.src.math.fdimf
+    libc.src.math.fdimf128
+    libc.src.math.fdiml
+    libc.src.math.fdiv
+    libc.src.math.fdivl
+    libc.src.math.ffma
+    libc.src.math.ffmal
+    libc.src.math.floor
+    libc.src.math.floorf
+    libc.src.math.floorf128
+    libc.src.math.floorl
+    libc.src.math.fma
+    libc.src.math.fmabf16
+    libc.src.math.fmaf
+    libc.src.math.fmax
+    libc.src.math.fmaxf
+    libc.src.math.fmaxf128
+    libc.src.math.fmaximum
+    libc.src.math.fmaximum_mag
+    libc.src.math.fmaximum_mag_num
+    libc.src.math.fmaximum_mag_numf
+    libc.src.math.fmaximum_mag_numf128
+    libc.src.math.fmaximum_mag_numl
+    libc.src.math.fmaximum_magf
+    libc.src.math.fmaximum_magf128
+    libc.src.math.fmaximum_magl
+    libc.src.math.fmaximum_num
+    libc.src.math.fmaximum_numf
+    libc.src.math.fmaximum_numf128
+    libc.src.math.fmaximum_numl
+    libc.src.math.fmaximumf
+    libc.src.math.fmaximumf128
+    libc.src.math.fmaximuml
+    libc.src.math.fmaxl
+    libc.src.math.fmin
+    libc.src.math.fminf
+    libc.src.math.fminf128
+    libc.src.math.fminimum
+    libc.src.math.fminimum_mag
+    libc.src.math.fminimum_mag_num
+    libc.src.math.fminimum_mag_numf
+    libc.src.math.fminimum_mag_numf128
+    libc.src.math.fminimum_mag_numl
+    libc.src.math.fminimum_magf
+    libc.src.math.fminimum_magf128
+    libc.src.math.fminimum_magl
+    libc.src.math.fminimum_num
+    libc.src.math.fminimum_numf
+    libc.src.math.fminimum_numf128
+    libc.src.math.fminimum_numl
+    libc.src.math.fminimumf
+    libc.src.math.fminimumf128
+    libc.src.math.fminimuml
+    libc.src.math.fminl
+    libc.src.math.fmod
+    libc.src.math.fmodf
+    libc.src.math.fmul
+    libc.src.math.frexp
+    libc.src.math.frexpf
+    libc.src.math.frexpl
+    libc.src.math.fromfp
+    libc.src.math.fromfpf
+    libc.src.math.fromfpl
+    libc.src.math.fromfpx
+    libc.src.math.fromfpxf
+    libc.src.math.fromfpxl
+    libc.src.math.fsub
+    libc.src.math.fsubl
+    libc.src.math.getpayload
+    libc.src.math.getpayloadf
+    libc.src.math.getpayloadl
+    libc.src.math.hypot
+    libc.src.math.hypotf
+    libc.src.math.ilogb
+    libc.src.math.ilogbf
+    libc.src.math.ilogbl
+    libc.src.math.iscanonicalf128
+    libc.src.math.isnanf128
+    libc.src.math.issignalingf128
+    libc.src.math.ldexp
+    libc.src.math.ldexpf
+    libc.src.math.ldexpl
+    libc.src.math.lgammaf
+    libc.src.math.llogb
+    libc.src.math.llogbf
+    libc.src.math.llogbl
+    libc.src.math.llrint
+    libc.src.math.llrintf
+    libc.src.math.llrintf128
+    libc.src.math.llrintl
+    libc.src.math.llround
+    libc.src.math.llroundf
+    libc.src.math.llroundf128
+    libc.src.math.llroundl
+    libc.src.math.log
+    libc.src.math.log10
+    libc.src.math.log10f
+    libc.src.math.log1p
+    libc.src.math.log1pf
+    libc.src.math.log2
+    libc.src.math.log2f
+    libc.src.math.logb
+    libc.src.math.logbf
+    libc.src.math.logbl
+    libc.src.math.logf
+    libc.src.math.lrint
+    libc.src.math.lrintf
+    libc.src.math.lrintf128
+    libc.src.math.lrintl
+    libc.src.math.lround
+    libc.src.math.lroundf
+    libc.src.math.lroundf128
+    libc.src.math.lroundl
+    libc.src.math.modf
+    libc.src.math.modff
+    libc.src.math.modfl
+    libc.src.math.nan
+    libc.src.math.nanf
+    libc.src.math.nanl
+    libc.src.math.nearbyint
+    libc.src.math.nearbyintf
+    libc.src.math.nearbyintf128
+    libc.src.math.nearbyintl
+    libc.src.math.nextafter
+    libc.src.math.nextafterf
+    libc.src.math.nextafterl
+    libc.src.math.nextdown
+    libc.src.math.nextdownf
+    libc.src.math.nextdownl
+    libc.src.math.nexttoward
+    libc.src.math.nexttowardf
+    libc.src.math.nexttowardl
+    libc.src.math.nextup
+    libc.src.math.nextupf
+    libc.src.math.nextupl
+    libc.src.math.pow
+    libc.src.math.powf
+    libc.src.math.remainder
+    libc.src.math.remainderf
+    libc.src.math.remainderl
+    libc.src.math.remquo
+    libc.src.math.remquof
+    libc.src.math.remquol
+    libc.src.math.rint
+    libc.src.math.rintf
+    libc.src.math.rintf128
+    libc.src.math.rintl
+    libc.src.math.round
+    libc.src.math.roundevenf128
+    libc.src.math.roundf
+    libc.src.math.roundf128
+    libc.src.math.roundl
+    libc.src.math.scalbln
+    libc.src.math.scalblnf
+    libc.src.math.scalblnl
+    libc.src.math.scalbn
+    libc.src.math.scalbnf
+    libc.src.math.scalbnl
+    libc.src.math.setpayload
+    libc.src.math.setpayloadf
+    libc.src.math.setpayloadl
+    libc.src.math.setpayloadsig
+    libc.src.math.setpayloadsigf
+    libc.src.math.setpayloadsigl
+    libc.src.math.sin
+    libc.src.math.sincos
+    libc.src.math.sincosf
+    libc.src.math.sinf
+    libc.src.math.sinhf
+    libc.src.math.sqrt
+    libc.src.math.sqrtf
+    libc.src.math.sqrtf128
+    libc.src.math.sqrtl
+    libc.src.math.tan
+    libc.src.math.tanf
+    libc.src.math.tanhf
+    libc.src.math.tanpif
+    libc.src.math.totalorder
+    libc.src.math.totalorderf
+    libc.src.math.totalorderl
+    libc.src.math.totalordermag
+    libc.src.math.totalordermagf
+    libc.src.math.totalordermagl
+    libc.src.math.trunc
+    libc.src.math.truncf
+    libc.src.math.truncf128
+    libc.src.math.truncl
+    libc.src.math.ufromfp
+    libc.src.math.ufromfpf
+    libc.src.math.ufromfpl
+    libc.src.math.ufromfpx
+    libc.src.math.ufromfpxf
+    libc.src.math.ufromfpxl
+)
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+  # bfloat16 entrypoints
+  libc.src.math.atanbf16
+  libc.src.math.acosbf16
+  libc.src.math.asinbf16
+  libc.src.math.bf16add
+  libc.src.math.bf16addf
+  libc.src.math.bf16addl
+  libc.src.math.bf16div
+  libc.src.math.bf16divf
+  libc.src.math.bf16divl
+  libc.src.math.bf16fma
+  libc.src.math.bf16fmaf
+  libc.src.math.bf16fmal
+  libc.src.math.bf16mul
+  libc.src.math.bf16mulf
+  libc.src.math.bf16mull
+  libc.src.math.bf16sub
+  libc.src.math.bf16subf
+  libc.src.math.bf16subl
+  libc.src.math.canonicalizebf16
+  libc.src.math.ceilbf16
+  libc.src.math.copysignbf16
+  libc.src.math.exp2bf16
+  libc.src.math.expbf16
+  libc.src.math.fabsbf16
+  libc.src.math.fdimbf16
+  libc.src.math.floorbf16
+  libc.src.math.fmaxbf16
+  libc.src.math.fmaximumbf16
+  libc.src.math.fmaximum_magbf16
+  libc.src.math.fmaximum_mag_numbf16
+  libc.src.math.fmaximum_numbf16
+  libc.src.math.fminbf16
+  libc.src.math.fminimumbf16
+  libc.src.math.fminimum_magbf16
+  libc.src.math.fminimum_mag_numbf16
+  libc.src.math.fminimum_numbf16
+  libc.src.math.fmodbf16
+  libc.src.math.frexpbf16
+  libc.src.math.fromfpbf16
+  libc.src.math.fromfpxbf16
+  libc.src.math.getpayloadbf16
+  libc.src.math.hypotbf16
+  libc.src.math.ilogbbf16
+  libc.src.math.iscanonicalbf16
+  libc.src.math.issignalingbf16
+  libc.src.math.ldexpbf16
+  libc.src.math.llogbbf16
+  libc.src.math.llrintbf16
+  libc.src.math.llroundbf16
+  libc.src.math.log_bf16
+  libc.src.math.logbbf16
+  libc.src.math.lrintbf16
+  libc.src.math.lroundbf16
+  libc.src.math.modfbf16
+  libc.src.math.nanbf16
+  libc.src.math.nearbyintbf16
+  libc.src.math.nextafterbf16
+  libc.src.math.nextdownbf16
+  libc.src.math.nexttowardbf16
+  libc.src.math.nextupbf16
+  libc.src.math.remainderbf16
+  libc.src.math.remquobf16
+  libc.src.math.rintbf16
+  libc.src.math.roundbf16
+  libc.src.math.roundevenbf16
+  libc.src.math.scalblnbf16
+  libc.src.math.scalbnbf16
+  libc.src.math.setpayloadbf16
+  libc.src.math.setpayloadsigbf16
+  libc.src.math.sqrtbf16
+  libc.src.math.tanbf16
+  libc.src.math.truncbf16
+  libc.src.math.totalorderbf16
+  libc.src.math.totalordermagbf16
+  libc.src.math.ufromfpbf16
+  libc.src.math.ufromfpxbf16
+)
+
+if(LLVM_LIBC_ENABLE_EXPERIMENTAL_ENTRYPOINTS)
+  if(LLVM_LIBC_FULL_BUILD)
+    list(APPEND TARGET_LIBC_ENTRYPOINTS
+      # grp.h entrypoints
+      libc.src.grp.initgroups
+      libc.src.grp.setgroups
+
+      # libintl.h entrypoints
+      libc.src.libintl.bind_textdomain_codeset
+      libc.src.libintl.bindtextdomain
+      libc.src.libintl.dcgettext
+      libc.src.libintl.dcgettext_l
+      libc.src.libintl.dcngettext
+      libc.src.libintl.dcngettext_l
+      libc.src.libintl.dgettext
+      libc.src.libintl.dgettext_l
+      libc.src.libintl.dngettext
+      libc.src.libintl.dngettext_l
+      libc.src.libintl.gettext
+      libc.src.libintl.gettext_l
+      libc.src.libintl.ngettext
+      libc.src.libintl.ngettext_l
+      libc.src.libintl.textdomain
+
+      # regex.h entrypoints
+      libc.src.regex.regcomp
+      libc.src.regex.regexec
+      libc.src.regex.regerror
+      libc.src.regex.regfree
+
+      # sys/ptrace.h entrypoints
+      libc.src.sys.ptrace.ptrace
+
+      # unistd.h entrypoints
+      libc.src.unistd.setegid
+      libc.src.unistd.seteuid
+      libc.src.unistd.setgid
+      libc.src.unistd.setregid
+      libc.src.unistd.setresgid
+      libc.src.unistd.setresuid
+      libc.src.unistd.setreuid
+      libc.src.unistd.setuid
+    )
+  endif()
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+  ${TARGET_LIBC_ENTRYPOINTS}
+  ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/linux/riscv/entrypoints.txt b/libc/config/linux/riscv/entrypoints.txt
index f8906e3adbfd30..8c47ffb05564bc 100644
--- a/libc/config/linux/riscv/entrypoints.txt
+++ b/libc/config/linux/riscv/entrypoints.txt
@@ -1,1772 +1,1774 @@
-set(TARGET_LIBC_ENTRYPOINTS
-    # arpa/inet.h entrypoints
-    libc.src.arpa.inet.htonl
-    libc.src.arpa.inet.htons
-    libc.src.arpa.inet.inet_addr
-    libc.src.arpa.inet.inet_aton
-    libc.src.arpa.inet.inet_ntoa
-    libc.src.arpa.inet.inet_ntop
-    libc.src.arpa.inet.inet_pton
-    libc.src.arpa.inet.ntohl
-    libc.src.arpa.inet.ntohs
-
-    # ctype.h entrypoints
-    libc.src.ctype.isalnum
-    libc.src.ctype.isalpha
-    libc.src.ctype.isascii
-    libc.src.ctype.isblank
-    libc.src.ctype.iscntrl
-    libc.src.ctype.isdigit
-    libc.src.ctype.isgraph
-    libc.src.ctype.islower
-    libc.src.ctype.isprint
-    libc.src.ctype.ispunct
-    libc.src.ctype.isspace
-    libc.src.ctype.isupper
-    libc.src.ctype.isxdigit
-    libc.src.ctype.toascii
-    libc.src.ctype.tolower
-    libc.src.ctype.toupper
-
-    # dlfcn.h entrypoints
-    libc.src.dlfcn.dladdr
-    libc.src.dlfcn.dlclose
-    libc.src.dlfcn.dlerror
-    libc.src.dlfcn.dlopen
-    libc.src.dlfcn.dlsym
-
-    # err.h entrypoints
-    libc.src.err.err
-    libc.src.err.verr
-    libc.src.err.errx
-    libc.src.err.verrx
-    libc.src.err.warn
-    libc.src.err.vwarn
-    libc.src.err.warnx
-    libc.src.err.vwarnx
-
-    # errno.h entrypoints
-    libc.src.errno.errno
-
-    # fcntl.h entrypoints
-    libc.src.fcntl.creat
-    libc.src.fcntl.fallocate
-    libc.src.fcntl.fcntl
-    libc.src.fcntl.open
-    libc.src.fcntl.openat
-    libc.src.fcntl.posix_fadvise
-    libc.src.fcntl.posix_fadvise64
-    libc.src.fcntl.posix_fallocate
-
-    # grp.h entrypoints
-    libc.src.grp.endgrent
-    libc.src.grp.getgrent
-    libc.src.grp.getgrgid
-    libc.src.grp.getgrgid_r
-    libc.src.grp.getgrouplist
-    libc.src.grp.getgrnam
-    libc.src.grp.getgrnam_r
-    libc.src.grp.setgrent
-
-    # net/if.h entrypoints
-    libc.src.net.if_indextoname
-    libc.src.net.if_nametoindex
-
-    # netinet/ether.h entrypoints
-    libc.src.netinet.ether.ether_ntoa
-    libc.src.netinet.ether.ether_ntoa_r
-
-    # netinet/in.h entrypoints
-    libc.src.netinet.in6addr_any
-    libc.src.netinet.in6addr_loopback
-
-    # poll.h entrypoints
-    libc.src.poll.poll
-    libc.src.poll.ppoll
-
-    # pwd.h entrypoints
-    libc.src.pwd.endpwent
-    libc.src.pwd.getpwent
-    libc.src.pwd.getpwent_r
-    libc.src.pwd.getpwnam
-    libc.src.pwd.getpwnam_r
-    libc.src.pwd.getpwuid
-    libc.src.pwd.getpwuid_r
-    libc.src.pwd.setpwent
-
-    # sched.h entrypoints
-    libc.src.sched.getcpu
-    libc.src.sched.sched_get_priority_max
-    libc.src.sched.sched_get_priority_min
-    libc.src.sched.sched_getaffinity
-    libc.src.sched.sched_getcpu
-    libc.src.sched.sched_getparam
-    libc.src.sched.sched_getscheduler
-    libc.src.sched.sched_rr_get_interval
-    libc.src.sched.sched_setaffinity
-    libc.src.sched.sched_setparam
-    libc.src.sched.sched_setscheduler
-    libc.src.sched.sched_yield
-
-    # string.h entrypoints
-    libc.src.string.memccpy
-    libc.src.string.memchr
-    libc.src.string.memcmp
-    libc.src.string.memcpy
-    libc.src.string.memmem
-    libc.src.string.memmove
-    libc.src.string.mempcpy
-    libc.src.string.memrchr
-    libc.src.string.memset
-    libc.src.string.memset_explicit
-    libc.src.string.stpcpy
-    libc.src.string.stpncpy
-    libc.src.string.strcasestr
-    libc.src.string.strcat
-    libc.src.string.strchr
-    libc.src.string.strchrnul
-    libc.src.string.strcmp
-    libc.src.string.strcoll
-    libc.src.string.strcpy
-    libc.src.string.strcspn
-    libc.src.string.strdup
-    libc.src.string.strerror
-    libc.src.string.strerror_r
-    libc.src.string.strlcat
-    libc.src.string.strlcpy
-    libc.src.string.strlen
-    libc.src.string.strncat
-    libc.src.string.strncmp
-    libc.src.string.strncpy
-    libc.src.string.strndup
-    libc.src.string.strnlen
-    libc.src.string.strnlen_s
-    libc.src.string.strpbrk
-    libc.src.string.strrchr
-    libc.src.string.strsep
-    libc.src.string.strsignal
-    libc.src.string.strspn
-    libc.src.string.strstr
-    libc.src.string.strtok
-    libc.src.string.strtok_r
-    libc.src.string.strxfrm
-
-    # strings.h entrypoints
-    libc.src.strings.bcmp
-    libc.src.strings.bcopy
-    libc.src.strings.bzero
-    libc.src.strings.ffs
-    libc.src.strings.ffsl
-    libc.src.strings.ffsll
-    libc.src.strings.index
-    libc.src.strings.rindex
-    libc.src.strings.strcasecmp
-    libc.src.strings.strncasecmp
-
-    # inttypes.h entrypoints
-    libc.src.inttypes.imaxabs
-    libc.src.inttypes.imaxdiv
-    libc.src.inttypes.strtoimax
-    libc.src.inttypes.strtoumax
-    libc.src.inttypes.wcstoimax
-    libc.src.inttypes.wcstoumax
-
-    # libgen.h entrypoints
-    libc.src.libgen.basename
-    libc.src.libgen.dirname
-
-    # stdbit.h entrypoints
-    libc.src.stdbit.stdc_bit_ceil_uc
-    libc.src.stdbit.stdc_bit_ceil_ui
-    libc.src.stdbit.stdc_bit_ceil_ul
-    libc.src.stdbit.stdc_bit_ceil_ull
-    libc.src.stdbit.stdc_bit_ceil_us
-    libc.src.stdbit.stdc_bit_floor_uc
-    libc.src.stdbit.stdc_bit_floor_ui
-    libc.src.stdbit.stdc_bit_floor_ul
-    libc.src.stdbit.stdc_bit_floor_ull
-    libc.src.stdbit.stdc_bit_floor_us
-    libc.src.stdbit.stdc_bit_width_uc
-    libc.src.stdbit.stdc_bit_width_ui
-    libc.src.stdbit.stdc_bit_width_ul
-    libc.src.stdbit.stdc_bit_width_ull
-    libc.src.stdbit.stdc_bit_width_us
-    libc.src.stdbit.stdc_count_ones_uc
-    libc.src.stdbit.stdc_count_ones_ui
-    libc.src.stdbit.stdc_count_ones_ul
-    libc.src.stdbit.stdc_count_ones_ull
-    libc.src.stdbit.stdc_count_ones_us
-    libc.src.stdbit.stdc_count_zeros_uc
-    libc.src.stdbit.stdc_count_zeros_ui
-    libc.src.stdbit.stdc_count_zeros_ul
-    libc.src.stdbit.stdc_count_zeros_ull
-    libc.src.stdbit.stdc_count_zeros_us
-    libc.src.stdbit.stdc_first_leading_one_uc
-    libc.src.stdbit.stdc_first_leading_one_ui
-    libc.src.stdbit.stdc_first_leading_one_ul
-    libc.src.stdbit.stdc_first_leading_one_ull
-    libc.src.stdbit.stdc_first_leading_one_us
-    libc.src.stdbit.stdc_first_leading_zero_uc
-    libc.src.stdbit.stdc_first_leading_zero_ui
-    libc.src.stdbit.stdc_first_leading_zero_ul
-    libc.src.stdbit.stdc_first_leading_zero_ull
-    libc.src.stdbit.stdc_first_leading_zero_us
-    libc.src.stdbit.stdc_first_trailing_one_uc
-    libc.src.stdbit.stdc_first_trailing_one_ui
-    libc.src.stdbit.stdc_first_trailing_one_ul
-    libc.src.stdbit.stdc_first_trailing_one_ull
-    libc.src.stdbit.stdc_first_trailing_one_us
-    libc.src.stdbit.stdc_first_trailing_zero_uc
-    libc.src.stdbit.stdc_first_trailing_zero_ui
-    libc.src.stdbit.stdc_first_trailing_zero_ul
-    libc.src.stdbit.stdc_first_trailing_zero_ull
-    libc.src.stdbit.stdc_first_trailing_zero_us
-    libc.src.stdbit.stdc_has_single_bit_uc
-    libc.src.stdbit.stdc_has_single_bit_ui
-    libc.src.stdbit.stdc_has_single_bit_ul
-    libc.src.stdbit.stdc_has_single_bit_ull
-    libc.src.stdbit.stdc_has_single_bit_us
-    libc.src.stdbit.stdc_leading_ones_uc
-    libc.src.stdbit.stdc_leading_ones_ui
-    libc.src.stdbit.stdc_leading_ones_ul
-    libc.src.stdbit.stdc_leading_ones_ull
-    libc.src.stdbit.stdc_leading_ones_us
-    libc.src.stdbit.stdc_leading_zeros_uc
-    libc.src.stdbit.stdc_leading_zeros_ui
-    libc.src.stdbit.stdc_leading_zeros_ul
-    libc.src.stdbit.stdc_leading_zeros_ull
-    libc.src.stdbit.stdc_leading_zeros_us
-    libc.src.stdbit.stdc_trailing_ones_uc
-    libc.src.stdbit.stdc_trailing_ones_ui
-    libc.src.stdbit.stdc_trailing_ones_ul
-    libc.src.stdbit.stdc_trailing_ones_ull
-    libc.src.stdbit.stdc_trailing_ones_us
-    libc.src.stdbit.stdc_trailing_zeros_uc
-    libc.src.stdbit.stdc_trailing_zeros_ui
-    libc.src.stdbit.stdc_trailing_zeros_ul
-    libc.src.stdbit.stdc_trailing_zeros_ull
-    libc.src.stdbit.stdc_trailing_zeros_us
-
-    # stdlib.h entrypoints
-    libc.src.stdlib.a64l
-    libc.src.stdlib.abs
-    libc.src.stdlib.atof
-    libc.src.stdlib.atoi
-    libc.src.stdlib.atol
-    libc.src.stdlib.atoll
-    libc.src.stdlib.bsearch
-    libc.src.stdlib.div
-    libc.src.stdlib.getloadavg
-    libc.src.stdlib.l64a
-    libc.src.stdlib.labs
-    libc.src.stdlib.ldiv
-    libc.src.stdlib.llabs
-    libc.src.stdlib.lldiv
-    libc.src.stdlib.memalignment
-    libc.src.stdlib.mkdtemp
-    libc.src.stdlib.mkostemp
-    libc.src.stdlib.mkstemp
-    libc.src.stdlib.qsort
-    libc.src.stdlib.qsort_r
-    libc.src.stdlib.rand
-    libc.src.stdlib.realpath
-    libc.src.stdlib.srand
-    libc.src.stdlib.strfromd
-    libc.src.stdlib.strfromf
-    libc.src.stdlib.strfromf128
-    libc.src.stdlib.strfroml
-    libc.src.stdlib.strtod
-    libc.src.stdlib.strtof
-    libc.src.stdlib.strtol
-    libc.src.stdlib.strtold
-    libc.src.stdlib.strtoll
-    libc.src.stdlib.strtoul
-    libc.src.stdlib.strtoull
-
-    # stdlib.h external entrypoints
-    libc.src.stdlib.aligned_alloc
-    libc.src.stdlib.calloc
-    libc.src.stdlib.free
-    libc.src.stdlib.malloc
-    libc.src.stdlib.posix_memalign
-    libc.src.stdlib.realloc
-
-    # stdio.h entrypoints
-    libc.src.stdio.fprintf
-    libc.src.stdio.fscanf
-    libc.src.stdio.vfscanf
-    libc.src.stdio.printf
-    libc.src.stdio.remove
-    libc.src.stdio.rename
-    libc.src.stdio.renameat
-    libc.src.stdio.scanf
-    libc.src.stdio.vscanf
-    libc.src.stdio.snprintf
-    libc.src.stdio.sprintf
-    libc.src.stdio.asprintf
-    libc.src.stdio.sscanf
-    libc.src.stdio.stderr
-    libc.src.stdio.stdin
-    libc.src.stdio.stdout
-    libc.src.stdio.tmpfile
-    libc.src.stdio.tmpnam
-    libc.src.stdio.vsscanf
-    libc.src.stdio.vfprintf
-    libc.src.stdio.vprintf
-    libc.src.stdio.vsnprintf
-    libc.src.stdio.vsprintf
-    libc.src.stdio.vasprintf
-
-    # sys/epoll.h entrypoints
-    libc.src.sys.epoll.epoll_create
-    libc.src.sys.epoll.epoll_create1
-    libc.src.sys.epoll.epoll_ctl
-    libc.src.sys.epoll.epoll_pwait
-    libc.src.sys.epoll.epoll_wait
-    # TODO: Need to check if pwait2 is available before providing.
-    # https://github.com/llvm/llvm-project/issues/80060
-    # libc.src.sys.epoll.epoll_pwait2
-
-    # sys/eventfd.h entrypoints
-    libc.src.sys.eventfd.eventfd
-
-    # sys/file.h entrypoints
-    libc.src.sys.file.flock
-
-    # sys/ioctl.h entrypoints
-    libc.src.sys.ioctl.ioctl
-
-    # sys/ipc.h entrypoints
-    libc.src.sys.ipc.ftok
-
-    # sys/mman.h entrypoints
-    libc.src.sys.mman.madvise
-    libc.src.sys.mman.memfd_create
-    libc.src.sys.mman.mincore
-    libc.src.sys.mman.mlock
-    libc.src.sys.mman.mlock2
-    libc.src.sys.mman.mlockall
-    libc.src.sys.mman.mmap
-    libc.src.sys.mman.mremap
-    libc.src.sys.mman.mprotect
-    libc.src.sys.mman.msync
-    libc.src.sys.mman.munlock
-    libc.src.sys.mman.munlockall
-    libc.src.sys.mman.munmap
-    libc.src.sys.mman.pkey_alloc
-    libc.src.sys.mman.pkey_free
-    libc.src.sys.mman.pkey_get
-    libc.src.sys.mman.pkey_mprotect
-    libc.src.sys.mman.pkey_set
-    libc.src.sys.mman.remap_file_pages
-    libc.src.sys.mman.posix_madvise
-    libc.src.sys.mman.shm_open
-    libc.src.sys.mman.shm_unlink
-
-    # sys/random.h entrypoints
-    libc.src.sys.random.getrandom
-    libc.src.sys.random.getentropy
-
-    # sys/resource.h entrypoints
-    libc.src.sys.resource.getpriority
-    libc.src.sys.resource.getrlimit
-    libc.src.sys.resource.getrusage
-    libc.src.sys.resource.setpriority
-    libc.src.sys.resource.setrlimit
-
-    # sys/sendfile.h entrypoints
-    libc.src.sys.sendfile.sendfile
-
-    # sys/socket.h entrypoints
-    libc.src.sys.socket.accept
-    libc.src.sys.socket.accept4
-    libc.src.sys.socket.bind
-    libc.src.sys.socket.connect
-    libc.src.sys.socket.getpeername
-    libc.src.sys.socket.getsockname
-    libc.src.sys.socket.getsockopt
-    libc.src.sys.socket.listen
-    libc.src.sys.socket.recv
-    libc.src.sys.socket.recvfrom
-    libc.src.sys.socket.send
-    libc.src.sys.socket.sendto
-    libc.src.sys.socket.setsockopt
-    libc.src.sys.socket.shutdown
-    libc.src.sys.socket.sockatmark
-    libc.src.sys.socket.socket
-    libc.src.sys.socket.socketpair
-    # TODO: These functions are not compatible with 64-bit musl. They need to
-    # be excluded if overlaying musl.
-    libc.src.sys.socket.recvmmsg
-    libc.src.sys.socket.recvmsg
-    libc.src.sys.socket.sendmmsg
-    libc.src.sys.socket.sendmsg
-
-    # sys/stat.h entrypoints
-    libc.src.sys.stat.chmod
-    libc.src.sys.stat.fchmod
-    libc.src.sys.stat.fchmodat
-    libc.src.sys.stat.fstat
-    libc.src.sys.stat.fstatat
-    libc.src.sys.stat.futimens
-    libc.src.sys.stat.lstat
-    libc.src.sys.stat.mkdir
-    libc.src.sys.stat.mkdirat
-    libc.src.sys.stat.mkfifo
-    libc.src.sys.stat.mkfifoat
-    libc.src.sys.stat.mknod
-    libc.src.sys.stat.mknodat
-    libc.src.sys.stat.stat
-    libc.src.sys.stat.umask
-    libc.src.sys.stat.utimensat
-
-    # sys/statfs.h entrypoints
-    libc.src.sys.statfs.fstatfs
-    libc.src.sys.statfs.statfs
-
-    # sys/statvfs.h entrypoints
-    libc.src.sys.statvfs.fstatvfs
-    libc.src.sys.statvfs.statvfs
-
-    # sys/time.h entrypoints
-    libc.src.sys.time.utimes
-
-    # sys/sysinfo.h entrypoints
-    # Disabled due to QEMU test failures.
-    # libc.src.sys.sysinfo.sysinfo
-
-    # sys/utsname.h entrypoints
-    libc.src.sys.utsname.uname
-
-    # sys/wait.h entrypoints
-    libc.src.sys.wait.wait
-    libc.src.sys.wait.wait4
-    libc.src.sys.wait.waitid
-    libc.src.sys.wait.waitpid
-
-    # sys/prctl.h entrypoints
-    libc.src.sys.prctl.prctl
-
-    # sys/personality.h entrypoints
-    libc.src.sys.personality.personality
-
-    # sys/auxv.h entrypoints
-    libc.src.sys.auxv.getauxval
-
-    # sys/inotify.h entrypoints
-    libc.src.sys.inotify.inotify_add_watch
-    libc.src.sys.inotify.inotify_init
-    libc.src.sys.inotify.inotify_init1
-    libc.src.sys.inotify.inotify_rm_watch
-
-    # termios.h entrypoints
-    libc.src.termios.cfgetispeed
-    libc.src.termios.cfgetospeed
-    libc.src.termios.cfsetispeed
-    libc.src.termios.cfsetospeed
-    libc.src.termios.tcdrain
-    libc.src.termios.tcflow
-    libc.src.termios.tcflush
-    libc.src.termios.tcgetattr
-    libc.src.termios.tcgetsid
-    libc.src.termios.tcgetwinsize
-    libc.src.termios.tcsendbreak
-    libc.src.termios.tcsetattr
-    libc.src.termios.tcsetwinsize
-
-    # unistd.h entrypoints
-    libc.src.unistd.alarm
-    libc.src.unistd.access
-    libc.src.unistd.chdir
-    libc.src.unistd.chown
-    libc.src.unistd.chroot
-    libc.src.unistd.close
-    libc.src.unistd.dup
-    libc.src.unistd.dup2
-    libc.src.unistd.dup3
-    libc.src.unistd.execle
-    libc.src.unistd.execve
-    libc.src.unistd.faccessat
-    libc.src.unistd.fchdir
-    libc.src.unistd.fchown
-    libc.src.unistd.fchownat
-    libc.src.unistd.fdatasync
-    libc.src.unistd.fexecve
-    libc.src.unistd.fpathconf
-    libc.src.unistd.fsync
-    libc.src.unistd.ftruncate
-    libc.src.unistd.getcwd
-    libc.src.unistd.getegid
-    libc.src.unistd.getentropy
-    libc.src.unistd.geteuid
-    libc.src.unistd.gethostname
-    libc.src.unistd.getpagesize
-    libc.src.unistd.getpgid
-    libc.src.unistd.getpgrp
-    libc.src.unistd.getpid
-    libc.src.unistd.getppid
-    libc.src.unistd.getsid
-    libc.src.unistd.gettid
-    libc.src.unistd.getgid
-    libc.src.unistd.getuid
-    libc.src.unistd.isatty
-    libc.src.unistd.lchown
-    libc.src.unistd.link
-    libc.src.unistd.linkat
-    libc.src.unistd.lockf
-    libc.src.unistd.lseek
-    libc.src.unistd.nice
-    libc.src.unistd.pathconf
-    libc.src.unistd.pause
-    libc.src.unistd.pipe
-    libc.src.unistd.pipe2
-    libc.src.unistd.pread
-    libc.src.unistd.pwrite
-    libc.src.unistd.read
-    libc.src.unistd.readlink
-    libc.src.unistd.readlinkat
-    libc.src.unistd.rmdir
-    libc.src.unistd.setpgid
-    libc.src.unistd.setsid
-    libc.src.unistd.sleep
-    libc.src.unistd.symlink
-    libc.src.unistd.symlinkat
-    libc.src.unistd.sync
-    libc.src.unistd.syncfs
-    libc.src.unistd.tcgetpgrp
-    libc.src.unistd.tcsetpgrp
-    libc.src.unistd.truncate
-    libc.src.unistd.unlink
-    libc.src.unistd.unlinkat
-    libc.src.unistd.usleep
-    libc.src.unistd.write
-
-    # wchar.h entrypoints
-    libc.src.wchar.btowc
-    libc.src.wchar.wcslen
-    libc.src.wchar.wcsnlen
-    libc.src.wchar.wctob
-    libc.src.wchar.wmemmove
-    libc.src.wchar.wmemset
-    libc.src.wchar.wcschr
-    libc.src.wchar.wcsncmp
-    libc.src.wchar.wcsxfrm
-    libc.src.wchar.wcscmp
-    libc.src.wchar.wcscoll
-    libc.src.wchar.wcspbrk
-    libc.src.wchar.wcsrchr
-    libc.src.wchar.wcsspn
-    libc.src.wchar.wcscspn
-    libc.src.wchar.wcsdup
-    libc.src.wchar.wmemcmp
-    libc.src.wchar.wmempcpy
-    libc.src.wchar.wmemcpy
-    libc.src.wchar.wcsncpy
-    libc.src.wchar.wcscat
-    libc.src.wchar.wcsstr
-    libc.src.wchar.wcsncat
-    libc.src.wchar.wcslcat
-    libc.src.wchar.wcscpy
-    libc.src.wchar.wcslcpy
-    libc.src.wchar.wmemchr
-    libc.src.wchar.wcpcpy
-    libc.src.wchar.wcpncpy
-    libc.src.wchar.wcstod
-    libc.src.wchar.wcstof
-    libc.src.wchar.wcstok
-    libc.src.wchar.wcstol
-    libc.src.wchar.wcstold
-    libc.src.wchar.wcstoll
-    libc.src.wchar.wcstoul
-    libc.src.wchar.wcstoull
-
-    # wctype.h entrypoints
-    libc.src.wctype.iswalpha
-    libc.src.wctype.iswgraph
-    libc.src.wctype.iswcntrl
-    libc.src.wctype.iswdigit
-    libc.src.wctype.iswupper
-    libc.src.wctype.iswalnum
-    libc.src.wctype.iswlower
-    libc.src.wctype.iswspace
-    libc.src.wctype.iswblank
-    libc.src.wctype.iswxdigit
-    libc.src.wctype.iswpunct
-    libc.src.wctype.iswprint
-    libc.src.wctype.iswctype
-    libc.src.wctype.wctype
-    libc.src.wctype.towlower
-    libc.src.wctype.towupper
-
-    # sys/uio.h entrypoints
-    libc.src.sys.uio.writev
-    libc.src.sys.uio.readv
-
-    # sys/time.h entrypoints
-    libc.src.sys.time.setitimer
-    libc.src.sys.time.getitimer
-    libc.src.sys.time.gettimeofday
-)
-
-if(LLVM_LIBC_INCLUDE_SCUDO)
-  list(APPEND TARGET_LIBC_ENTRYPOINTS
-    # malloc.h external entrypoints
-    libc.src.stdlib.mallopt
-  )
-endif()
-
-set(TARGET_LIBM_ENTRYPOINTS
-    # complex.h entrypoints
-    libc.src.complex.cabs
-    libc.src.complex.cabsf
-    libc.src.complex.carg
-    libc.src.complex.cargf
-    libc.src.complex.creal
-    libc.src.complex.crealf
-    libc.src.complex.creall
-    libc.src.complex.cimag
-    libc.src.complex.cimagf
-    libc.src.complex.cimagl
-    libc.src.complex.conj
-    libc.src.complex.conjf
-    libc.src.complex.conjl
-    libc.src.complex.cproj
-    libc.src.complex.cprojf
-    libc.src.complex.cprojl
-
-    # fenv.h entrypoints
-    libc.src.fenv.feclearexcept
-    libc.src.fenv.fedisableexcept
-    libc.src.fenv.feenableexcept
-    libc.src.fenv.fegetenv
-    libc.src.fenv.fegetexcept
-    libc.src.fenv.fegetexceptflag
-    libc.src.fenv.fegetround
-    libc.src.fenv.feholdexcept
-    libc.src.fenv.feraiseexcept
-    libc.src.fenv.fesetenv
-    libc.src.fenv.fesetexcept
-    libc.src.fenv.fesetexceptflag
-    libc.src.fenv.fesetround
-    libc.src.fenv.fetestexcept
-    libc.src.fenv.fetestexceptflag
-    libc.src.fenv.feupdateenv
-
-    # math.h entrypoints
-    libc.src.math.acos
-    libc.src.math.acosf
-    libc.src.math.acoshf
-    libc.src.math.acospif
-    libc.src.math.asin
-    libc.src.math.asinf
-    libc.src.math.asinhf
-    libc.src.math.asinpi
-    libc.src.math.asinpif
-    libc.src.math.atan2
-    libc.src.math.atan2f
-    libc.src.math.atan2f128
-    libc.src.math.atan
-    libc.src.math.atanf
-    libc.src.math.atanhf
-    libc.src.math.canonicalize
-    libc.src.math.canonicalizef
-    libc.src.math.canonicalizel
-    libc.src.math.cbrt
-    libc.src.math.cbrtf
-    libc.src.math.cbrtbf16
-    libc.src.math.ceil
-    libc.src.math.ceilf
-    libc.src.math.ceilf128
-    libc.src.math.ceill
-    libc.src.math.copysign
-    libc.src.math.copysignf
-    libc.src.math.copysignf128
-    libc.src.math.copysignl
-    libc.src.math.cos
-    libc.src.math.cosf
-    libc.src.math.coshf
-    libc.src.math.cospif
-    libc.src.math.daddl
-    libc.src.math.ddivl
-    libc.src.math.dfmal
-    libc.src.math.dmull
-    libc.src.math.dsqrtl
-    libc.src.math.dsubl
-    libc.src.math.erff
-    libc.src.math.exp
-    libc.src.math.exp10
-    libc.src.math.exp10f
-    libc.src.math.exp10m1f
-    libc.src.math.exp2
-    libc.src.math.exp2f
-    libc.src.math.exp2m1f
-    libc.src.math.expf
-    libc.src.math.expm1
-    libc.src.math.expm1f
-    libc.src.math.fabs
-    libc.src.math.fabsf
-    libc.src.math.fabsf128
-    libc.src.math.fabsl
-    libc.src.math.fadd
-    libc.src.math.faddl
-    libc.src.math.fadd
-    libc.src.math.fdim
-    libc.src.math.fdimf
-    libc.src.math.fdimf128
-    libc.src.math.fdiml
-    libc.src.math.fdiv
-    libc.src.math.fdivl
-    libc.src.math.ffma
-    libc.src.math.ffmal
-    libc.src.math.floor
-    libc.src.math.floorf
-    libc.src.math.floorf128
-    libc.src.math.floorl
-    libc.src.math.fma
-    libc.src.math.fmabf16
-    libc.src.math.fmaf
-    libc.src.math.fmax
-    libc.src.math.fmaxf
-    libc.src.math.fmaxf128
-    libc.src.math.fmaximum
-    libc.src.math.fmaximum_mag
-    libc.src.math.fmaximum_mag_num
-    libc.src.math.fmaximum_mag_numf
-    libc.src.math.fmaximum_mag_numf128
-    libc.src.math.fmaximum_mag_numl
-    libc.src.math.fmaximum_magf
-    libc.src.math.fmaximum_magf128
-    libc.src.math.fmaximum_magl
-    libc.src.math.fmaximum_num
-    libc.src.math.fmaximum_numf
-    libc.src.math.fmaximum_numf128
-    libc.src.math.fmaximum_numl
-    libc.src.math.fmaximumf
-    libc.src.math.fmaximumf128
-    libc.src.math.fmaximuml
-    libc.src.math.fmaxl
-    libc.src.math.fmin
-    libc.src.math.fminf
-    libc.src.math.fminf128
-    libc.src.math.fminimum
-    libc.src.math.fminimum_mag
-    libc.src.math.fminimum_mag_num
-    libc.src.math.fminimum_mag_numf
-    libc.src.math.fminimum_mag_numf128
-    libc.src.math.fminimum_mag_numl
-    libc.src.math.fminimum_magf
-    libc.src.math.fminimum_magf128
-    libc.src.math.fminimum_magl
-    libc.src.math.fminimum_num
-    libc.src.math.fminimum_numf
-    libc.src.math.fminimum_numf128
-    libc.src.math.fminimum_numl
-    libc.src.math.fminimumf
-    libc.src.math.fminimumf128
-    libc.src.math.fminimuml
-    libc.src.math.fminl
-    libc.src.math.fmod
-    libc.src.math.fmodf
-    libc.src.math.fmodl
-    libc.src.math.fmul
-    libc.src.math.fmull
-    libc.src.math.frexp
-    libc.src.math.frexpf
-    libc.src.math.frexpl
-    libc.src.math.fromfp
-    libc.src.math.fromfpf
-    libc.src.math.fromfpl
-    libc.src.math.fromfpx
-    libc.src.math.fromfpxf
-    libc.src.math.fromfpxl
-    libc.src.math.fsqrt
-    libc.src.math.fsqrtl
-    libc.src.math.fsub
-    libc.src.math.fsubl
-    libc.src.math.getpayload
-    libc.src.math.getpayloadf
-    libc.src.math.getpayloadl
-    libc.src.math.hypot
-    libc.src.math.hypotf
-    libc.src.math.ilogb
-    libc.src.math.ilogbf
-    libc.src.math.ilogbl
-    libc.src.math.iscanonical
-    libc.src.math.iscanonicalf
-    libc.src.math.iscanonicalf128
-    libc.src.math.iscanonicall
-    libc.src.math.isnan
-    libc.src.math.isnanf
-    libc.src.math.isnanf128
-    libc.src.math.isnanl
-    libc.src.math.issignaling
-    libc.src.math.issignalingf
-    libc.src.math.issignalingf128
-    libc.src.math.issignalingl
-    libc.src.math.ldexp
-    libc.src.math.ldexpf
-    libc.src.math.ldexpl
-    libc.src.math.lgammaf
-    libc.src.math.llogb
-    libc.src.math.llogbf
-    libc.src.math.llogbl
-    libc.src.math.llrint
-    libc.src.math.llrintf
-    libc.src.math.llrintf128
-    libc.src.math.llrintl
-    libc.src.math.llround
-    libc.src.math.llroundf
-    libc.src.math.llroundf128
-    libc.src.math.llroundl
-    libc.src.math.log
-    libc.src.math.log10
-    libc.src.math.log10f
-    libc.src.math.log1p
-    libc.src.math.log1pf
-    libc.src.math.log2
-    libc.src.math.log2f
-    libc.src.math.logb
-    libc.src.math.logbf
-    libc.src.math.logbl
-    libc.src.math.logf
-    libc.src.math.lrint
-    libc.src.math.lrintf
-    libc.src.math.lrintf128
-    libc.src.math.lrintl
-    libc.src.math.lround
-    libc.src.math.lroundf
-    libc.src.math.lroundf128
-    libc.src.math.lroundl
-    libc.src.math.modf
-    libc.src.math.modff
-    libc.src.math.modfl
-    libc.src.math.nan
-    libc.src.math.nanf
-    libc.src.math.nanl
-    libc.src.math.nearbyint
-    libc.src.math.nearbyintf
-    libc.src.math.nearbyintf128
-    libc.src.math.nearbyintl
-    libc.src.math.nextafter
-    libc.src.math.nextafterf
-    libc.src.math.nextafterl
-    libc.src.math.nextdown
-    libc.src.math.nextdownf
-    libc.src.math.nextdownl
-    libc.src.math.nexttoward
-    libc.src.math.nexttowardf
-    libc.src.math.nexttowardl
-    libc.src.math.nextup
-    libc.src.math.nextupf
-    libc.src.math.nextupl
-    libc.src.math.pow
-    libc.src.math.powf
-    libc.src.math.remainder
-    libc.src.math.remainderf
-    libc.src.math.remainderl
-    libc.src.math.remquo
-    libc.src.math.remquof
-    libc.src.math.remquol
-    libc.src.math.rint
-    libc.src.math.rintf
-    libc.src.math.rintf128
-    libc.src.math.rintl
-    libc.src.math.round
-    libc.src.math.roundeven
-    libc.src.math.roundevenf
-    libc.src.math.roundevenf128
-    libc.src.math.roundevenl
-    libc.src.math.roundf
-    libc.src.math.roundf128
-    libc.src.math.roundl
-    libc.src.math.scalbln
-    libc.src.math.scalblnf
-    libc.src.math.scalblnl
-    libc.src.math.scalbn
-    libc.src.math.scalbnf
-    libc.src.math.scalbnl
-    libc.src.math.setpayload
-    libc.src.math.setpayloadf
-    libc.src.math.setpayloadl
-    libc.src.math.setpayloadsig
-    libc.src.math.setpayloadsigf
-    libc.src.math.setpayloadsigl
-    libc.src.math.sin
-    libc.src.math.sincos
-    libc.src.math.sincosf
-    libc.src.math.sinf
-    libc.src.math.sinhf
-    libc.src.math.sinpif
-    libc.src.math.sqrt
-    libc.src.math.sqrtf
-    libc.src.math.sqrtf128
-    libc.src.math.sqrtl
-    libc.src.math.tan
-    libc.src.math.tanf
-    libc.src.math.tanhf
-    libc.src.math.tanpif
-    libc.src.math.totalorder
-    libc.src.math.totalorderf
-    libc.src.math.totalorderl
-    libc.src.math.totalordermag
-    libc.src.math.totalordermagf
-    libc.src.math.totalordermagl
-    libc.src.math.trunc
-    libc.src.math.truncf
-    libc.src.math.truncf128
-    libc.src.math.truncl
-    libc.src.math.ufromfp
-    libc.src.math.ufromfpf
-    libc.src.math.ufromfpl
-    libc.src.math.ufromfpx
-    libc.src.math.ufromfpxf
-    libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_CFLOAT16)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # complex.h C23 _Complex _Float16 entrypoints
-    libc.src.complex.crealf16
-    libc.src.complex.cimagf16
-    libc.src.complex.conjf16
-    libc.src.complex.cprojf16
-  )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT16)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C23 _Float16 entrypoints
-    libc.src.math.acosf16
-    libc.src.math.acoshf16
-    libc.src.math.acospif16
-    libc.src.math.asinf16
-    libc.src.math.asinhf16
-    libc.src.math.asinpif16
-    libc.src.math.atanf16
-    libc.src.math.atan2f16
-    libc.src.math.atanhf16
-    libc.src.math.atanpif16
-    libc.src.math.canonicalizef16
-    libc.src.math.cbrtf16
-    libc.src.math.ceilf16
-    libc.src.math.copysignf16
-    libc.src.math.cosf16
-    libc.src.math.coshf16
-    libc.src.math.cospif16
-    libc.src.math.erff16
-    libc.src.math.erfcf16
-    libc.src.math.exp10f16
-    libc.src.math.exp10m1f16
-    libc.src.math.exp2f16
-    libc.src.math.exp2m1f16
-    libc.src.math.expf16
-    libc.src.math.expm1f16
-    libc.src.math.f16add
-    libc.src.math.f16addf
-    libc.src.math.f16addl
-    libc.src.math.f16div
-    libc.src.math.f16divf
-    libc.src.math.f16divl
-    libc.src.math.f16fma
-    libc.src.math.f16fmaf
-    libc.src.math.f16fmal
-    libc.src.math.f16mul
-    libc.src.math.f16mulf
-    libc.src.math.f16mull
-    libc.src.math.f16sqrt
-    libc.src.math.f16sqrtf
-    libc.src.math.f16sqrtl
-    libc.src.math.f16sub
-    libc.src.math.f16subf
-    libc.src.math.f16subl
-    libc.src.math.fabsf16
-    libc.src.math.fdimf16
-    libc.src.math.floorf16
-    libc.src.math.fmaf16
-    libc.src.math.fmaxf16
-    libc.src.math.fmaximum_mag_numf16
-    libc.src.math.fmaximum_magf16
-    libc.src.math.fmaximum_numf16
-    libc.src.math.fmaximumf16
-    libc.src.math.fminf16
-    libc.src.math.fminimum_mag_numf16
-    libc.src.math.fminimum_magf16
-    libc.src.math.fminimum_numf16
-    libc.src.math.fminimumf16
-    libc.src.math.fmodf16
-    libc.src.math.frexpf16
-    libc.src.math.fromfpf16
-    libc.src.math.fromfpxf16
-    libc.src.math.getpayloadf16
-    libc.src.math.hypotf16
-    libc.src.math.ilogbf16
-    libc.src.math.iscanonicalf16
-    libc.src.math.isnanf16
-    libc.src.math.issignalingf16
-    libc.src.math.ldexpf16
-    libc.src.math.lgammaf16
-    libc.src.math.llogbf16
-    libc.src.math.llrintf16
-    libc.src.math.llroundf16
-    libc.src.math.log10f16
-    libc.src.math.log10p1f16
-    libc.src.math.log2f16
-    libc.src.math.log2p1f16
-    libc.src.math.logbf16
-    libc.src.math.logf16
-    libc.src.math.lrintf16
-    libc.src.math.lroundf16
-    libc.src.math.modff16
-    libc.src.math.nanf16
-    libc.src.math.nearbyintf16
-    libc.src.math.nextafterf16
-    libc.src.math.nextdownf16
-    libc.src.math.nexttowardf16
-    libc.src.math.nextupf16
-    libc.src.math.remainderf16
-    libc.src.math.remquof16
-    libc.src.math.rintf16
-    libc.src.math.roundevenf16
-    libc.src.math.roundf16
-    libc.src.math.rsqrtf
-    libc.src.math.rsqrtf16
-    libc.src.math.scalblnf16
-    libc.src.math.scalbnf16
-    libc.src.math.setpayloadf16
-    libc.src.math.setpayloadsigf16
-    libc.src.math.sinf16
-    libc.src.math.sinhf16
-    libc.src.math.sinpif16
-    libc.src.math.sqrtf16
-    libc.src.math.tanf16
-    libc.src.math.tanhf16
-    libc.src.math.tanpif16
-    libc.src.math.totalorderf16
-    libc.src.math.totalordermagf16
-    libc.src.math.truncf16
-    libc.src.math.ufromfpf16
-    libc.src.math.ufromfpxf16
-  )
-
-  if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-    list(APPEND TARGET_LIBM_ENTRYPOINTS
-      # math.h C23 mixed _Float16 and _Float128 entrypoints
-      libc.src.math.f16addf128
-      libc.src.math.f16divf128
-      libc.src.math.f16fmaf128
-      libc.src.math.f16mulf128
-      libc.src.math.f16sqrtf128
-      libc.src.math.f16subf128
-    )
-  endif()
-endif()
-
-if(LIBC_TYPES_HAS_CFLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # complex.h C23 _Complex _Float128 entrypoints
-    libc.src.complex.crealf128
-    libc.src.complex.cimagf128
-    libc.src.complex.conjf128
-    libc.src.complex.cprojf128
-  )
-endif()
-
-if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C23 _Float128 entrypoints
-    libc.src.math.atan2l
-    libc.src.math.canonicalizef128
-    libc.src.math.daddf128
-    libc.src.math.ddivf128
-    libc.src.math.dfmaf128
-    libc.src.math.dmulf128
-    libc.src.math.dsqrtf128
-    libc.src.math.dsubf128
-    libc.src.math.faddf128
-    libc.src.math.fdivf128
-    libc.src.math.ffmaf128
-    libc.src.math.fmodf128
-    libc.src.math.fmulf128
-    libc.src.math.frexpf128
-    libc.src.math.fromfpf128
-    libc.src.math.fromfpxf128
-    libc.src.math.fsqrtf128
-    libc.src.math.fsubf128
-    libc.src.math.getpayloadf128
-    libc.src.math.ilogbf128
-    libc.src.math.ldexpf128
-    libc.src.math.llogbf128
-    libc.src.math.logbf128
-    libc.src.math.modff128
-    libc.src.math.nanf128
-    libc.src.math.nextafterf128
-    libc.src.math.nextdownf128
-    libc.src.math.nextupf128
-    libc.src.math.remainderf128
-    libc.src.math.remquof128
-    libc.src.math.scalblnf128
-    libc.src.math.scalbnf128
-    libc.src.math.setpayloadf128
-    libc.src.math.setpayloadsigf128
-    libc.src.math.totalorderf128
-    libc.src.math.totalordermagf128
-    libc.src.math.ufromfpf128
-    libc.src.math.ufromfpxf128
-  )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
-  # bfloat16 entrypoints
-  libc.src.math.atanbf16
-  libc.src.math.acosbf16
-  libc.src.math.asinbf16
-  libc.src.math.bf16add
-  libc.src.math.bf16addf
-  libc.src.math.bf16addl
-  libc.src.math.bf16div
-  libc.src.math.bf16divf
-  libc.src.math.bf16divl
-  libc.src.math.bf16fma
-  libc.src.math.bf16fmaf
-  libc.src.math.bf16fmal
-  libc.src.math.bf16mul
-  libc.src.math.bf16mulf
-  libc.src.math.bf16mull
-  libc.src.math.bf16sub
-  libc.src.math.bf16subf
-  libc.src.math.bf16subl
-  libc.src.math.canonicalizebf16
-  libc.src.math.ceilbf16
-  libc.src.math.copysignbf16
-  libc.src.math.exp2bf16
-  libc.src.math.expbf16
-  libc.src.math.fabsbf16
-  libc.src.math.fdimbf16
-  libc.src.math.floorbf16
-  libc.src.math.fmaxbf16
-  libc.src.math.fmaximumbf16
-  libc.src.math.fmaximum_magbf16
-  libc.src.math.fmaximum_mag_numbf16
-  libc.src.math.fmaximum_numbf16
-  libc.src.math.fminbf16
-  libc.src.math.fminimumbf16
-  libc.src.math.fminimum_magbf16
-  libc.src.math.fminimum_mag_numbf16
-  libc.src.math.fminimum_numbf16
-  libc.src.math.fmodbf16
-  libc.src.math.frexpbf16
-  libc.src.math.fromfpbf16
-  libc.src.math.fromfpxbf16
-  libc.src.math.getpayloadbf16
-  libc.src.math.hypotbf16
-  libc.src.math.ilogbbf16
-  libc.src.math.iscanonicalbf16
-  libc.src.math.issignalingbf16
-  libc.src.math.ldexpbf16
-  libc.src.math.llogbbf16
-  libc.src.math.llrintbf16
-  libc.src.math.llroundbf16
-  libc.src.math.log_bf16
-  libc.src.math.logbbf16
-  libc.src.math.lrintbf16
-  libc.src.math.lroundbf16
-  libc.src.math.modfbf16
-  libc.src.math.nanbf16
-  libc.src.math.nearbyintbf16
-  libc.src.math.nextafterbf16
-  libc.src.math.nextdownbf16
-  libc.src.math.nexttowardbf16
-  libc.src.math.nextupbf16
-  libc.src.math.remainderbf16
-  libc.src.math.remquobf16
-  libc.src.math.rintbf16
-  libc.src.math.roundbf16
-  libc.src.math.roundevenbf16
-  libc.src.math.scalblnbf16
-  libc.src.math.scalbnbf16
-  libc.src.math.setpayloadbf16
-  libc.src.math.setpayloadsigbf16
-  libc.src.math.sqrtbf16
-  libc.src.math.tanbf16
-  libc.src.math.truncbf16
-  libc.src.math.totalorderbf16
-  libc.src.math.totalordermagbf16
-  libc.src.math.ufromfpbf16
-  libc.src.math.ufromfpxbf16
-)
-
-if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C++23 mixed bfloat16 and _Float128 entrypoints
-    libc.src.math.bf16addf128
-    libc.src.math.bf16divf128
-    libc.src.math.bf16fmaf128
-    libc.src.math.bf16mulf128
-    libc.src.math.bf16subf128
-  )
-endif()
-
-if(LIBC_COMPILER_HAS_FIXED_POINT)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # stdfix.h _Fract and _Accum entrypoints
-    libc.src.stdfix.abshk
-    libc.src.stdfix.abshr
-    libc.src.stdfix.absk
-    libc.src.stdfix.abslk
-    libc.src.stdfix.abslr
-    libc.src.stdfix.absr
-    libc.src.stdfix.exphk
-    libc.src.stdfix.expk
-    libc.src.stdfix.roundhk
-    libc.src.stdfix.roundhr
-    libc.src.stdfix.roundk
-    libc.src.stdfix.roundlk
-    libc.src.stdfix.roundlr
-    libc.src.stdfix.roundr
-    libc.src.stdfix.rounduhk
-    libc.src.stdfix.rounduhr
-    libc.src.stdfix.rounduk
-    libc.src.stdfix.roundulk
-    libc.src.stdfix.roundulr
-    libc.src.stdfix.roundur
-    libc.src.stdfix.sqrtuhk
-    libc.src.stdfix.sqrtuhr
-    libc.src.stdfix.sqrtuk
-    libc.src.stdfix.sqrtur
-    # libc.src.stdfix.sqrtulk
-    libc.src.stdfix.sqrtulr
-    libc.src.stdfix.uhksqrtus
-    libc.src.stdfix.uksqrtui
-    libc.src.stdfix.hrbits
-    libc.src.stdfix.uhrbits
-    libc.src.stdfix.rbits
-    libc.src.stdfix.urbits
-    libc.src.stdfix.lrbits
-    libc.src.stdfix.ulrbits
-    libc.src.stdfix.hkbits
-    libc.src.stdfix.uhkbits
-    libc.src.stdfix.kbits
-    libc.src.stdfix.ukbits
-    libc.src.stdfix.lkbits
-    libc.src.stdfix.ulkbits
-    libc.src.stdfix.bitshr
-    libc.src.stdfix.bitsr
-    libc.src.stdfix.bitslr
-    libc.src.stdfix.bitshk
-    libc.src.stdfix.bitsk
-    libc.src.stdfix.bitslk
-    libc.src.stdfix.bitsuhr
-    libc.src.stdfix.bitsur
-    libc.src.stdfix.bitsulr
-    libc.src.stdfix.bitsuhk
-    libc.src.stdfix.bitsuk
-    libc.src.stdfix.bitsulk
-    libc.src.stdfix.countlshr
-    libc.src.stdfix.countlsr
-    libc.src.stdfix.countlslr
-    libc.src.stdfix.countlshk
-    libc.src.stdfix.countlsk
-    libc.src.stdfix.countlslk
-    libc.src.stdfix.countlsuhr
-    libc.src.stdfix.countlsur
-    libc.src.stdfix.countlsulr
-    libc.src.stdfix.countlsuhk
-    libc.src.stdfix.countlsuk
-    libc.src.stdfix.countlsulk
-    libc.src.stdfix.idivr
-    libc.src.stdfix.idivlr
-    libc.src.stdfix.idivk
-    libc.src.stdfix.idivlk
-    libc.src.stdfix.idivur
-    libc.src.stdfix.idivulr
-    libc.src.stdfix.idivuk
-    libc.src.stdfix.idivulk
-    libc.src.stdfix.rdivi
-    libc.src.stdfix.lrdivi
-    libc.src.stdfix.kdivi
-    libc.src.stdfix.lkdivi
-    libc.src.stdfix.urdivi
-    libc.src.stdfix.ulrdivi
-    libc.src.stdfix.ukdivi
-    libc.src.stdfix.ulkdivi
-    libc.src.stdfix.divir
-    libc.src.stdfix.divilr
-    libc.src.stdfix.divik
-    libc.src.stdfix.divilk
-    libc.src.stdfix.diviur
-    libc.src.stdfix.diviulr
-    libc.src.stdfix.diviuk
-    libc.src.stdfix.diviulk
-  )
-endif()
-
-if(LLVM_LIBC_FULL_BUILD)
-  list(APPEND TARGET_LIBC_ENTRYPOINTS
-    # ctype.h entrypoints
-    libc.src.ctype.isalnum_l
-    libc.src.ctype.isalpha_l
-    libc.src.ctype.isblank_l
-    libc.src.ctype.iscntrl_l
-    libc.src.ctype.isdigit_l
-    libc.src.ctype.isgraph_l
-    libc.src.ctype.islower_l
-    libc.src.ctype.isprint_l
-    libc.src.ctype.ispunct_l
-    libc.src.ctype.isspace_l
-    libc.src.ctype.isupper_l
-    libc.src.ctype.isxdigit_l
-    libc.src.ctype.tolower_l
-    libc.src.ctype.toupper_l
-
-    # errno.h entrypoints
-    libc.src.errno.program_invocation_name
-    libc.src.errno.program_invocation_short_name
-
-    # stdlib.h entrypoints
-    libc.src.stdlib.strtod_l
-    libc.src.stdlib.strtof_l
-    libc.src.stdlib.strtol_l
-    libc.src.stdlib.strtold_l
-    libc.src.stdlib.strtoll_l
-    libc.src.stdlib.strtoul_l
-    libc.src.stdlib.strtoull_l
-
-    # string.h entrypoints
-    libc.src.string.strcoll_l
-    libc.src.string.strxfrm_l
-
-    # strings.h entrypoints
-    libc.src.strings.strcasecmp_l
-    libc.src.strings.strncasecmp_l
-
-    # assert.h entrypoints
-    libc.src.assert.__assert_fail
-
-    # compiler entrypoints (no corresponding header)
-    libc.src.compiler.__stack_chk_fail
-
-    # dirent.h entrypoints
-    libc.src.dirent.alphasort
-    libc.src.dirent.closedir
-    libc.src.dirent.dirfd
-    libc.src.dirent.opendir
-    libc.src.dirent.readdir
-    libc.src.dirent.scandir
-    libc.src.dirent.fdopendir
-
-    # pthread.h entrypoints
-    libc.src.pthread.__pthread_cleanup_pop
-    libc.src.pthread.__pthread_cleanup_push
-    libc.src.pthread.pthread_atfork
-    libc.src.pthread.pthread_attr_destroy
-    libc.src.pthread.pthread_attr_getdetachstate
-    libc.src.pthread.pthread_attr_getguardsize
-    libc.src.pthread.pthread_attr_getinheritsched
-    libc.src.pthread.pthread_attr_getschedparam
-    libc.src.pthread.pthread_attr_getschedpolicy
-    libc.src.pthread.pthread_attr_getscope
-    libc.src.pthread.pthread_attr_getstack
-    libc.src.pthread.pthread_attr_getstacksize
-    libc.src.pthread.pthread_attr_init
-    libc.src.pthread.pthread_attr_setdetachstate
-    libc.src.pthread.pthread_attr_setguardsize
-    libc.src.pthread.pthread_attr_setinheritsched
-    libc.src.pthread.pthread_attr_setschedparam
-    libc.src.pthread.pthread_attr_setschedpolicy
-    libc.src.pthread.pthread_attr_setscope
-    libc.src.pthread.pthread_attr_setstack
-    libc.src.pthread.pthread_attr_setstacksize
-    libc.src.pthread.pthread_condattr_destroy
-    libc.src.pthread.pthread_condattr_getclock
-    libc.src.pthread.pthread_condattr_getpshared
-    libc.src.pthread.pthread_condattr_init
-    libc.src.pthread.pthread_condattr_setclock
-    libc.src.pthread.pthread_condattr_setpshared
-    libc.src.pthread.pthread_cond_broadcast
-    libc.src.pthread.pthread_cond_clockwait
-    libc.src.pthread.pthread_cond_destroy
-    libc.src.pthread.pthread_cond_init
-    libc.src.pthread.pthread_cond_signal
-    libc.src.pthread.pthread_cond_timedwait
-    libc.src.pthread.pthread_cond_wait
-    libc.src.pthread.pthread_create
-    libc.src.pthread.pthread_detach
-    libc.src.pthread.pthread_equal
-    libc.src.pthread.pthread_exit
-    libc.src.pthread.pthread_getattr_np
-    libc.src.pthread.pthread_getname_np
-    libc.src.pthread.pthread_getschedparam
-    libc.src.pthread.pthread_getspecific
-    libc.src.pthread.pthread_getstack_np
-    libc.src.pthread.pthread_getthreadid_np
-    libc.src.pthread.pthread_getunique_np
-    libc.src.pthread.pthread_join
-    libc.src.pthread.pthread_key_create
-    libc.src.pthread.pthread_key_delete
-    libc.src.pthread.pthread_barrier_init
-    libc.src.pthread.pthread_barrier_wait
-    libc.src.pthread.pthread_barrier_destroy
-    libc.src.pthread.pthread_mutex_destroy
-    libc.src.pthread.pthread_mutex_init
-    libc.src.pthread.pthread_mutex_lock
-    libc.src.pthread.pthread_mutex_trylock
-    libc.src.pthread.pthread_mutex_unlock
-    libc.src.pthread.pthread_mutexattr_destroy
-    libc.src.pthread.pthread_mutexattr_getpshared
-    libc.src.pthread.pthread_mutexattr_getrobust
-    libc.src.pthread.pthread_mutexattr_gettype
-    libc.src.pthread.pthread_mutexattr_init
-    libc.src.pthread.pthread_mutexattr_setpshared
-    libc.src.pthread.pthread_mutexattr_setrobust
-    libc.src.pthread.pthread_mutexattr_settype
-    libc.src.pthread.pthread_once
-    libc.src.pthread.pthread_rwlock_clockrdlock
-    libc.src.pthread.pthread_rwlock_clockwrlock
-    libc.src.pthread.pthread_rwlock_destroy
-    libc.src.pthread.pthread_rwlock_init
-    libc.src.pthread.pthread_rwlock_rdlock
-    libc.src.pthread.pthread_rwlock_timedrdlock
-    libc.src.pthread.pthread_rwlock_timedwrlock
-    libc.src.pthread.pthread_rwlock_tryrdlock
-    libc.src.pthread.pthread_rwlock_trywrlock
-    libc.src.pthread.pthread_rwlock_unlock
-    libc.src.pthread.pthread_rwlock_wrlock
-    libc.src.pthread.pthread_rwlockattr_destroy
-    libc.src.pthread.pthread_rwlockattr_getkind_np
-    libc.src.pthread.pthread_rwlockattr_getpshared
-    libc.src.pthread.pthread_rwlockattr_init
-    libc.src.pthread.pthread_rwlockattr_setkind_np
-    libc.src.pthread.pthread_rwlockattr_setpshared
-    libc.src.pthread.pthread_spin_destroy
-    libc.src.pthread.pthread_spin_init
-    libc.src.pthread.pthread_spin_lock
-    libc.src.pthread.pthread_spin_trylock
-    libc.src.pthread.pthread_spin_unlock
-    libc.src.pthread.pthread_self
-    libc.src.pthread.pthread_setname_np
-    libc.src.pthread.pthread_setschedparam
-    libc.src.pthread.pthread_setspecific
-
-    # sched.h entrypoints
-    libc.src.sched.clone
-    libc.src.sched.__sched_andcpuset
-    libc.src.sched.__sched_clrcpuset
-    libc.src.sched.__sched_cpualloc
-    libc.src.sched.__sched_cpuequal
-    libc.src.sched.__sched_cpufree
-    libc.src.sched.__sched_getcpucount
-    libc.src.sched.__sched_getcpuisset
-    libc.src.sched.__sched_orcpuset
-    libc.src.sched.__sched_setcpuset
-    libc.src.sched.__sched_setcpuzero
-    libc.src.sched.__sched_xorcpuset
-
-    # semaphore.h entrypoints
-    libc.src.semaphore.sem_clockwait
-    libc.src.semaphore.sem_close
-    libc.src.semaphore.sem_destroy
-    libc.src.semaphore.sem_getvalue
-    libc.src.semaphore.sem_init
-    libc.src.semaphore.sem_open
-    libc.src.semaphore.sem_post
-    libc.src.semaphore.sem_timedwait
-    libc.src.semaphore.sem_trywait
-    libc.src.semaphore.sem_unlink
-    libc.src.semaphore.sem_wait
-
-    # setjmp.h entrypoints
-    libc.src.setjmp.longjmp
-    libc.src.setjmp.setjmp
-    libc.src.setjmp.siglongjmp
-    libc.src.setjmp.sigsetjmp
-
-    # stdio.h entrypoints
-    libc.src.stdio.clearerr
-    libc.src.stdio.clearerr_unlocked
-    libc.src.stdio.fclose
-    libc.src.stdio.fdopen
-    libc.src.stdio.feof
-    libc.src.stdio.feof_unlocked
-    libc.src.stdio.ferror
-    libc.src.stdio.ferror_unlocked
-    libc.src.stdio.fflush
-    libc.src.stdio.fgetc
-    libc.src.stdio.fgetc_unlocked
-    libc.src.stdio.fgetpos
-    libc.src.stdio.fgets
-    libc.src.stdio.fileno
-    libc.src.stdio.flockfile
-    libc.src.stdio.fmemopen
-    libc.src.stdio.fopen
-    libc.src.stdio.freopen
-    libc.src.stdio.fopencookie
-    libc.src.stdio.fputc
-    libc.src.stdio.fputs
-    libc.src.stdio.fread
-    libc.src.stdio.fread_unlocked
-    libc.src.stdio.fseek
-    libc.src.stdio.fseeko
-    libc.src.stdio.fsetpos
-    libc.src.stdio.ftell
-    libc.src.stdio.ftello
-    libc.src.stdio.funlockfile
-    libc.src.stdio.fwrite
-    libc.src.stdio.fwrite_unlocked
-    libc.src.stdio.getc
-    libc.src.stdio.getc_unlocked
-    libc.src.stdio.getchar
-    libc.src.stdio.getchar_unlocked
-    libc.src.stdio.pclose
-    libc.src.stdio.perror
-    libc.src.stdio.popen
-    libc.src.stdio.putc
-    libc.src.stdio.putchar
-    libc.src.stdio.puts
-    libc.src.stdio.rewind
-    libc.src.stdio.setbuf
-    libc.src.stdio.setvbuf
-    libc.src.stdio.stderr
-    libc.src.stdio.stdin
-    libc.src.stdio.stdout
-    libc.src.stdio.ungetc
-
-    # stdlib.h entrypoints
-    libc.src.stdlib.__cxa_thread_atexit_impl
-    libc.src.stdlib._Exit
-    libc.src.stdlib.abort
-    libc.src.stdlib.at_quick_exit
-    libc.src.stdlib.atexit
-    libc.src.stdlib.clearenv
-    libc.src.stdlib.exit
-    libc.src.stdlib.getenv
-    libc.src.stdlib.putenv
-    libc.src.stdlib.secure_getenv
-    libc.src.stdlib.setenv
-    libc.src.stdlib.system
-    libc.src.stdlib.unsetenv
-    libc.src.stdlib.mbstowcs
-    libc.src.stdlib.mbtowc
-    libc.src.stdlib.mblen
-    libc.src.stdlib.quick_exit
-    libc.src.stdlib.wcstombs
-    libc.src.stdlib.wctomb
-
-    # signal.h entrypoints
-    libc.src.signal.kill
-    libc.src.signal.pthread_kill
-    libc.src.signal.pthread_sigmask
-    libc.src.signal.raise
-    libc.src.signal.sigaction
-    libc.src.signal.sigaddset
-    libc.src.signal.sigaltstack
-    libc.src.signal.sigdelset
-    libc.src.signal.sigemptyset
-    libc.src.signal.sigfillset
-    libc.src.signal.sigismember
-    libc.src.signal.signal
-    libc.src.signal.sigprocmask
-
-    # spawn.h entrypoints
-    libc.src.spawn.posix_spawn
-    libc.src.spawn.posix_spawn_file_actions_addclose
-    libc.src.spawn.posix_spawn_file_actions_adddup2
-    libc.src.spawn.posix_spawn_file_actions_addopen
-    libc.src.spawn.posix_spawn_file_actions_destroy
-    libc.src.spawn.posix_spawn_file_actions_init
-
-    # search.h entrypoints
-    libc.src.search.hcreate
-    libc.src.search.hcreate_r
-    libc.src.search.hdestroy
-    libc.src.search.hdestroy_r
-    libc.src.search.hsearch
-    libc.src.search.hsearch_r
-    libc.src.search.insque
-    libc.src.search.lfind
-    libc.src.search.lsearch
-    libc.src.search.remque
-    libc.src.search.tdelete
-    libc.src.search.tdestroy
-    libc.src.search.tfind
-    libc.src.search.tsearch
-    libc.src.search.twalk
-    libc.src.search.twalk_r
-
-    # threads.h entrypoints
-    libc.src.threads.call_once
-    libc.src.threads.cnd_broadcast
-    libc.src.threads.cnd_destroy
-    libc.src.threads.cnd_init
-    libc.src.threads.cnd_signal
-    libc.src.threads.cnd_timedwait
-    libc.src.threads.cnd_wait
-    libc.src.threads.mtx_destroy
-    libc.src.threads.mtx_init
-    libc.src.threads.mtx_lock
-    libc.src.threads.mtx_trylock
-    libc.src.threads.mtx_unlock
-    libc.src.threads.thrd_create
-    libc.src.threads.thrd_current
-    libc.src.threads.thrd_detach
-    libc.src.threads.thrd_equal
-    libc.src.threads.thrd_exit
-    libc.src.threads.thrd_join
-    libc.src.threads.tss_create
-    libc.src.threads.tss_delete
-    libc.src.threads.tss_get
-    libc.src.threads.tss_set
-
-    # time.h entrypoints
-    libc.src.time.asctime
-    libc.src.time.asctime_r
-    libc.src.time.ctime
-    libc.src.time.ctime_r
-    libc.src.time.clock
-    libc.src.time.clock_getcpuclockid
-    libc.src.time.clock_getres
-    libc.src.time.clock_gettime
-    libc.src.time.clock_settime
-    libc.src.time.difftime
-    libc.src.time.gmtime
-    libc.src.time.gmtime_r
-    libc.src.time.localtime
-    libc.src.time.localtime_r
-    libc.src.time.mktime
-    libc.src.time.nanosleep
-    libc.src.time.strftime
-    libc.src.time.strftime_l
-    libc.src.time.time
-    libc.src.time.timespec_get
-    libc.src.time.timer_create
-    libc.src.time.timer_delete
-    libc.src.time.timer_getoverrun
-    libc.src.time.timer_gettime
-    libc.src.time.timer_settime
-
-    # locale.h entrypoints
-    libc.src.locale.localeconv
-    libc.src.locale.duplocale
-    libc.src.locale.freelocale
-    libc.src.locale.localeconv
-    libc.src.locale.newlocale
-    libc.src.locale.setlocale
-    libc.src.locale.uselocale
-
-    # unistd.h entrypoints
-    libc.src.unistd.__llvm_libc_syscall
-    libc.src.unistd._exit
-    libc.src.unistd.confstr
-    libc.src.unistd.environ
-    libc.src.unistd.execl
-    libc.src.unistd.execlp
-    libc.src.unistd.execv
-    libc.src.unistd.execvp
-    libc.src.unistd.execvpe
-    libc.src.unistd.fork
-    libc.src.unistd.getopt
-    libc.src.unistd.optarg
-    libc.src.unistd.opterr
-    libc.src.unistd.optind
-    libc.src.unistd.optopt
-    libc.src.unistd.swab
-    libc.src.unistd.sysconf
-
-    # sys/select.h entrypoints
-    libc.src.sys.select.pselect
-    libc.src.sys.select.select
-
-    # wchar.h entrypoints
-    libc.src.wchar.mbrlen
-    libc.src.wchar.mbsinit
-    libc.src.wchar.mbrtowc
-    libc.src.wchar.mbsrtowcs
-    libc.src.wchar.mbsnrtowcs
-    libc.src.wchar.wcrtomb
-    libc.src.wchar.wcsrtombs
-    libc.src.wchar.wcsnrtombs
-    libc.src.wchar.fgetwc
-    libc.src.wchar.fgetws
-    libc.src.wchar.fputwc
-    libc.src.wchar.fputws
-    libc.src.wchar.fwide
-    libc.src.wchar.getwc
-    libc.src.wchar.getwchar
-    libc.src.wchar.putwc
-    libc.src.wchar.putwchar
-    libc.src.wchar.ungetwc
-
-    # nl_types.h entrypoints
-    libc.src.nl_types.catopen
-    libc.src.nl_types.catclose
-    libc.src.nl_types.catgets
-
-    # link.h entrypoints
-    libc.src.link._r_debug
-    libc.src.link.dl_iterate_phdr
-  )
-endif()
-
-if(LLVM_LIBC_ENABLE_EXPERIMENTAL_ENTRYPOINTS)
-  if(LLVM_LIBC_FULL_BUILD)
-    list(APPEND TARGET_LIBC_ENTRYPOINTS
-      # fnmatch.h entrypoints
-      libc.src.fnmatch.fnmatch
-
-      # glob.h entrypoints
-      libc.src.glob.glob
-      libc.src.glob.globfree
-
-      # grp.h entrypoints
-      libc.src.grp.initgroups
-      libc.src.grp.setgroups
-
-      # libintl.h entrypoints
-      libc.src.libintl.bind_textdomain_codeset
-      libc.src.libintl.bindtextdomain
-      libc.src.libintl.dcgettext
-      libc.src.libintl.dcgettext_l
-      libc.src.libintl.dcngettext
-      libc.src.libintl.dcngettext_l
-      libc.src.libintl.dgettext
-      libc.src.libintl.dgettext_l
-      libc.src.libintl.dngettext
-      libc.src.libintl.dngettext_l
-      libc.src.libintl.gettext
-      libc.src.libintl.gettext_l
-      libc.src.libintl.ngettext
-      libc.src.libintl.ngettext_l
-      libc.src.libintl.textdomain
-
-      # net/if.h entrypoints
-      libc.src.net.if_freenameindex
-      libc.src.net.if_nameindex
-
-      # regex.h entrypoints
-      libc.src.regex.regcomp
-      libc.src.regex.regexec
-      libc.src.regex.regerror
-      libc.src.regex.regfree
-
-      # sys/ptrace.h entrypoints
-      libc.src.sys.ptrace.ptrace
-
-      # unistd.h entrypoints
-      libc.src.unistd.setegid
-      libc.src.unistd.seteuid
-      libc.src.unistd.setgid
-      libc.src.unistd.setregid
-      libc.src.unistd.setresgid
-      libc.src.unistd.setresuid
-      libc.src.unistd.setreuid
-      libc.src.unistd.setuid
-
-      # wchar.h entrypoints
-      libc.src.wchar.swprintf
-    )
-  endif()
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
-  ${TARGET_LIBC_ENTRYPOINTS}
-  ${TARGET_LIBM_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+    # arpa/inet.h entrypoints
+    libc.src.arpa.inet.htonl
+    libc.src.arpa.inet.htons
+    libc.src.arpa.inet.inet_addr
+    libc.src.arpa.inet.inet_aton
+    libc.src.arpa.inet.inet_ntoa
+    libc.src.arpa.inet.inet_ntop
+    libc.src.arpa.inet.inet_pton
+    libc.src.arpa.inet.ntohl
+    libc.src.arpa.inet.ntohs
+
+    # ctype.h entrypoints
+    libc.src.ctype.isalnum
+    libc.src.ctype.isalpha
+    libc.src.ctype.isascii
+    libc.src.ctype.isblank
+    libc.src.ctype.iscntrl
+    libc.src.ctype.isdigit
+    libc.src.ctype.isgraph
+    libc.src.ctype.islower
+    libc.src.ctype.isprint
+    libc.src.ctype.ispunct
+    libc.src.ctype.isspace
+    libc.src.ctype.isupper
+    libc.src.ctype.isxdigit
+    libc.src.ctype.toascii
+    libc.src.ctype.tolower
+    libc.src.ctype.toupper
+
+    # dlfcn.h entrypoints
+    libc.src.dlfcn.dladdr
+    libc.src.dlfcn.dlclose
+    libc.src.dlfcn.dlerror
+    libc.src.dlfcn.dlopen
+    libc.src.dlfcn.dlsym
+
+    # err.h entrypoints
+    libc.src.err.err
+    libc.src.err.verr
+    libc.src.err.errx
+    libc.src.err.verrx
+    libc.src.err.warn
+    libc.src.err.vwarn
+    libc.src.err.warnx
+    libc.src.err.vwarnx
+
+    # errno.h entrypoints
+    libc.src.errno.errno
+
+    # fcntl.h entrypoints
+    libc.src.fcntl.creat
+    libc.src.fcntl.fallocate
+    libc.src.fcntl.fcntl
+    libc.src.fcntl.open
+    libc.src.fcntl.openat
+    libc.src.fcntl.posix_fadvise
+    libc.src.fcntl.posix_fadvise64
+    libc.src.fcntl.posix_fallocate
+
+    # grp.h entrypoints
+    libc.src.grp.endgrent
+    libc.src.grp.getgrent
+    libc.src.grp.getgrgid
+    libc.src.grp.getgrgid_r
+    libc.src.grp.getgrouplist
+    libc.src.grp.getgrnam
+    libc.src.grp.getgrnam_r
+    libc.src.grp.setgrent
+
+    # net/if.h entrypoints
+    libc.src.net.if_indextoname
+    libc.src.net.if_nametoindex
+
+    # netinet/ether.h entrypoints
+    libc.src.netinet.ether.ether_ntoa
+    libc.src.netinet.ether.ether_ntoa_r
+
+    # netinet/in.h entrypoints
+    libc.src.netinet.in6addr_any
+    libc.src.netinet.in6addr_loopback
+
+    # poll.h entrypoints
+    libc.src.poll.poll
+    libc.src.poll.ppoll
+
+    # pwd.h entrypoints
+    libc.src.pwd.endpwent
+    libc.src.pwd.getpwent
+    libc.src.pwd.getpwent_r
+    libc.src.pwd.getpwnam
+    libc.src.pwd.getpwnam_r
+    libc.src.pwd.getpwuid
+    libc.src.pwd.getpwuid_r
+    libc.src.pwd.setpwent
+
+    # sched.h entrypoints
+    libc.src.sched.getcpu
+    libc.src.sched.sched_get_priority_max
+    libc.src.sched.sched_get_priority_min
+    libc.src.sched.sched_getaffinity
+    libc.src.sched.sched_getcpu
+    libc.src.sched.sched_getparam
+    libc.src.sched.sched_getscheduler
+    libc.src.sched.sched_rr_get_interval
+    libc.src.sched.sched_setaffinity
+    libc.src.sched.sched_setparam
+    libc.src.sched.sched_setscheduler
+    libc.src.sched.sched_yield
+
+    # string.h entrypoints
+    libc.src.string.memccpy
+    libc.src.string.memchr
+    libc.src.string.memcmp
+    libc.src.string.memcpy
+    libc.src.string.memmem
+    libc.src.string.memmove
+    libc.src.string.mempcpy
+    libc.src.string.memrchr
+    libc.src.string.memset
+    libc.src.string.memset_explicit
+    libc.src.string.stpcpy
+    libc.src.string.stpncpy
+    libc.src.string.strcasestr
+    libc.src.string.strcat
+    libc.src.string.strchr
+    libc.src.string.strchrnul
+    libc.src.string.strcmp
+    libc.src.string.strcoll
+    libc.src.string.strcpy
+    libc.src.string.strcspn
+    libc.src.string.strdup
+    libc.src.string.strerror
+    libc.src.string.strerror_r
+    libc.src.string.strlcat
+    libc.src.string.strlcpy
+    libc.src.string.strlen
+    libc.src.string.strncat
+    libc.src.string.strncmp
+    libc.src.string.strncpy
+    libc.src.string.strndup
+    libc.src.string.strnlen
+    libc.src.string.strnlen_s
+    libc.src.string.strpbrk
+    libc.src.string.strrchr
+    libc.src.string.strsep
+    libc.src.string.strsignal
+    libc.src.string.strspn
+    libc.src.string.strstr
+    libc.src.string.strtok
+    libc.src.string.strtok_r
+    libc.src.string.strxfrm
+
+    # strings.h entrypoints
+    libc.src.strings.bcmp
+    libc.src.strings.bcopy
+    libc.src.strings.bzero
+    libc.src.strings.ffs
+    libc.src.strings.ffsl
+    libc.src.strings.ffsll
+    libc.src.strings.index
+    libc.src.strings.rindex
+    libc.src.strings.strcasecmp
+    libc.src.strings.strncasecmp
+
+    # inttypes.h entrypoints
+    libc.src.inttypes.imaxabs
+    libc.src.inttypes.imaxdiv
+    libc.src.inttypes.strtoimax
+    libc.src.inttypes.strtoumax
+    libc.src.inttypes.wcstoimax
+    libc.src.inttypes.wcstoumax
+
+    # libgen.h entrypoints
+    libc.src.libgen.basename
+    libc.src.libgen.dirname
+
+    # stdbit.h entrypoints
+    libc.src.stdbit.stdc_bit_ceil_uc
+    libc.src.stdbit.stdc_bit_ceil_ui
+    libc.src.stdbit.stdc_bit_ceil_ul
+    libc.src.stdbit.stdc_bit_ceil_ull
+    libc.src.stdbit.stdc_bit_ceil_us
+    libc.src.stdbit.stdc_bit_floor_uc
+    libc.src.stdbit.stdc_bit_floor_ui
+    libc.src.stdbit.stdc_bit_floor_ul
+    libc.src.stdbit.stdc_bit_floor_ull
+    libc.src.stdbit.stdc_bit_floor_us
+    libc.src.stdbit.stdc_bit_width_uc
+    libc.src.stdbit.stdc_bit_width_ui
+    libc.src.stdbit.stdc_bit_width_ul
+    libc.src.stdbit.stdc_bit_width_ull
+    libc.src.stdbit.stdc_bit_width_us
+    libc.src.stdbit.stdc_count_ones_uc
+    libc.src.stdbit.stdc_count_ones_ui
+    libc.src.stdbit.stdc_count_ones_ul
+    libc.src.stdbit.stdc_count_ones_ull
+    libc.src.stdbit.stdc_count_ones_us
+    libc.src.stdbit.stdc_count_zeros_uc
+    libc.src.stdbit.stdc_count_zeros_ui
+    libc.src.stdbit.stdc_count_zeros_ul
+    libc.src.stdbit.stdc_count_zeros_ull
+    libc.src.stdbit.stdc_count_zeros_us
+    libc.src.stdbit.stdc_first_leading_one_uc
+    libc.src.stdbit.stdc_first_leading_one_ui
+    libc.src.stdbit.stdc_first_leading_one_ul
+    libc.src.stdbit.stdc_first_leading_one_ull
+    libc.src.stdbit.stdc_first_leading_one_us
+    libc.src.stdbit.stdc_first_leading_zero_uc
+    libc.src.stdbit.stdc_first_leading_zero_ui
+    libc.src.stdbit.stdc_first_leading_zero_ul
+    libc.src.stdbit.stdc_first_leading_zero_ull
+    libc.src.stdbit.stdc_first_leading_zero_us
+    libc.src.stdbit.stdc_first_trailing_one_uc
+    libc.src.stdbit.stdc_first_trailing_one_ui
+    libc.src.stdbit.stdc_first_trailing_one_ul
+    libc.src.stdbit.stdc_first_trailing_one_ull
+    libc.src.stdbit.stdc_first_trailing_one_us
+    libc.src.stdbit.stdc_first_trailing_zero_uc
+    libc.src.stdbit.stdc_first_trailing_zero_ui
+    libc.src.stdbit.stdc_first_trailing_zero_ul
+    libc.src.stdbit.stdc_first_trailing_zero_ull
+    libc.src.stdbit.stdc_first_trailing_zero_us
+    libc.src.stdbit.stdc_has_single_bit_uc
+    libc.src.stdbit.stdc_has_single_bit_ui
+    libc.src.stdbit.stdc_has_single_bit_ul
+    libc.src.stdbit.stdc_has_single_bit_ull
+    libc.src.stdbit.stdc_has_single_bit_us
+    libc.src.stdbit.stdc_leading_ones_uc
+    libc.src.stdbit.stdc_leading_ones_ui
+    libc.src.stdbit.stdc_leading_ones_ul
+    libc.src.stdbit.stdc_leading_ones_ull
+    libc.src.stdbit.stdc_leading_ones_us
+    libc.src.stdbit.stdc_leading_zeros_uc
+    libc.src.stdbit.stdc_leading_zeros_ui
+    libc.src.stdbit.stdc_leading_zeros_ul
+    libc.src.stdbit.stdc_leading_zeros_ull
+    libc.src.stdbit.stdc_leading_zeros_us
+    libc.src.stdbit.stdc_trailing_ones_uc
+    libc.src.stdbit.stdc_trailing_ones_ui
+    libc.src.stdbit.stdc_trailing_ones_ul
+    libc.src.stdbit.stdc_trailing_ones_ull
+    libc.src.stdbit.stdc_trailing_ones_us
+    libc.src.stdbit.stdc_trailing_zeros_uc
+    libc.src.stdbit.stdc_trailing_zeros_ui
+    libc.src.stdbit.stdc_trailing_zeros_ul
+    libc.src.stdbit.stdc_trailing_zeros_ull
+    libc.src.stdbit.stdc_trailing_zeros_us
+
+    # stdlib.h entrypoints
+    libc.src.stdlib.a64l
+    libc.src.stdlib.abs
+    libc.src.stdlib.atof
+    libc.src.stdlib.atoi
+    libc.src.stdlib.atol
+    libc.src.stdlib.atoll
+    libc.src.stdlib.bsearch
+    libc.src.stdlib.div
+    libc.src.stdlib.getloadavg
+    libc.src.stdlib.l64a
+    libc.src.stdlib.labs
+    libc.src.stdlib.ldiv
+    libc.src.stdlib.llabs
+    libc.src.stdlib.lldiv
+    libc.src.stdlib.memalignment
+    libc.src.stdlib.mkdtemp
+    libc.src.stdlib.mkostemp
+    libc.src.stdlib.mkstemp
+    libc.src.stdlib.qsort
+    libc.src.stdlib.qsort_r
+    libc.src.stdlib.rand
+    libc.src.stdlib.realpath
+    libc.src.stdlib.srand
+    libc.src.stdlib.strfromd
+    libc.src.stdlib.strfromf
+    libc.src.stdlib.strfromf128
+    libc.src.stdlib.strfroml
+    libc.src.stdlib.strtod
+    libc.src.stdlib.strtof
+    libc.src.stdlib.strtol
+    libc.src.stdlib.strtold
+    libc.src.stdlib.strtoll
+    libc.src.stdlib.strtoul
+    libc.src.stdlib.strtoull
+
+    # stdlib.h external entrypoints
+    libc.src.stdlib.aligned_alloc
+    libc.src.stdlib.calloc
+    libc.src.stdlib.free
+    libc.src.stdlib.malloc
+    libc.src.stdlib.posix_memalign
+    libc.src.stdlib.realloc
+
+    # stdio.h entrypoints
+    libc.src.stdio.fprintf
+    libc.src.stdio.fscanf
+    libc.src.stdio.vfscanf
+    libc.src.stdio.printf
+    libc.src.stdio.remove
+    libc.src.stdio.rename
+    libc.src.stdio.renameat
+    libc.src.stdio.scanf
+    libc.src.stdio.vscanf
+    libc.src.stdio.snprintf
+    libc.src.stdio.sprintf
+    libc.src.stdio.asprintf
+    libc.src.stdio.sscanf
+    libc.src.stdio.stderr
+    libc.src.stdio.stdin
+    libc.src.stdio.stdout
+    libc.src.stdio.tmpfile
+    libc.src.stdio.tmpnam
+    libc.src.stdio.vsscanf
+    libc.src.stdio.vfprintf
+    libc.src.stdio.vprintf
+    libc.src.stdio.vsnprintf
+    libc.src.stdio.vsprintf
+    libc.src.stdio.vasprintf
+
+    # sys/epoll.h entrypoints
+    libc.src.sys.epoll.epoll_create
+    libc.src.sys.epoll.epoll_create1
+    libc.src.sys.epoll.epoll_ctl
+    libc.src.sys.epoll.epoll_pwait
+    libc.src.sys.epoll.epoll_wait
+    # TODO: Need to check if pwait2 is available before providing.
+    # https://github.com/llvm/llvm-project/issues/80060
+    # libc.src.sys.epoll.epoll_pwait2
+
+    # sys/eventfd.h entrypoints
+    libc.src.sys.eventfd.eventfd
+
+    # sys/file.h entrypoints
+    libc.src.sys.file.flock
+
+    # sys/ioctl.h entrypoints
+    libc.src.sys.ioctl.ioctl
+
+    # sys/ipc.h entrypoints
+    libc.src.sys.ipc.ftok
+
+    # sys/mman.h entrypoints
+    libc.src.sys.mman.madvise
+    libc.src.sys.mman.memfd_create
+    libc.src.sys.mman.mincore
+    libc.src.sys.mman.mlock
+    libc.src.sys.mman.mlock2
+    libc.src.sys.mman.mlockall
+    libc.src.sys.mman.mmap
+    libc.src.sys.mman.mremap
+    libc.src.sys.mman.mprotect
+    libc.src.sys.mman.msync
+    libc.src.sys.mman.munlock
+    libc.src.sys.mman.munlockall
+    libc.src.sys.mman.munmap
+    libc.src.sys.mman.pkey_alloc
+    libc.src.sys.mman.pkey_free
+    libc.src.sys.mman.pkey_get
+    libc.src.sys.mman.pkey_mprotect
+    libc.src.sys.mman.pkey_set
+    libc.src.sys.mman.remap_file_pages
+    libc.src.sys.mman.posix_madvise
+    libc.src.sys.mman.shm_open
+    libc.src.sys.mman.shm_unlink
+
+    # sys/random.h entrypoints
+    libc.src.sys.random.getrandom
+    libc.src.sys.random.getentropy
+
+    # sys/resource.h entrypoints
+    libc.src.sys.resource.getpriority
+    libc.src.sys.resource.getrlimit
+    libc.src.sys.resource.getrusage
+    libc.src.sys.resource.setpriority
+    libc.src.sys.resource.setrlimit
+
+    # sys/sendfile.h entrypoints
+    libc.src.sys.sendfile.sendfile
+
+    # sys/socket.h entrypoints
+    libc.src.sys.socket.accept
+    libc.src.sys.socket.accept4
+    libc.src.sys.socket.bind
+    libc.src.sys.socket.connect
+    libc.src.sys.socket.getpeername
+    libc.src.sys.socket.getsockname
+    libc.src.sys.socket.getsockopt
+    libc.src.sys.socket.listen
+    libc.src.sys.socket.recv
+    libc.src.sys.socket.recvfrom
+    libc.src.sys.socket.send
+    libc.src.sys.socket.sendto
+    libc.src.sys.socket.setsockopt
+    libc.src.sys.socket.shutdown
+    libc.src.sys.socket.sockatmark
+    libc.src.sys.socket.socket
+    libc.src.sys.socket.socketpair
+    # TODO: These functions are not compatible with 64-bit musl. They need to
+    # be excluded if overlaying musl.
+    libc.src.sys.socket.recvmmsg
+    libc.src.sys.socket.recvmsg
+    libc.src.sys.socket.sendmmsg
+    libc.src.sys.socket.sendmsg
+
+    # sys/stat.h entrypoints
+    libc.src.sys.stat.chmod
+    libc.src.sys.stat.fchmod
+    libc.src.sys.stat.fchmodat
+    libc.src.sys.stat.fstat
+    libc.src.sys.stat.fstatat
+    libc.src.sys.stat.futimens
+    libc.src.sys.stat.lstat
+    libc.src.sys.stat.mkdir
+    libc.src.sys.stat.mkdirat
+    libc.src.sys.stat.mkfifo
+    libc.src.sys.stat.mkfifoat
+    libc.src.sys.stat.mknod
+    libc.src.sys.stat.mknodat
+    libc.src.sys.stat.stat
+    libc.src.sys.stat.umask
+    libc.src.sys.stat.utimensat
+
+    # sys/statfs.h entrypoints
+    libc.src.sys.statfs.fstatfs
+    libc.src.sys.statfs.statfs
+
+    # sys/statvfs.h entrypoints
+    libc.src.sys.statvfs.fstatvfs
+    libc.src.sys.statvfs.statvfs
+
+    # sys/time.h entrypoints
+    libc.src.sys.time.utimes
+
+    # sys/sysinfo.h entrypoints
+    # Disabled due to QEMU test failures.
+    # libc.src.sys.sysinfo.sysinfo
+
+    # sys/utsname.h entrypoints
+    libc.src.sys.utsname.uname
+
+    # sys/wait.h entrypoints
+    libc.src.sys.wait.wait
+    libc.src.sys.wait.wait4
+    libc.src.sys.wait.waitid
+    libc.src.sys.wait.waitpid
+
+    # sys/prctl.h entrypoints
+    libc.src.sys.prctl.prctl
+
+    # sys/personality.h entrypoints
+    libc.src.sys.personality.personality
+
+    # sys/auxv.h entrypoints
+    libc.src.sys.auxv.getauxval
+
+    # sys/inotify.h entrypoints
+    libc.src.sys.inotify.inotify_add_watch
+    libc.src.sys.inotify.inotify_init
+    libc.src.sys.inotify.inotify_init1
+    libc.src.sys.inotify.inotify_rm_watch
+
+    # termios.h entrypoints
+    libc.src.termios.cfgetispeed
+    libc.src.termios.cfgetospeed
+    libc.src.termios.cfsetispeed
+    libc.src.termios.cfsetospeed
+    libc.src.termios.tcdrain
+    libc.src.termios.tcflow
+    libc.src.termios.tcflush
+    libc.src.termios.tcgetattr
+    libc.src.termios.tcgetsid
+    libc.src.termios.tcgetwinsize
+    libc.src.termios.tcsendbreak
+    libc.src.termios.tcsetattr
+    libc.src.termios.tcsetwinsize
+
+    # unistd.h entrypoints
+    libc.src.unistd.alarm
+    libc.src.unistd.access
+    libc.src.unistd.chdir
+    libc.src.unistd.chown
+    libc.src.unistd.chroot
+    libc.src.unistd.close
+    libc.src.unistd.dup
+    libc.src.unistd.dup2
+    libc.src.unistd.dup3
+    libc.src.unistd.execle
+    libc.src.unistd.execve
+    libc.src.unistd.faccessat
+    libc.src.unistd.fchdir
+    libc.src.unistd.fchown
+    libc.src.unistd.fchownat
+    libc.src.unistd.fdatasync
+    libc.src.unistd.fexecve
+    libc.src.unistd.fpathconf
+    libc.src.unistd.fsync
+    libc.src.unistd.ftruncate
+    libc.src.unistd.getcwd
+    libc.src.unistd.getegid
+    libc.src.unistd.getentropy
+    libc.src.unistd.geteuid
+    libc.src.unistd.gethostname
+    libc.src.unistd.getpagesize
+    libc.src.unistd.getpgid
+    libc.src.unistd.getpgrp
+    libc.src.unistd.getpid
+    libc.src.unistd.getppid
+    libc.src.unistd.getsid
+    libc.src.unistd.gettid
+    libc.src.unistd.getgid
+    libc.src.unistd.getuid
+    libc.src.unistd.isatty
+    libc.src.unistd.lchown
+    libc.src.unistd.link
+    libc.src.unistd.linkat
+    libc.src.unistd.lockf
+    libc.src.unistd.lseek
+    libc.src.unistd.nice
+    libc.src.unistd.pathconf
+    libc.src.unistd.pause
+    libc.src.unistd.pipe
+    libc.src.unistd.pipe2
+    libc.src.unistd.pread
+    libc.src.unistd.pwrite
+    libc.src.unistd.read
+    libc.src.unistd.readlink
+    libc.src.unistd.readlinkat
+    libc.src.unistd.rmdir
+    libc.src.unistd.setpgid
+    libc.src.unistd.setsid
+    libc.src.unistd.sleep
+    libc.src.unistd.symlink
+    libc.src.unistd.symlinkat
+    libc.src.unistd.sync
+    libc.src.unistd.syncfs
+    libc.src.unistd.tcgetpgrp
+    libc.src.unistd.tcsetpgrp
+    libc.src.unistd.truncate
+    libc.src.unistd.unlink
+    libc.src.unistd.unlinkat
+    libc.src.unistd.usleep
+    libc.src.unistd.write
+
+    # wchar.h entrypoints
+    libc.src.wchar.btowc
+    libc.src.wchar.wcslen
+    libc.src.wchar.wcsnlen
+    libc.src.wchar.wctob
+    libc.src.wchar.wmemmove
+    libc.src.wchar.wmemset
+    libc.src.wchar.wcschr
+    libc.src.wchar.wcsncmp
+    libc.src.wchar.wcsxfrm
+    libc.src.wchar.wcscmp
+    libc.src.wchar.wcscoll
+    libc.src.wchar.wcspbrk
+    libc.src.wchar.wcsrchr
+    libc.src.wchar.wcsspn
+    libc.src.wchar.wcscspn
+    libc.src.wchar.wcsdup
+    libc.src.wchar.wmemcmp
+    libc.src.wchar.wmempcpy
+    libc.src.wchar.wmemcpy
+    libc.src.wchar.wcsncpy
+    libc.src.wchar.wcscat
+    libc.src.wchar.wcsstr
+    libc.src.wchar.wcsncat
+    libc.src.wchar.wcslcat
+    libc.src.wchar.wcscpy
+    libc.src.wchar.wcslcpy
+    libc.src.wchar.wmemchr
+    libc.src.wchar.wcpcpy
+    libc.src.wchar.wcpncpy
+    libc.src.wchar.wcstod
+    libc.src.wchar.wcstof
+    libc.src.wchar.wcstok
+    libc.src.wchar.wcstol
+    libc.src.wchar.wcstold
+    libc.src.wchar.wcstoll
+    libc.src.wchar.wcstoul
+    libc.src.wchar.wcstoull
+
+    # wctype.h entrypoints
+    libc.src.wctype.iswalpha
+    libc.src.wctype.iswgraph
+    libc.src.wctype.iswcntrl
+    libc.src.wctype.iswdigit
+    libc.src.wctype.iswupper
+    libc.src.wctype.iswalnum
+    libc.src.wctype.iswlower
+    libc.src.wctype.iswspace
+    libc.src.wctype.iswblank
+    libc.src.wctype.iswxdigit
+    libc.src.wctype.iswpunct
+    libc.src.wctype.iswprint
+    libc.src.wctype.iswctype
+    libc.src.wctype.wctype
+    libc.src.wctype.towlower
+    libc.src.wctype.towupper
+
+    # sys/uio.h entrypoints
+    libc.src.sys.uio.writev
+    libc.src.sys.uio.readv
+
+    # sys/time.h entrypoints
+    libc.src.sys.time.setitimer
+    libc.src.sys.time.getitimer
+    libc.src.sys.time.gettimeofday
+)
+
+if(LLVM_LIBC_INCLUDE_SCUDO)
+  list(APPEND TARGET_LIBC_ENTRYPOINTS
+    # malloc.h external entrypoints
+    libc.src.stdlib.mallopt
+  )
+endif()
+
+set(TARGET_LIBM_ENTRYPOINTS
+    # complex.h entrypoints
+    libc.src.complex.cabs
+    libc.src.complex.cabsf
+    libc.src.complex.carg
+    libc.src.complex.cargf
+    libc.src.complex.creal
+    libc.src.complex.crealf
+    libc.src.complex.creall
+    libc.src.complex.cimag
+    libc.src.complex.cimagf
+    libc.src.complex.cimagl
+    libc.src.complex.conj
+    libc.src.complex.conjf
+    libc.src.complex.conjl
+    libc.src.complex.cproj
+    libc.src.complex.cprojf
+    libc.src.complex.cprojl
+
+    # fenv.h entrypoints
+    libc.src.fenv.feclearexcept
+    libc.src.fenv.fedisableexcept
+    libc.src.fenv.feenableexcept
+    libc.src.fenv.fegetenv
+    libc.src.fenv.fegetexcept
+    libc.src.fenv.fegetexceptflag
+    libc.src.fenv.fegetround
+    libc.src.fenv.feholdexcept
+    libc.src.fenv.feraiseexcept
+    libc.src.fenv.fesetenv
+    libc.src.fenv.fesetexcept
+    libc.src.fenv.fesetexceptflag
+    libc.src.fenv.fesetround
+    libc.src.fenv.fetestexcept
+    libc.src.fenv.fetestexceptflag
+    libc.src.fenv.feupdateenv
+
+    # math.h entrypoints
+    libc.src.math.acos
+    libc.src.math.acosf
+    libc.src.math.acoshf
+    libc.src.math.acospif
+    libc.src.math.asin
+    libc.src.math.asinf
+    libc.src.math.asinhf
+    libc.src.math.asinpi
+    libc.src.math.asinpif
+    libc.src.math.atan2
+    libc.src.math.atan2f
+    libc.src.math.atan2f128
+    libc.src.math.atan
+    libc.src.math.atanf
+    libc.src.math.atanhf
+    libc.src.math.canonicalize
+    libc.src.math.canonicalizef
+    libc.src.math.canonicalizel
+    libc.src.math.cbrt
+    libc.src.math.cbrtf
+    libc.src.math.cbrtbf16
+    libc.src.math.ceil
+    libc.src.math.ceilf
+    libc.src.math.ceilf128
+    libc.src.math.ceill
+    libc.src.math.copysign
+    libc.src.math.copysignf
+    libc.src.math.copysignf128
+    libc.src.math.copysignf80
+    libc.src.math.copysignl
+    libc.src.math.cos
+    libc.src.math.cosf
+    libc.src.math.coshf
+    libc.src.math.cospif
+    libc.src.math.daddl
+    libc.src.math.ddivl
+    libc.src.math.dfmal
+    libc.src.math.dmull
+    libc.src.math.dsqrtl
+    libc.src.math.dsubl
+    libc.src.math.erff
+    libc.src.math.exp
+    libc.src.math.exp10
+    libc.src.math.exp10f
+    libc.src.math.exp10m1f
+    libc.src.math.exp2
+    libc.src.math.exp2f
+    libc.src.math.exp2m1f
+    libc.src.math.expf
+    libc.src.math.expm1
+    libc.src.math.expm1f
+    libc.src.math.fabs
+    libc.src.math.fabsf
+    libc.src.math.fabsf128
+    libc.src.math.fabsf80
+    libc.src.math.fabsl
+    libc.src.math.fadd
+    libc.src.math.faddl
+    libc.src.math.fadd
+    libc.src.math.fdim
+    libc.src.math.fdimf
+    libc.src.math.fdimf128
+    libc.src.math.fdiml
+    libc.src.math.fdiv
+    libc.src.math.fdivl
+    libc.src.math.ffma
+    libc.src.math.ffmal
+    libc.src.math.floor
+    libc.src.math.floorf
+    libc.src.math.floorf128
+    libc.src.math.floorl
+    libc.src.math.fma
+    libc.src.math.fmabf16
+    libc.src.math.fmaf
+    libc.src.math.fmax
+    libc.src.math.fmaxf
+    libc.src.math.fmaxf128
+    libc.src.math.fmaximum
+    libc.src.math.fmaximum_mag
+    libc.src.math.fmaximum_mag_num
+    libc.src.math.fmaximum_mag_numf
+    libc.src.math.fmaximum_mag_numf128
+    libc.src.math.fmaximum_mag_numl
+    libc.src.math.fmaximum_magf
+    libc.src.math.fmaximum_magf128
+    libc.src.math.fmaximum_magl
+    libc.src.math.fmaximum_num
+    libc.src.math.fmaximum_numf
+    libc.src.math.fmaximum_numf128
+    libc.src.math.fmaximum_numl
+    libc.src.math.fmaximumf
+    libc.src.math.fmaximumf128
+    libc.src.math.fmaximuml
+    libc.src.math.fmaxl
+    libc.src.math.fmin
+    libc.src.math.fminf
+    libc.src.math.fminf128
+    libc.src.math.fminimum
+    libc.src.math.fminimum_mag
+    libc.src.math.fminimum_mag_num
+    libc.src.math.fminimum_mag_numf
+    libc.src.math.fminimum_mag_numf128
+    libc.src.math.fminimum_mag_numl
+    libc.src.math.fminimum_magf
+    libc.src.math.fminimum_magf128
+    libc.src.math.fminimum_magl
+    libc.src.math.fminimum_num
+    libc.src.math.fminimum_numf
+    libc.src.math.fminimum_numf128
+    libc.src.math.fminimum_numl
+    libc.src.math.fminimumf
+    libc.src.math.fminimumf128
+    libc.src.math.fminimuml
+    libc.src.math.fminl
+    libc.src.math.fmod
+    libc.src.math.fmodf
+    libc.src.math.fmodl
+    libc.src.math.fmul
+    libc.src.math.fmull
+    libc.src.math.frexp
+    libc.src.math.frexpf
+    libc.src.math.frexpl
+    libc.src.math.fromfp
+    libc.src.math.fromfpf
+    libc.src.math.fromfpl
+    libc.src.math.fromfpx
+    libc.src.math.fromfpxf
+    libc.src.math.fromfpxl
+    libc.src.math.fsqrt
+    libc.src.math.fsqrtl
+    libc.src.math.fsub
+    libc.src.math.fsubl
+    libc.src.math.getpayload
+    libc.src.math.getpayloadf
+    libc.src.math.getpayloadl
+    libc.src.math.hypot
+    libc.src.math.hypotf
+    libc.src.math.ilogb
+    libc.src.math.ilogbf
+    libc.src.math.ilogbl
+    libc.src.math.iscanonical
+    libc.src.math.iscanonicalf
+    libc.src.math.iscanonicalf128
+    libc.src.math.iscanonicall
+    libc.src.math.isnan
+    libc.src.math.isnanf
+    libc.src.math.isnanf128
+    libc.src.math.isnanl
+    libc.src.math.issignaling
+    libc.src.math.issignalingf
+    libc.src.math.issignalingf128
+    libc.src.math.issignalingl
+    libc.src.math.ldexp
+    libc.src.math.ldexpf
+    libc.src.math.ldexpl
+    libc.src.math.lgammaf
+    libc.src.math.llogb
+    libc.src.math.llogbf
+    libc.src.math.llogbl
+    libc.src.math.llrint
+    libc.src.math.llrintf
+    libc.src.math.llrintf128
+    libc.src.math.llrintl
+    libc.src.math.llround
+    libc.src.math.llroundf
+    libc.src.math.llroundf128
+    libc.src.math.llroundl
+    libc.src.math.log
+    libc.src.math.log10
+    libc.src.math.log10f
+    libc.src.math.log1p
+    libc.src.math.log1pf
+    libc.src.math.log2
+    libc.src.math.log2f
+    libc.src.math.logb
+    libc.src.math.logbf
+    libc.src.math.logbl
+    libc.src.math.logf
+    libc.src.math.lrint
+    libc.src.math.lrintf
+    libc.src.math.lrintf128
+    libc.src.math.lrintl
+    libc.src.math.lround
+    libc.src.math.lroundf
+    libc.src.math.lroundf128
+    libc.src.math.lroundl
+    libc.src.math.modf
+    libc.src.math.modff
+    libc.src.math.modfl
+    libc.src.math.nan
+    libc.src.math.nanf
+    libc.src.math.nanl
+    libc.src.math.nearbyint
+    libc.src.math.nearbyintf
+    libc.src.math.nearbyintf128
+    libc.src.math.nearbyintl
+    libc.src.math.nextafter
+    libc.src.math.nextafterf
+    libc.src.math.nextafterl
+    libc.src.math.nextdown
+    libc.src.math.nextdownf
+    libc.src.math.nextdownl
+    libc.src.math.nexttoward
+    libc.src.math.nexttowardf
+    libc.src.math.nexttowardl
+    libc.src.math.nextup
+    libc.src.math.nextupf
+    libc.src.math.nextupl
+    libc.src.math.pow
+    libc.src.math.powf
+    libc.src.math.remainder
+    libc.src.math.remainderf
+    libc.src.math.remainderl
+    libc.src.math.remquo
+    libc.src.math.remquof
+    libc.src.math.remquol
+    libc.src.math.rint
+    libc.src.math.rintf
+    libc.src.math.rintf128
+    libc.src.math.rintl
+    libc.src.math.round
+    libc.src.math.roundeven
+    libc.src.math.roundevenf
+    libc.src.math.roundevenf128
+    libc.src.math.roundevenl
+    libc.src.math.roundf
+    libc.src.math.roundf128
+    libc.src.math.roundl
+    libc.src.math.scalbln
+    libc.src.math.scalblnf
+    libc.src.math.scalblnl
+    libc.src.math.scalbn
+    libc.src.math.scalbnf
+    libc.src.math.scalbnl
+    libc.src.math.setpayload
+    libc.src.math.setpayloadf
+    libc.src.math.setpayloadl
+    libc.src.math.setpayloadsig
+    libc.src.math.setpayloadsigf
+    libc.src.math.setpayloadsigl
+    libc.src.math.sin
+    libc.src.math.sincos
+    libc.src.math.sincosf
+    libc.src.math.sinf
+    libc.src.math.sinhf
+    libc.src.math.sinpif
+    libc.src.math.sqrt
+    libc.src.math.sqrtf
+    libc.src.math.sqrtf128
+    libc.src.math.sqrtl
+    libc.src.math.tan
+    libc.src.math.tanf
+    libc.src.math.tanhf
+    libc.src.math.tanpif
+    libc.src.math.totalorder
+    libc.src.math.totalorderf
+    libc.src.math.totalorderl
+    libc.src.math.totalordermag
+    libc.src.math.totalordermagf
+    libc.src.math.totalordermagl
+    libc.src.math.trunc
+    libc.src.math.truncf
+    libc.src.math.truncf128
+    libc.src.math.truncl
+    libc.src.math.ufromfp
+    libc.src.math.ufromfpf
+    libc.src.math.ufromfpl
+    libc.src.math.ufromfpx
+    libc.src.math.ufromfpxf
+    libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_CFLOAT16)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # complex.h C23 _Complex _Float16 entrypoints
+    libc.src.complex.crealf16
+    libc.src.complex.cimagf16
+    libc.src.complex.conjf16
+    libc.src.complex.cprojf16
+  )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT16)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C23 _Float16 entrypoints
+    libc.src.math.acosf16
+    libc.src.math.acoshf16
+    libc.src.math.acospif16
+    libc.src.math.asinf16
+    libc.src.math.asinhf16
+    libc.src.math.asinpif16
+    libc.src.math.atanf16
+    libc.src.math.atan2f16
+    libc.src.math.atanhf16
+    libc.src.math.atanpif16
+    libc.src.math.canonicalizef16
+    libc.src.math.cbrtf16
+    libc.src.math.ceilf16
+    libc.src.math.copysignf16
+    libc.src.math.cosf16
+    libc.src.math.coshf16
+    libc.src.math.cospif16
+    libc.src.math.erff16
+    libc.src.math.erfcf16
+    libc.src.math.exp10f16
+    libc.src.math.exp10m1f16
+    libc.src.math.exp2f16
+    libc.src.math.exp2m1f16
+    libc.src.math.expf16
+    libc.src.math.expm1f16
+    libc.src.math.f16add
+    libc.src.math.f16addf
+    libc.src.math.f16addl
+    libc.src.math.f16div
+    libc.src.math.f16divf
+    libc.src.math.f16divl
+    libc.src.math.f16fma
+    libc.src.math.f16fmaf
+    libc.src.math.f16fmal
+    libc.src.math.f16mul
+    libc.src.math.f16mulf
+    libc.src.math.f16mull
+    libc.src.math.f16sqrt
+    libc.src.math.f16sqrtf
+    libc.src.math.f16sqrtl
+    libc.src.math.f16sub
+    libc.src.math.f16subf
+    libc.src.math.f16subl
+    libc.src.math.fabsf16
+    libc.src.math.fdimf16
+    libc.src.math.floorf16
+    libc.src.math.fmaf16
+    libc.src.math.fmaxf16
+    libc.src.math.fmaximum_mag_numf16
+    libc.src.math.fmaximum_magf16
+    libc.src.math.fmaximum_numf16
+    libc.src.math.fmaximumf16
+    libc.src.math.fminf16
+    libc.src.math.fminimum_mag_numf16
+    libc.src.math.fminimum_magf16
+    libc.src.math.fminimum_numf16
+    libc.src.math.fminimumf16
+    libc.src.math.fmodf16
+    libc.src.math.frexpf16
+    libc.src.math.fromfpf16
+    libc.src.math.fromfpxf16
+    libc.src.math.getpayloadf16
+    libc.src.math.hypotf16
+    libc.src.math.ilogbf16
+    libc.src.math.iscanonicalf16
+    libc.src.math.isnanf16
+    libc.src.math.issignalingf16
+    libc.src.math.ldexpf16
+    libc.src.math.lgammaf16
+    libc.src.math.llogbf16
+    libc.src.math.llrintf16
+    libc.src.math.llroundf16
+    libc.src.math.log10f16
+    libc.src.math.log10p1f16
+    libc.src.math.log2f16
+    libc.src.math.log2p1f16
+    libc.src.math.logbf16
+    libc.src.math.logf16
+    libc.src.math.lrintf16
+    libc.src.math.lroundf16
+    libc.src.math.modff16
+    libc.src.math.nanf16
+    libc.src.math.nearbyintf16
+    libc.src.math.nextafterf16
+    libc.src.math.nextdownf16
+    libc.src.math.nexttowardf16
+    libc.src.math.nextupf16
+    libc.src.math.remainderf16
+    libc.src.math.remquof16
+    libc.src.math.rintf16
+    libc.src.math.roundevenf16
+    libc.src.math.roundf16
+    libc.src.math.rsqrtf
+    libc.src.math.rsqrtf16
+    libc.src.math.scalblnf16
+    libc.src.math.scalbnf16
+    libc.src.math.setpayloadf16
+    libc.src.math.setpayloadsigf16
+    libc.src.math.sinf16
+    libc.src.math.sinhf16
+    libc.src.math.sinpif16
+    libc.src.math.sqrtf16
+    libc.src.math.tanf16
+    libc.src.math.tanhf16
+    libc.src.math.tanpif16
+    libc.src.math.totalorderf16
+    libc.src.math.totalordermagf16
+    libc.src.math.truncf16
+    libc.src.math.ufromfpf16
+    libc.src.math.ufromfpxf16
+  )
+
+  if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+    list(APPEND TARGET_LIBM_ENTRYPOINTS
+      # math.h C23 mixed _Float16 and _Float128 entrypoints
+      libc.src.math.f16addf128
+      libc.src.math.f16divf128
+      libc.src.math.f16fmaf128
+      libc.src.math.f16mulf128
+      libc.src.math.f16sqrtf128
+      libc.src.math.f16subf128
+    )
+  endif()
+endif()
+
+if(LIBC_TYPES_HAS_CFLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # complex.h C23 _Complex _Float128 entrypoints
+    libc.src.complex.crealf128
+    libc.src.complex.cimagf128
+    libc.src.complex.conjf128
+    libc.src.complex.cprojf128
+  )
+endif()
+
+if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C23 _Float128 entrypoints
+    libc.src.math.atan2l
+    libc.src.math.canonicalizef128
+    libc.src.math.daddf128
+    libc.src.math.ddivf128
+    libc.src.math.dfmaf128
+    libc.src.math.dmulf128
+    libc.src.math.dsqrtf128
+    libc.src.math.dsubf128
+    libc.src.math.faddf128
+    libc.src.math.fdivf128
+    libc.src.math.ffmaf128
+    libc.src.math.fmodf128
+    libc.src.math.fmulf128
+    libc.src.math.frexpf128
+    libc.src.math.fromfpf128
+    libc.src.math.fromfpxf128
+    libc.src.math.fsqrtf128
+    libc.src.math.fsubf128
+    libc.src.math.getpayloadf128
+    libc.src.math.ilogbf128
+    libc.src.math.ldexpf128
+    libc.src.math.llogbf128
+    libc.src.math.logbf128
+    libc.src.math.modff128
+    libc.src.math.nanf128
+    libc.src.math.nextafterf128
+    libc.src.math.nextdownf128
+    libc.src.math.nextupf128
+    libc.src.math.remainderf128
+    libc.src.math.remquof128
+    libc.src.math.scalblnf128
+    libc.src.math.scalbnf128
+    libc.src.math.setpayloadf128
+    libc.src.math.setpayloadsigf128
+    libc.src.math.totalorderf128
+    libc.src.math.totalordermagf128
+    libc.src.math.ufromfpf128
+    libc.src.math.ufromfpxf128
+  )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+  # bfloat16 entrypoints
+  libc.src.math.atanbf16
+  libc.src.math.acosbf16
+  libc.src.math.asinbf16
+  libc.src.math.bf16add
+  libc.src.math.bf16addf
+  libc.src.math.bf16addl
+  libc.src.math.bf16div
+  libc.src.math.bf16divf
+  libc.src.math.bf16divl
+  libc.src.math.bf16fma
+  libc.src.math.bf16fmaf
+  libc.src.math.bf16fmal
+  libc.src.math.bf16mul
+  libc.src.math.bf16mulf
+  libc.src.math.bf16mull
+  libc.src.math.bf16sub
+  libc.src.math.bf16subf
+  libc.src.math.bf16subl
+  libc.src.math.canonicalizebf16
+  libc.src.math.ceilbf16
+  libc.src.math.copysignbf16
+  libc.src.math.exp2bf16
+  libc.src.math.expbf16
+  libc.src.math.fabsbf16
+  libc.src.math.fdimbf16
+  libc.src.math.floorbf16
+  libc.src.math.fmaxbf16
+  libc.src.math.fmaximumbf16
+  libc.src.math.fmaximum_magbf16
+  libc.src.math.fmaximum_mag_numbf16
+  libc.src.math.fmaximum_numbf16
+  libc.src.math.fminbf16
+  libc.src.math.fminimumbf16
+  libc.src.math.fminimum_magbf16
+  libc.src.math.fminimum_mag_numbf16
+  libc.src.math.fminimum_numbf16
+  libc.src.math.fmodbf16
+  libc.src.math.frexpbf16
+  libc.src.math.fromfpbf16
+  libc.src.math.fromfpxbf16
+  libc.src.math.getpayloadbf16
+  libc.src.math.hypotbf16
+  libc.src.math.ilogbbf16
+  libc.src.math.iscanonicalbf16
+  libc.src.math.issignalingbf16
+  libc.src.math.ldexpbf16
+  libc.src.math.llogbbf16
+  libc.src.math.llrintbf16
+  libc.src.math.llroundbf16
+  libc.src.math.log_bf16
+  libc.src.math.logbbf16
+  libc.src.math.lrintbf16
+  libc.src.math.lroundbf16
+  libc.src.math.modfbf16
+  libc.src.math.nanbf16
+  libc.src.math.nearbyintbf16
+  libc.src.math.nextafterbf16
+  libc.src.math.nextdownbf16
+  libc.src.math.nexttowardbf16
+  libc.src.math.nextupbf16
+  libc.src.math.remainderbf16
+  libc.src.math.remquobf16
+  libc.src.math.rintbf16
+  libc.src.math.roundbf16
+  libc.src.math.roundevenbf16
+  libc.src.math.scalblnbf16
+  libc.src.math.scalbnbf16
+  libc.src.math.setpayloadbf16
+  libc.src.math.setpayloadsigbf16
+  libc.src.math.sqrtbf16
+  libc.src.math.tanbf16
+  libc.src.math.truncbf16
+  libc.src.math.totalorderbf16
+  libc.src.math.totalordermagbf16
+  libc.src.math.ufromfpbf16
+  libc.src.math.ufromfpxbf16
+)
+
+if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C++23 mixed bfloat16 and _Float128 entrypoints
+    libc.src.math.bf16addf128
+    libc.src.math.bf16divf128
+    libc.src.math.bf16fmaf128
+    libc.src.math.bf16mulf128
+    libc.src.math.bf16subf128
+  )
+endif()
+
+if(LIBC_COMPILER_HAS_FIXED_POINT)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # stdfix.h _Fract and _Accum entrypoints
+    libc.src.stdfix.abshk
+    libc.src.stdfix.abshr
+    libc.src.stdfix.absk
+    libc.src.stdfix.abslk
+    libc.src.stdfix.abslr
+    libc.src.stdfix.absr
+    libc.src.stdfix.exphk
+    libc.src.stdfix.expk
+    libc.src.stdfix.roundhk
+    libc.src.stdfix.roundhr
+    libc.src.stdfix.roundk
+    libc.src.stdfix.roundlk
+    libc.src.stdfix.roundlr
+    libc.src.stdfix.roundr
+    libc.src.stdfix.rounduhk
+    libc.src.stdfix.rounduhr
+    libc.src.stdfix.rounduk
+    libc.src.stdfix.roundulk
+    libc.src.stdfix.roundulr
+    libc.src.stdfix.roundur
+    libc.src.stdfix.sqrtuhk
+    libc.src.stdfix.sqrtuhr
+    libc.src.stdfix.sqrtuk
+    libc.src.stdfix.sqrtur
+    # libc.src.stdfix.sqrtulk
+    libc.src.stdfix.sqrtulr
+    libc.src.stdfix.uhksqrtus
+    libc.src.stdfix.uksqrtui
+    libc.src.stdfix.hrbits
+    libc.src.stdfix.uhrbits
+    libc.src.stdfix.rbits
+    libc.src.stdfix.urbits
+    libc.src.stdfix.lrbits
+    libc.src.stdfix.ulrbits
+    libc.src.stdfix.hkbits
+    libc.src.stdfix.uhkbits
+    libc.src.stdfix.kbits
+    libc.src.stdfix.ukbits
+    libc.src.stdfix.lkbits
+    libc.src.stdfix.ulkbits
+    libc.src.stdfix.bitshr
+    libc.src.stdfix.bitsr
+    libc.src.stdfix.bitslr
+    libc.src.stdfix.bitshk
+    libc.src.stdfix.bitsk
+    libc.src.stdfix.bitslk
+    libc.src.stdfix.bitsuhr
+    libc.src.stdfix.bitsur
+    libc.src.stdfix.bitsulr
+    libc.src.stdfix.bitsuhk
+    libc.src.stdfix.bitsuk
+    libc.src.stdfix.bitsulk
+    libc.src.stdfix.countlshr
+    libc.src.stdfix.countlsr
+    libc.src.stdfix.countlslr
+    libc.src.stdfix.countlshk
+    libc.src.stdfix.countlsk
+    libc.src.stdfix.countlslk
+    libc.src.stdfix.countlsuhr
+    libc.src.stdfix.countlsur
+    libc.src.stdfix.countlsulr
+    libc.src.stdfix.countlsuhk
+    libc.src.stdfix.countlsuk
+    libc.src.stdfix.countlsulk
+    libc.src.stdfix.idivr
+    libc.src.stdfix.idivlr
+    libc.src.stdfix.idivk
+    libc.src.stdfix.idivlk
+    libc.src.stdfix.idivur
+    libc.src.stdfix.idivulr
+    libc.src.stdfix.idivuk
+    libc.src.stdfix.idivulk
+    libc.src.stdfix.rdivi
+    libc.src.stdfix.lrdivi
+    libc.src.stdfix.kdivi
+    libc.src.stdfix.lkdivi
+    libc.src.stdfix.urdivi
+    libc.src.stdfix.ulrdivi
+    libc.src.stdfix.ukdivi
+    libc.src.stdfix.ulkdivi
+    libc.src.stdfix.divir
+    libc.src.stdfix.divilr
+    libc.src.stdfix.divik
+    libc.src.stdfix.divilk
+    libc.src.stdfix.diviur
+    libc.src.stdfix.diviulr
+    libc.src.stdfix.diviuk
+    libc.src.stdfix.diviulk
+  )
+endif()
+
+if(LLVM_LIBC_FULL_BUILD)
+  list(APPEND TARGET_LIBC_ENTRYPOINTS
+    # ctype.h entrypoints
+    libc.src.ctype.isalnum_l
+    libc.src.ctype.isalpha_l
+    libc.src.ctype.isblank_l
+    libc.src.ctype.iscntrl_l
+    libc.src.ctype.isdigit_l
+    libc.src.ctype.isgraph_l
+    libc.src.ctype.islower_l
+    libc.src.ctype.isprint_l
+    libc.src.ctype.ispunct_l
+    libc.src.ctype.isspace_l
+    libc.src.ctype.isupper_l
+    libc.src.ctype.isxdigit_l
+    libc.src.ctype.tolower_l
+    libc.src.ctype.toupper_l
+
+    # errno.h entrypoints
+    libc.src.errno.program_invocation_name
+    libc.src.errno.program_invocation_short_name
+
+    # stdlib.h entrypoints
+    libc.src.stdlib.strtod_l
+    libc.src.stdlib.strtof_l
+    libc.src.stdlib.strtol_l
+    libc.src.stdlib.strtold_l
+    libc.src.stdlib.strtoll_l
+    libc.src.stdlib.strtoul_l
+    libc.src.stdlib.strtoull_l
+
+    # string.h entrypoints
+    libc.src.string.strcoll_l
+    libc.src.string.strxfrm_l
+
+    # strings.h entrypoints
+    libc.src.strings.strcasecmp_l
+    libc.src.strings.strncasecmp_l
+
+    # assert.h entrypoints
+    libc.src.assert.__assert_fail
+
+    # compiler entrypoints (no corresponding header)
+    libc.src.compiler.__stack_chk_fail
+
+    # dirent.h entrypoints
+    libc.src.dirent.alphasort
+    libc.src.dirent.closedir
+    libc.src.dirent.dirfd
+    libc.src.dirent.opendir
+    libc.src.dirent.readdir
+    libc.src.dirent.scandir
+    libc.src.dirent.fdopendir
+
+    # pthread.h entrypoints
+    libc.src.pthread.__pthread_cleanup_pop
+    libc.src.pthread.__pthread_cleanup_push
+    libc.src.pthread.pthread_atfork
+    libc.src.pthread.pthread_attr_destroy
+    libc.src.pthread.pthread_attr_getdetachstate
+    libc.src.pthread.pthread_attr_getguardsize
+    libc.src.pthread.pthread_attr_getinheritsched
+    libc.src.pthread.pthread_attr_getschedparam
+    libc.src.pthread.pthread_attr_getschedpolicy
+    libc.src.pthread.pthread_attr_getscope
+    libc.src.pthread.pthread_attr_getstack
+    libc.src.pthread.pthread_attr_getstacksize
+    libc.src.pthread.pthread_attr_init
+    libc.src.pthread.pthread_attr_setdetachstate
+    libc.src.pthread.pthread_attr_setguardsize
+    libc.src.pthread.pthread_attr_setinheritsched
+    libc.src.pthread.pthread_attr_setschedparam
+    libc.src.pthread.pthread_attr_setschedpolicy
+    libc.src.pthread.pthread_attr_setscope
+    libc.src.pthread.pthread_attr_setstack
+    libc.src.pthread.pthread_attr_setstacksize
+    libc.src.pthread.pthread_condattr_destroy
+    libc.src.pthread.pthread_condattr_getclock
+    libc.src.pthread.pthread_condattr_getpshared
+    libc.src.pthread.pthread_condattr_init
+    libc.src.pthread.pthread_condattr_setclock
+    libc.src.pthread.pthread_condattr_setpshared
+    libc.src.pthread.pthread_cond_broadcast
+    libc.src.pthread.pthread_cond_clockwait
+    libc.src.pthread.pthread_cond_destroy
+    libc.src.pthread.pthread_cond_init
+    libc.src.pthread.pthread_cond_signal
+    libc.src.pthread.pthread_cond_timedwait
+    libc.src.pthread.pthread_cond_wait
+    libc.src.pthread.pthread_create
+    libc.src.pthread.pthread_detach
+    libc.src.pthread.pthread_equal
+    libc.src.pthread.pthread_exit
+    libc.src.pthread.pthread_getattr_np
+    libc.src.pthread.pthread_getname_np
+    libc.src.pthread.pthread_getschedparam
+    libc.src.pthread.pthread_getspecific
+    libc.src.pthread.pthread_getstack_np
+    libc.src.pthread.pthread_getthreadid_np
+    libc.src.pthread.pthread_getunique_np
+    libc.src.pthread.pthread_join
+    libc.src.pthread.pthread_key_create
+    libc.src.pthread.pthread_key_delete
+    libc.src.pthread.pthread_barrier_init
+    libc.src.pthread.pthread_barrier_wait
+    libc.src.pthread.pthread_barrier_destroy
+    libc.src.pthread.pthread_mutex_destroy
+    libc.src.pthread.pthread_mutex_init
+    libc.src.pthread.pthread_mutex_lock
+    libc.src.pthread.pthread_mutex_trylock
+    libc.src.pthread.pthread_mutex_unlock
+    libc.src.pthread.pthread_mutexattr_destroy
+    libc.src.pthread.pthread_mutexattr_getpshared
+    libc.src.pthread.pthread_mutexattr_getrobust
+    libc.src.pthread.pthread_mutexattr_gettype
+    libc.src.pthread.pthread_mutexattr_init
+    libc.src.pthread.pthread_mutexattr_setpshared
+    libc.src.pthread.pthread_mutexattr_setrobust
+    libc.src.pthread.pthread_mutexattr_settype
+    libc.src.pthread.pthread_once
+    libc.src.pthread.pthread_rwlock_clockrdlock
+    libc.src.pthread.pthread_rwlock_clockwrlock
+    libc.src.pthread.pthread_rwlock_destroy
+    libc.src.pthread.pthread_rwlock_init
+    libc.src.pthread.pthread_rwlock_rdlock
+    libc.src.pthread.pthread_rwlock_timedrdlock
+    libc.src.pthread.pthread_rwlock_timedwrlock
+    libc.src.pthread.pthread_rwlock_tryrdlock
+    libc.src.pthread.pthread_rwlock_trywrlock
+    libc.src.pthread.pthread_rwlock_unlock
+    libc.src.pthread.pthread_rwlock_wrlock
+    libc.src.pthread.pthread_rwlockattr_destroy
+    libc.src.pthread.pthread_rwlockattr_getkind_np
+    libc.src.pthread.pthread_rwlockattr_getpshared
+    libc.src.pthread.pthread_rwlockattr_init
+    libc.src.pthread.pthread_rwlockattr_setkind_np
+    libc.src.pthread.pthread_rwlockattr_setpshared
+    libc.src.pthread.pthread_spin_destroy
+    libc.src.pthread.pthread_spin_init
+    libc.src.pthread.pthread_spin_lock
+    libc.src.pthread.pthread_spin_trylock
+    libc.src.pthread.pthread_spin_unlock
+    libc.src.pthread.pthread_self
+    libc.src.pthread.pthread_setname_np
+    libc.src.pthread.pthread_setschedparam
+    libc.src.pthread.pthread_setspecific
+
+    # sched.h entrypoints
+    libc.src.sched.clone
+    libc.src.sched.__sched_andcpuset
+    libc.src.sched.__sched_clrcpuset
+    libc.src.sched.__sched_cpualloc
+    libc.src.sched.__sched_cpuequal
+    libc.src.sched.__sched_cpufree
+    libc.src.sched.__sched_getcpucount
+    libc.src.sched.__sched_getcpuisset
+    libc.src.sched.__sched_orcpuset
+    libc.src.sched.__sched_setcpuset
+    libc.src.sched.__sched_setcpuzero
+    libc.src.sched.__sched_xorcpuset
+
+    # semaphore.h entrypoints
+    libc.src.semaphore.sem_clockwait
+    libc.src.semaphore.sem_close
+    libc.src.semaphore.sem_destroy
+    libc.src.semaphore.sem_getvalue
+    libc.src.semaphore.sem_init
+    libc.src.semaphore.sem_open
+    libc.src.semaphore.sem_post
+    libc.src.semaphore.sem_timedwait
+    libc.src.semaphore.sem_trywait
+    libc.src.semaphore.sem_unlink
+    libc.src.semaphore.sem_wait
+
+    # setjmp.h entrypoints
+    libc.src.setjmp.longjmp
+    libc.src.setjmp.setjmp
+    libc.src.setjmp.siglongjmp
+    libc.src.setjmp.sigsetjmp
+
+    # stdio.h entrypoints
+    libc.src.stdio.clearerr
+    libc.src.stdio.clearerr_unlocked
+    libc.src.stdio.fclose
+    libc.src.stdio.fdopen
+    libc.src.stdio.feof
+    libc.src.stdio.feof_unlocked
+    libc.src.stdio.ferror
+    libc.src.stdio.ferror_unlocked
+    libc.src.stdio.fflush
+    libc.src.stdio.fgetc
+    libc.src.stdio.fgetc_unlocked
+    libc.src.stdio.fgetpos
+    libc.src.stdio.fgets
+    libc.src.stdio.fileno
+    libc.src.stdio.flockfile
+    libc.src.stdio.fmemopen
+    libc.src.stdio.fopen
+    libc.src.stdio.freopen
+    libc.src.stdio.fopencookie
+    libc.src.stdio.fputc
+    libc.src.stdio.fputs
+    libc.src.stdio.fread
+    libc.src.stdio.fread_unlocked
+    libc.src.stdio.fseek
+    libc.src.stdio.fseeko
+    libc.src.stdio.fsetpos
+    libc.src.stdio.ftell
+    libc.src.stdio.ftello
+    libc.src.stdio.funlockfile
+    libc.src.stdio.fwrite
+    libc.src.stdio.fwrite_unlocked
+    libc.src.stdio.getc
+    libc.src.stdio.getc_unlocked
+    libc.src.stdio.getchar
+    libc.src.stdio.getchar_unlocked
+    libc.src.stdio.pclose
+    libc.src.stdio.perror
+    libc.src.stdio.popen
+    libc.src.stdio.putc
+    libc.src.stdio.putchar
+    libc.src.stdio.puts
+    libc.src.stdio.rewind
+    libc.src.stdio.setbuf
+    libc.src.stdio.setvbuf
+    libc.src.stdio.stderr
+    libc.src.stdio.stdin
+    libc.src.stdio.stdout
+    libc.src.stdio.ungetc
+
+    # stdlib.h entrypoints
+    libc.src.stdlib.__cxa_thread_atexit_impl
+    libc.src.stdlib._Exit
+    libc.src.stdlib.abort
+    libc.src.stdlib.at_quick_exit
+    libc.src.stdlib.atexit
+    libc.src.stdlib.clearenv
+    libc.src.stdlib.exit
+    libc.src.stdlib.getenv
+    libc.src.stdlib.putenv
+    libc.src.stdlib.secure_getenv
+    libc.src.stdlib.setenv
+    libc.src.stdlib.system
+    libc.src.stdlib.unsetenv
+    libc.src.stdlib.mbstowcs
+    libc.src.stdlib.mbtowc
+    libc.src.stdlib.mblen
+    libc.src.stdlib.quick_exit
+    libc.src.stdlib.wcstombs
+    libc.src.stdlib.wctomb
+
+    # signal.h entrypoints
+    libc.src.signal.kill
+    libc.src.signal.pthread_kill
+    libc.src.signal.pthread_sigmask
+    libc.src.signal.raise
+    libc.src.signal.sigaction
+    libc.src.signal.sigaddset
+    libc.src.signal.sigaltstack
+    libc.src.signal.sigdelset
+    libc.src.signal.sigemptyset
+    libc.src.signal.sigfillset
+    libc.src.signal.sigismember
+    libc.src.signal.signal
+    libc.src.signal.sigprocmask
+
+    # spawn.h entrypoints
+    libc.src.spawn.posix_spawn
+    libc.src.spawn.posix_spawn_file_actions_addclose
+    libc.src.spawn.posix_spawn_file_actions_adddup2
+    libc.src.spawn.posix_spawn_file_actions_addopen
+    libc.src.spawn.posix_spawn_file_actions_destroy
+    libc.src.spawn.posix_spawn_file_actions_init
+
+    # search.h entrypoints
+    libc.src.search.hcreate
+    libc.src.search.hcreate_r
+    libc.src.search.hdestroy
+    libc.src.search.hdestroy_r
+    libc.src.search.hsearch
+    libc.src.search.hsearch_r
+    libc.src.search.insque
+    libc.src.search.lfind
+    libc.src.search.lsearch
+    libc.src.search.remque
+    libc.src.search.tdelete
+    libc.src.search.tdestroy
+    libc.src.search.tfind
+    libc.src.search.tsearch
+    libc.src.search.twalk
+    libc.src.search.twalk_r
+
+    # threads.h entrypoints
+    libc.src.threads.call_once
+    libc.src.threads.cnd_broadcast
+    libc.src.threads.cnd_destroy
+    libc.src.threads.cnd_init
+    libc.src.threads.cnd_signal
+    libc.src.threads.cnd_timedwait
+    libc.src.threads.cnd_wait
+    libc.src.threads.mtx_destroy
+    libc.src.threads.mtx_init
+    libc.src.threads.mtx_lock
+    libc.src.threads.mtx_trylock
+    libc.src.threads.mtx_unlock
+    libc.src.threads.thrd_create
+    libc.src.threads.thrd_current
+    libc.src.threads.thrd_detach
+    libc.src.threads.thrd_equal
+    libc.src.threads.thrd_exit
+    libc.src.threads.thrd_join
+    libc.src.threads.tss_create
+    libc.src.threads.tss_delete
+    libc.src.threads.tss_get
+    libc.src.threads.tss_set
+
+    # time.h entrypoints
+    libc.src.time.asctime
+    libc.src.time.asctime_r
+    libc.src.time.ctime
+    libc.src.time.ctime_r
+    libc.src.time.clock
+    libc.src.time.clock_getcpuclockid
+    libc.src.time.clock_getres
+    libc.src.time.clock_gettime
+    libc.src.time.clock_settime
+    libc.src.time.difftime
+    libc.src.time.gmtime
+    libc.src.time.gmtime_r
+    libc.src.time.localtime
+    libc.src.time.localtime_r
+    libc.src.time.mktime
+    libc.src.time.nanosleep
+    libc.src.time.strftime
+    libc.src.time.strftime_l
+    libc.src.time.time
+    libc.src.time.timespec_get
+    libc.src.time.timer_create
+    libc.src.time.timer_delete
+    libc.src.time.timer_getoverrun
+    libc.src.time.timer_gettime
+    libc.src.time.timer_settime
+
+    # locale.h entrypoints
+    libc.src.locale.localeconv
+    libc.src.locale.duplocale
+    libc.src.locale.freelocale
+    libc.src.locale.localeconv
+    libc.src.locale.newlocale
+    libc.src.locale.setlocale
+    libc.src.locale.uselocale
+
+    # unistd.h entrypoints
+    libc.src.unistd.__llvm_libc_syscall
+    libc.src.unistd._exit
+    libc.src.unistd.confstr
+    libc.src.unistd.environ
+    libc.src.unistd.execl
+    libc.src.unistd.execlp
+    libc.src.unistd.execv
+    libc.src.unistd.execvp
+    libc.src.unistd.execvpe
+    libc.src.unistd.fork
+    libc.src.unistd.getopt
+    libc.src.unistd.optarg
+    libc.src.unistd.opterr
+    libc.src.unistd.optind
+    libc.src.unistd.optopt
+    libc.src.unistd.swab
+    libc.src.unistd.sysconf
+
+    # sys/select.h entrypoints
+    libc.src.sys.select.pselect
+    libc.src.sys.select.select
+
+    # wchar.h entrypoints
+    libc.src.wchar.mbrlen
+    libc.src.wchar.mbsinit
+    libc.src.wchar.mbrtowc
+    libc.src.wchar.mbsrtowcs
+    libc.src.wchar.mbsnrtowcs
+    libc.src.wchar.wcrtomb
+    libc.src.wchar.wcsrtombs
+    libc.src.wchar.wcsnrtombs
+    libc.src.wchar.fgetwc
+    libc.src.wchar.fgetws
+    libc.src.wchar.fputwc
+    libc.src.wchar.fputws
+    libc.src.wchar.fwide
+    libc.src.wchar.getwc
+    libc.src.wchar.getwchar
+    libc.src.wchar.putwc
+    libc.src.wchar.putwchar
+    libc.src.wchar.ungetwc
+
+    # nl_types.h entrypoints
+    libc.src.nl_types.catopen
+    libc.src.nl_types.catclose
+    libc.src.nl_types.catgets
+
+    # link.h entrypoints
+    libc.src.link._r_debug
+    libc.src.link.dl_iterate_phdr
+  )
+endif()
+
+if(LLVM_LIBC_ENABLE_EXPERIMENTAL_ENTRYPOINTS)
+  if(LLVM_LIBC_FULL_BUILD)
+    list(APPEND TARGET_LIBC_ENTRYPOINTS
+      # fnmatch.h entrypoints
+      libc.src.fnmatch.fnmatch
+
+      # glob.h entrypoints
+      libc.src.glob.glob
+      libc.src.glob.globfree
+
+      # grp.h entrypoints
+      libc.src.grp.initgroups
+      libc.src.grp.setgroups
+
+      # libintl.h entrypoints
+      libc.src.libintl.bind_textdomain_codeset
+      libc.src.libintl.bindtextdomain
+      libc.src.libintl.dcgettext
+      libc.src.libintl.dcgettext_l
+      libc.src.libintl.dcngettext
+      libc.src.libintl.dcngettext_l
+      libc.src.libintl.dgettext
+      libc.src.libintl.dgettext_l
+      libc.src.libintl.dngettext
+      libc.src.libintl.dngettext_l
+      libc.src.libintl.gettext
+      libc.src.libintl.gettext_l
+      libc.src.libintl.ngettext
+      libc.src.libintl.ngettext_l
+      libc.src.libintl.textdomain
+
+      # net/if.h entrypoints
+      libc.src.net.if_freenameindex
+      libc.src.net.if_nameindex
+
+      # regex.h entrypoints
+      libc.src.regex.regcomp
+      libc.src.regex.regexec
+      libc.src.regex.regerror
+      libc.src.regex.regfree
+
+      # sys/ptrace.h entrypoints
+      libc.src.sys.ptrace.ptrace
+
+      # unistd.h entrypoints
+      libc.src.unistd.setegid
+      libc.src.unistd.seteuid
+      libc.src.unistd.setgid
+      libc.src.unistd.setregid
+      libc.src.unistd.setresgid
+      libc.src.unistd.setresuid
+      libc.src.unistd.setreuid
+      libc.src.unistd.setuid
+
+      # wchar.h entrypoints
+      libc.src.wchar.swprintf
+    )
+  endif()
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+  ${TARGET_LIBC_ENTRYPOINTS}
+  ${TARGET_LIBM_ENTRYPOINTS}
+)
diff --git a/libc/config/linux/x86_64/entrypoints.txt b/libc/config/linux/x86_64/entrypoints.txt
index 5d67548617ea5b..f195135c766c13 100644
--- a/libc/config/linux/x86_64/entrypoints.txt
+++ b/libc/config/linux/x86_64/entrypoints.txt
@@ -1,1847 +1,1849 @@
-set(TARGET_LIBC_ENTRYPOINTS
-    # arpa/inet.h entrypoints
-    libc.src.arpa.inet.htonl
-    libc.src.arpa.inet.htons
-    libc.src.arpa.inet.inet_addr
-    libc.src.arpa.inet.inet_aton
-    libc.src.arpa.inet.inet_ntoa
-    libc.src.arpa.inet.inet_ntop
-    libc.src.arpa.inet.inet_pton
-    libc.src.arpa.inet.ntohl
-    libc.src.arpa.inet.ntohs
-
-    # ctype.h entrypoints
-    libc.src.ctype.isalnum
-    libc.src.ctype.isalpha
-    libc.src.ctype.isascii
-    libc.src.ctype.isblank
-    libc.src.ctype.iscntrl
-    libc.src.ctype.isdigit
-    libc.src.ctype.isgraph
-    libc.src.ctype.islower
-    libc.src.ctype.isprint
-    libc.src.ctype.ispunct
-    libc.src.ctype.isspace
-    libc.src.ctype.isupper
-    libc.src.ctype.isxdigit
-    libc.src.ctype.toascii
-    libc.src.ctype.tolower
-    libc.src.ctype.toupper
-
-    # dlfcn.h entrypoints
-    libc.src.dlfcn.dladdr
-    libc.src.dlfcn.dlclose
-    libc.src.dlfcn.dlerror
-    libc.src.dlfcn.dlopen
-    libc.src.dlfcn.dlsym
-
-    # err.h entrypoints
-    libc.src.err.err
-    libc.src.err.verr
-    libc.src.err.errx
-    libc.src.err.verrx
-    libc.src.err.warn
-    libc.src.err.vwarn
-    libc.src.err.warnx
-    libc.src.err.vwarnx
-
-    # errno.h entrypoints
-    libc.src.errno.errno
-
-    # fcntl.h entrypoints
-    libc.src.fcntl.creat
-    libc.src.fcntl.fallocate
-    libc.src.fcntl.fcntl
-    libc.src.fcntl.open
-    libc.src.fcntl.openat
-    libc.src.fcntl.posix_fadvise
-    libc.src.fcntl.posix_fadvise64
-    libc.src.fcntl.posix_fallocate
-
-    # grp.h entrypoints
-    libc.src.grp.endgrent
-    libc.src.grp.getgrent
-    libc.src.grp.getgrgid
-    libc.src.grp.getgrgid_r
-    libc.src.grp.getgrouplist
-    libc.src.grp.getgrnam
-    libc.src.grp.getgrnam_r
-    libc.src.grp.setgrent
-
-    # net/if.h entrypoints
-    libc.src.net.if_indextoname
-    libc.src.net.if_nametoindex
-
-    # netinet/ether.h entrypoints
-    libc.src.netinet.ether.ether_ntoa
-    libc.src.netinet.ether.ether_ntoa_r
-
-    # netinet/in.h entrypoints
-    libc.src.netinet.in6addr_any
-    libc.src.netinet.in6addr_loopback
-
-    # poll.h entrypoints
-    libc.src.poll.poll
-    libc.src.poll.ppoll
-
-    # pwd.h entrypoints
-    libc.src.pwd.endpwent
-    libc.src.pwd.getpwent
-    libc.src.pwd.getpwent_r
-    libc.src.pwd.getpwnam
-    libc.src.pwd.getpwnam_r
-    libc.src.pwd.getpwuid
-    libc.src.pwd.getpwuid_r
-    libc.src.pwd.setpwent
-
-    # sched.h entrypoints
-    libc.src.sched.getcpu
-    libc.src.sched.sched_get_priority_max
-    libc.src.sched.sched_get_priority_min
-    libc.src.sched.sched_getaffinity
-    libc.src.sched.sched_getcpu
-    libc.src.sched.sched_getparam
-    libc.src.sched.sched_getscheduler
-    libc.src.sched.sched_rr_get_interval
-    libc.src.sched.sched_setaffinity
-    libc.src.sched.sched_setparam
-    libc.src.sched.sched_setscheduler
-    libc.src.sched.sched_yield
-
-    # string.h entrypoints
-    libc.src.string.memccpy
-    libc.src.string.memchr
-    libc.src.string.memcmp
-    libc.src.string.memcpy
-    libc.src.string.memmem
-    libc.src.string.memmove
-    libc.src.string.mempcpy
-    libc.src.string.memrchr
-    libc.src.string.memset
-    libc.src.string.memset_explicit
-    libc.src.string.stpcpy
-    libc.src.string.stpncpy
-    libc.src.string.strcasestr
-    libc.src.string.strcat
-    libc.src.string.strchr
-    libc.src.string.strchrnul
-    libc.src.string.strcmp
-    libc.src.string.strcoll
-    libc.src.string.strcpy
-    libc.src.string.strcspn
-    libc.src.string.strdup
-    libc.src.string.strerror
-    libc.src.string.strerror_r
-    libc.src.string.strlcat
-    libc.src.string.strlcpy
-    libc.src.string.strlen
-    libc.src.string.strncat
-    libc.src.string.strncmp
-    libc.src.string.strncpy
-    libc.src.string.strndup
-    libc.src.string.strnlen
-    libc.src.string.strnlen_s
-    libc.src.string.strpbrk
-    libc.src.string.strrchr
-    libc.src.string.strsep
-    libc.src.string.strsignal
-    libc.src.string.strspn
-    libc.src.string.strstr
-    libc.src.string.strtok
-    libc.src.string.strtok_r
-    libc.src.string.strxfrm
-
-    # strings.h entrypoints
-    libc.src.strings.bcmp
-    libc.src.strings.bcopy
-    libc.src.strings.bzero
-    libc.src.strings.ffs
-    libc.src.strings.ffsl
-    libc.src.strings.ffsll
-    libc.src.strings.index
-    libc.src.strings.rindex
-    libc.src.strings.strcasecmp
-    libc.src.strings.strncasecmp
-
-    # inttypes.h entrypoints
-    libc.src.inttypes.imaxabs
-    libc.src.inttypes.imaxdiv
-    libc.src.inttypes.strtoimax
-    libc.src.inttypes.strtoumax
-    libc.src.inttypes.wcstoimax
-    libc.src.inttypes.wcstoumax
-
-    # libgen.h entrypoints
-    libc.src.libgen.basename
-    libc.src.libgen.dirname
-
-    # stdbit.h entrypoints
-    libc.src.stdbit.stdc_bit_ceil_uc
-    libc.src.stdbit.stdc_bit_ceil_ui
-    libc.src.stdbit.stdc_bit_ceil_ul
-    libc.src.stdbit.stdc_bit_ceil_ull
-    libc.src.stdbit.stdc_bit_ceil_us
-    libc.src.stdbit.stdc_bit_floor_uc
-    libc.src.stdbit.stdc_bit_floor_ui
-    libc.src.stdbit.stdc_bit_floor_ul
-    libc.src.stdbit.stdc_bit_floor_ull
-    libc.src.stdbit.stdc_bit_floor_us
-    libc.src.stdbit.stdc_bit_width_uc
-    libc.src.stdbit.stdc_bit_width_ui
-    libc.src.stdbit.stdc_bit_width_ul
-    libc.src.stdbit.stdc_bit_width_ull
-    libc.src.stdbit.stdc_bit_width_us
-    libc.src.stdbit.stdc_count_ones_uc
-    libc.src.stdbit.stdc_count_ones_ui
-    libc.src.stdbit.stdc_count_ones_ul
-    libc.src.stdbit.stdc_count_ones_ull
-    libc.src.stdbit.stdc_count_ones_us
-    libc.src.stdbit.stdc_count_zeros_uc
-    libc.src.stdbit.stdc_count_zeros_ui
-    libc.src.stdbit.stdc_count_zeros_ul
-    libc.src.stdbit.stdc_count_zeros_ull
-    libc.src.stdbit.stdc_count_zeros_us
-    libc.src.stdbit.stdc_first_leading_one_uc
-    libc.src.stdbit.stdc_first_leading_one_ui
-    libc.src.stdbit.stdc_first_leading_one_ul
-    libc.src.stdbit.stdc_first_leading_one_ull
-    libc.src.stdbit.stdc_first_leading_one_us
-    libc.src.stdbit.stdc_first_leading_zero_uc
-    libc.src.stdbit.stdc_first_leading_zero_ui
-    libc.src.stdbit.stdc_first_leading_zero_ul
-    libc.src.stdbit.stdc_first_leading_zero_ull
-    libc.src.stdbit.stdc_first_leading_zero_us
-    libc.src.stdbit.stdc_first_trailing_one_uc
-    libc.src.stdbit.stdc_first_trailing_one_ui
-    libc.src.stdbit.stdc_first_trailing_one_ul
-    libc.src.stdbit.stdc_first_trailing_one_ull
-    libc.src.stdbit.stdc_first_trailing_one_us
-    libc.src.stdbit.stdc_first_trailing_zero_uc
-    libc.src.stdbit.stdc_first_trailing_zero_ui
-    libc.src.stdbit.stdc_first_trailing_zero_ul
-    libc.src.stdbit.stdc_first_trailing_zero_ull
-    libc.src.stdbit.stdc_first_trailing_zero_us
-    libc.src.stdbit.stdc_has_single_bit_uc
-    libc.src.stdbit.stdc_has_single_bit_ui
-    libc.src.stdbit.stdc_has_single_bit_ul
-    libc.src.stdbit.stdc_has_single_bit_ull
-    libc.src.stdbit.stdc_has_single_bit_us
-    libc.src.stdbit.stdc_leading_ones_uc
-    libc.src.stdbit.stdc_leading_ones_ui
-    libc.src.stdbit.stdc_leading_ones_ul
-    libc.src.stdbit.stdc_leading_ones_ull
-    libc.src.stdbit.stdc_leading_ones_us
-    libc.src.stdbit.stdc_leading_zeros_uc
-    libc.src.stdbit.stdc_leading_zeros_ui
-    libc.src.stdbit.stdc_leading_zeros_ul
-    libc.src.stdbit.stdc_leading_zeros_ull
-    libc.src.stdbit.stdc_leading_zeros_us
-    libc.src.stdbit.stdc_trailing_ones_uc
-    libc.src.stdbit.stdc_trailing_ones_ui
-    libc.src.stdbit.stdc_trailing_ones_ul
-    libc.src.stdbit.stdc_trailing_ones_ull
-    libc.src.stdbit.stdc_trailing_ones_us
-    libc.src.stdbit.stdc_trailing_zeros_uc
-    libc.src.stdbit.stdc_trailing_zeros_ui
-    libc.src.stdbit.stdc_trailing_zeros_ul
-    libc.src.stdbit.stdc_trailing_zeros_ull
-    libc.src.stdbit.stdc_trailing_zeros_us
-
-    # stdlib.h entrypoints
-    libc.src.stdlib.a64l
-    libc.src.stdlib.abs
-    libc.src.stdlib.atof
-    libc.src.stdlib.atoi
-    libc.src.stdlib.atol
-    libc.src.stdlib.atoll
-    libc.src.stdlib.bsearch
-    libc.src.stdlib.div
-    libc.src.stdlib.getloadavg
-    libc.src.stdlib.l64a
-    libc.src.stdlib.labs
-    libc.src.stdlib.ldiv
-    libc.src.stdlib.llabs
-    libc.src.stdlib.lldiv
-    libc.src.stdlib.memalignment
-    libc.src.stdlib.mkdtemp
-    libc.src.stdlib.mkostemp
-    libc.src.stdlib.mkstemp
-    libc.src.stdlib.qsort
-    libc.src.stdlib.qsort_r
-    libc.src.stdlib.rand
-    libc.src.stdlib.realpath
-    libc.src.stdlib.srand
-    libc.src.stdlib.strfromd
-    libc.src.stdlib.strfromf
-    libc.src.stdlib.strfromf128
-    libc.src.stdlib.strfroml
-    libc.src.stdlib.strtod
-    libc.src.stdlib.strtof
-    libc.src.stdlib.strtol
-    libc.src.stdlib.strtold
-    libc.src.stdlib.strtoll
-    libc.src.stdlib.strtoul
-    libc.src.stdlib.strtoull
-
-    # stdlib.h external entrypoints
-    libc.src.stdlib.aligned_alloc
-    libc.src.stdlib.calloc
-    libc.src.stdlib.free
-    libc.src.stdlib.malloc
-    libc.src.stdlib.posix_memalign
-    libc.src.stdlib.realloc
-
-    # stdio.h entrypoints
-    libc.src.stdio.fprintf
-    libc.src.stdio.fscanf
-    libc.src.stdio.vfscanf
-    libc.src.stdio.printf
-    libc.src.stdio.remove
-    libc.src.stdio.rename
-    libc.src.stdio.renameat
-    libc.src.stdio.scanf
-    libc.src.stdio.vscanf
-    libc.src.stdio.snprintf
-    libc.src.stdio.sprintf
-    libc.src.stdio.asprintf
-    libc.src.stdio.sscanf
-    libc.src.stdio.stderr
-    libc.src.stdio.stdin
-    libc.src.stdio.stdout
-    libc.src.stdio.tmpfile
-    libc.src.stdio.tmpnam
-    libc.src.stdio.vsscanf
-    libc.src.stdio.vfprintf
-    libc.src.stdio.vprintf
-    libc.src.stdio.vsnprintf
-    libc.src.stdio.vsprintf
-    libc.src.stdio.vasprintf
-
-    # sys/epoll.h entrypoints
-    libc.src.sys.epoll.epoll_create
-    libc.src.sys.epoll.epoll_create1
-    libc.src.sys.epoll.epoll_ctl
-    libc.src.sys.epoll.epoll_pwait
-    libc.src.sys.epoll.epoll_wait
-    # TODO: Need to check if pwait2 is available before providing.
-    # https://github.com/llvm/llvm-project/issues/80060
-    # libc.src.sys.epoll.epoll_pwait2
-
-    # sys/eventfd.h entrypoints
-    libc.src.sys.eventfd.eventfd
-
-    # sys/file.h entrypoints
-    libc.src.sys.file.flock
-
-    # sys/ioctl.h entrypoints
-    libc.src.sys.ioctl.ioctl
-
-    # sys/ipc.h entrypoints
-    libc.src.sys.ipc.ftok
-
-    # sys/mman.h entrypoints
-    libc.src.sys.mman.madvise
-    libc.src.sys.mman.memfd_create
-    libc.src.sys.mman.mincore
-    libc.src.sys.mman.mlock
-    libc.src.sys.mman.mlock2
-    libc.src.sys.mman.mlockall
-    libc.src.sys.mman.mmap
-    libc.src.sys.mman.mremap
-    libc.src.sys.mman.mprotect
-    libc.src.sys.mman.msync
-    libc.src.sys.mman.munlock
-    libc.src.sys.mman.munlockall
-    libc.src.sys.mman.munmap
-    libc.src.sys.mman.pkey_alloc
-    libc.src.sys.mman.pkey_free
-    libc.src.sys.mman.pkey_get
-    libc.src.sys.mman.pkey_mprotect
-    libc.src.sys.mman.pkey_set
-    libc.src.sys.mman.remap_file_pages
-    libc.src.sys.mman.posix_madvise
-    libc.src.sys.mman.shm_open
-    libc.src.sys.mman.shm_unlink
-
-    # sys/random.h entrypoints
-    libc.src.sys.random.getrandom
-    libc.src.sys.random.getentropy
-
-    # sys/resource.h entrypoints
-    libc.src.sys.resource.getpriority
-    libc.src.sys.resource.getrlimit
-    libc.src.sys.resource.getrusage
-    libc.src.sys.resource.setpriority
-    libc.src.sys.resource.setrlimit
-
-    # sys/sem.h entrypoints
-    libc.src.sys.sem.semget
-    libc.src.sys.sem.semctl
-    libc.src.sys.sem.semop
-
-    # sys/sendfile.h entrypoints
-    libc.src.sys.sendfile.sendfile
-
-    # sys/socket.h entrypoints
-    libc.src.sys.socket.accept
-    libc.src.sys.socket.accept4
-    libc.src.sys.socket.bind
-    libc.src.sys.socket.connect
-    libc.src.sys.socket.getpeername
-    libc.src.sys.socket.getsockname
-    libc.src.sys.socket.getsockopt
-    libc.src.sys.socket.listen
-    libc.src.sys.socket.recv
-    libc.src.sys.socket.recvfrom
-    libc.src.sys.socket.send
-    libc.src.sys.socket.sendto
-    libc.src.sys.socket.setsockopt
-    libc.src.sys.socket.shutdown
-    libc.src.sys.socket.sockatmark
-    libc.src.sys.socket.socket
-    libc.src.sys.socket.socketpair
-    # TODO: These functions are not compatible with 64-bit musl. They need to
-    # be excluded if overlaying musl.
-    libc.src.sys.socket.recvmmsg
-    libc.src.sys.socket.recvmsg
-    libc.src.sys.socket.sendmmsg
-    libc.src.sys.socket.sendmsg
-
-    # sys/stat.h entrypoints
-    libc.src.sys.stat.chmod
-    libc.src.sys.stat.fchmod
-    libc.src.sys.stat.fchmodat
-    libc.src.sys.stat.fstat
-    libc.src.sys.stat.fstatat
-    libc.src.sys.stat.futimens
-    libc.src.sys.stat.lstat
-    libc.src.sys.stat.mkdir
-    libc.src.sys.stat.mkdirat
-    libc.src.sys.stat.mkfifo
-    libc.src.sys.stat.mkfifoat
-    libc.src.sys.stat.mknod
-    libc.src.sys.stat.mknodat
-    libc.src.sys.stat.stat
-    libc.src.sys.stat.umask
-    libc.src.sys.stat.utimensat
-
-    # sys/statfs.h entrypoints
-    libc.src.sys.statfs.fstatfs
-    libc.src.sys.statfs.statfs
-
-    # sys/statvfs.h entrypoints
-    libc.src.sys.statvfs.fstatvfs
-    libc.src.sys.statvfs.statvfs
-
-    # sys/time.h entrypoints
-    libc.src.sys.time.utimes
-
-    # sys/sysinfo.h entrypoints
-    libc.src.sys.sysinfo.sysinfo
-
-    # sys/utsname.h entrypoints
-    libc.src.sys.utsname.uname
-
-    # sys/wait.h entrypoints
-    libc.src.sys.wait.wait
-    libc.src.sys.wait.wait4
-    libc.src.sys.wait.waitid
-    libc.src.sys.wait.waitpid
-
-    # sys/xattr.h entrypoints
-    libc.src.sys.xattr.fgetxattr
-    libc.src.sys.xattr.flistxattr
-    libc.src.sys.xattr.fsetxattr
-    libc.src.sys.xattr.getxattr
-    libc.src.sys.xattr.lgetxattr
-    libc.src.sys.xattr.listxattr
-    libc.src.sys.xattr.llistxattr
-    libc.src.sys.xattr.lsetxattr
-    libc.src.sys.xattr.setxattr
-
-    # sys/prctl.h entrypoints
-    libc.src.sys.prctl.prctl
-
-    # sys/personality.h entrypoints
-    libc.src.sys.personality.personality
-
-    # sys/auxv.h entrypoints
-    libc.src.sys.auxv.getauxval
-
-    # sys/sysmacros.h entrypoints
-    libc.src.sys.sysmacros.makedev
-    libc.src.sys.sysmacros.major
-    libc.src.sys.sysmacros.minor
-
-    # sys/inotify.h entrypoints
-    libc.src.sys.inotify.inotify_add_watch
-    libc.src.sys.inotify.inotify_init
-    libc.src.sys.inotify.inotify_init1
-    libc.src.sys.inotify.inotify_rm_watch
-
-    # termios.h entrypoints
-    libc.src.termios.cfgetispeed
-    libc.src.termios.cfgetospeed
-    libc.src.termios.cfsetispeed
-    libc.src.termios.cfsetospeed
-    libc.src.termios.tcdrain
-    libc.src.termios.tcflow
-    libc.src.termios.tcflush
-    libc.src.termios.tcgetattr
-    libc.src.termios.tcgetsid
-    libc.src.termios.tcgetwinsize
-    libc.src.termios.tcsendbreak
-    libc.src.termios.tcsetattr
-    libc.src.termios.tcsetwinsize
-
-    # unistd.h entrypoints
-    libc.src.unistd.alarm
-    libc.src.unistd.access
-    libc.src.unistd.chdir
-    libc.src.unistd.chown
-    libc.src.unistd.chroot
-    libc.src.unistd.close
-    libc.src.unistd.dup
-    libc.src.unistd.dup2
-    libc.src.unistd.dup3
-    libc.src.unistd.execle
-    libc.src.unistd.execve
-    libc.src.unistd.faccessat
-    libc.src.unistd.fchdir
-    libc.src.unistd.fchown
-    libc.src.unistd.fchownat
-    libc.src.unistd.fdatasync
-    libc.src.unistd.fexecve
-    libc.src.unistd.fpathconf
-    libc.src.unistd.fsync
-    libc.src.unistd.ftruncate
-    libc.src.unistd.getcwd
-    libc.src.unistd.getegid
-    libc.src.unistd.getentropy
-    libc.src.unistd.geteuid
-    libc.src.unistd.gethostname
-    libc.src.unistd.getpagesize
-    libc.src.unistd.getpgid
-    libc.src.unistd.getpgrp
-    libc.src.unistd.getpid
-    libc.src.unistd.getppid
-    libc.src.unistd.getsid
-    libc.src.unistd.gettid
-    libc.src.unistd.getgid
-    libc.src.unistd.getuid
-    libc.src.unistd.isatty
-    libc.src.unistd.lchown
-    libc.src.unistd.link
-    libc.src.unistd.linkat
-    libc.src.unistd.lockf
-    libc.src.unistd.lseek
-    libc.src.unistd.nice
-    libc.src.unistd.pathconf
-    libc.src.unistd.pause
-    libc.src.unistd.pipe
-    libc.src.unistd.pipe2
-    libc.src.unistd.pread
-    libc.src.unistd.pwrite
-    libc.src.unistd.read
-    libc.src.unistd.readlink
-    libc.src.unistd.readlinkat
-    libc.src.unistd.rmdir
-    libc.src.unistd.setpgid
-    libc.src.unistd.setsid
-    libc.src.unistd.sleep
-    libc.src.unistd.symlink
-    libc.src.unistd.symlinkat
-    libc.src.unistd.sync
-    libc.src.unistd.syncfs
-    libc.src.unistd.tcgetpgrp
-    libc.src.unistd.tcsetpgrp
-    libc.src.unistd.truncate
-    libc.src.unistd.unlink
-    libc.src.unistd.unlinkat
-    libc.src.unistd.usleep
-    libc.src.unistd.write
-
-    # wchar.h entrypoints
-    libc.src.wchar.btowc
-    libc.src.wchar.wcscasecmp
-    libc.src.wchar.wcsncasecmp
-    libc.src.wchar.wcslen
-    libc.src.wchar.wcsnlen
-    libc.src.wchar.wctob
-    libc.src.wchar.wmemmove
-    libc.src.wchar.wmemset
-    libc.src.wchar.wcschr
-    libc.src.wchar.wcsncmp
-    libc.src.wchar.wcsxfrm
-    libc.src.wchar.wcscmp
-    libc.src.wchar.wcscoll
-    libc.src.wchar.wcspbrk
-    libc.src.wchar.wcsrchr
-    libc.src.wchar.wcsspn
-    libc.src.wchar.wcscspn
-    libc.src.wchar.wcsdup
-    libc.src.wchar.wmemcmp
-    libc.src.wchar.wmempcpy
-    libc.src.wchar.wmemcpy
-    libc.src.wchar.wcsncpy
-    libc.src.wchar.wcscat
-    libc.src.wchar.wcsstr
-    libc.src.wchar.wcsncat
-    libc.src.wchar.wcslcat
-    libc.src.wchar.wcscpy
-    libc.src.wchar.wcslcpy
-    libc.src.wchar.wmemchr
-    libc.src.wchar.wcpcpy
-    libc.src.wchar.wcpncpy
-    libc.src.wchar.wcstod
-    libc.src.wchar.wcstof
-    libc.src.wchar.wcstok
-    libc.src.wchar.wcstol
-    libc.src.wchar.wcstold
-    libc.src.wchar.wcstoll
-    libc.src.wchar.wcstoul
-    libc.src.wchar.wcstoull
-
-    # wctype.h entrypoints
-    libc.src.wctype.iswalpha
-    libc.src.wctype.iswgraph
-    libc.src.wctype.iswcntrl
-    libc.src.wctype.iswdigit
-    libc.src.wctype.iswupper
-    libc.src.wctype.iswalnum
-    libc.src.wctype.iswlower
-    libc.src.wctype.iswspace
-    libc.src.wctype.iswblank
-    libc.src.wctype.iswxdigit
-    libc.src.wctype.iswpunct
-    libc.src.wctype.iswprint
-    libc.src.wctype.iswctype
-    libc.src.wctype.wctype
-    libc.src.wctype.towlower
-    libc.src.wctype.towupper
-
-    # sys/uio.h entrypoints
-    libc.src.sys.uio.writev
-    libc.src.sys.uio.readv
-
-    # sys/time.h entrypoints
-    libc.src.sys.time.setitimer
-    libc.src.sys.time.getitimer
-    libc.src.sys.time.gettimeofday
-)
-
-if(LLVM_LIBC_INCLUDE_SCUDO)
-  list(APPEND TARGET_LIBC_ENTRYPOINTS
-    # malloc.h external entrypoints
-    libc.src.stdlib.mallopt
-  )
-endif()
-
-set(TARGET_LIBM_ENTRYPOINTS
-    # complex.h entrypoints
-    libc.src.complex.cabs
-    libc.src.complex.cabsf
-    libc.src.complex.carg
-    libc.src.complex.cargf
-    libc.src.complex.creal
-    libc.src.complex.crealf
-    libc.src.complex.creall
-    libc.src.complex.cimag
-    libc.src.complex.cimagf
-    libc.src.complex.cimagl
-    libc.src.complex.conj
-    libc.src.complex.conjf
-    libc.src.complex.conjl
-    libc.src.complex.cproj
-    libc.src.complex.cprojf
-    libc.src.complex.cprojl
-
-    # fenv.h entrypoints
-    libc.src.fenv.feclearexcept
-    libc.src.fenv.fedisableexcept
-    libc.src.fenv.feenableexcept
-    libc.src.fenv.fegetenv
-    libc.src.fenv.fegetexcept
-    libc.src.fenv.fegetexceptflag
-    libc.src.fenv.fegetround
-    libc.src.fenv.feholdexcept
-    libc.src.fenv.feraiseexcept
-    libc.src.fenv.fesetenv
-    libc.src.fenv.fesetexcept
-    libc.src.fenv.fesetexceptflag
-    libc.src.fenv.fesetround
-    libc.src.fenv.fetestexcept
-    libc.src.fenv.fetestexceptflag
-    libc.src.fenv.feupdateenv
-
-    # math.h entrypoints
-    libc.src.math.acos
-    libc.src.math.acosf
-    libc.src.math.acoshf
-    libc.src.math.acospif
-    libc.src.math.asin
-    libc.src.math.asinf
-    libc.src.math.asinhf
-    libc.src.math.asinpi
-    libc.src.math.asinpif
-    libc.src.math.atan2
-    libc.src.math.atan2f
-    libc.src.math.atan2f128
-    libc.src.math.atan
-    libc.src.math.atanf
-    libc.src.math.atanhf
-    libc.src.math.canonicalize
-    libc.src.math.canonicalizef
-    libc.src.math.canonicalizel
-    libc.src.math.cbrt
-    libc.src.math.cbrtf
-    libc.src.math.cbrtbf16
-    libc.src.math.ceil
-    libc.src.math.ceilf
-    libc.src.math.ceilf128
-    libc.src.math.ceill
-    libc.src.math.copysign
-    libc.src.math.copysignf
-    libc.src.math.copysignf128
-    libc.src.math.copysignl
-    libc.src.math.cos
-    libc.src.math.cosf
-    libc.src.math.coshf
-    libc.src.math.cospif
-    libc.src.math.daddl
-    libc.src.math.ddivl
-    libc.src.math.dfmal
-    libc.src.math.dmull
-    libc.src.math.dsqrtl
-    libc.src.math.dsubl
-    libc.src.math.erff
-    libc.src.math.exp
-    libc.src.math.exp10
-    libc.src.math.exp10f
-    libc.src.math.exp10m1f
-    libc.src.math.exp2
-    libc.src.math.exp2f
-    libc.src.math.exp2m1f
-    libc.src.math.expf
-    libc.src.math.expm1
-    libc.src.math.expm1f
-    libc.src.math.fabs
-    libc.src.math.fabsf
-    libc.src.math.fabsf128
-    libc.src.math.fabsl
-    libc.src.math.fadd
-    libc.src.math.faddl
-    libc.src.math.fadd
-    libc.src.math.fdim
-    libc.src.math.fdimf
-    libc.src.math.fdimf128
-    libc.src.math.fdiml
-    libc.src.math.fdiv
-    libc.src.math.fdivl
-    libc.src.math.ffma
-    libc.src.math.ffmal
-    libc.src.math.floor
-    libc.src.math.floorf
-    libc.src.math.floorf128
-    libc.src.math.floorl
-    libc.src.math.fma
-    libc.src.math.fmabf16
-    libc.src.math.fmaf
-    libc.src.math.fmax
-    libc.src.math.fmaxf
-    libc.src.math.fmaxf128
-    libc.src.math.fmaximum
-    libc.src.math.fmaximum_mag
-    libc.src.math.fmaximum_mag_num
-    libc.src.math.fmaximum_mag_numf
-    libc.src.math.fmaximum_mag_numf128
-    libc.src.math.fmaximum_mag_numl
-    libc.src.math.fmaximum_magf
-    libc.src.math.fmaximum_magf128
-    libc.src.math.fmaximum_magl
-    libc.src.math.fmaximum_num
-    libc.src.math.fmaximum_numf
-    libc.src.math.fmaximum_numf128
-    libc.src.math.fmaximum_numl
-    libc.src.math.fmaximumf
-    libc.src.math.fmaximumf128
-    libc.src.math.fmaximuml
-    libc.src.math.fmaxl
-    libc.src.math.fmin
-    libc.src.math.fminf
-    libc.src.math.fminf128
-    libc.src.math.fminimum
-    libc.src.math.fminimum_mag
-    libc.src.math.fminimum_mag_num
-    libc.src.math.fminimum_mag_numf
-    libc.src.math.fminimum_mag_numf128
-    libc.src.math.fminimum_mag_numl
-    libc.src.math.fminimum_magf
-    libc.src.math.fminimum_magf128
-    libc.src.math.fminimum_magl
-    libc.src.math.fminimum_num
-    libc.src.math.fminimum_numf
-    libc.src.math.fminimum_numf128
-    libc.src.math.fminimum_numl
-    libc.src.math.fminimumf
-    libc.src.math.fminimumf128
-    libc.src.math.fminimuml
-    libc.src.math.fminl
-    libc.src.math.fmod
-    libc.src.math.fmodf
-    libc.src.math.fmodl
-    libc.src.math.fmul
-    libc.src.math.fmull
-    libc.src.math.frexp
-    libc.src.math.frexpf
-    libc.src.math.frexpl
-    libc.src.math.fromfp
-    libc.src.math.fromfpf
-    libc.src.math.fromfpl
-    libc.src.math.fromfpx
-    libc.src.math.fromfpxf
-    libc.src.math.fromfpxl
-    libc.src.math.fsqrt
-    libc.src.math.fsqrtl
-    libc.src.math.fsub
-    libc.src.math.fsubl
-    libc.src.math.getpayload
-    libc.src.math.getpayloadf
-    libc.src.math.getpayloadl
-    libc.src.math.hypot
-    libc.src.math.hypotf
-    libc.src.math.ilogb
-    libc.src.math.ilogbf
-    libc.src.math.ilogbl
-    libc.src.math.iscanonical
-    libc.src.math.iscanonicalf
-    libc.src.math.iscanonicalf128
-    libc.src.math.iscanonicall
-    libc.src.math.isnan
-    libc.src.math.isnanf
-    libc.src.math.isnanf128
-    libc.src.math.isnanl
-    libc.src.math.issignaling
-    libc.src.math.issignalingf
-    libc.src.math.issignalingf128
-    libc.src.math.issignalingl
-    libc.src.math.ldexp
-    libc.src.math.ldexpf
-    libc.src.math.ldexpl
-    libc.src.math.lgammaf
-    libc.src.math.llogb
-    libc.src.math.llogbf
-    libc.src.math.llogbl
-    libc.src.math.llrint
-    libc.src.math.llrintf
-    libc.src.math.llrintf128
-    libc.src.math.llrintl
-    libc.src.math.llround
-    libc.src.math.llroundf
-    libc.src.math.llroundf128
-    libc.src.math.llroundl
-    libc.src.math.log
-    libc.src.math.log10
-    libc.src.math.log10f
-    libc.src.math.log1p
-    libc.src.math.log1pf
-    libc.src.math.log2
-    libc.src.math.log2f
-    libc.src.math.logb
-    libc.src.math.logbf
-    libc.src.math.logbl
-    libc.src.math.logf
-    libc.src.math.lrint
-    libc.src.math.lrintf
-    libc.src.math.lrintf128
-    libc.src.math.lrintl
-    libc.src.math.lround
-    libc.src.math.lroundf
-    libc.src.math.lroundf128
-    libc.src.math.lroundl
-    libc.src.math.modf
-    libc.src.math.modff
-    libc.src.math.modfl
-    libc.src.math.nan
-    libc.src.math.nanf
-    libc.src.math.nanl
-    libc.src.math.nearbyint
-    libc.src.math.nearbyintf
-    libc.src.math.nearbyintf128
-    libc.src.math.nearbyintl
-    libc.src.math.nextafter
-    libc.src.math.nextafterf
-    libc.src.math.nextafterl
-    libc.src.math.nextdown
-    libc.src.math.nextdownf
-    libc.src.math.nextdownl
-    libc.src.math.nexttoward
-    libc.src.math.nexttowardf
-    libc.src.math.nexttowardl
-    libc.src.math.nextup
-    libc.src.math.nextupf
-    libc.src.math.nextupl
-    libc.src.math.pow
-    libc.src.math.powf
-    libc.src.math.remainder
-    libc.src.math.remainderf
-    libc.src.math.remainderl
-    libc.src.math.remquo
-    libc.src.math.remquof
-    libc.src.math.remquol
-    libc.src.math.rint
-    libc.src.math.rintf
-    libc.src.math.rintf128
-    libc.src.math.rintl
-    libc.src.math.round
-    libc.src.math.roundeven
-    libc.src.math.roundevenf
-    libc.src.math.roundevenf128
-    libc.src.math.roundevenl
-    libc.src.math.roundf
-    libc.src.math.roundf128
-    libc.src.math.roundl
-    libc.src.math.scalbln
-    libc.src.math.scalblnf
-    libc.src.math.scalblnl
-    libc.src.math.scalbn
-    libc.src.math.scalbnf
-    libc.src.math.scalbnl
-    libc.src.math.setpayload
-    libc.src.math.setpayloadf
-    libc.src.math.setpayloadl
-    libc.src.math.setpayloadsig
-    libc.src.math.setpayloadsigf
-    libc.src.math.setpayloadsigl
-    libc.src.math.sin
-    libc.src.math.sincos
-    libc.src.math.sincosf
-    libc.src.math.sinf
-    libc.src.math.sinhf
-    libc.src.math.sinpif
-    libc.src.math.sqrt
-    libc.src.math.sqrtf
-    libc.src.math.sqrtf128
-    libc.src.math.sqrtl
-    libc.src.math.tan
-    libc.src.math.tanf
-    libc.src.math.tanhf
-    libc.src.math.tanpif
-    libc.src.math.totalorder
-    libc.src.math.totalorderf
-    libc.src.math.totalorderl
-    libc.src.math.totalordermag
-    libc.src.math.totalordermagf
-    libc.src.math.totalordermagl
-    libc.src.math.trunc
-    libc.src.math.truncf
-    libc.src.math.truncf128
-    libc.src.math.truncl
-    libc.src.math.ufromfp
-    libc.src.math.ufromfpf
-    libc.src.math.ufromfpl
-    libc.src.math.ufromfpx
-    libc.src.math.ufromfpxf
-    libc.src.math.ufromfpxl
-)
-
-if(LIBC_TYPES_HAS_CFLOAT16)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # complex.h C23 _Complex _Float16 entrypoints
-    libc.src.complex.crealf16
-    libc.src.complex.cimagf16
-    libc.src.complex.conjf16
-    libc.src.complex.cprojf16
-  )
-endif()
-
-if(LIBC_TYPES_HAS_FLOAT16)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C23 _Float16 entrypoints
-    libc.src.math.acosf16
-    libc.src.math.acoshf16
-    libc.src.math.acospif16
-    libc.src.math.asinf16
-    libc.src.math.asinhf16
-    libc.src.math.asinpif16
-    libc.src.math.atanf16
-    libc.src.math.atan2f16
-    libc.src.math.atanhf16
-    libc.src.math.atanpif16
-    libc.src.math.canonicalizef16
-    libc.src.math.cbrtf16
-    libc.src.math.ceilf16
-    libc.src.math.copysignf16
-    libc.src.math.cosf16
-    libc.src.math.coshf16
-    libc.src.math.cospif16
-    libc.src.math.erff16
-    libc.src.math.erfcf16
-    libc.src.math.exp10f16
-    libc.src.math.exp10m1f16
-    libc.src.math.exp2f16
-    libc.src.math.exp2m1f16
-    libc.src.math.expf16
-    libc.src.math.expm1f16
-    libc.src.math.f16add
-    libc.src.math.f16addf
-    libc.src.math.f16addl
-    libc.src.math.f16div
-    libc.src.math.f16divf
-    libc.src.math.f16divl
-    libc.src.math.f16fma
-    libc.src.math.f16fmaf
-    libc.src.math.f16fmal
-    libc.src.math.f16mul
-    libc.src.math.f16mulf
-    libc.src.math.f16mull
-    libc.src.math.f16sqrt
-    libc.src.math.f16sqrtf
-    libc.src.math.f16sqrtl
-    libc.src.math.f16sub
-    libc.src.math.f16subf
-    libc.src.math.f16subl
-    libc.src.math.fabsf16
-    libc.src.math.fdimf16
-    libc.src.math.floorf16
-    libc.src.math.fmaf16
-    libc.src.math.fmaxf16
-    libc.src.math.fmaximum_mag_numf16
-    libc.src.math.fmaximum_magf16
-    libc.src.math.fmaximum_numf16
-    libc.src.math.fmaximumf16
-    libc.src.math.fminf16
-    libc.src.math.fminimum_mag_numf16
-    libc.src.math.fminimum_magf16
-    libc.src.math.fminimum_numf16
-    libc.src.math.fminimumf16
-    libc.src.math.fmodf16
-    libc.src.math.frexpf16
-    libc.src.math.fromfpf16
-    libc.src.math.fromfpxf16
-    libc.src.math.getpayloadf16
-    libc.src.math.hypotf16
-    libc.src.math.ilogbf16
-    libc.src.math.iscanonicalf16
-    libc.src.math.isnanf16
-    libc.src.math.issignalingf16
-    libc.src.math.ldexpf16
-    libc.src.math.lgammaf16
-    libc.src.math.llogbf16
-    libc.src.math.llrintf16
-    libc.src.math.llroundf16
-    libc.src.math.log10f16
-    libc.src.math.log10p1f16
-    libc.src.math.log2f16
-    libc.src.math.log2p1f16
-    libc.src.math.logbf16
-    libc.src.math.logf16
-    libc.src.math.lrintf16
-    libc.src.math.lroundf16
-    libc.src.math.modff16
-    libc.src.math.nanf16
-    libc.src.math.nearbyintf16
-    libc.src.math.nextafterf16
-    libc.src.math.nextdownf16
-    libc.src.math.nexttowardf16
-    libc.src.math.nextupf16
-    libc.src.math.remainderf16
-    libc.src.math.remquof16
-    libc.src.math.rintf16
-    libc.src.math.roundevenf16
-    libc.src.math.roundf16
-    libc.src.math.rsqrtf
-    libc.src.math.rsqrtf16
-    libc.src.math.scalblnf16
-    libc.src.math.scalbnf16
-    libc.src.math.setpayloadf16
-    libc.src.math.setpayloadsigf16
-    libc.src.math.sinf16
-    libc.src.math.sinhf16
-    libc.src.math.sinpif16
-    libc.src.math.sqrtf16
-    libc.src.math.tanf16
-    libc.src.math.tanhf16
-    libc.src.math.tanpif16
-    libc.src.math.totalorderf16
-    libc.src.math.totalordermagf16
-    libc.src.math.truncf16
-    libc.src.math.ufromfpf16
-    libc.src.math.ufromfpxf16
-  )
-
-  if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-    list(APPEND TARGET_LIBM_ENTRYPOINTS
-      # math.h C23 mixed _Float16 and _Float128 entrypoints
-      libc.src.math.f16addf128
-      libc.src.math.f16divf128
-      libc.src.math.f16fmaf128
-      libc.src.math.f16mulf128
-      libc.src.math.f16sqrtf128
-      libc.src.math.f16subf128
-    )
-  endif()
-endif()
-
-if(LIBC_TYPES_HAS_CFLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # complex.h C23 _Complex _Float128 entrypoints
-    libc.src.complex.crealf128
-    libc.src.complex.cimagf128
-    libc.src.complex.conjf128
-    libc.src.complex.cprojf128
-  )
-endif()
-
-if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C23 _Float128 entrypoints
-    libc.src.math.atan2l
-    libc.src.math.canonicalizef128
-    libc.src.math.daddf128
-    libc.src.math.ddivf128
-    libc.src.math.dfmaf128
-    libc.src.math.dmulf128
-    libc.src.math.dsqrtf128
-    libc.src.math.dsubf128
-    libc.src.math.faddf128
-    libc.src.math.fdivf128
-    libc.src.math.ffmaf128
-    libc.src.math.fmodf128
-    libc.src.math.fmulf128
-    libc.src.math.frexpf128
-    libc.src.math.fromfpf128
-    libc.src.math.fromfpxf128
-    libc.src.math.fsqrtf128
-    libc.src.math.fsubf128
-    libc.src.math.getpayloadf128
-    libc.src.math.ilogbf128
-    libc.src.math.ldexpf128
-    libc.src.math.llogbf128
-    libc.src.math.logbf128
-    libc.src.math.modff128
-    libc.src.math.nanf128
-    libc.src.math.nextafterf128
-    libc.src.math.nextdownf128
-    libc.src.math.nextupf128
-    libc.src.math.remainderf128
-    libc.src.math.remquof128
-    libc.src.math.scalblnf128
-    libc.src.math.scalbnf128
-    libc.src.math.setpayloadf128
-    libc.src.math.setpayloadsigf128
-    libc.src.math.totalorderf128
-    libc.src.math.totalordermagf128
-    libc.src.math.ufromfpf128
-    libc.src.math.ufromfpxf128
-  )
-endif()
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
-  # bfloat16 entrypoints
-  libc.src.math.atanbf16
-  libc.src.math.acosbf16
-  libc.src.math.asinbf16
-  libc.src.math.bf16add
-  libc.src.math.bf16addf
-  libc.src.math.bf16addl
-  libc.src.math.bf16div
-  libc.src.math.bf16divf
-  libc.src.math.bf16divl
-  libc.src.math.bf16fma
-  libc.src.math.bf16fmaf
-  libc.src.math.bf16fmal
-  libc.src.math.bf16mul
-  libc.src.math.bf16mulf
-  libc.src.math.bf16mull
-  libc.src.math.bf16sub
-  libc.src.math.bf16subf
-  libc.src.math.bf16subl
-  libc.src.math.canonicalizebf16
-  libc.src.math.ceilbf16
-  libc.src.math.copysignbf16
-  libc.src.math.exp2bf16
-  libc.src.math.expbf16
-  libc.src.math.fabsbf16
-  libc.src.math.fdimbf16
-  libc.src.math.floorbf16
-  libc.src.math.fmaxbf16
-  libc.src.math.fmaximumbf16
-  libc.src.math.fmaximum_magbf16
-  libc.src.math.fmaximum_mag_numbf16
-  libc.src.math.fmaximum_numbf16
-  libc.src.math.fminbf16
-  libc.src.math.fminimumbf16
-  libc.src.math.fminimum_magbf16
-  libc.src.math.fminimum_mag_numbf16
-  libc.src.math.fminimum_numbf16
-  libc.src.math.fmodbf16
-  libc.src.math.frexpbf16
-  libc.src.math.fromfpbf16
-  libc.src.math.fromfpxbf16
-  libc.src.math.getpayloadbf16
-  libc.src.math.hypotbf16
-  libc.src.math.ilogbbf16
-  libc.src.math.iscanonicalbf16
-  libc.src.math.issignalingbf16
-  libc.src.math.ldexpbf16
-  libc.src.math.llogbbf16
-  libc.src.math.llrintbf16
-  libc.src.math.llroundbf16
-  libc.src.math.log_bf16
-  libc.src.math.logbbf16
-  libc.src.math.lrintbf16
-  libc.src.math.lroundbf16
-  libc.src.math.modfbf16
-  libc.src.math.nanbf16
-  libc.src.math.nearbyintbf16
-  libc.src.math.nextafterbf16
-  libc.src.math.nextdownbf16
-  libc.src.math.nexttowardbf16
-  libc.src.math.nextupbf16
-  libc.src.math.remainderbf16
-  libc.src.math.remquobf16
-  libc.src.math.rintbf16
-  libc.src.math.roundbf16
-  libc.src.math.roundevenbf16
-  libc.src.math.scalblnbf16
-  libc.src.math.scalbnbf16
-  libc.src.math.setpayloadbf16
-  libc.src.math.setpayloadsigbf16
-  libc.src.math.sqrtbf16
-  libc.src.math.tanbf16
-  libc.src.math.truncbf16
-  libc.src.math.totalorderbf16
-  libc.src.math.totalordermagbf16
-  libc.src.math.ufromfpbf16
-  libc.src.math.ufromfpxbf16
-)
-
-if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # math.h C++23 mixed bfloat16 and _Float128 entrypoints
-    libc.src.math.bf16addf128
-    libc.src.math.bf16divf128
-    libc.src.math.bf16fmaf128
-    libc.src.math.bf16mulf128
-    libc.src.math.bf16subf128
-  )
-endif()
-
-if(LIBC_COMPILER_HAS_FIXED_POINT)
-  list(APPEND TARGET_LIBM_ENTRYPOINTS
-    # stdfix.h _Fract and _Accum entrypoints
-    libc.src.stdfix.abshk
-    libc.src.stdfix.abshr
-    libc.src.stdfix.absk
-    libc.src.stdfix.abslk
-    libc.src.stdfix.abslr
-    libc.src.stdfix.absr
-    libc.src.stdfix.exphk
-    libc.src.stdfix.expk
-    libc.src.stdfix.roundhk
-    libc.src.stdfix.roundhr
-    libc.src.stdfix.roundk
-    libc.src.stdfix.roundlk
-    libc.src.stdfix.roundlr
-    libc.src.stdfix.roundr
-    libc.src.stdfix.rounduhk
-    libc.src.stdfix.rounduhr
-    libc.src.stdfix.rounduk
-    libc.src.stdfix.roundulk
-    libc.src.stdfix.roundulr
-    libc.src.stdfix.roundur
-    libc.src.stdfix.sqrtuhk
-    libc.src.stdfix.sqrtuhr
-    libc.src.stdfix.sqrtuk
-    libc.src.stdfix.sqrtur
-    # libc.src.stdfix.sqrtulk
-    libc.src.stdfix.sqrtulr
-    libc.src.stdfix.uhksqrtus
-    libc.src.stdfix.uksqrtui
-    libc.src.stdfix.hrbits
-    libc.src.stdfix.uhrbits
-    libc.src.stdfix.rbits
-    libc.src.stdfix.urbits
-    libc.src.stdfix.lrbits
-    libc.src.stdfix.ulrbits
-    libc.src.stdfix.hkbits
-    libc.src.stdfix.uhkbits
-    libc.src.stdfix.kbits
-    libc.src.stdfix.ukbits
-    libc.src.stdfix.lkbits
-    libc.src.stdfix.ulkbits
-    libc.src.stdfix.bitshr
-    libc.src.stdfix.bitsr
-    libc.src.stdfix.bitslr
-    libc.src.stdfix.bitshk
-    libc.src.stdfix.bitsk
-    libc.src.stdfix.bitslk
-    libc.src.stdfix.bitsuhr
-    libc.src.stdfix.bitsur
-    libc.src.stdfix.bitsulr
-    libc.src.stdfix.bitsuhk
-    libc.src.stdfix.bitsuk
-    libc.src.stdfix.bitsulk
-    libc.src.stdfix.countlshr
-    libc.src.stdfix.countlsr
-    libc.src.stdfix.countlslr
-    libc.src.stdfix.countlshk
-    libc.src.stdfix.countlsk
-    libc.src.stdfix.countlslk
-    libc.src.stdfix.countlsuhr
-    libc.src.stdfix.countlsur
-    libc.src.stdfix.countlsulr
-    libc.src.stdfix.countlsuhk
-    libc.src.stdfix.countlsuk
-    libc.src.stdfix.countlsulk
-    libc.src.stdfix.idivr
-    libc.src.stdfix.idivlr
-    libc.src.stdfix.idivk
-    libc.src.stdfix.idivlk
-    libc.src.stdfix.idivur
-    libc.src.stdfix.idivulr
-    libc.src.stdfix.idivuk
-    libc.src.stdfix.idivulk
-    libc.src.stdfix.rdivi
-    libc.src.stdfix.lrdivi
-    libc.src.stdfix.kdivi
-    libc.src.stdfix.lkdivi
-    libc.src.stdfix.urdivi
-    libc.src.stdfix.ulrdivi
-    libc.src.stdfix.ukdivi
-    libc.src.stdfix.ulkdivi
-    libc.src.stdfix.divir
-    libc.src.stdfix.divilr
-    libc.src.stdfix.divik
-    libc.src.stdfix.divilk
-    libc.src.stdfix.diviur
-    libc.src.stdfix.diviulr
-    libc.src.stdfix.diviuk
-    libc.src.stdfix.diviulk
-  )
-endif()
-
-if(LLVM_LIBC_FULL_BUILD)
-  list(APPEND TARGET_LIBC_ENTRYPOINTS
-    # ctype.h entrypoints
-    libc.src.ctype.isalnum_l
-    libc.src.ctype.isalpha_l
-    libc.src.ctype.isblank_l
-    libc.src.ctype.iscntrl_l
-    libc.src.ctype.isdigit_l
-    libc.src.ctype.isgraph_l
-    libc.src.ctype.islower_l
-    libc.src.ctype.isprint_l
-    libc.src.ctype.ispunct_l
-    libc.src.ctype.isspace_l
-    libc.src.ctype.isupper_l
-    libc.src.ctype.isxdigit_l
-    libc.src.ctype.tolower_l
-    libc.src.ctype.toupper_l
-
-    # errno.h entrypoints
-    libc.src.errno.program_invocation_name
-    libc.src.errno.program_invocation_short_name
-
-    # stdlib.h entrypoints
-    libc.src.stdlib.strtod_l
-    libc.src.stdlib.strtof_l
-    libc.src.stdlib.strtol_l
-    libc.src.stdlib.strtold_l
-    libc.src.stdlib.strtoll_l
-    libc.src.stdlib.strtoul_l
-    libc.src.stdlib.strtoull_l
-
-    # string.h entrypoints
-    libc.src.string.strcoll_l
-    libc.src.string.strxfrm_l
-
-    # strings.h entrypoints
-    libc.src.strings.strcasecmp_l
-    libc.src.strings.strncasecmp_l
-
-    # assert.h entrypoints
-    libc.src.assert.__assert_fail
-
-    # compiler entrypoints (no corresponding header)
-    libc.src.compiler.__stack_chk_fail
-
-    # dirent.h entrypoints
-    libc.src.dirent.alphasort
-    libc.src.dirent.closedir
-    libc.src.dirent.dirfd
-    libc.src.dirent.opendir
-    libc.src.dirent.readdir
-    libc.src.dirent.scandir
-    libc.src.dirent.fdopendir
-
-    # pthread.h entrypoints
-    libc.src.pthread.__pthread_cleanup_pop
-    libc.src.pthread.__pthread_cleanup_push
-    libc.src.pthread.pthread_atfork
-    libc.src.pthread.pthread_attr_destroy
-    libc.src.pthread.pthread_attr_getdetachstate
-    libc.src.pthread.pthread_attr_getguardsize
-    libc.src.pthread.pthread_attr_getinheritsched
-    libc.src.pthread.pthread_attr_getschedparam
-    libc.src.pthread.pthread_attr_getschedpolicy
-    libc.src.pthread.pthread_attr_getscope
-    libc.src.pthread.pthread_attr_getstack
-    libc.src.pthread.pthread_attr_getstacksize
-    libc.src.pthread.pthread_attr_init
-    libc.src.pthread.pthread_attr_setdetachstate
-    libc.src.pthread.pthread_attr_setguardsize
-    libc.src.pthread.pthread_attr_setinheritsched
-    libc.src.pthread.pthread_attr_setschedparam
-    libc.src.pthread.pthread_attr_setschedpolicy
-    libc.src.pthread.pthread_attr_setscope
-    libc.src.pthread.pthread_attr_setstack
-    libc.src.pthread.pthread_attr_setstacksize
-    libc.src.pthread.pthread_condattr_destroy
-    libc.src.pthread.pthread_condattr_getclock
-    libc.src.pthread.pthread_condattr_getpshared
-    libc.src.pthread.pthread_condattr_init
-    libc.src.pthread.pthread_condattr_setclock
-    libc.src.pthread.pthread_condattr_setpshared
-    libc.src.pthread.pthread_cond_broadcast
-    libc.src.pthread.pthread_cond_clockwait
-    libc.src.pthread.pthread_cond_destroy
-    libc.src.pthread.pthread_cond_init
-    libc.src.pthread.pthread_cond_signal
-    libc.src.pthread.pthread_cond_timedwait
-    libc.src.pthread.pthread_cond_wait
-    libc.src.pthread.pthread_create
-    libc.src.pthread.pthread_detach
-    libc.src.pthread.pthread_equal
-    libc.src.pthread.pthread_exit
-    libc.src.pthread.pthread_getattr_np
-    libc.src.pthread.pthread_getname_np
-    libc.src.pthread.pthread_getschedparam
-    libc.src.pthread.pthread_getspecific
-    libc.src.pthread.pthread_getstack_np
-    libc.src.pthread.pthread_getthreadid_np
-    libc.src.pthread.pthread_getunique_np
-    libc.src.pthread.pthread_join
-    libc.src.pthread.pthread_key_create
-    libc.src.pthread.pthread_key_delete
-    libc.src.pthread.pthread_barrier_init
-    libc.src.pthread.pthread_barrier_wait
-    libc.src.pthread.pthread_barrier_destroy
-    libc.src.pthread.pthread_mutex_destroy
-    libc.src.pthread.pthread_mutex_init
-    libc.src.pthread.pthread_mutex_lock
-    libc.src.pthread.pthread_mutex_trylock
-    libc.src.pthread.pthread_mutex_unlock
-    libc.src.pthread.pthread_mutexattr_destroy
-    libc.src.pthread.pthread_mutexattr_getpshared
-    libc.src.pthread.pthread_mutexattr_getrobust
-    libc.src.pthread.pthread_mutexattr_gettype
-    libc.src.pthread.pthread_mutexattr_init
-    libc.src.pthread.pthread_mutexattr_setpshared
-    libc.src.pthread.pthread_mutexattr_setrobust
-    libc.src.pthread.pthread_mutexattr_settype
-    libc.src.pthread.pthread_once
-    libc.src.pthread.pthread_rwlock_clockrdlock
-    libc.src.pthread.pthread_rwlock_clockwrlock
-    libc.src.pthread.pthread_rwlock_destroy
-    libc.src.pthread.pthread_rwlock_init
-    libc.src.pthread.pthread_rwlock_rdlock
-    libc.src.pthread.pthread_rwlock_timedrdlock
-    libc.src.pthread.pthread_rwlock_timedwrlock
-    libc.src.pthread.pthread_rwlock_tryrdlock
-    libc.src.pthread.pthread_rwlock_trywrlock
-    libc.src.pthread.pthread_rwlock_unlock
-    libc.src.pthread.pthread_rwlock_wrlock
-    libc.src.pthread.pthread_rwlockattr_destroy
-    libc.src.pthread.pthread_rwlockattr_getkind_np
-    libc.src.pthread.pthread_rwlockattr_getpshared
-    libc.src.pthread.pthread_rwlockattr_init
-    libc.src.pthread.pthread_rwlockattr_setkind_np
-    libc.src.pthread.pthread_rwlockattr_setpshared
-    libc.src.pthread.pthread_spin_destroy
-    libc.src.pthread.pthread_spin_init
-    libc.src.pthread.pthread_spin_lock
-    libc.src.pthread.pthread_spin_trylock
-    libc.src.pthread.pthread_spin_unlock
-    libc.src.pthread.pthread_self
-    libc.src.pthread.pthread_setname_np
-    libc.src.pthread.pthread_setschedparam
-    libc.src.pthread.pthread_setspecific
-
-    # sched.h entrypoints
-    libc.src.sched.clone
-    libc.src.sched.__sched_andcpuset
-    libc.src.sched.__sched_clrcpuset
-    libc.src.sched.__sched_cpualloc
-    libc.src.sched.__sched_cpuequal
-    libc.src.sched.__sched_cpufree
-    libc.src.sched.__sched_getcpucount
-    libc.src.sched.__sched_getcpuisset
-    libc.src.sched.__sched_orcpuset
-    libc.src.sched.__sched_setcpuset
-    libc.src.sched.__sched_setcpuzero
-    libc.src.sched.__sched_xorcpuset
-
-    # semaphore.h entrypoints
-    libc.src.semaphore.sem_clockwait
-    libc.src.semaphore.sem_close
-    libc.src.semaphore.sem_destroy
-    libc.src.semaphore.sem_getvalue
-    libc.src.semaphore.sem_init
-    libc.src.semaphore.sem_open
-    libc.src.semaphore.sem_post
-    libc.src.semaphore.sem_timedwait
-    libc.src.semaphore.sem_trywait
-    libc.src.semaphore.sem_unlink
-    libc.src.semaphore.sem_wait
-
-    # setjmp.h entrypoints
-    libc.src.setjmp.longjmp
-    libc.src.setjmp.setjmp
-    libc.src.setjmp.siglongjmp
-    libc.src.setjmp.sigsetjmp
-
-    # ucontext.h entrypoints
-    libc.src.ucontext.getcontext
-    libc.src.ucontext.setcontext
-
-    # stdio.h entrypoints
-    libc.src.stdio.clearerr
-    libc.src.stdio.clearerr_unlocked
-    libc.src.stdio.fclose
-    libc.src.stdio.fdopen
-    libc.src.stdio.feof
-    libc.src.stdio.feof_unlocked
-    libc.src.stdio.ferror
-    libc.src.stdio.ferror_unlocked
-    libc.src.stdio.fflush
-    libc.src.stdio.fgetc
-    libc.src.stdio.fgetc_unlocked
-    libc.src.stdio.fgetpos
-    libc.src.stdio.fgets
-    libc.src.stdio.fileno
-    libc.src.stdio.flockfile
-    libc.src.stdio.fmemopen
-    libc.src.stdio.fopen
-    libc.src.stdio.freopen
-    libc.src.stdio.fopencookie
-    libc.src.stdio.fputc
-    libc.src.stdio.fputs
-    libc.src.stdio.fread
-    libc.src.stdio.fread_unlocked
-    libc.src.stdio.fseek
-    libc.src.stdio.fseeko
-    libc.src.stdio.fsetpos
-    libc.src.stdio.ftell
-    libc.src.stdio.ftello
-    libc.src.stdio.funlockfile
-    libc.src.stdio.fwrite
-    libc.src.stdio.fwrite_unlocked
-    libc.src.stdio.getc
-    libc.src.stdio.getc_unlocked
-    libc.src.stdio.getchar
-    libc.src.stdio.getchar_unlocked
-    libc.src.stdio.pclose
-    libc.src.stdio.perror
-    libc.src.stdio.popen
-    libc.src.stdio.putc
-    libc.src.stdio.putchar
-    libc.src.stdio.puts
-    libc.src.stdio.rewind
-    libc.src.stdio.setbuf
-    libc.src.stdio.setvbuf
-    libc.src.stdio.stderr
-    libc.src.stdio.stdin
-    libc.src.stdio.stdout
-    libc.src.stdio.ungetc
-
-    # stdlib.h entrypoints
-    libc.src.stdlib.__cxa_thread_atexit_impl
-    libc.src.stdlib._Exit
-    libc.src.stdlib.abort
-    libc.src.stdlib.at_quick_exit
-    libc.src.stdlib.atexit
-    libc.src.stdlib.clearenv
-    libc.src.stdlib.exit
-    libc.src.stdlib.getenv
-    libc.src.stdlib.putenv
-    libc.src.stdlib.secure_getenv
-    libc.src.stdlib.setenv
-    libc.src.stdlib.unsetenv
-    libc.src.stdlib.mbstowcs
-    libc.src.stdlib.mbtowc
-    libc.src.stdlib.mblen
-    libc.src.stdlib.quick_exit
-    libc.src.stdlib.system
-    libc.src.stdlib.wcstombs
-    libc.src.stdlib.wctomb
-
-    # signal.h entrypoints
-    libc.src.signal.kill
-    libc.src.signal.pthread_kill
-    libc.src.signal.pthread_sigmask
-    libc.src.signal.raise
-    libc.src.signal.sigaction
-    libc.src.signal.sigaddset
-    libc.src.signal.sigaltstack
-    libc.src.signal.sigdelset
-    libc.src.signal.sigemptyset
-    libc.src.signal.sigfillset
-    libc.src.signal.sigismember
-    libc.src.signal.signal
-    libc.src.signal.sigprocmask
-
-    # spawn.h entrypoints
-    libc.src.spawn.posix_spawn
-    libc.src.spawn.posix_spawn_file_actions_addclose
-    libc.src.spawn.posix_spawn_file_actions_adddup2
-    libc.src.spawn.posix_spawn_file_actions_addopen
-    libc.src.spawn.posix_spawn_file_actions_destroy
-    libc.src.spawn.posix_spawn_file_actions_init
-
-    # search.h entrypoints
-    libc.src.search.hcreate
-    libc.src.search.hcreate_r
-    libc.src.search.hdestroy
-    libc.src.search.hdestroy_r
-    libc.src.search.hsearch
-    libc.src.search.hsearch_r
-    libc.src.search.insque
-    libc.src.search.lfind
-    libc.src.search.lsearch
-    libc.src.search.remque
-    libc.src.search.tdelete
-    libc.src.search.tdestroy
-    libc.src.search.tfind
-    libc.src.search.tsearch
-    libc.src.search.twalk
-    libc.src.search.twalk_r
-
-    # threads.h entrypoints
-    libc.src.threads.call_once
-    libc.src.threads.cnd_broadcast
-    libc.src.threads.cnd_destroy
-    libc.src.threads.cnd_init
-    libc.src.threads.cnd_signal
-    libc.src.threads.cnd_timedwait
-    libc.src.threads.cnd_wait
-    libc.src.threads.mtx_destroy
-    libc.src.threads.mtx_init
-    libc.src.threads.mtx_lock
-    libc.src.threads.mtx_trylock
-    libc.src.threads.mtx_unlock
-    libc.src.threads.thrd_create
-    libc.src.threads.thrd_current
-    libc.src.threads.thrd_detach
-    libc.src.threads.thrd_equal
-    libc.src.threads.thrd_exit
-    libc.src.threads.thrd_join
-    libc.src.threads.tss_create
-    libc.src.threads.tss_delete
-    libc.src.threads.tss_get
-    libc.src.threads.tss_set
-
-    # time.h entrypoints
-    libc.src.time.asctime
-    libc.src.time.asctime_r
-    libc.src.time.ctime
-    libc.src.time.ctime_r
-    libc.src.time.clock
-    libc.src.time.clock_getcpuclockid
-    libc.src.time.clock_getres
-    libc.src.time.clock_gettime
-    libc.src.time.clock_settime
-    libc.src.time.difftime
-    libc.src.time.gmtime
-    libc.src.time.gmtime_r
-    libc.src.time.localtime
-    libc.src.time.localtime_r
-    libc.src.time.mktime
-    libc.src.time.nanosleep
-    libc.src.time.strftime
-    libc.src.time.strftime_l
-    libc.src.time.time
-    libc.src.time.timespec_get
-    libc.src.time.timer_create
-    libc.src.time.timer_delete
-    libc.src.time.timer_getoverrun
-    libc.src.time.timer_gettime
-    libc.src.time.timer_settime
-
-    # locale.h entrypoints
-    libc.src.locale.localeconv
-    libc.src.locale.duplocale
-    libc.src.locale.freelocale
-    libc.src.locale.localeconv
-    libc.src.locale.newlocale
-    libc.src.locale.setlocale
-    libc.src.locale.uselocale
-
-    # unistd.h entrypoints
-    libc.src.unistd.__llvm_libc_syscall
-    libc.src.unistd._exit
-    libc.src.unistd.confstr
-    libc.src.unistd.environ
-    libc.src.unistd.execl
-    libc.src.unistd.execlp
-    libc.src.unistd.execv
-    libc.src.unistd.execvp
-    libc.src.unistd.execvpe
-    libc.src.unistd.fork
-    libc.src.unistd.getopt
-    libc.src.unistd.optarg
-    libc.src.unistd.opterr
-    libc.src.unistd.optind
-    libc.src.unistd.optopt
-    libc.src.unistd.swab
-    libc.src.unistd.sysconf
-
-    # sys/select.h entrypoints
-    libc.src.sys.select.pselect
-    libc.src.sys.select.select
-
-    # wchar.h entrypoints
-    libc.src.wchar.mbrlen
-    libc.src.wchar.mbsinit
-    libc.src.wchar.mbrtowc
-    libc.src.wchar.mbsrtowcs
-    libc.src.wchar.mbsnrtowcs
-    libc.src.wchar.wcrtomb
-    libc.src.wchar.wcsrtombs
-    libc.src.wchar.wcsnrtombs
-    libc.src.wchar.fgetwc
-    libc.src.wchar.fgetws
-    libc.src.wchar.fputwc
-    libc.src.wchar.fputws
-    libc.src.wchar.fwide
-    libc.src.wchar.getwc
-    libc.src.wchar.getwchar
-    libc.src.wchar.putwc
-    libc.src.wchar.putwchar
-    libc.src.wchar.ungetwc
-
-    # nl_types.h entrypoints
-    libc.src.nl_types.catopen
-    libc.src.nl_types.catclose
-    libc.src.nl_types.catgets
-
-    # link.h entrypoints
-    libc.src.link._r_debug
-    libc.src.link.dl_iterate_phdr
-  )
-endif()
-
-if(LLVM_LIBC_ENABLE_EXPERIMENTAL_ENTRYPOINTS)
-  if(LLVM_LIBC_FULL_BUILD)
-    list(APPEND TARGET_LIBC_ENTRYPOINTS
-      # fnmatch.h entrypoints
-      libc.src.fnmatch.fnmatch
-
-      # glob.h entrypoints
-      libc.src.glob.glob
-      libc.src.glob.globfree
-
-      # grp.h entrypoints
-      libc.src.grp.initgroups
-      libc.src.grp.setgroups
-
-      # libintl.h entrypoints
-      libc.src.libintl.bind_textdomain_codeset
-      libc.src.libintl.bindtextdomain
-      libc.src.libintl.dcgettext
-      libc.src.libintl.dcgettext_l
-      libc.src.libintl.dcngettext
-      libc.src.libintl.dcngettext_l
-      libc.src.libintl.dgettext
-      libc.src.libintl.dgettext_l
-      libc.src.libintl.dngettext
-      libc.src.libintl.dngettext_l
-      libc.src.libintl.gettext
-      libc.src.libintl.gettext_l
-      libc.src.libintl.ngettext
-      libc.src.libintl.ngettext_l
-      libc.src.libintl.textdomain
-
-      # net/if.h entrypoints
-      libc.src.net.if_freenameindex
-      libc.src.net.if_nameindex
-
-      # netdb.h entrypoints
-      libc.src.netdb.freeaddrinfo
-      libc.src.netdb.gai_strerror
-      libc.src.netdb.getaddrinfo
-
-      # regex.h entrypoints
-      libc.src.regex.regcomp
-      libc.src.regex.regexec
-      libc.src.regex.regerror
-      libc.src.regex.regfree
-
-      # sys/ptrace.h entrypoints
-      libc.src.sys.ptrace.ptrace
-
-      # time.h entrypoints
-      libc.src.time.strptime
-      libc.src.time.tz_variables
-      libc.src.time.tzset
-
-      # unistd.h entrypoints
-      libc.src.unistd.setegid
-      libc.src.unistd.seteuid
-      libc.src.unistd.setgid
-      libc.src.unistd.setregid
-      libc.src.unistd.setresgid
-      libc.src.unistd.setresuid
-      libc.src.unistd.setreuid
-      libc.src.unistd.setuid
-
-      # wchar.h entrypoints
-      libc.src.wchar.swprintf
-    )
-  endif()
-endif()
-
-set(TARGET_LIBMVEC_ENTRYPOINTS)
-
-if(LIBC_COMPILER_HAS_EXT_VECTOR_TYPE)
-list(APPEND TARGET_LIBMVEC_ENTRYPOINTS
-    libc.src.mathvec.acosf
-    libc.src.mathvec.acoshf
-    libc.src.mathvec.acospif
-    libc.src.mathvec.asinf
-    libc.src.mathvec.asinhf
-    libc.src.mathvec.asinpif
-    libc.src.mathvec.atanf
-    libc.src.mathvec.atanhf
-    libc.src.mathvec.cbrtf
-    libc.src.mathvec.cosf
-    libc.src.mathvec.coshf
-    libc.src.mathvec.cospif
-    libc.src.mathvec.erff
-    libc.src.mathvec.exp2f
-    libc.src.mathvec.exp2m1f
-    libc.src.mathvec.exp10f
-    libc.src.mathvec.exp10m1f
-    libc.src.mathvec.expf
-    libc.src.mathvec.expm1f
-    libc.src.mathvec.log10f
-    libc.src.mathvec.log1pf
-    libc.src.mathvec.log2f
-    libc.src.mathvec.logf
-    libc.src.mathvec.rsqrtf
-    libc.src.mathvec.sinf
-    libc.src.mathvec.sinhf
-    libc.src.mathvec.sinpif
-    libc.src.mathvec.sqrtf
-    libc.src.mathvec.tanf
-    libc.src.mathvec.tanhf
-    libc.src.mathvec.tanpif
-  )
-endif()
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
-  ${TARGET_LIBC_ENTRYPOINTS}
-  ${TARGET_LIBM_ENTRYPOINTS}
-  ${TARGET_LIBMVEC_ENTRYPOINTS}
-)
+set(TARGET_LIBC_ENTRYPOINTS
+    # arpa/inet.h entrypoints
+    libc.src.arpa.inet.htonl
+    libc.src.arpa.inet.htons
+    libc.src.arpa.inet.inet_addr
+    libc.src.arpa.inet.inet_aton
+    libc.src.arpa.inet.inet_ntoa
+    libc.src.arpa.inet.inet_ntop
+    libc.src.arpa.inet.inet_pton
+    libc.src.arpa.inet.ntohl
+    libc.src.arpa.inet.ntohs
+
+    # ctype.h entrypoints
+    libc.src.ctype.isalnum
+    libc.src.ctype.isalpha
+    libc.src.ctype.isascii
+    libc.src.ctype.isblank
+    libc.src.ctype.iscntrl
+    libc.src.ctype.isdigit
+    libc.src.ctype.isgraph
+    libc.src.ctype.islower
+    libc.src.ctype.isprint
+    libc.src.ctype.ispunct
+    libc.src.ctype.isspace
+    libc.src.ctype.isupper
+    libc.src.ctype.isxdigit
+    libc.src.ctype.toascii
+    libc.src.ctype.tolower
+    libc.src.ctype.toupper
+
+    # dlfcn.h entrypoints
+    libc.src.dlfcn.dladdr
+    libc.src.dlfcn.dlclose
+    libc.src.dlfcn.dlerror
+    libc.src.dlfcn.dlopen
+    libc.src.dlfcn.dlsym
+
+    # err.h entrypoints
+    libc.src.err.err
+    libc.src.err.verr
+    libc.src.err.errx
+    libc.src.err.verrx
+    libc.src.err.warn
+    libc.src.err.vwarn
+    libc.src.err.warnx
+    libc.src.err.vwarnx
+
+    # errno.h entrypoints
+    libc.src.errno.errno
+
+    # fcntl.h entrypoints
+    libc.src.fcntl.creat
+    libc.src.fcntl.fallocate
+    libc.src.fcntl.fcntl
+    libc.src.fcntl.open
+    libc.src.fcntl.openat
+    libc.src.fcntl.posix_fadvise
+    libc.src.fcntl.posix_fadvise64
+    libc.src.fcntl.posix_fallocate
+
+    # grp.h entrypoints
+    libc.src.grp.endgrent
+    libc.src.grp.getgrent
+    libc.src.grp.getgrgid
+    libc.src.grp.getgrgid_r
+    libc.src.grp.getgrouplist
+    libc.src.grp.getgrnam
+    libc.src.grp.getgrnam_r
+    libc.src.grp.setgrent
+
+    # net/if.h entrypoints
+    libc.src.net.if_indextoname
+    libc.src.net.if_nametoindex
+
+    # netinet/ether.h entrypoints
+    libc.src.netinet.ether.ether_ntoa
+    libc.src.netinet.ether.ether_ntoa_r
+
+    # netinet/in.h entrypoints
+    libc.src.netinet.in6addr_any
+    libc.src.netinet.in6addr_loopback
+
+    # poll.h entrypoints
+    libc.src.poll.poll
+    libc.src.poll.ppoll
+
+    # pwd.h entrypoints
+    libc.src.pwd.endpwent
+    libc.src.pwd.getpwent
+    libc.src.pwd.getpwent_r
+    libc.src.pwd.getpwnam
+    libc.src.pwd.getpwnam_r
+    libc.src.pwd.getpwuid
+    libc.src.pwd.getpwuid_r
+    libc.src.pwd.setpwent
+
+    # sched.h entrypoints
+    libc.src.sched.getcpu
+    libc.src.sched.sched_get_priority_max
+    libc.src.sched.sched_get_priority_min
+    libc.src.sched.sched_getaffinity
+    libc.src.sched.sched_getcpu
+    libc.src.sched.sched_getparam
+    libc.src.sched.sched_getscheduler
+    libc.src.sched.sched_rr_get_interval
+    libc.src.sched.sched_setaffinity
+    libc.src.sched.sched_setparam
+    libc.src.sched.sched_setscheduler
+    libc.src.sched.sched_yield
+
+    # string.h entrypoints
+    libc.src.string.memccpy
+    libc.src.string.memchr
+    libc.src.string.memcmp
+    libc.src.string.memcpy
+    libc.src.string.memmem
+    libc.src.string.memmove
+    libc.src.string.mempcpy
+    libc.src.string.memrchr
+    libc.src.string.memset
+    libc.src.string.memset_explicit
+    libc.src.string.stpcpy
+    libc.src.string.stpncpy
+    libc.src.string.strcasestr
+    libc.src.string.strcat
+    libc.src.string.strchr
+    libc.src.string.strchrnul
+    libc.src.string.strcmp
+    libc.src.string.strcoll
+    libc.src.string.strcpy
+    libc.src.string.strcspn
+    libc.src.string.strdup
+    libc.src.string.strerror
+    libc.src.string.strerror_r
+    libc.src.string.strlcat
+    libc.src.string.strlcpy
+    libc.src.string.strlen
+    libc.src.string.strncat
+    libc.src.string.strncmp
+    libc.src.string.strncpy
+    libc.src.string.strndup
+    libc.src.string.strnlen
+    libc.src.string.strnlen_s
+    libc.src.string.strpbrk
+    libc.src.string.strrchr
+    libc.src.string.strsep
+    libc.src.string.strsignal
+    libc.src.string.strspn
+    libc.src.string.strstr
+    libc.src.string.strtok
+    libc.src.string.strtok_r
+    libc.src.string.strxfrm
+
+    # strings.h entrypoints
+    libc.src.strings.bcmp
+    libc.src.strings.bcopy
+    libc.src.strings.bzero
+    libc.src.strings.ffs
+    libc.src.strings.ffsl
+    libc.src.strings.ffsll
+    libc.src.strings.index
+    libc.src.strings.rindex
+    libc.src.strings.strcasecmp
+    libc.src.strings.strncasecmp
+
+    # inttypes.h entrypoints
+    libc.src.inttypes.imaxabs
+    libc.src.inttypes.imaxdiv
+    libc.src.inttypes.strtoimax
+    libc.src.inttypes.strtoumax
+    libc.src.inttypes.wcstoimax
+    libc.src.inttypes.wcstoumax
+
+    # libgen.h entrypoints
+    libc.src.libgen.basename
+    libc.src.libgen.dirname
+
+    # stdbit.h entrypoints
+    libc.src.stdbit.stdc_bit_ceil_uc
+    libc.src.stdbit.stdc_bit_ceil_ui
+    libc.src.stdbit.stdc_bit_ceil_ul
+    libc.src.stdbit.stdc_bit_ceil_ull
+    libc.src.stdbit.stdc_bit_ceil_us
+    libc.src.stdbit.stdc_bit_floor_uc
+    libc.src.stdbit.stdc_bit_floor_ui
+    libc.src.stdbit.stdc_bit_floor_ul
+    libc.src.stdbit.stdc_bit_floor_ull
+    libc.src.stdbit.stdc_bit_floor_us
+    libc.src.stdbit.stdc_bit_width_uc
+    libc.src.stdbit.stdc_bit_width_ui
+    libc.src.stdbit.stdc_bit_width_ul
+    libc.src.stdbit.stdc_bit_width_ull
+    libc.src.stdbit.stdc_bit_width_us
+    libc.src.stdbit.stdc_count_ones_uc
+    libc.src.stdbit.stdc_count_ones_ui
+    libc.src.stdbit.stdc_count_ones_ul
+    libc.src.stdbit.stdc_count_ones_ull
+    libc.src.stdbit.stdc_count_ones_us
+    libc.src.stdbit.stdc_count_zeros_uc
+    libc.src.stdbit.stdc_count_zeros_ui
+    libc.src.stdbit.stdc_count_zeros_ul
+    libc.src.stdbit.stdc_count_zeros_ull
+    libc.src.stdbit.stdc_count_zeros_us
+    libc.src.stdbit.stdc_first_leading_one_uc
+    libc.src.stdbit.stdc_first_leading_one_ui
+    libc.src.stdbit.stdc_first_leading_one_ul
+    libc.src.stdbit.stdc_first_leading_one_ull
+    libc.src.stdbit.stdc_first_leading_one_us
+    libc.src.stdbit.stdc_first_leading_zero_uc
+    libc.src.stdbit.stdc_first_leading_zero_ui
+    libc.src.stdbit.stdc_first_leading_zero_ul
+    libc.src.stdbit.stdc_first_leading_zero_ull
+    libc.src.stdbit.stdc_first_leading_zero_us
+    libc.src.stdbit.stdc_first_trailing_one_uc
+    libc.src.stdbit.stdc_first_trailing_one_ui
+    libc.src.stdbit.stdc_first_trailing_one_ul
+    libc.src.stdbit.stdc_first_trailing_one_ull
+    libc.src.stdbit.stdc_first_trailing_one_us
+    libc.src.stdbit.stdc_first_trailing_zero_uc
+    libc.src.stdbit.stdc_first_trailing_zero_ui
+    libc.src.stdbit.stdc_first_trailing_zero_ul
+    libc.src.stdbit.stdc_first_trailing_zero_ull
+    libc.src.stdbit.stdc_first_trailing_zero_us
+    libc.src.stdbit.stdc_has_single_bit_uc
+    libc.src.stdbit.stdc_has_single_bit_ui
+    libc.src.stdbit.stdc_has_single_bit_ul
+    libc.src.stdbit.stdc_has_single_bit_ull
+    libc.src.stdbit.stdc_has_single_bit_us
+    libc.src.stdbit.stdc_leading_ones_uc
+    libc.src.stdbit.stdc_leading_ones_ui
+    libc.src.stdbit.stdc_leading_ones_ul
+    libc.src.stdbit.stdc_leading_ones_ull
+    libc.src.stdbit.stdc_leading_ones_us
+    libc.src.stdbit.stdc_leading_zeros_uc
+    libc.src.stdbit.stdc_leading_zeros_ui
+    libc.src.stdbit.stdc_leading_zeros_ul
+    libc.src.stdbit.stdc_leading_zeros_ull
+    libc.src.stdbit.stdc_leading_zeros_us
+    libc.src.stdbit.stdc_trailing_ones_uc
+    libc.src.stdbit.stdc_trailing_ones_ui
+    libc.src.stdbit.stdc_trailing_ones_ul
+    libc.src.stdbit.stdc_trailing_ones_ull
+    libc.src.stdbit.stdc_trailing_ones_us
+    libc.src.stdbit.stdc_trailing_zeros_uc
+    libc.src.stdbit.stdc_trailing_zeros_ui
+    libc.src.stdbit.stdc_trailing_zeros_ul
+    libc.src.stdbit.stdc_trailing_zeros_ull
+    libc.src.stdbit.stdc_trailing_zeros_us
+
+    # stdlib.h entrypoints
+    libc.src.stdlib.a64l
+    libc.src.stdlib.abs
+    libc.src.stdlib.atof
+    libc.src.stdlib.atoi
+    libc.src.stdlib.atol
+    libc.src.stdlib.atoll
+    libc.src.stdlib.bsearch
+    libc.src.stdlib.div
+    libc.src.stdlib.getloadavg
+    libc.src.stdlib.l64a
+    libc.src.stdlib.labs
+    libc.src.stdlib.ldiv
+    libc.src.stdlib.llabs
+    libc.src.stdlib.lldiv
+    libc.src.stdlib.memalignment
+    libc.src.stdlib.mkdtemp
+    libc.src.stdlib.mkostemp
+    libc.src.stdlib.mkstemp
+    libc.src.stdlib.qsort
+    libc.src.stdlib.qsort_r
+    libc.src.stdlib.rand
+    libc.src.stdlib.realpath
+    libc.src.stdlib.srand
+    libc.src.stdlib.strfromd
+    libc.src.stdlib.strfromf
+    libc.src.stdlib.strfromf128
+    libc.src.stdlib.strfroml
+    libc.src.stdlib.strtod
+    libc.src.stdlib.strtof
+    libc.src.stdlib.strtol
+    libc.src.stdlib.strtold
+    libc.src.stdlib.strtoll
+    libc.src.stdlib.strtoul
+    libc.src.stdlib.strtoull
+
+    # stdlib.h external entrypoints
+    libc.src.stdlib.aligned_alloc
+    libc.src.stdlib.calloc
+    libc.src.stdlib.free
+    libc.src.stdlib.malloc
+    libc.src.stdlib.posix_memalign
+    libc.src.stdlib.realloc
+
+    # stdio.h entrypoints
+    libc.src.stdio.fprintf
+    libc.src.stdio.fscanf
+    libc.src.stdio.vfscanf
+    libc.src.stdio.printf
+    libc.src.stdio.remove
+    libc.src.stdio.rename
+    libc.src.stdio.renameat
+    libc.src.stdio.scanf
+    libc.src.stdio.vscanf
+    libc.src.stdio.snprintf
+    libc.src.stdio.sprintf
+    libc.src.stdio.asprintf
+    libc.src.stdio.sscanf
+    libc.src.stdio.stderr
+    libc.src.stdio.stdin
+    libc.src.stdio.stdout
+    libc.src.stdio.tmpfile
+    libc.src.stdio.tmpnam
+    libc.src.stdio.vsscanf
+    libc.src.stdio.vfprintf
+    libc.src.stdio.vprintf
+    libc.src.stdio.vsnprintf
+    libc.src.stdio.vsprintf
+    libc.src.stdio.vasprintf
+
+    # sys/epoll.h entrypoints
+    libc.src.sys.epoll.epoll_create
+    libc.src.sys.epoll.epoll_create1
+    libc.src.sys.epoll.epoll_ctl
+    libc.src.sys.epoll.epoll_pwait
+    libc.src.sys.epoll.epoll_wait
+    # TODO: Need to check if pwait2 is available before providing.
+    # https://github.com/llvm/llvm-project/issues/80060
+    # libc.src.sys.epoll.epoll_pwait2
+
+    # sys/eventfd.h entrypoints
+    libc.src.sys.eventfd.eventfd
+
+    # sys/file.h entrypoints
+    libc.src.sys.file.flock
+
+    # sys/ioctl.h entrypoints
+    libc.src.sys.ioctl.ioctl
+
+    # sys/ipc.h entrypoints
+    libc.src.sys.ipc.ftok
+
+    # sys/mman.h entrypoints
+    libc.src.sys.mman.madvise
+    libc.src.sys.mman.memfd_create
+    libc.src.sys.mman.mincore
+    libc.src.sys.mman.mlock
+    libc.src.sys.mman.mlock2
+    libc.src.sys.mman.mlockall
+    libc.src.sys.mman.mmap
+    libc.src.sys.mman.mremap
+    libc.src.sys.mman.mprotect
+    libc.src.sys.mman.msync
+    libc.src.sys.mman.munlock
+    libc.src.sys.mman.munlockall
+    libc.src.sys.mman.munmap
+    libc.src.sys.mman.pkey_alloc
+    libc.src.sys.mman.pkey_free
+    libc.src.sys.mman.pkey_get
+    libc.src.sys.mman.pkey_mprotect
+    libc.src.sys.mman.pkey_set
+    libc.src.sys.mman.remap_file_pages
+    libc.src.sys.mman.posix_madvise
+    libc.src.sys.mman.shm_open
+    libc.src.sys.mman.shm_unlink
+
+    # sys/random.h entrypoints
+    libc.src.sys.random.getrandom
+    libc.src.sys.random.getentropy
+
+    # sys/resource.h entrypoints
+    libc.src.sys.resource.getpriority
+    libc.src.sys.resource.getrlimit
+    libc.src.sys.resource.getrusage
+    libc.src.sys.resource.setpriority
+    libc.src.sys.resource.setrlimit
+
+    # sys/sem.h entrypoints
+    libc.src.sys.sem.semget
+    libc.src.sys.sem.semctl
+    libc.src.sys.sem.semop
+
+    # sys/sendfile.h entrypoints
+    libc.src.sys.sendfile.sendfile
+
+    # sys/socket.h entrypoints
+    libc.src.sys.socket.accept
+    libc.src.sys.socket.accept4
+    libc.src.sys.socket.bind
+    libc.src.sys.socket.connect
+    libc.src.sys.socket.getpeername
+    libc.src.sys.socket.getsockname
+    libc.src.sys.socket.getsockopt
+    libc.src.sys.socket.listen
+    libc.src.sys.socket.recv
+    libc.src.sys.socket.recvfrom
+    libc.src.sys.socket.send
+    libc.src.sys.socket.sendto
+    libc.src.sys.socket.setsockopt
+    libc.src.sys.socket.shutdown
+    libc.src.sys.socket.sockatmark
+    libc.src.sys.socket.socket
+    libc.src.sys.socket.socketpair
+    # TODO: These functions are not compatible with 64-bit musl. They need to
+    # be excluded if overlaying musl.
+    libc.src.sys.socket.recvmmsg
+    libc.src.sys.socket.recvmsg
+    libc.src.sys.socket.sendmmsg
+    libc.src.sys.socket.sendmsg
+
+    # sys/stat.h entrypoints
+    libc.src.sys.stat.chmod
+    libc.src.sys.stat.fchmod
+    libc.src.sys.stat.fchmodat
+    libc.src.sys.stat.fstat
+    libc.src.sys.stat.fstatat
+    libc.src.sys.stat.futimens
+    libc.src.sys.stat.lstat
+    libc.src.sys.stat.mkdir
+    libc.src.sys.stat.mkdirat
+    libc.src.sys.stat.mkfifo
+    libc.src.sys.stat.mkfifoat
+    libc.src.sys.stat.mknod
+    libc.src.sys.stat.mknodat
+    libc.src.sys.stat.stat
+    libc.src.sys.stat.umask
+    libc.src.sys.stat.utimensat
+
+    # sys/statfs.h entrypoints
+    libc.src.sys.statfs.fstatfs
+    libc.src.sys.statfs.statfs
+
+    # sys/statvfs.h entrypoints
+    libc.src.sys.statvfs.fstatvfs
+    libc.src.sys.statvfs.statvfs
+
+    # sys/time.h entrypoints
+    libc.src.sys.time.utimes
+
+    # sys/sysinfo.h entrypoints
+    libc.src.sys.sysinfo.sysinfo
+
+    # sys/utsname.h entrypoints
+    libc.src.sys.utsname.uname
+
+    # sys/wait.h entrypoints
+    libc.src.sys.wait.wait
+    libc.src.sys.wait.wait4
+    libc.src.sys.wait.waitid
+    libc.src.sys.wait.waitpid
+
+    # sys/xattr.h entrypoints
+    libc.src.sys.xattr.fgetxattr
+    libc.src.sys.xattr.flistxattr
+    libc.src.sys.xattr.fsetxattr
+    libc.src.sys.xattr.getxattr
+    libc.src.sys.xattr.lgetxattr
+    libc.src.sys.xattr.listxattr
+    libc.src.sys.xattr.llistxattr
+    libc.src.sys.xattr.lsetxattr
+    libc.src.sys.xattr.setxattr
+
+    # sys/prctl.h entrypoints
+    libc.src.sys.prctl.prctl
+
+    # sys/personality.h entrypoints
+    libc.src.sys.personality.personality
+
+    # sys/auxv.h entrypoints
+    libc.src.sys.auxv.getauxval
+
+    # sys/sysmacros.h entrypoints
+    libc.src.sys.sysmacros.makedev
+    libc.src.sys.sysmacros.major
+    libc.src.sys.sysmacros.minor
+
+    # sys/inotify.h entrypoints
+    libc.src.sys.inotify.inotify_add_watch
+    libc.src.sys.inotify.inotify_init
+    libc.src.sys.inotify.inotify_init1
+    libc.src.sys.inotify.inotify_rm_watch
+
+    # termios.h entrypoints
+    libc.src.termios.cfgetispeed
+    libc.src.termios.cfgetospeed
+    libc.src.termios.cfsetispeed
+    libc.src.termios.cfsetospeed
+    libc.src.termios.tcdrain
+    libc.src.termios.tcflow
+    libc.src.termios.tcflush
+    libc.src.termios.tcgetattr
+    libc.src.termios.tcgetsid
+    libc.src.termios.tcgetwinsize
+    libc.src.termios.tcsendbreak
+    libc.src.termios.tcsetattr
+    libc.src.termios.tcsetwinsize
+
+    # unistd.h entrypoints
+    libc.src.unistd.alarm
+    libc.src.unistd.access
+    libc.src.unistd.chdir
+    libc.src.unistd.chown
+    libc.src.unistd.chroot
+    libc.src.unistd.close
+    libc.src.unistd.dup
+    libc.src.unistd.dup2
+    libc.src.unistd.dup3
+    libc.src.unistd.execle
+    libc.src.unistd.execve
+    libc.src.unistd.faccessat
+    libc.src.unistd.fchdir
+    libc.src.unistd.fchown
+    libc.src.unistd.fchownat
+    libc.src.unistd.fdatasync
+    libc.src.unistd.fexecve
+    libc.src.unistd.fpathconf
+    libc.src.unistd.fsync
+    libc.src.unistd.ftruncate
+    libc.src.unistd.getcwd
+    libc.src.unistd.getegid
+    libc.src.unistd.getentropy
+    libc.src.unistd.geteuid
+    libc.src.unistd.gethostname
+    libc.src.unistd.getpagesize
+    libc.src.unistd.getpgid
+    libc.src.unistd.getpgrp
+    libc.src.unistd.getpid
+    libc.src.unistd.getppid
+    libc.src.unistd.getsid
+    libc.src.unistd.gettid
+    libc.src.unistd.getgid
+    libc.src.unistd.getuid
+    libc.src.unistd.isatty
+    libc.src.unistd.lchown
+    libc.src.unistd.link
+    libc.src.unistd.linkat
+    libc.src.unistd.lockf
+    libc.src.unistd.lseek
+    libc.src.unistd.nice
+    libc.src.unistd.pathconf
+    libc.src.unistd.pause
+    libc.src.unistd.pipe
+    libc.src.unistd.pipe2
+    libc.src.unistd.pread
+    libc.src.unistd.pwrite
+    libc.src.unistd.read
+    libc.src.unistd.readlink
+    libc.src.unistd.readlinkat
+    libc.src.unistd.rmdir
+    libc.src.unistd.setpgid
+    libc.src.unistd.setsid
+    libc.src.unistd.sleep
+    libc.src.unistd.symlink
+    libc.src.unistd.symlinkat
+    libc.src.unistd.sync
+    libc.src.unistd.syncfs
+    libc.src.unistd.tcgetpgrp
+    libc.src.unistd.tcsetpgrp
+    libc.src.unistd.truncate
+    libc.src.unistd.unlink
+    libc.src.unistd.unlinkat
+    libc.src.unistd.usleep
+    libc.src.unistd.write
+
+    # wchar.h entrypoints
+    libc.src.wchar.btowc
+    libc.src.wchar.wcscasecmp
+    libc.src.wchar.wcsncasecmp
+    libc.src.wchar.wcslen
+    libc.src.wchar.wcsnlen
+    libc.src.wchar.wctob
+    libc.src.wchar.wmemmove
+    libc.src.wchar.wmemset
+    libc.src.wchar.wcschr
+    libc.src.wchar.wcsncmp
+    libc.src.wchar.wcsxfrm
+    libc.src.wchar.wcscmp
+    libc.src.wchar.wcscoll
+    libc.src.wchar.wcspbrk
+    libc.src.wchar.wcsrchr
+    libc.src.wchar.wcsspn
+    libc.src.wchar.wcscspn
+    libc.src.wchar.wcsdup
+    libc.src.wchar.wmemcmp
+    libc.src.wchar.wmempcpy
+    libc.src.wchar.wmemcpy
+    libc.src.wchar.wcsncpy
+    libc.src.wchar.wcscat
+    libc.src.wchar.wcsstr
+    libc.src.wchar.wcsncat
+    libc.src.wchar.wcslcat
+    libc.src.wchar.wcscpy
+    libc.src.wchar.wcslcpy
+    libc.src.wchar.wmemchr
+    libc.src.wchar.wcpcpy
+    libc.src.wchar.wcpncpy
+    libc.src.wchar.wcstod
+    libc.src.wchar.wcstof
+    libc.src.wchar.wcstok
+    libc.src.wchar.wcstol
+    libc.src.wchar.wcstold
+    libc.src.wchar.wcstoll
+    libc.src.wchar.wcstoul
+    libc.src.wchar.wcstoull
+
+    # wctype.h entrypoints
+    libc.src.wctype.iswalpha
+    libc.src.wctype.iswgraph
+    libc.src.wctype.iswcntrl
+    libc.src.wctype.iswdigit
+    libc.src.wctype.iswupper
+    libc.src.wctype.iswalnum
+    libc.src.wctype.iswlower
+    libc.src.wctype.iswspace
+    libc.src.wctype.iswblank
+    libc.src.wctype.iswxdigit
+    libc.src.wctype.iswpunct
+    libc.src.wctype.iswprint
+    libc.src.wctype.iswctype
+    libc.src.wctype.wctype
+    libc.src.wctype.towlower
+    libc.src.wctype.towupper
+
+    # sys/uio.h entrypoints
+    libc.src.sys.uio.writev
+    libc.src.sys.uio.readv
+
+    # sys/time.h entrypoints
+    libc.src.sys.time.setitimer
+    libc.src.sys.time.getitimer
+    libc.src.sys.time.gettimeofday
+)
+
+if(LLVM_LIBC_INCLUDE_SCUDO)
+  list(APPEND TARGET_LIBC_ENTRYPOINTS
+    # malloc.h external entrypoints
+    libc.src.stdlib.mallopt
+  )
+endif()
+
+set(TARGET_LIBM_ENTRYPOINTS
+    # complex.h entrypoints
+    libc.src.complex.cabs
+    libc.src.complex.cabsf
+    libc.src.complex.carg
+    libc.src.complex.cargf
+    libc.src.complex.creal
+    libc.src.complex.crealf
+    libc.src.complex.creall
+    libc.src.complex.cimag
+    libc.src.complex.cimagf
+    libc.src.complex.cimagl
+    libc.src.complex.conj
+    libc.src.complex.conjf
+    libc.src.complex.conjl
+    libc.src.complex.cproj
+    libc.src.complex.cprojf
+    libc.src.complex.cprojl
+
+    # fenv.h entrypoints
+    libc.src.fenv.feclearexcept
+    libc.src.fenv.fedisableexcept
+    libc.src.fenv.feenableexcept
+    libc.src.fenv.fegetenv
+    libc.src.fenv.fegetexcept
+    libc.src.fenv.fegetexceptflag
+    libc.src.fenv.fegetround
+    libc.src.fenv.feholdexcept
+    libc.src.fenv.feraiseexcept
+    libc.src.fenv.fesetenv
+    libc.src.fenv.fesetexcept
+    libc.src.fenv.fesetexceptflag
+    libc.src.fenv.fesetround
+    libc.src.fenv.fetestexcept
+    libc.src.fenv.fetestexceptflag
+    libc.src.fenv.feupdateenv
+
+    # math.h entrypoints
+    libc.src.math.acos
+    libc.src.math.acosf
+    libc.src.math.acoshf
+    libc.src.math.acospif
+    libc.src.math.asin
+    libc.src.math.asinf
+    libc.src.math.asinhf
+    libc.src.math.asinpi
+    libc.src.math.asinpif
+    libc.src.math.atan2
+    libc.src.math.atan2f
+    libc.src.math.atan2f128
+    libc.src.math.atan
+    libc.src.math.atanf
+    libc.src.math.atanhf
+    libc.src.math.canonicalize
+    libc.src.math.canonicalizef
+    libc.src.math.canonicalizel
+    libc.src.math.cbrt
+    libc.src.math.cbrtf
+    libc.src.math.cbrtbf16
+    libc.src.math.ceil
+    libc.src.math.ceilf
+    libc.src.math.ceilf128
+    libc.src.math.ceill
+    libc.src.math.copysign
+    libc.src.math.copysignf
+    libc.src.math.copysignf128
+    libc.src.math.copysignf80
+    libc.src.math.copysignl
+    libc.src.math.cos
+    libc.src.math.cosf
+    libc.src.math.coshf
+    libc.src.math.cospif
+    libc.src.math.daddl
+    libc.src.math.ddivl
+    libc.src.math.dfmal
+    libc.src.math.dmull
+    libc.src.math.dsqrtl
+    libc.src.math.dsubl
+    libc.src.math.erff
+    libc.src.math.exp
+    libc.src.math.exp10
+    libc.src.math.exp10f
+    libc.src.math.exp10m1f
+    libc.src.math.exp2
+    libc.src.math.exp2f
+    libc.src.math.exp2m1f
+    libc.src.math.expf
+    libc.src.math.expm1
+    libc.src.math.expm1f
+    libc.src.math.fabs
+    libc.src.math.fabsf
+    libc.src.math.fabsf128
+    libc.src.math.fabsf80
+    libc.src.math.fabsl
+    libc.src.math.fadd
+    libc.src.math.faddl
+    libc.src.math.fadd
+    libc.src.math.fdim
+    libc.src.math.fdimf
+    libc.src.math.fdimf128
+    libc.src.math.fdiml
+    libc.src.math.fdiv
+    libc.src.math.fdivl
+    libc.src.math.ffma
+    libc.src.math.ffmal
+    libc.src.math.floor
+    libc.src.math.floorf
+    libc.src.math.floorf128
+    libc.src.math.floorl
+    libc.src.math.fma
+    libc.src.math.fmabf16
+    libc.src.math.fmaf
+    libc.src.math.fmax
+    libc.src.math.fmaxf
+    libc.src.math.fmaxf128
+    libc.src.math.fmaximum
+    libc.src.math.fmaximum_mag
+    libc.src.math.fmaximum_mag_num
+    libc.src.math.fmaximum_mag_numf
+    libc.src.math.fmaximum_mag_numf128
+    libc.src.math.fmaximum_mag_numl
+    libc.src.math.fmaximum_magf
+    libc.src.math.fmaximum_magf128
+    libc.src.math.fmaximum_magl
+    libc.src.math.fmaximum_num
+    libc.src.math.fmaximum_numf
+    libc.src.math.fmaximum_numf128
+    libc.src.math.fmaximum_numl
+    libc.src.math.fmaximumf
+    libc.src.math.fmaximumf128
+    libc.src.math.fmaximuml
+    libc.src.math.fmaxl
+    libc.src.math.fmin
+    libc.src.math.fminf
+    libc.src.math.fminf128
+    libc.src.math.fminimum
+    libc.src.math.fminimum_mag
+    libc.src.math.fminimum_mag_num
+    libc.src.math.fminimum_mag_numf
+    libc.src.math.fminimum_mag_numf128
+    libc.src.math.fminimum_mag_numl
+    libc.src.math.fminimum_magf
+    libc.src.math.fminimum_magf128
+    libc.src.math.fminimum_magl
+    libc.src.math.fminimum_num
+    libc.src.math.fminimum_numf
+    libc.src.math.fminimum_numf128
+    libc.src.math.fminimum_numl
+    libc.src.math.fminimumf
+    libc.src.math.fminimumf128
+    libc.src.math.fminimuml
+    libc.src.math.fminl
+    libc.src.math.fmod
+    libc.src.math.fmodf
+    libc.src.math.fmodl
+    libc.src.math.fmul
+    libc.src.math.fmull
+    libc.src.math.frexp
+    libc.src.math.frexpf
+    libc.src.math.frexpl
+    libc.src.math.fromfp
+    libc.src.math.fromfpf
+    libc.src.math.fromfpl
+    libc.src.math.fromfpx
+    libc.src.math.fromfpxf
+    libc.src.math.fromfpxl
+    libc.src.math.fsqrt
+    libc.src.math.fsqrtl
+    libc.src.math.fsub
+    libc.src.math.fsubl
+    libc.src.math.getpayload
+    libc.src.math.getpayloadf
+    libc.src.math.getpayloadl
+    libc.src.math.hypot
+    libc.src.math.hypotf
+    libc.src.math.ilogb
+    libc.src.math.ilogbf
+    libc.src.math.ilogbl
+    libc.src.math.iscanonical
+    libc.src.math.iscanonicalf
+    libc.src.math.iscanonicalf128
+    libc.src.math.iscanonicall
+    libc.src.math.isnan
+    libc.src.math.isnanf
+    libc.src.math.isnanf128
+    libc.src.math.isnanl
+    libc.src.math.issignaling
+    libc.src.math.issignalingf
+    libc.src.math.issignalingf128
+    libc.src.math.issignalingl
+    libc.src.math.ldexp
+    libc.src.math.ldexpf
+    libc.src.math.ldexpl
+    libc.src.math.lgammaf
+    libc.src.math.llogb
+    libc.src.math.llogbf
+    libc.src.math.llogbl
+    libc.src.math.llrint
+    libc.src.math.llrintf
+    libc.src.math.llrintf128
+    libc.src.math.llrintl
+    libc.src.math.llround
+    libc.src.math.llroundf
+    libc.src.math.llroundf128
+    libc.src.math.llroundl
+    libc.src.math.log
+    libc.src.math.log10
+    libc.src.math.log10f
+    libc.src.math.log1p
+    libc.src.math.log1pf
+    libc.src.math.log2
+    libc.src.math.log2f
+    libc.src.math.logb
+    libc.src.math.logbf
+    libc.src.math.logbl
+    libc.src.math.logf
+    libc.src.math.lrint
+    libc.src.math.lrintf
+    libc.src.math.lrintf128
+    libc.src.math.lrintl
+    libc.src.math.lround
+    libc.src.math.lroundf
+    libc.src.math.lroundf128
+    libc.src.math.lroundl
+    libc.src.math.modf
+    libc.src.math.modff
+    libc.src.math.modfl
+    libc.src.math.nan
+    libc.src.math.nanf
+    libc.src.math.nanl
+    libc.src.math.nearbyint
+    libc.src.math.nearbyintf
+    libc.src.math.nearbyintf128
+    libc.src.math.nearbyintl
+    libc.src.math.nextafter
+    libc.src.math.nextafterf
+    libc.src.math.nextafterl
+    libc.src.math.nextdown
+    libc.src.math.nextdownf
+    libc.src.math.nextdownl
+    libc.src.math.nexttoward
+    libc.src.math.nexttowardf
+    libc.src.math.nexttowardl
+    libc.src.math.nextup
+    libc.src.math.nextupf
+    libc.src.math.nextupl
+    libc.src.math.pow
+    libc.src.math.powf
+    libc.src.math.remainder
+    libc.src.math.remainderf
+    libc.src.math.remainderl
+    libc.src.math.remquo
+    libc.src.math.remquof
+    libc.src.math.remquol
+    libc.src.math.rint
+    libc.src.math.rintf
+    libc.src.math.rintf128
+    libc.src.math.rintl
+    libc.src.math.round
+    libc.src.math.roundeven
+    libc.src.math.roundevenf
+    libc.src.math.roundevenf128
+    libc.src.math.roundevenl
+    libc.src.math.roundf
+    libc.src.math.roundf128
+    libc.src.math.roundl
+    libc.src.math.scalbln
+    libc.src.math.scalblnf
+    libc.src.math.scalblnl
+    libc.src.math.scalbn
+    libc.src.math.scalbnf
+    libc.src.math.scalbnl
+    libc.src.math.setpayload
+    libc.src.math.setpayloadf
+    libc.src.math.setpayloadl
+    libc.src.math.setpayloadsig
+    libc.src.math.setpayloadsigf
+    libc.src.math.setpayloadsigl
+    libc.src.math.sin
+    libc.src.math.sincos
+    libc.src.math.sincosf
+    libc.src.math.sinf
+    libc.src.math.sinhf
+    libc.src.math.sinpif
+    libc.src.math.sqrt
+    libc.src.math.sqrtf
+    libc.src.math.sqrtf128
+    libc.src.math.sqrtl
+    libc.src.math.tan
+    libc.src.math.tanf
+    libc.src.math.tanhf
+    libc.src.math.tanpif
+    libc.src.math.totalorder
+    libc.src.math.totalorderf
+    libc.src.math.totalorderl
+    libc.src.math.totalordermag
+    libc.src.math.totalordermagf
+    libc.src.math.totalordermagl
+    libc.src.math.trunc
+    libc.src.math.truncf
+    libc.src.math.truncf128
+    libc.src.math.truncl
+    libc.src.math.ufromfp
+    libc.src.math.ufromfpf
+    libc.src.math.ufromfpl
+    libc.src.math.ufromfpx
+    libc.src.math.ufromfpxf
+    libc.src.math.ufromfpxl
+)
+
+if(LIBC_TYPES_HAS_CFLOAT16)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # complex.h C23 _Complex _Float16 entrypoints
+    libc.src.complex.crealf16
+    libc.src.complex.cimagf16
+    libc.src.complex.conjf16
+    libc.src.complex.cprojf16
+  )
+endif()
+
+if(LIBC_TYPES_HAS_FLOAT16)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C23 _Float16 entrypoints
+    libc.src.math.acosf16
+    libc.src.math.acoshf16
+    libc.src.math.acospif16
+    libc.src.math.asinf16
+    libc.src.math.asinhf16
+    libc.src.math.asinpif16
+    libc.src.math.atanf16
+    libc.src.math.atan2f16
+    libc.src.math.atanhf16
+    libc.src.math.atanpif16
+    libc.src.math.canonicalizef16
+    libc.src.math.cbrtf16
+    libc.src.math.ceilf16
+    libc.src.math.copysignf16
+    libc.src.math.cosf16
+    libc.src.math.coshf16
+    libc.src.math.cospif16
+    libc.src.math.erff16
+    libc.src.math.erfcf16
+    libc.src.math.exp10f16
+    libc.src.math.exp10m1f16
+    libc.src.math.exp2f16
+    libc.src.math.exp2m1f16
+    libc.src.math.expf16
+    libc.src.math.expm1f16
+    libc.src.math.f16add
+    libc.src.math.f16addf
+    libc.src.math.f16addl
+    libc.src.math.f16div
+    libc.src.math.f16divf
+    libc.src.math.f16divl
+    libc.src.math.f16fma
+    libc.src.math.f16fmaf
+    libc.src.math.f16fmal
+    libc.src.math.f16mul
+    libc.src.math.f16mulf
+    libc.src.math.f16mull
+    libc.src.math.f16sqrt
+    libc.src.math.f16sqrtf
+    libc.src.math.f16sqrtl
+    libc.src.math.f16sub
+    libc.src.math.f16subf
+    libc.src.math.f16subl
+    libc.src.math.fabsf16
+    libc.src.math.fdimf16
+    libc.src.math.floorf16
+    libc.src.math.fmaf16
+    libc.src.math.fmaxf16
+    libc.src.math.fmaximum_mag_numf16
+    libc.src.math.fmaximum_magf16
+    libc.src.math.fmaximum_numf16
+    libc.src.math.fmaximumf16
+    libc.src.math.fminf16
+    libc.src.math.fminimum_mag_numf16
+    libc.src.math.fminimum_magf16
+    libc.src.math.fminimum_numf16
+    libc.src.math.fminimumf16
+    libc.src.math.fmodf16
+    libc.src.math.frexpf16
+    libc.src.math.fromfpf16
+    libc.src.math.fromfpxf16
+    libc.src.math.getpayloadf16
+    libc.src.math.hypotf16
+    libc.src.math.ilogbf16
+    libc.src.math.iscanonicalf16
+    libc.src.math.isnanf16
+    libc.src.math.issignalingf16
+    libc.src.math.ldexpf16
+    libc.src.math.lgammaf16
+    libc.src.math.llogbf16
+    libc.src.math.llrintf16
+    libc.src.math.llroundf16
+    libc.src.math.log10f16
+    libc.src.math.log10p1f16
+    libc.src.math.log2f16
+    libc.src.math.log2p1f16
+    libc.src.math.logbf16
+    libc.src.math.logf16
+    libc.src.math.lrintf16
+    libc.src.math.lroundf16
+    libc.src.math.modff16
+    libc.src.math.nanf16
+    libc.src.math.nearbyintf16
+    libc.src.math.nextafterf16
+    libc.src.math.nextdownf16
+    libc.src.math.nexttowardf16
+    libc.src.math.nextupf16
+    libc.src.math.remainderf16
+    libc.src.math.remquof16
+    libc.src.math.rintf16
+    libc.src.math.roundevenf16
+    libc.src.math.roundf16
+    libc.src.math.rsqrtf
+    libc.src.math.rsqrtf16
+    libc.src.math.scalblnf16
+    libc.src.math.scalbnf16
+    libc.src.math.setpayloadf16
+    libc.src.math.setpayloadsigf16
+    libc.src.math.sinf16
+    libc.src.math.sinhf16
+    libc.src.math.sinpif16
+    libc.src.math.sqrtf16
+    libc.src.math.tanf16
+    libc.src.math.tanhf16
+    libc.src.math.tanpif16
+    libc.src.math.totalorderf16
+    libc.src.math.totalordermagf16
+    libc.src.math.truncf16
+    libc.src.math.ufromfpf16
+    libc.src.math.ufromfpxf16
+  )
+
+  if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+    list(APPEND TARGET_LIBM_ENTRYPOINTS
+      # math.h C23 mixed _Float16 and _Float128 entrypoints
+      libc.src.math.f16addf128
+      libc.src.math.f16divf128
+      libc.src.math.f16fmaf128
+      libc.src.math.f16mulf128
+      libc.src.math.f16sqrtf128
+      libc.src.math.f16subf128
+    )
+  endif()
+endif()
+
+if(LIBC_TYPES_HAS_CFLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # complex.h C23 _Complex _Float128 entrypoints
+    libc.src.complex.crealf128
+    libc.src.complex.cimagf128
+    libc.src.complex.conjf128
+    libc.src.complex.cprojf128
+  )
+endif()
+
+if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C23 _Float128 entrypoints
+    libc.src.math.atan2l
+    libc.src.math.canonicalizef128
+    libc.src.math.daddf128
+    libc.src.math.ddivf128
+    libc.src.math.dfmaf128
+    libc.src.math.dmulf128
+    libc.src.math.dsqrtf128
+    libc.src.math.dsubf128
+    libc.src.math.faddf128
+    libc.src.math.fdivf128
+    libc.src.math.ffmaf128
+    libc.src.math.fmodf128
+    libc.src.math.fmulf128
+    libc.src.math.frexpf128
+    libc.src.math.fromfpf128
+    libc.src.math.fromfpxf128
+    libc.src.math.fsqrtf128
+    libc.src.math.fsubf128
+    libc.src.math.getpayloadf128
+    libc.src.math.ilogbf128
+    libc.src.math.ldexpf128
+    libc.src.math.llogbf128
+    libc.src.math.logbf128
+    libc.src.math.modff128
+    libc.src.math.nanf128
+    libc.src.math.nextafterf128
+    libc.src.math.nextdownf128
+    libc.src.math.nextupf128
+    libc.src.math.remainderf128
+    libc.src.math.remquof128
+    libc.src.math.scalblnf128
+    libc.src.math.scalbnf128
+    libc.src.math.setpayloadf128
+    libc.src.math.setpayloadsigf128
+    libc.src.math.totalorderf128
+    libc.src.math.totalordermagf128
+    libc.src.math.ufromfpf128
+    libc.src.math.ufromfpxf128
+  )
+endif()
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+  # bfloat16 entrypoints
+  libc.src.math.atanbf16
+  libc.src.math.acosbf16
+  libc.src.math.asinbf16
+  libc.src.math.bf16add
+  libc.src.math.bf16addf
+  libc.src.math.bf16addl
+  libc.src.math.bf16div
+  libc.src.math.bf16divf
+  libc.src.math.bf16divl
+  libc.src.math.bf16fma
+  libc.src.math.bf16fmaf
+  libc.src.math.bf16fmal
+  libc.src.math.bf16mul
+  libc.src.math.bf16mulf
+  libc.src.math.bf16mull
+  libc.src.math.bf16sub
+  libc.src.math.bf16subf
+  libc.src.math.bf16subl
+  libc.src.math.canonicalizebf16
+  libc.src.math.ceilbf16
+  libc.src.math.copysignbf16
+  libc.src.math.exp2bf16
+  libc.src.math.expbf16
+  libc.src.math.fabsbf16
+  libc.src.math.fdimbf16
+  libc.src.math.floorbf16
+  libc.src.math.fmaxbf16
+  libc.src.math.fmaximumbf16
+  libc.src.math.fmaximum_magbf16
+  libc.src.math.fmaximum_mag_numbf16
+  libc.src.math.fmaximum_numbf16
+  libc.src.math.fminbf16
+  libc.src.math.fminimumbf16
+  libc.src.math.fminimum_magbf16
+  libc.src.math.fminimum_mag_numbf16
+  libc.src.math.fminimum_numbf16
+  libc.src.math.fmodbf16
+  libc.src.math.frexpbf16
+  libc.src.math.fromfpbf16
+  libc.src.math.fromfpxbf16
+  libc.src.math.getpayloadbf16
+  libc.src.math.hypotbf16
+  libc.src.math.ilogbbf16
+  libc.src.math.iscanonicalbf16
+  libc.src.math.issignalingbf16
+  libc.src.math.ldexpbf16
+  libc.src.math.llogbbf16
+  libc.src.math.llrintbf16
+  libc.src.math.llroundbf16
+  libc.src.math.log_bf16
+  libc.src.math.logbbf16
+  libc.src.math.lrintbf16
+  libc.src.math.lroundbf16
+  libc.src.math.modfbf16
+  libc.src.math.nanbf16
+  libc.src.math.nearbyintbf16
+  libc.src.math.nextafterbf16
+  libc.src.math.nextdownbf16
+  libc.src.math.nexttowardbf16
+  libc.src.math.nextupbf16
+  libc.src.math.remainderbf16
+  libc.src.math.remquobf16
+  libc.src.math.rintbf16
+  libc.src.math.roundbf16
+  libc.src.math.roundevenbf16
+  libc.src.math.scalblnbf16
+  libc.src.math.scalbnbf16
+  libc.src.math.setpayloadbf16
+  libc.src.math.setpayloadsigbf16
+  libc.src.math.sqrtbf16
+  libc.src.math.tanbf16
+  libc.src.math.truncbf16
+  libc.src.math.totalorderbf16
+  libc.src.math.totalordermagbf16
+  libc.src.math.ufromfpbf16
+  libc.src.math.ufromfpxbf16
+)
+
+if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # math.h C++23 mixed bfloat16 and _Float128 entrypoints
+    libc.src.math.bf16addf128
+    libc.src.math.bf16divf128
+    libc.src.math.bf16fmaf128
+    libc.src.math.bf16mulf128
+    libc.src.math.bf16subf128
+  )
+endif()
+
+if(LIBC_COMPILER_HAS_FIXED_POINT)
+  list(APPEND TARGET_LIBM_ENTRYPOINTS
+    # stdfix.h _Fract and _Accum entrypoints
+    libc.src.stdfix.abshk
+    libc.src.stdfix.abshr
+    libc.src.stdfix.absk
+    libc.src.stdfix.abslk
+    libc.src.stdfix.abslr
+    libc.src.stdfix.absr
+    libc.src.stdfix.exphk
+    libc.src.stdfix.expk
+    libc.src.stdfix.roundhk
+    libc.src.stdfix.roundhr
+    libc.src.stdfix.roundk
+    libc.src.stdfix.roundlk
+    libc.src.stdfix.roundlr
+    libc.src.stdfix.roundr
+    libc.src.stdfix.rounduhk
+    libc.src.stdfix.rounduhr
+    libc.src.stdfix.rounduk
+    libc.src.stdfix.roundulk
+    libc.src.stdfix.roundulr
+    libc.src.stdfix.roundur
+    libc.src.stdfix.sqrtuhk
+    libc.src.stdfix.sqrtuhr
+    libc.src.stdfix.sqrtuk
+    libc.src.stdfix.sqrtur
+    # libc.src.stdfix.sqrtulk
+    libc.src.stdfix.sqrtulr
+    libc.src.stdfix.uhksqrtus
+    libc.src.stdfix.uksqrtui
+    libc.src.stdfix.hrbits
+    libc.src.stdfix.uhrbits
+    libc.src.stdfix.rbits
+    libc.src.stdfix.urbits
+    libc.src.stdfix.lrbits
+    libc.src.stdfix.ulrbits
+    libc.src.stdfix.hkbits
+    libc.src.stdfix.uhkbits
+    libc.src.stdfix.kbits
+    libc.src.stdfix.ukbits
+    libc.src.stdfix.lkbits
+    libc.src.stdfix.ulkbits
+    libc.src.stdfix.bitshr
+    libc.src.stdfix.bitsr
+    libc.src.stdfix.bitslr
+    libc.src.stdfix.bitshk
+    libc.src.stdfix.bitsk
+    libc.src.stdfix.bitslk
+    libc.src.stdfix.bitsuhr
+    libc.src.stdfix.bitsur
+    libc.src.stdfix.bitsulr
+    libc.src.stdfix.bitsuhk
+    libc.src.stdfix.bitsuk
+    libc.src.stdfix.bitsulk
+    libc.src.stdfix.countlshr
+    libc.src.stdfix.countlsr
+    libc.src.stdfix.countlslr
+    libc.src.stdfix.countlshk
+    libc.src.stdfix.countlsk
+    libc.src.stdfix.countlslk
+    libc.src.stdfix.countlsuhr
+    libc.src.stdfix.countlsur
+    libc.src.stdfix.countlsulr
+    libc.src.stdfix.countlsuhk
+    libc.src.stdfix.countlsuk
+    libc.src.stdfix.countlsulk
+    libc.src.stdfix.idivr
+    libc.src.stdfix.idivlr
+    libc.src.stdfix.idivk
+    libc.src.stdfix.idivlk
+    libc.src.stdfix.idivur
+    libc.src.stdfix.idivulr
+    libc.src.stdfix.idivuk
+    libc.src.stdfix.idivulk
+    libc.src.stdfix.rdivi
+    libc.src.stdfix.lrdivi
+    libc.src.stdfix.kdivi
+    libc.src.stdfix.lkdivi
+    libc.src.stdfix.urdivi
+    libc.src.stdfix.ulrdivi
+    libc.src.stdfix.ukdivi
+    libc.src.stdfix.ulkdivi
+    libc.src.stdfix.divir
+    libc.src.stdfix.divilr
+    libc.src.stdfix.divik
+    libc.src.stdfix.divilk
+    libc.src.stdfix.diviur
+    libc.src.stdfix.diviulr
+    libc.src.stdfix.diviuk
+    libc.src.stdfix.diviulk
+  )
+endif()
+
+if(LLVM_LIBC_FULL_BUILD)
+  list(APPEND TARGET_LIBC_ENTRYPOINTS
+    # ctype.h entrypoints
+    libc.src.ctype.isalnum_l
+    libc.src.ctype.isalpha_l
+    libc.src.ctype.isblank_l
+    libc.src.ctype.iscntrl_l
+    libc.src.ctype.isdigit_l
+    libc.src.ctype.isgraph_l
+    libc.src.ctype.islower_l
+    libc.src.ctype.isprint_l
+    libc.src.ctype.ispunct_l
+    libc.src.ctype.isspace_l
+    libc.src.ctype.isupper_l
+    libc.src.ctype.isxdigit_l
+    libc.src.ctype.tolower_l
+    libc.src.ctype.toupper_l
+
+    # errno.h entrypoints
+    libc.src.errno.program_invocation_name
+    libc.src.errno.program_invocation_short_name
+
+    # stdlib.h entrypoints
+    libc.src.stdlib.strtod_l
+    libc.src.stdlib.strtof_l
+    libc.src.stdlib.strtol_l
+    libc.src.stdlib.strtold_l
+    libc.src.stdlib.strtoll_l
+    libc.src.stdlib.strtoul_l
+    libc.src.stdlib.strtoull_l
+
+    # string.h entrypoints
+    libc.src.string.strcoll_l
+    libc.src.string.strxfrm_l
+
+    # strings.h entrypoints
+    libc.src.strings.strcasecmp_l
+    libc.src.strings.strncasecmp_l
+
+    # assert.h entrypoints
+    libc.src.assert.__assert_fail
+
+    # compiler entrypoints (no corresponding header)
+    libc.src.compiler.__stack_chk_fail
+
+    # dirent.h entrypoints
+    libc.src.dirent.alphasort
+    libc.src.dirent.closedir
+    libc.src.dirent.dirfd
+    libc.src.dirent.opendir
+    libc.src.dirent.readdir
+    libc.src.dirent.scandir
+    libc.src.dirent.fdopendir
+
+    # pthread.h entrypoints
+    libc.src.pthread.__pthread_cleanup_pop
+    libc.src.pthread.__pthread_cleanup_push
+    libc.src.pthread.pthread_atfork
+    libc.src.pthread.pthread_attr_destroy
+    libc.src.pthread.pthread_attr_getdetachstate
+    libc.src.pthread.pthread_attr_getguardsize
+    libc.src.pthread.pthread_attr_getinheritsched
+    libc.src.pthread.pthread_attr_getschedparam
+    libc.src.pthread.pthread_attr_getschedpolicy
+    libc.src.pthread.pthread_attr_getscope
+    libc.src.pthread.pthread_attr_getstack
+    libc.src.pthread.pthread_attr_getstacksize
+    libc.src.pthread.pthread_attr_init
+    libc.src.pthread.pthread_attr_setdetachstate
+    libc.src.pthread.pthread_attr_setguardsize
+    libc.src.pthread.pthread_attr_setinheritsched
+    libc.src.pthread.pthread_attr_setschedparam
+    libc.src.pthread.pthread_attr_setschedpolicy
+    libc.src.pthread.pthread_attr_setscope
+    libc.src.pthread.pthread_attr_setstack
+    libc.src.pthread.pthread_attr_setstacksize
+    libc.src.pthread.pthread_condattr_destroy
+    libc.src.pthread.pthread_condattr_getclock
+    libc.src.pthread.pthread_condattr_getpshared
+    libc.src.pthread.pthread_condattr_init
+    libc.src.pthread.pthread_condattr_setclock
+    libc.src.pthread.pthread_condattr_setpshared
+    libc.src.pthread.pthread_cond_broadcast
+    libc.src.pthread.pthread_cond_clockwait
+    libc.src.pthread.pthread_cond_destroy
+    libc.src.pthread.pthread_cond_init
+    libc.src.pthread.pthread_cond_signal
+    libc.src.pthread.pthread_cond_timedwait
+    libc.src.pthread.pthread_cond_wait
+    libc.src.pthread.pthread_create
+    libc.src.pthread.pthread_detach
+    libc.src.pthread.pthread_equal
+    libc.src.pthread.pthread_exit
+    libc.src.pthread.pthread_getattr_np
+    libc.src.pthread.pthread_getname_np
+    libc.src.pthread.pthread_getschedparam
+    libc.src.pthread.pthread_getspecific
+    libc.src.pthread.pthread_getstack_np
+    libc.src.pthread.pthread_getthreadid_np
+    libc.src.pthread.pthread_getunique_np
+    libc.src.pthread.pthread_join
+    libc.src.pthread.pthread_key_create
+    libc.src.pthread.pthread_key_delete
+    libc.src.pthread.pthread_barrier_init
+    libc.src.pthread.pthread_barrier_wait
+    libc.src.pthread.pthread_barrier_destroy
+    libc.src.pthread.pthread_mutex_destroy
+    libc.src.pthread.pthread_mutex_init
+    libc.src.pthread.pthread_mutex_lock
+    libc.src.pthread.pthread_mutex_trylock
+    libc.src.pthread.pthread_mutex_unlock
+    libc.src.pthread.pthread_mutexattr_destroy
+    libc.src.pthread.pthread_mutexattr_getpshared
+    libc.src.pthread.pthread_mutexattr_getrobust
+    libc.src.pthread.pthread_mutexattr_gettype
+    libc.src.pthread.pthread_mutexattr_init
+    libc.src.pthread.pthread_mutexattr_setpshared
+    libc.src.pthread.pthread_mutexattr_setrobust
+    libc.src.pthread.pthread_mutexattr_settype
+    libc.src.pthread.pthread_once
+    libc.src.pthread.pthread_rwlock_clockrdlock
+    libc.src.pthread.pthread_rwlock_clockwrlock
+    libc.src.pthread.pthread_rwlock_destroy
+    libc.src.pthread.pthread_rwlock_init
+    libc.src.pthread.pthread_rwlock_rdlock
+    libc.src.pthread.pthread_rwlock_timedrdlock
+    libc.src.pthread.pthread_rwlock_timedwrlock
+    libc.src.pthread.pthread_rwlock_tryrdlock
+    libc.src.pthread.pthread_rwlock_trywrlock
+    libc.src.pthread.pthread_rwlock_unlock
+    libc.src.pthread.pthread_rwlock_wrlock
+    libc.src.pthread.pthread_rwlockattr_destroy
+    libc.src.pthread.pthread_rwlockattr_getkind_np
+    libc.src.pthread.pthread_rwlockattr_getpshared
+    libc.src.pthread.pthread_rwlockattr_init
+    libc.src.pthread.pthread_rwlockattr_setkind_np
+    libc.src.pthread.pthread_rwlockattr_setpshared
+    libc.src.pthread.pthread_spin_destroy
+    libc.src.pthread.pthread_spin_init
+    libc.src.pthread.pthread_spin_lock
+    libc.src.pthread.pthread_spin_trylock
+    libc.src.pthread.pthread_spin_unlock
+    libc.src.pthread.pthread_self
+    libc.src.pthread.pthread_setname_np
+    libc.src.pthread.pthread_setschedparam
+    libc.src.pthread.pthread_setspecific
+
+    # sched.h entrypoints
+    libc.src.sched.clone
+    libc.src.sched.__sched_andcpuset
+    libc.src.sched.__sched_clrcpuset
+    libc.src.sched.__sched_cpualloc
+    libc.src.sched.__sched_cpuequal
+    libc.src.sched.__sched_cpufree
+    libc.src.sched.__sched_getcpucount
+    libc.src.sched.__sched_getcpuisset
+    libc.src.sched.__sched_orcpuset
+    libc.src.sched.__sched_setcpuset
+    libc.src.sched.__sched_setcpuzero
+    libc.src.sched.__sched_xorcpuset
+
+    # semaphore.h entrypoints
+    libc.src.semaphore.sem_clockwait
+    libc.src.semaphore.sem_close
+    libc.src.semaphore.sem_destroy
+    libc.src.semaphore.sem_getvalue
+    libc.src.semaphore.sem_init
+    libc.src.semaphore.sem_open
+    libc.src.semaphore.sem_post
+    libc.src.semaphore.sem_timedwait
+    libc.src.semaphore.sem_trywait
+    libc.src.semaphore.sem_unlink
+    libc.src.semaphore.sem_wait
+
+    # setjmp.h entrypoints
+    libc.src.setjmp.longjmp
+    libc.src.setjmp.setjmp
+    libc.src.setjmp.siglongjmp
+    libc.src.setjmp.sigsetjmp
+
+    # ucontext.h entrypoints
+    libc.src.ucontext.getcontext
+    libc.src.ucontext.setcontext
+
+    # stdio.h entrypoints
+    libc.src.stdio.clearerr
+    libc.src.stdio.clearerr_unlocked
+    libc.src.stdio.fclose
+    libc.src.stdio.fdopen
+    libc.src.stdio.feof
+    libc.src.stdio.feof_unlocked
+    libc.src.stdio.ferror
+    libc.src.stdio.ferror_unlocked
+    libc.src.stdio.fflush
+    libc.src.stdio.fgetc
+    libc.src.stdio.fgetc_unlocked
+    libc.src.stdio.fgetpos
+    libc.src.stdio.fgets
+    libc.src.stdio.fileno
+    libc.src.stdio.flockfile
+    libc.src.stdio.fmemopen
+    libc.src.stdio.fopen
+    libc.src.stdio.freopen
+    libc.src.stdio.fopencookie
+    libc.src.stdio.fputc
+    libc.src.stdio.fputs
+    libc.src.stdio.fread
+    libc.src.stdio.fread_unlocked
+    libc.src.stdio.fseek
+    libc.src.stdio.fseeko
+    libc.src.stdio.fsetpos
+    libc.src.stdio.ftell
+    libc.src.stdio.ftello
+    libc.src.stdio.funlockfile
+    libc.src.stdio.fwrite
+    libc.src.stdio.fwrite_unlocked
+    libc.src.stdio.getc
+    libc.src.stdio.getc_unlocked
+    libc.src.stdio.getchar
+    libc.src.stdio.getchar_unlocked
+    libc.src.stdio.pclose
+    libc.src.stdio.perror
+    libc.src.stdio.popen
+    libc.src.stdio.putc
+    libc.src.stdio.putchar
+    libc.src.stdio.puts
+    libc.src.stdio.rewind
+    libc.src.stdio.setbuf
+    libc.src.stdio.setvbuf
+    libc.src.stdio.stderr
+    libc.src.stdio.stdin
+    libc.src.stdio.stdout
+    libc.src.stdio.ungetc
+
+    # stdlib.h entrypoints
+    libc.src.stdlib.__cxa_thread_atexit_impl
+    libc.src.stdlib._Exit
+    libc.src.stdlib.abort
+    libc.src.stdlib.at_quick_exit
+    libc.src.stdlib.atexit
+    libc.src.stdlib.clearenv
+    libc.src.stdlib.exit
+    libc.src.stdlib.getenv
+    libc.src.stdlib.putenv
+    libc.src.stdlib.secure_getenv
+    libc.src.stdlib.setenv
+    libc.src.stdlib.unsetenv
+    libc.src.stdlib.mbstowcs
+    libc.src.stdlib.mbtowc
+    libc.src.stdlib.mblen
+    libc.src.stdlib.quick_exit
+    libc.src.stdlib.system
+    libc.src.stdlib.wcstombs
+    libc.src.stdlib.wctomb
+
+    # signal.h entrypoints
+    libc.src.signal.kill
+    libc.src.signal.pthread_kill
+    libc.src.signal.pthread_sigmask
+    libc.src.signal.raise
+    libc.src.signal.sigaction
+    libc.src.signal.sigaddset
+    libc.src.signal.sigaltstack
+    libc.src.signal.sigdelset
+    libc.src.signal.sigemptyset
+    libc.src.signal.sigfillset
+    libc.src.signal.sigismember
+    libc.src.signal.signal
+    libc.src.signal.sigprocmask
+
+    # spawn.h entrypoints
+    libc.src.spawn.posix_spawn
+    libc.src.spawn.posix_spawn_file_actions_addclose
+    libc.src.spawn.posix_spawn_file_actions_adddup2
+    libc.src.spawn.posix_spawn_file_actions_addopen
+    libc.src.spawn.posix_spawn_file_actions_destroy
+    libc.src.spawn.posix_spawn_file_actions_init
+
+    # search.h entrypoints
+    libc.src.search.hcreate
+    libc.src.search.hcreate_r
+    libc.src.search.hdestroy
+    libc.src.search.hdestroy_r
+    libc.src.search.hsearch
+    libc.src.search.hsearch_r
+    libc.src.search.insque
+    libc.src.search.lfind
+    libc.src.search.lsearch
+    libc.src.search.remque
+    libc.src.search.tdelete
+    libc.src.search.tdestroy
+    libc.src.search.tfind
+    libc.src.search.tsearch
+    libc.src.search.twalk
+    libc.src.search.twalk_r
+
+    # threads.h entrypoints
+    libc.src.threads.call_once
+    libc.src.threads.cnd_broadcast
+    libc.src.threads.cnd_destroy
+    libc.src.threads.cnd_init
+    libc.src.threads.cnd_signal
+    libc.src.threads.cnd_timedwait
+    libc.src.threads.cnd_wait
+    libc.src.threads.mtx_destroy
+    libc.src.threads.mtx_init
+    libc.src.threads.mtx_lock
+    libc.src.threads.mtx_trylock
+    libc.src.threads.mtx_unlock
+    libc.src.threads.thrd_create
+    libc.src.threads.thrd_current
+    libc.src.threads.thrd_detach
+    libc.src.threads.thrd_equal
+    libc.src.threads.thrd_exit
+    libc.src.threads.thrd_join
+    libc.src.threads.tss_create
+    libc.src.threads.tss_delete
+    libc.src.threads.tss_get
+    libc.src.threads.tss_set
+
+    # time.h entrypoints
+    libc.src.time.asctime
+    libc.src.time.asctime_r
+    libc.src.time.ctime
+    libc.src.time.ctime_r
+    libc.src.time.clock
+    libc.src.time.clock_getcpuclockid
+    libc.src.time.clock_getres
+    libc.src.time.clock_gettime
+    libc.src.time.clock_settime
+    libc.src.time.difftime
+    libc.src.time.gmtime
+    libc.src.time.gmtime_r
+    libc.src.time.localtime
+    libc.src.time.localtime_r
+    libc.src.time.mktime
+    libc.src.time.nanosleep
+    libc.src.time.strftime
+    libc.src.time.strftime_l
+    libc.src.time.time
+    libc.src.time.timespec_get
+    libc.src.time.timer_create
+    libc.src.time.timer_delete
+    libc.src.time.timer_getoverrun
+    libc.src.time.timer_gettime
+    libc.src.time.timer_settime
+
+    # locale.h entrypoints
+    libc.src.locale.localeconv
+    libc.src.locale.duplocale
+    libc.src.locale.freelocale
+    libc.src.locale.localeconv
+    libc.src.locale.newlocale
+    libc.src.locale.setlocale
+    libc.src.locale.uselocale
+
+    # unistd.h entrypoints
+    libc.src.unistd.__llvm_libc_syscall
+    libc.src.unistd._exit
+    libc.src.unistd.confstr
+    libc.src.unistd.environ
+    libc.src.unistd.execl
+    libc.src.unistd.execlp
+    libc.src.unistd.execv
+    libc.src.unistd.execvp
+    libc.src.unistd.execvpe
+    libc.src.unistd.fork
+    libc.src.unistd.getopt
+    libc.src.unistd.optarg
+    libc.src.unistd.opterr
+    libc.src.unistd.optind
+    libc.src.unistd.optopt
+    libc.src.unistd.swab
+    libc.src.unistd.sysconf
+
+    # sys/select.h entrypoints
+    libc.src.sys.select.pselect
+    libc.src.sys.select.select
+
+    # wchar.h entrypoints
+    libc.src.wchar.mbrlen
+    libc.src.wchar.mbsinit
+    libc.src.wchar.mbrtowc
+    libc.src.wchar.mbsrtowcs
+    libc.src.wchar.mbsnrtowcs
+    libc.src.wchar.wcrtomb
+    libc.src.wchar.wcsrtombs
+    libc.src.wchar.wcsnrtombs
+    libc.src.wchar.fgetwc
+    libc.src.wchar.fgetws
+    libc.src.wchar.fputwc
+    libc.src.wchar.fputws
+    libc.src.wchar.fwide
+    libc.src.wchar.getwc
+    libc.src.wchar.getwchar
+    libc.src.wchar.putwc
+    libc.src.wchar.putwchar
+    libc.src.wchar.ungetwc
+
+    # nl_types.h entrypoints
+    libc.src.nl_types.catopen
+    libc.src.nl_types.catclose
+    libc.src.nl_types.catgets
+
+    # link.h entrypoints
+    libc.src.link._r_debug
+    libc.src.link.dl_iterate_phdr
+  )
+endif()
+
+if(LLVM_LIBC_ENABLE_EXPERIMENTAL_ENTRYPOINTS)
+  if(LLVM_LIBC_FULL_BUILD)
+    list(APPEND TARGET_LIBC_ENTRYPOINTS
+      # fnmatch.h entrypoints
+      libc.src.fnmatch.fnmatch
+
+      # glob.h entrypoints
+      libc.src.glob.glob
+      libc.src.glob.globfree
+
+      # grp.h entrypoints
+      libc.src.grp.initgroups
+      libc.src.grp.setgroups
+
+      # libintl.h entrypoints
+      libc.src.libintl.bind_textdomain_codeset
+      libc.src.libintl.bindtextdomain
+      libc.src.libintl.dcgettext
+      libc.src.libintl.dcgettext_l
+      libc.src.libintl.dcngettext
+      libc.src.libintl.dcngettext_l
+      libc.src.libintl.dgettext
+      libc.src.libintl.dgettext_l
+      libc.src.libintl.dngettext
+      libc.src.libintl.dngettext_l
+      libc.src.libintl.gettext
+      libc.src.libintl.gettext_l
+      libc.src.libintl.ngettext
+      libc.src.libintl.ngettext_l
+      libc.src.libintl.textdomain
+
+      # net/if.h entrypoints
+      libc.src.net.if_freenameindex
+      libc.src.net.if_nameindex
+
+      # netdb.h entrypoints
+      libc.src.netdb.freeaddrinfo
+      libc.src.netdb.gai_strerror
+      libc.src.netdb.getaddrinfo
+
+      # regex.h entrypoints
+      libc.src.regex.regcomp
+      libc.src.regex.regexec
+      libc.src.regex.regerror
+      libc.src.regex.regfree
+
+      # sys/ptrace.h entrypoints
+      libc.src.sys.ptrace.ptrace
+
+      # time.h entrypoints
+      libc.src.time.strptime
+      libc.src.time.tz_variables
+      libc.src.time.tzset
+
+      # unistd.h entrypoints
+      libc.src.unistd.setegid
+      libc.src.unistd.seteuid
+      libc.src.unistd.setgid
+      libc.src.unistd.setregid
+      libc.src.unistd.setresgid
+      libc.src.unistd.setresuid
+      libc.src.unistd.setreuid
+      libc.src.unistd.setuid
+
+      # wchar.h entrypoints
+      libc.src.wchar.swprintf
+    )
+  endif()
+endif()
+
+set(TARGET_LIBMVEC_ENTRYPOINTS)
+
+if(LIBC_COMPILER_HAS_EXT_VECTOR_TYPE)
+list(APPEND TARGET_LIBMVEC_ENTRYPOINTS
+    libc.src.mathvec.acosf
+    libc.src.mathvec.acoshf
+    libc.src.mathvec.acospif
+    libc.src.mathvec.asinf
+    libc.src.mathvec.asinhf
+    libc.src.mathvec.asinpif
+    libc.src.mathvec.atanf
+    libc.src.mathvec.atanhf
+    libc.src.mathvec.cbrtf
+    libc.src.mathvec.cosf
+    libc.src.mathvec.coshf
+    libc.src.mathvec.cospif
+    libc.src.mathvec.erff
+    libc.src.mathvec.exp2f
+    libc.src.mathvec.exp2m1f
+    libc.src.mathvec.exp10f
+    libc.src.mathvec.exp10m1f
+    libc.src.mathvec.expf
+    libc.src.mathvec.expm1f
+    libc.src.mathvec.log10f
+    libc.src.mathvec.log1pf
+    libc.src.mathvec.log2f
+    libc.src.mathvec.logf
+    libc.src.mathvec.rsqrtf
+    libc.src.mathvec.sinf
+    libc.src.mathvec.sinhf
+    libc.src.mathvec.sinpif
+    libc.src.mathvec.sqrtf
+    libc.src.mathvec.tanf
+    libc.src.mathvec.tanhf
+    libc.src.mathvec.tanpif
+  )
+endif()
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+  ${TARGET_LIBC_ENTRYPOINTS}
+  ${TARGET_LIBM_ENTRYPOINTS}
+  ${TARGET_LIBMVEC_ENTRYPOINTS}
+)
diff --git a/libc/config/windows/entrypoints.txt b/libc/config/windows/entrypoints.txt
index 1712b2ad26fda4..21cb255f802709 100644
--- a/libc/config/windows/entrypoints.txt
+++ b/libc/config/windows/entrypoints.txt
@@ -1,440 +1,442 @@
-set(TARGET_LIBC_ENTRYPOINTS
-    # ctype.h entrypoints
-    libc.src.ctype.isalnum
-    libc.src.ctype.isalpha
-    libc.src.ctype.isascii
-    libc.src.ctype.isblank
-    libc.src.ctype.iscntrl
-    libc.src.ctype.isdigit
-    libc.src.ctype.isgraph
-    libc.src.ctype.islower
-    libc.src.ctype.isprint
-    libc.src.ctype.ispunct
-    libc.src.ctype.isspace
-    libc.src.ctype.isupper
-    libc.src.ctype.isxdigit
-    libc.src.ctype.toascii
-    libc.src.ctype.tolower
-    libc.src.ctype.toupper
-
-    # string.h entrypoints
-    libc.src.string.memccpy
-    libc.src.string.memchr
-    libc.src.string.memcmp
-    libc.src.string.memcpy
-    libc.src.string.memmem
-    libc.src.string.memmove
-    libc.src.string.mempcpy
-    libc.src.string.memrchr
-    libc.src.string.memset
-    libc.src.string.stpcpy
-    libc.src.string.stpncpy
-    libc.src.string.strcasestr
-    libc.src.string.strcat
-    libc.src.string.strchr
-    libc.src.string.strchrnul
-    libc.src.string.strcmp
-    libc.src.string.strcpy
-    libc.src.string.strcspn
-    libc.src.string.strlcat
-    libc.src.string.strlcpy
-    libc.src.string.strlen
-    libc.src.string.strncat
-    libc.src.string.strncmp
-    libc.src.string.strncpy
-    libc.src.string.strnlen
-    libc.src.string.strnlen_s
-    libc.src.string.strpbrk
-    libc.src.string.strrchr
-    libc.src.string.strspn
-    libc.src.string.strstr
-    libc.src.string.strtok
-    libc.src.string.strtok_r
-
-    # string.h entrypoints that depend on malloc
-    libc.src.string.strdup
-    libc.src.string.strndup
-
-    # strings.h entrypoints
-    libc.src.strings.bcmp
-    libc.src.strings.bcopy
-    libc.src.strings.bzero
-    libc.src.strings.strcasecmp
-    libc.src.strings.strncasecmp
-
-    # inttypes.h entrypoints
-    libc.src.inttypes.imaxabs
-    libc.src.inttypes.imaxdiv
-    libc.src.inttypes.strtoimax
-    libc.src.inttypes.strtoumax
-
-    # stdlib.h entrypoints
-    libc.src.stdlib.abs
-    libc.src.stdlib.atoi
-    libc.src.stdlib.atof
-    libc.src.stdlib.atol
-    libc.src.stdlib.atoll
-    libc.src.stdlib.bsearch
-    libc.src.stdlib.div
-    libc.src.stdlib.labs
-    libc.src.stdlib.ldiv
-    libc.src.stdlib.llabs
-    libc.src.stdlib.lldiv
-    libc.src.stdlib.memalignment
-    libc.src.stdlib.qsort
-    libc.src.stdlib.strtod
-    libc.src.stdlib.strtof
-    libc.src.stdlib.strtol
-    libc.src.stdlib.strtold
-    libc.src.stdlib.strtoll
-    libc.src.stdlib.strtoul
-    libc.src.stdlib.strtoull
-
-    # stdlib.h external entrypoints
-    libc.src.stdlib.malloc
-    libc.src.stdlib.calloc
-    libc.src.stdlib.realloc
-    libc.src.stdlib.aligned_alloc
-    libc.src.stdlib.free
-
-    # errno.h entrypoints
-    libc.src.errno.errno
-
-    # time.h entrypoints
-    libc.src.time.time
-    libc.src.time.clock_getres
-
-    # unistd.h entrypoints
-    libc.src.unistd.getentropy
-
-    # wctype.h entrypoints
-    libc.src.wctype.iswalpha
-    libc.src.wctype.iswupper
-    libc.src.wctype.iswalnum
-    libc.src.wctype.iswgraph
-    libc.src.wctype.iswcntrl
-    libc.src.wctype.iswdigit
-    libc.src.wctype.iswlower
-    libc.src.wctype.iswspace
-    libc.src.wctype.iswblank
-    libc.src.wctype.iswxdigit
-    libc.src.wctype.iswpunct
-    libc.src.wctype.iswprint
-    libc.src.wctype.iswctype
-    libc.src.wctype.wctype
-)
-
-set(TARGET_LIBM_ENTRYPOINTS
-    # fenv.h entrypoints
-    libc.src.fenv.feclearexcept
-    libc.src.fenv.fedisableexcept
-    libc.src.fenv.feenableexcept
-    libc.src.fenv.fegetenv
-    libc.src.fenv.fegetexcept
-    libc.src.fenv.fegetexceptflag
-    libc.src.fenv.fegetround
-    libc.src.fenv.feholdexcept
-    libc.src.fenv.fesetenv
-    libc.src.fenv.fesetexcept
-    libc.src.fenv.fesetexceptflag
-    libc.src.fenv.fesetround
-    libc.src.fenv.feraiseexcept
-    libc.src.fenv.fetestexcept
-    libc.src.fenv.fetestexceptflag
-    libc.src.fenv.feupdateenv
-
-    # math.h entrypoints
-    libc.src.math.acos
-    libc.src.math.acosf
-    libc.src.math.acoshf
-    libc.src.math.acospif
-    libc.src.math.asin
-    libc.src.math.asinf
-    libc.src.math.asinhf
-    libc.src.math.asinpi
-    libc.src.math.asinpif
-    libc.src.math.atan2
-    libc.src.math.atan2f
-    libc.src.math.atan2f128
-    libc.src.math.atan
-    libc.src.math.atanf
-    libc.src.math.atanhf
-    libc.src.math.cbrt
-    libc.src.math.cbrtf
-    libc.src.math.cbrtbf16
-    libc.src.math.copysign
-    libc.src.math.copysignf
-    libc.src.math.copysignf128
-    libc.src.math.copysignl
-    libc.src.math.ceil
-    libc.src.math.ceilf
-    libc.src.math.ceilf128
-    libc.src.math.ceill
-    libc.src.math.cos
-    libc.src.math.cosf
-    libc.src.math.coshf
-    libc.src.math.daddl
-    libc.src.math.ddivl
-    libc.src.math.dfmal
-    libc.src.math.dsubl
-    libc.src.math.erff
-    libc.src.math.exp
-    libc.src.math.expf
-    libc.src.math.exp10
-    libc.src.math.exp10f
-    libc.src.math.exp2
-    libc.src.math.exp2f
-    libc.src.math.expm1
-    libc.src.math.expm1f
-    libc.src.math.fabs
-    libc.src.math.fabsf
-    libc.src.math.fabsf128
-    libc.src.math.fabsl
-    libc.src.math.fadd
-    libc.src.math.faddl
-    libc.src.math.fdim
-    libc.src.math.fdimf
-    libc.src.math.fdimf128
-    libc.src.math.fdiml
-    libc.src.math.fdiv
-    libc.src.math.fdivl
-    libc.src.math.ffma
-    libc.src.math.ffmal
-    libc.src.math.floor
-    libc.src.math.floorf
-    libc.src.math.floorf128
-    libc.src.math.floorl
-    libc.src.math.fma
-    libc.src.math.fmabf16
-    libc.src.math.fmaf
-    libc.src.math.fmaximum_mag_numf128
-    libc.src.math.fmaximum_magf128
-    libc.src.math.fmin
-    libc.src.math.fminf
-    libc.src.math.fminf128
-    libc.src.math.fminimum_mag_numf128
-    libc.src.math.fminimum_magf128
-    libc.src.math.fminl
-    libc.src.math.fmax
-    libc.src.math.fmaxf
-    libc.src.math.fmaxf128
-    libc.src.math.fmaxl
-    libc.src.math.fmaximum
-    libc.src.math.fmaximumf
-    libc.src.math.fmaximumf128
-    libc.src.math.fmaximuml
-    libc.src.math.fmaximum_num
-    libc.src.math.fmaximum_numf
-    libc.src.math.fmaximum_numf128
-    libc.src.math.fmaximum_numl
-    libc.src.math.fmaximum_mag
-    libc.src.math.fmaximum_magf
-    libc.src.math.fmaximum_magl
-    libc.src.math.fmaximum_mag_num
-    libc.src.math.fmaximum_mag_numf
-    libc.src.math.fmaximum_mag_numl
-    libc.src.math.fminimum
-    libc.src.math.fminimumf
-    libc.src.math.fminimumf128
-    libc.src.math.fminimuml
-    libc.src.math.fminimum_num
-    libc.src.math.fminimum_numf
-    libc.src.math.fminimum_numf128
-    libc.src.math.fminimum_numl
-    libc.src.math.fminimum_mag
-    libc.src.math.fminimum_magf
-    libc.src.math.fminimum_magl
-    libc.src.math.fminimum_mag_num
-    libc.src.math.fminimum_mag_numf
-    libc.src.math.fminimum_mag_numl
-    libc.src.math.fmul
-    libc.src.math.fmod
-    libc.src.math.fmodf
-    libc.src.math.fmodl
-    libc.src.math.frexp
-    libc.src.math.frexpf
-    libc.src.math.frexpl
-    libc.src.math.fsub
-    libc.src.math.fsubl
-    libc.src.math.hypot
-    libc.src.math.hypotf
-    libc.src.math.ilogb
-    libc.src.math.ilogbf
-    libc.src.math.ilogbl
-    libc.src.math.iscanonicalf128
-    libc.src.math.isnanf128
-    libc.src.math.issignalingf128
-    libc.src.math.ldexp
-    libc.src.math.ldexpf
-    libc.src.math.ldexpl
-    libc.src.math.lgammaf
-    libc.src.math.llrint
-    libc.src.math.llrintf
-    libc.src.math.llrintf128
-    libc.src.math.llrintl
-    libc.src.math.llround
-    libc.src.math.llroundf
-    libc.src.math.llroundf128
-    libc.src.math.llroundl
-    libc.src.math.log10
-    libc.src.math.log10f
-    libc.src.math.log1p
-    libc.src.math.log1pf
-    libc.src.math.log2
-    libc.src.math.log2f
-    libc.src.math.log
-    libc.src.math.logf
-    libc.src.math.logb
-    libc.src.math.logbf
-    libc.src.math.logbl
-    libc.src.math.lrint
-    libc.src.math.lrintf
-    libc.src.math.lrintf128
-    libc.src.math.lrintl
-    libc.src.math.lround
-    libc.src.math.lroundf
-    libc.src.math.lroundf128
-    libc.src.math.lroundl
-    libc.src.math.modf
-    libc.src.math.modff
-    libc.src.math.modfl
-    libc.src.math.nan
-    libc.src.math.nanf
-    libc.src.math.nanl
-    libc.src.math.nearbyint
-    libc.src.math.nearbyintf
-    libc.src.math.nearbyintf128
-    libc.src.math.nearbyintl
-    libc.src.math.nextafter
-    libc.src.math.nextafterf
-    libc.src.math.nextafterl
-    libc.src.math.nexttoward
-    libc.src.math.nexttowardf
-    libc.src.math.nexttowardl
-    libc.src.math.pow
-    libc.src.math.powf
-    libc.src.math.remainderf
-    libc.src.math.remainder
-    libc.src.math.remainderl
-    libc.src.math.remquof
-    libc.src.math.remquo
-    libc.src.math.remquol
-    libc.src.math.rint
-    libc.src.math.rintf
-    libc.src.math.rintf128
-    libc.src.math.rintl
-    libc.src.math.round
-    libc.src.math.roundevenf128
-    libc.src.math.roundf
-    libc.src.math.roundf128
-    libc.src.math.roundl
-    libc.src.math.scalbln
-    libc.src.math.scalblnf
-    libc.src.math.scalblnl
-    libc.src.math.scalbn
-    libc.src.math.scalbnf
-    libc.src.math.scalbnl
-    libc.src.math.sin
-    libc.src.math.sincosf
-    libc.src.math.sincosf
-    libc.src.math.sinf
-    libc.src.math.sinhf
-    libc.src.math.sqrt
-    libc.src.math.sqrtf
-    libc.src.math.sqrtf128
-    libc.src.math.sqrtl
-    libc.src.math.tan
-    libc.src.math.tanf
-    libc.src.math.tanhf
-    libc.src.math.tanpif
-    libc.src.math.trunc
-    libc.src.math.truncf
-    libc.src.math.truncf128
-    libc.src.math.truncl
-)
-
-list(APPEND TARGET_LIBM_ENTRYPOINTS
-  # bfloat16 entrypoints
-  libc.src.math.atanbf16
-  libc.src.math.acosbf16
-  libc.src.math.asinbf16
-  libc.src.math.bf16add
-  libc.src.math.bf16addf
-  libc.src.math.bf16addl
-  libc.src.math.bf16div
-  libc.src.math.bf16divf
-  libc.src.math.bf16divl
-  libc.src.math.bf16fma
-  libc.src.math.bf16fmaf
-  libc.src.math.bf16fmal
-  libc.src.math.bf16mul
-  libc.src.math.bf16mulf
-  libc.src.math.bf16mull
-  libc.src.math.bf16sub
-  libc.src.math.bf16subf
-  libc.src.math.bf16subl
-  libc.src.math.canonicalizebf16
-  libc.src.math.ceilbf16
-  libc.src.math.copysignbf16
-  libc.src.math.exp2bf16
-  libc.src.math.expbf16
-  libc.src.math.fabsbf16
-  libc.src.math.fdimbf16
-  libc.src.math.floorbf16
-  libc.src.math.fmaxbf16
-  libc.src.math.fmaximumbf16
-  libc.src.math.fmaximum_magbf16
-  libc.src.math.fmaximum_mag_numbf16
-  libc.src.math.fmaximum_numbf16
-  libc.src.math.fminbf16
-  libc.src.math.fminimumbf16
-  libc.src.math.fminimum_magbf16
-  libc.src.math.fminimum_mag_numbf16
-  libc.src.math.fminimum_numbf16
-  libc.src.math.fmodbf16
-  libc.src.math.frexpbf16
-  libc.src.math.fromfpbf16
-  libc.src.math.fromfpxbf16
-  libc.src.math.getpayloadbf16
-  libc.src.math.hypotbf16
-  libc.src.math.ilogbbf16
-  libc.src.math.iscanonicalbf16
-  libc.src.math.issignalingbf16
-  libc.src.math.ldexpbf16
-  libc.src.math.llogbbf16
-  libc.src.math.llrintbf16
-  libc.src.math.llroundbf16
-  libc.src.math.log_bf16
-  libc.src.math.logbbf16
-  libc.src.math.lrintbf16
-  libc.src.math.lroundbf16
-  libc.src.math.modfbf16
-  libc.src.math.nanbf16
-  libc.src.math.nearbyintbf16
-  libc.src.math.nextafterbf16
-  libc.src.math.nextdownbf16
-  libc.src.math.nexttowardbf16
-  libc.src.math.nextupbf16
-  libc.src.math.remainderbf16
-  libc.src.math.remquobf16
-  libc.src.math.rintbf16
-  libc.src.math.roundbf16
-  libc.src.math.roundevenbf16
-  libc.src.math.scalblnbf16
-  libc.src.math.scalbnbf16
-  libc.src.math.setpayloadbf16
-  libc.src.math.setpayloadsigbf16
-  libc.src.math.sqrtbf16
-  libc.src.math.tanbf16
-  libc.src.math.truncbf16
-  libc.src.math.totalorderbf16
-  libc.src.math.totalordermagbf16
-  libc.src.math.ufromfpbf16
-  libc.src.math.ufromfpxbf16
-)
-
-set(TARGET_LLVMLIBC_ENTRYPOINTS
-  ${TARGET_LIBC_ENTRYPOINTS}
-  ${TARGET_LIBM_ENTRYPOINTS}
-)
-
+set(TARGET_LIBC_ENTRYPOINTS
+    # ctype.h entrypoints
+    libc.src.ctype.isalnum
+    libc.src.ctype.isalpha
+    libc.src.ctype.isascii
+    libc.src.ctype.isblank
+    libc.src.ctype.iscntrl
+    libc.src.ctype.isdigit
+    libc.src.ctype.isgraph
+    libc.src.ctype.islower
+    libc.src.ctype.isprint
+    libc.src.ctype.ispunct
+    libc.src.ctype.isspace
+    libc.src.ctype.isupper
+    libc.src.ctype.isxdigit
+    libc.src.ctype.toascii
+    libc.src.ctype.tolower
+    libc.src.ctype.toupper
+
+    # string.h entrypoints
+    libc.src.string.memccpy
+    libc.src.string.memchr
+    libc.src.string.memcmp
+    libc.src.string.memcpy
+    libc.src.string.memmem
+    libc.src.string.memmove
+    libc.src.string.mempcpy
+    libc.src.string.memrchr
+    libc.src.string.memset
+    libc.src.string.stpcpy
+    libc.src.string.stpncpy
+    libc.src.string.strcasestr
+    libc.src.string.strcat
+    libc.src.string.strchr
+    libc.src.string.strchrnul
+    libc.src.string.strcmp
+    libc.src.string.strcpy
+    libc.src.string.strcspn
+    libc.src.string.strlcat
+    libc.src.string.strlcpy
+    libc.src.string.strlen
+    libc.src.string.strncat
+    libc.src.string.strncmp
+    libc.src.string.strncpy
+    libc.src.string.strnlen
+    libc.src.string.strnlen_s
+    libc.src.string.strpbrk
+    libc.src.string.strrchr
+    libc.src.string.strspn
+    libc.src.string.strstr
+    libc.src.string.strtok
+    libc.src.string.strtok_r
+
+    # string.h entrypoints that depend on malloc
+    libc.src.string.strdup
+    libc.src.string.strndup
+
+    # strings.h entrypoints
+    libc.src.strings.bcmp
+    libc.src.strings.bcopy
+    libc.src.strings.bzero
+    libc.src.strings.strcasecmp
+    libc.src.strings.strncasecmp
+
+    # inttypes.h entrypoints
+    libc.src.inttypes.imaxabs
+    libc.src.inttypes.imaxdiv
+    libc.src.inttypes.strtoimax
+    libc.src.inttypes.strtoumax
+
+    # stdlib.h entrypoints
+    libc.src.stdlib.abs
+    libc.src.stdlib.atoi
+    libc.src.stdlib.atof
+    libc.src.stdlib.atol
+    libc.src.stdlib.atoll
+    libc.src.stdlib.bsearch
+    libc.src.stdlib.div
+    libc.src.stdlib.labs
+    libc.src.stdlib.ldiv
+    libc.src.stdlib.llabs
+    libc.src.stdlib.lldiv
+    libc.src.stdlib.memalignment
+    libc.src.stdlib.qsort
+    libc.src.stdlib.strtod
+    libc.src.stdlib.strtof
+    libc.src.stdlib.strtol
+    libc.src.stdlib.strtold
+    libc.src.stdlib.strtoll
+    libc.src.stdlib.strtoul
+    libc.src.stdlib.strtoull
+
+    # stdlib.h external entrypoints
+    libc.src.stdlib.malloc
+    libc.src.stdlib.calloc
+    libc.src.stdlib.realloc
+    libc.src.stdlib.aligned_alloc
+    libc.src.stdlib.free
+
+    # errno.h entrypoints
+    libc.src.errno.errno
+
+    # time.h entrypoints
+    libc.src.time.time
+    libc.src.time.clock_getres
+
+    # unistd.h entrypoints
+    libc.src.unistd.getentropy
+
+    # wctype.h entrypoints
+    libc.src.wctype.iswalpha
+    libc.src.wctype.iswupper
+    libc.src.wctype.iswalnum
+    libc.src.wctype.iswgraph
+    libc.src.wctype.iswcntrl
+    libc.src.wctype.iswdigit
+    libc.src.wctype.iswlower
+    libc.src.wctype.iswspace
+    libc.src.wctype.iswblank
+    libc.src.wctype.iswxdigit
+    libc.src.wctype.iswpunct
+    libc.src.wctype.iswprint
+    libc.src.wctype.iswctype
+    libc.src.wctype.wctype
+)
+
+set(TARGET_LIBM_ENTRYPOINTS
+    # fenv.h entrypoints
+    libc.src.fenv.feclearexcept
+    libc.src.fenv.fedisableexcept
+    libc.src.fenv.feenableexcept
+    libc.src.fenv.fegetenv
+    libc.src.fenv.fegetexcept
+    libc.src.fenv.fegetexceptflag
+    libc.src.fenv.fegetround
+    libc.src.fenv.feholdexcept
+    libc.src.fenv.fesetenv
+    libc.src.fenv.fesetexcept
+    libc.src.fenv.fesetexceptflag
+    libc.src.fenv.fesetround
+    libc.src.fenv.feraiseexcept
+    libc.src.fenv.fetestexcept
+    libc.src.fenv.fetestexceptflag
+    libc.src.fenv.feupdateenv
+
+    # math.h entrypoints
+    libc.src.math.acos
+    libc.src.math.acosf
+    libc.src.math.acoshf
+    libc.src.math.acospif
+    libc.src.math.asin
+    libc.src.math.asinf
+    libc.src.math.asinhf
+    libc.src.math.asinpi
+    libc.src.math.asinpif
+    libc.src.math.atan2
+    libc.src.math.atan2f
+    libc.src.math.atan2f128
+    libc.src.math.atan
+    libc.src.math.atanf
+    libc.src.math.atanhf
+    libc.src.math.cbrt
+    libc.src.math.cbrtf
+    libc.src.math.cbrtbf16
+    libc.src.math.copysign
+    libc.src.math.copysignf
+    libc.src.math.copysignf128
+    libc.src.math.copysignf80
+    libc.src.math.copysignl
+    libc.src.math.ceil
+    libc.src.math.ceilf
+    libc.src.math.ceilf128
+    libc.src.math.ceill
+    libc.src.math.cos
+    libc.src.math.cosf
+    libc.src.math.coshf
+    libc.src.math.daddl
+    libc.src.math.ddivl
+    libc.src.math.dfmal
+    libc.src.math.dsubl
+    libc.src.math.erff
+    libc.src.math.exp
+    libc.src.math.expf
+    libc.src.math.exp10
+    libc.src.math.exp10f
+    libc.src.math.exp2
+    libc.src.math.exp2f
+    libc.src.math.expm1
+    libc.src.math.expm1f
+    libc.src.math.fabs
+    libc.src.math.fabsf
+    libc.src.math.fabsf128
+    libc.src.math.fabsf80
+    libc.src.math.fabsl
+    libc.src.math.fadd
+    libc.src.math.faddl
+    libc.src.math.fdim
+    libc.src.math.fdimf
+    libc.src.math.fdimf128
+    libc.src.math.fdiml
+    libc.src.math.fdiv
+    libc.src.math.fdivl
+    libc.src.math.ffma
+    libc.src.math.ffmal
+    libc.src.math.floor
+    libc.src.math.floorf
+    libc.src.math.floorf128
+    libc.src.math.floorl
+    libc.src.math.fma
+    libc.src.math.fmabf16
+    libc.src.math.fmaf
+    libc.src.math.fmaximum_mag_numf128
+    libc.src.math.fmaximum_magf128
+    libc.src.math.fmin
+    libc.src.math.fminf
+    libc.src.math.fminf128
+    libc.src.math.fminimum_mag_numf128
+    libc.src.math.fminimum_magf128
+    libc.src.math.fminl
+    libc.src.math.fmax
+    libc.src.math.fmaxf
+    libc.src.math.fmaxf128
+    libc.src.math.fmaxl
+    libc.src.math.fmaximum
+    libc.src.math.fmaximumf
+    libc.src.math.fmaximumf128
+    libc.src.math.fmaximuml
+    libc.src.math.fmaximum_num
+    libc.src.math.fmaximum_numf
+    libc.src.math.fmaximum_numf128
+    libc.src.math.fmaximum_numl
+    libc.src.math.fmaximum_mag
+    libc.src.math.fmaximum_magf
+    libc.src.math.fmaximum_magl
+    libc.src.math.fmaximum_mag_num
+    libc.src.math.fmaximum_mag_numf
+    libc.src.math.fmaximum_mag_numl
+    libc.src.math.fminimum
+    libc.src.math.fminimumf
+    libc.src.math.fminimumf128
+    libc.src.math.fminimuml
+    libc.src.math.fminimum_num
+    libc.src.math.fminimum_numf
+    libc.src.math.fminimum_numf128
+    libc.src.math.fminimum_numl
+    libc.src.math.fminimum_mag
+    libc.src.math.fminimum_magf
+    libc.src.math.fminimum_magl
+    libc.src.math.fminimum_mag_num
+    libc.src.math.fminimum_mag_numf
+    libc.src.math.fminimum_mag_numl
+    libc.src.math.fmul
+    libc.src.math.fmod
+    libc.src.math.fmodf
+    libc.src.math.fmodl
+    libc.src.math.frexp
+    libc.src.math.frexpf
+    libc.src.math.frexpl
+    libc.src.math.fsub
+    libc.src.math.fsubl
+    libc.src.math.hypot
+    libc.src.math.hypotf
+    libc.src.math.ilogb
+    libc.src.math.ilogbf
+    libc.src.math.ilogbl
+    libc.src.math.iscanonicalf128
+    libc.src.math.isnanf128
+    libc.src.math.issignalingf128
+    libc.src.math.ldexp
+    libc.src.math.ldexpf
+    libc.src.math.ldexpl
+    libc.src.math.lgammaf
+    libc.src.math.llrint
+    libc.src.math.llrintf
+    libc.src.math.llrintf128
+    libc.src.math.llrintl
+    libc.src.math.llround
+    libc.src.math.llroundf
+    libc.src.math.llroundf128
+    libc.src.math.llroundl
+    libc.src.math.log10
+    libc.src.math.log10f
+    libc.src.math.log1p
+    libc.src.math.log1pf
+    libc.src.math.log2
+    libc.src.math.log2f
+    libc.src.math.log
+    libc.src.math.logf
+    libc.src.math.logb
+    libc.src.math.logbf
+    libc.src.math.logbl
+    libc.src.math.lrint
+    libc.src.math.lrintf
+    libc.src.math.lrintf128
+    libc.src.math.lrintl
+    libc.src.math.lround
+    libc.src.math.lroundf
+    libc.src.math.lroundf128
+    libc.src.math.lroundl
+    libc.src.math.modf
+    libc.src.math.modff
+    libc.src.math.modfl
+    libc.src.math.nan
+    libc.src.math.nanf
+    libc.src.math.nanl
+    libc.src.math.nearbyint
+    libc.src.math.nearbyintf
+    libc.src.math.nearbyintf128
+    libc.src.math.nearbyintl
+    libc.src.math.nextafter
+    libc.src.math.nextafterf
+    libc.src.math.nextafterl
+    libc.src.math.nexttoward
+    libc.src.math.nexttowardf
+    libc.src.math.nexttowardl
+    libc.src.math.pow
+    libc.src.math.powf
+    libc.src.math.remainderf
+    libc.src.math.remainder
+    libc.src.math.remainderl
+    libc.src.math.remquof
+    libc.src.math.remquo
+    libc.src.math.remquol
+    libc.src.math.rint
+    libc.src.math.rintf
+    libc.src.math.rintf128
+    libc.src.math.rintl
+    libc.src.math.round
+    libc.src.math.roundevenf128
+    libc.src.math.roundf
+    libc.src.math.roundf128
+    libc.src.math.roundl
+    libc.src.math.scalbln
+    libc.src.math.scalblnf
+    libc.src.math.scalblnl
+    libc.src.math.scalbn
+    libc.src.math.scalbnf
+    libc.src.math.scalbnl
+    libc.src.math.sin
+    libc.src.math.sincosf
+    libc.src.math.sincosf
+    libc.src.math.sinf
+    libc.src.math.sinhf
+    libc.src.math.sqrt
+    libc.src.math.sqrtf
+    libc.src.math.sqrtf128
+    libc.src.math.sqrtl
+    libc.src.math.tan
+    libc.src.math.tanf
+    libc.src.math.tanhf
+    libc.src.math.tanpif
+    libc.src.math.trunc
+    libc.src.math.truncf
+    libc.src.math.truncf128
+    libc.src.math.truncl
+)
+
+list(APPEND TARGET_LIBM_ENTRYPOINTS
+  # bfloat16 entrypoints
+  libc.src.math.atanbf16
+  libc.src.math.acosbf16
+  libc.src.math.asinbf16
+  libc.src.math.bf16add
+  libc.src.math.bf16addf
+  libc.src.math.bf16addl
+  libc.src.math.bf16div
+  libc.src.math.bf16divf
+  libc.src.math.bf16divl
+  libc.src.math.bf16fma
+  libc.src.math.bf16fmaf
+  libc.src.math.bf16fmal
+  libc.src.math.bf16mul
+  libc.src.math.bf16mulf
+  libc.src.math.bf16mull
+  libc.src.math.bf16sub
+  libc.src.math.bf16subf
+  libc.src.math.bf16subl
+  libc.src.math.canonicalizebf16
+  libc.src.math.ceilbf16
+  libc.src.math.copysignbf16
+  libc.src.math.exp2bf16
+  libc.src.math.expbf16
+  libc.src.math.fabsbf16
+  libc.src.math.fdimbf16
+  libc.src.math.floorbf16
+  libc.src.math.fmaxbf16
+  libc.src.math.fmaximumbf16
+  libc.src.math.fmaximum_magbf16
+  libc.src.math.fmaximum_mag_numbf16
+  libc.src.math.fmaximum_numbf16
+  libc.src.math.fminbf16
+  libc.src.math.fminimumbf16
+  libc.src.math.fminimum_magbf16
+  libc.src.math.fminimum_mag_numbf16
+  libc.src.math.fminimum_numbf16
+  libc.src.math.fmodbf16
+  libc.src.math.frexpbf16
+  libc.src.math.fromfpbf16
+  libc.src.math.fromfpxbf16
+  libc.src.math.getpayloadbf16
+  libc.src.math.hypotbf16
+  libc.src.math.ilogbbf16
+  libc.src.math.iscanonicalbf16
+  libc.src.math.issignalingbf16
+  libc.src.math.ldexpbf16
+  libc.src.math.llogbbf16
+  libc.src.math.llrintbf16
+  libc.src.math.llroundbf16
+  libc.src.math.log_bf16
+  libc.src.math.logbbf16
+  libc.src.math.lrintbf16
+  libc.src.math.lroundbf16
+  libc.src.math.modfbf16
+  libc.src.math.nanbf16
+  libc.src.math.nearbyintbf16
+  libc.src.math.nextafterbf16
+  libc.src.math.nextdownbf16
+  libc.src.math.nexttowardbf16
+  libc.src.math.nextupbf16
+  libc.src.math.remainderbf16
+  libc.src.math.remquobf16
+  libc.src.math.rintbf16
+  libc.src.math.roundbf16
+  libc.src.math.roundevenbf16
+  libc.src.math.scalblnbf16
+  libc.src.math.scalbnbf16
+  libc.src.math.setpayloadbf16
+  libc.src.math.setpayloadsigbf16
+  libc.src.math.sqrtbf16
+  libc.src.math.tanbf16
+  libc.src.math.truncbf16
+  libc.src.math.totalorderbf16
+  libc.src.math.totalordermagbf16
+  libc.src.math.ufromfpbf16
+  libc.src.math.ufromfpxbf16
+)
+
+set(TARGET_LLVMLIBC_ENTRYPOINTS
+  ${TARGET_LIBC_ENTRYPOINTS}
+  ${TARGET_LIBM_ENTRYPOINTS}
+)
+



More information about the libc-commits mailing list