[llvm] [bazel] Improve libc build on macOS (PR #86174)
Keith Smiley via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 26 10:16:23 PDT 2024
https://github.com/keith updated https://github.com/llvm/llvm-project/pull/86174
>From bc0124ab39c40d8e466641ad3a94b4d2d8617b90 Mon Sep 17 00:00:00 2001
From: Keith Smiley <keithbsmiley at gmail.com>
Date: Thu, 21 Mar 2024 11:44:58 -0700
Subject: [PATCH] [bazel] Improve libc build on macOS
This isn't enough to get everything in libc working, but I started down
this path and these were the first required fixes. I might get back to
more changes later.
---
.../llvm-project-overlay/libc/BUILD.bazel | 86 ++++++++++++++++---
1 file changed, 73 insertions(+), 13 deletions(-)
diff --git a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
index 57dc75a3a48e60..f697b62c538d85 100644
--- a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
@@ -94,6 +94,10 @@ libc_support_library(
libc_support_library(
name = "llvm_libc_types_float128",
hdrs = ["include/llvm-libc-types/float128.h"],
+ target_compatible_with = select({
+ "@platforms//os:linux": [],
+ "//conditions:default": ["@platforms//:incompatible"],
+ }),
deps = [":llvm_libc_macros_float_macros"],
)
@@ -622,12 +626,12 @@ libc_support_library(
name = "__support_fputil_basic_operations",
hdrs = ["src/__support/FPUtil/BasicOperations.h"],
deps = [
- ":__support_fputil_fenv_impl",
- ":__support_macros_optimization",
- ":__support_uint128",
":__support_common",
":__support_cpp_type_traits",
+ ":__support_fputil_fenv_impl",
":__support_fputil_fp_bits",
+ ":__support_macros_optimization",
+ ":__support_uint128",
],
)
@@ -974,11 +978,17 @@ libc_support_library(
libc_support_library(
name = "__support_osutil_syscall",
hdrs = ["src/__support/OSUtil/syscall.h"],
- textual_hdrs = [
- "src/__support/OSUtil/linux/syscall.h",
- "src/__support/OSUtil/linux/aarch64/syscall.h",
- "src/__support/OSUtil/linux/x86_64/syscall.h",
- ],
+ textual_hdrs = select({
+ "@platforms//os:macos": [
+ "src/__support/OSUtil/darwin/syscall.h",
+ "src/__support/OSUtil/darwin/arm/syscall.h",
+ ],
+ "//conditions:default": [
+ "src/__support/OSUtil/linux/syscall.h",
+ "src/__support/OSUtil/linux/aarch64/syscall.h",
+ "src/__support/OSUtil/linux/x86_64/syscall.h",
+ ],
+ }),
deps = [
":__support_common",
":__support_cpp_bit",
@@ -988,9 +998,10 @@ libc_support_library(
libc_support_library(
name = "__support_osutil_io",
hdrs = ["src/__support/OSUtil/io.h"],
- textual_hdrs = [
- "src/__support/OSUtil/linux/io.h",
- ],
+ textual_hdrs = select({
+ "@platforms//os:macos": ["src/__support/OSUtil/darwin/io.h"],
+ "//conditions:default": ["src/__support/OSUtil/linux/io.h"],
+ }),
deps = [
":__support_common",
":__support_cpp_string_view",
@@ -1001,8 +1012,12 @@ libc_support_library(
libc_support_library(
name = "__support_osutil_quick_exit",
- hdrs = ["src/__support/OSUtil/quick_exit.h"],
srcs = ["src/__support/OSUtil/linux/quick_exit.cpp"],
+ hdrs = ["src/__support/OSUtil/quick_exit.h"],
+ target_compatible_with = select({
+ "@platforms//os:linux": [],
+ "//conditions:default": ["@platforms//:incompatible"],
+ }),
deps = [
":__support_osutil_syscall",
],
@@ -1021,6 +1036,10 @@ libc_support_library(
"src/__support/StringUtil/error_to_string.h",
"src/__support/StringUtil/signal_to_string.h",
],
+ target_compatible_with = select({
+ "@platforms//os:linux": [],
+ "//conditions:default": ["@platforms//:incompatible"],
+ }),
deps = [
":__support_cpp_array",
":__support_cpp_span",
@@ -1038,6 +1057,10 @@ libc_support_library(
"src/__support/threads/mutex.h",
"src/__support/threads/mutex_common.h",
],
+ target_compatible_with = select({
+ "@platforms//os:linux": [],
+ "//conditions:default": ["@platforms//:incompatible"],
+ }),
textual_hdrs = [
"src/__support/threads/linux/mutex.h",
"src/__support/threads/linux/futex_word.h",
@@ -1934,7 +1957,12 @@ libc_math_function(name = "copysignf")
libc_math_function(name = "copysignl")
-libc_math_function(name = "copysignf128")
+libc_math_function(
+ name = "copysignf128",
+ additional_deps = [
+ ":llvm_libc_types_float128",
+ ],
+)
libc_math_function(name = "ilogb")
@@ -2600,6 +2628,10 @@ libc_function(
name = "open",
srcs = ["src/fcntl/linux/open.cpp"],
hdrs = ["src/fcntl/open.h"],
+ target_compatible_with = select({
+ "@platforms//os:linux": [],
+ "//conditions:default": ["@platforms//:incompatible"],
+ }),
deps = [
":__support_common",
":__support_osutil_syscall",
@@ -2611,6 +2643,10 @@ libc_function(
name = "openat",
srcs = ["src/fcntl/linux/openat.cpp"],
hdrs = ["src/fcntl/openat.h"],
+ target_compatible_with = select({
+ "@platforms//os:linux": [],
+ "//conditions:default": ["@platforms//:incompatible"],
+ }),
deps = [
":__support_common",
":__support_osutil_syscall",
@@ -2690,6 +2726,10 @@ libc_function(
name = "dup3",
srcs = ["src/unistd/linux/dup3.cpp"],
hdrs = ["src/unistd/dup3.h"],
+ target_compatible_with = select({
+ "@platforms//os:linux": [],
+ "//conditions:default": ["@platforms//:incompatible"],
+ }),
deps = [
":__support_common",
":__support_osutil_syscall",
@@ -2859,6 +2899,10 @@ libc_function(
name = "pread",
srcs = ["src/unistd/linux/pread.cpp"],
hdrs = ["src/unistd/pread.h"],
+ target_compatible_with = select({
+ "@platforms//os:linux": [],
+ "//conditions:default": ["@platforms//:incompatible"],
+ }),
deps = [
":__support_common",
":__support_osutil_syscall",
@@ -2870,6 +2914,10 @@ libc_function(
name = "pwrite",
srcs = ["src/unistd/linux/pwrite.cpp"],
hdrs = ["src/unistd/pwrite.h"],
+ target_compatible_with = select({
+ "@platforms//os:linux": [],
+ "//conditions:default": ["@platforms//:incompatible"],
+ }),
deps = [
":__support_common",
":__support_osutil_syscall",
@@ -3272,6 +3320,10 @@ libc_function(
name = "rename",
srcs = ["src/stdio/linux/rename.cpp"],
hdrs = ["src/stdio/rename.h"],
+ target_compatible_with = select({
+ "@platforms//os:linux": [],
+ "//conditions:default": ["@platforms//:incompatible"],
+ }),
deps = [
":__support_common",
":__support_osutil_syscall",
@@ -3310,6 +3362,10 @@ libc_function(
name = "epoll_wait",
srcs = ["src/sys/epoll/linux/epoll_wait.cpp"],
hdrs = ["src/sys/epoll/epoll_wait.h"],
+ target_compatible_with = select({
+ "@platforms//os:linux": [],
+ "//conditions:default": ["@platforms//:incompatible"],
+ }),
weak = True,
deps = [
":__support_osutil_syscall",
@@ -3321,6 +3377,10 @@ libc_function(
name = "epoll_pwait",
srcs = ["src/sys/epoll/linux/epoll_pwait.cpp"],
hdrs = ["src/sys/epoll/epoll_pwait.h"],
+ target_compatible_with = select({
+ "@platforms//os:linux": [],
+ "//conditions:default": ["@platforms//:incompatible"],
+ }),
weak = True,
deps = [
":__support_osutil_syscall",
More information about the llvm-commits
mailing list