Skip to content

Commit 4de7026

Browse files
committed
[bazel] Split linux time targets to avoid dependency cycles
clock_gettime is much heavier than the others as it depends on vdso.
1 parent 3c5c61a commit 4de7026

File tree

1 file changed

+57
-17
lines changed

1 file changed

+57
-17
lines changed

utils/bazel/llvm-project-overlay/libc/BUILD.bazel

Lines changed: 57 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1084,25 +1084,26 @@ libc_support_library(
10841084
name = "__support_osutil_vdso",
10851085
hdrs = [
10861086
"src/__support/OSUtil/linux/vdso.h",
1087-
"src/__support/OSUtil/linux/vdso_sym.h"
1087+
"src/__support/OSUtil/linux/vdso_sym.h",
10881088
],
1089+
target_compatible_with = select({
1090+
"@platforms//os:linux": [],
1091+
"//conditions:default": ["@platforms//:incompatible"],
1092+
}),
10891093
textual_hdrs = [
10901094
"src/__support/OSUtil/linux/riscv/vdso.h",
10911095
"src/__support/OSUtil/linux/arm/vdso.h",
10921096
"src/__support/OSUtil/linux/x86_64/vdso.h",
10931097
"src/__support/OSUtil/linux/aarch64/vdso.h",
10941098
],
1095-
target_compatible_with = select({
1096-
"@platforms//os:linux": [],
1097-
"//conditions:default": ["@platforms//:incompatible"],
1098-
}),
10991099
deps = [
11001100
":__support_cpp_array",
11011101
":__support_cpp_optional",
11021102
":__support_cpp_string_view",
11031103
":__support_threads_callonce",
11041104
":types_clock_t",
1105-
":types_struct_timeval"
1105+
":types_clockid_t",
1106+
":types_struct_timeval",
11061107
],
11071108
)
11081109

@@ -1190,7 +1191,7 @@ libc_support_library(
11901191
":__support_cpp_optional",
11911192
":__support_osutil_syscall",
11921193
":__support_threads_linux_futex_word_type",
1193-
":__support_time_linux",
1194+
":__support_time_linux_abs_timeout",
11941195
":types_struct_timespec",
11951196
],
11961197
)
@@ -1218,10 +1219,12 @@ libc_support_library(
12181219
"//conditions:default": ["@platforms//:incompatible"],
12191220
}),
12201221
deps = [
1222+
":__support_cpp_expected",
12211223
":__support_cpp_optional",
12221224
":__support_threads_linux_futex_utils",
12231225
":__support_threads_sleep",
1224-
":__support_time_linux",
1226+
":__support_time_linux_abs_timeout",
1227+
":__support_time_linux_monotonicity",
12251228
":types_pid_t",
12261229
],
12271230
)
@@ -1248,7 +1251,6 @@ libc_support_library(
12481251
],
12491252
)
12501253

1251-
12521254
libc_support_library(
12531255
name = "__support_threads_callonce",
12541256
hdrs = [
@@ -1263,7 +1265,8 @@ libc_support_library(
12631265
],
12641266
deps = [
12651267
":__support_macros_config",
1266-
":__support_macros_optimization"
1268+
":__support_macros_optimization",
1269+
":__support_threads_linux_futex_utils",
12671270
],
12681271
)
12691272

@@ -1278,25 +1281,62 @@ libc_support_library(
12781281
)
12791282

12801283
libc_support_library(
1281-
name = "__support_time_linux",
1282-
hdrs = glob(["src/__support/time/linux/**/*.h"]),
1284+
name = "__support_time_linux_abs_timeout",
1285+
hdrs = ["src/__support/time/linux/abs_timeout.h"],
12831286
target_compatible_with = select({
12841287
"@platforms//os:linux": [],
12851288
"//conditions:default": ["@platforms//:incompatible"],
12861289
}),
12871290
deps = [
1288-
":__support_common",
12891291
":__support_cpp_expected",
1290-
":__support_error_or",
1291-
":__support_libc_assert",
1292-
":__support_osutil_vdso",
12931292
":__support_time",
12941293
":hdr_time_macros",
1295-
":types_clockid_t",
12961294
":types_struct_timespec",
12971295
],
12981296
)
12991297

1298+
libc_support_library(
1299+
name = "__support_time_linux_clock_conversion",
1300+
hdrs = ["src/__support/time/linux/clock_conversion.h"],
1301+
target_compatible_with = select({
1302+
"@platforms//os:linux": [],
1303+
"//conditions:default": ["@platforms//:incompatible"],
1304+
}),
1305+
deps = [
1306+
":__support_time",
1307+
":__support_time_linux_clock_gettime",
1308+
],
1309+
)
1310+
1311+
libc_support_library(
1312+
name = "__support_time_linux_clock_gettime",
1313+
hdrs = ["src/__support/time/linux/clock_gettime.h"],
1314+
target_compatible_with = select({
1315+
"@platforms//os:linux": [],
1316+
"//conditions:default": ["@platforms//:incompatible"],
1317+
}),
1318+
deps = [
1319+
":__support_common",
1320+
":__support_error_or",
1321+
":__support_osutil_vdso",
1322+
],
1323+
)
1324+
1325+
libc_support_library(
1326+
name = "__support_time_linux_monotonicity",
1327+
hdrs = ["src/__support/time/linux/monotonicity.h"],
1328+
target_compatible_with = select({
1329+
"@platforms//os:linux": [],
1330+
"//conditions:default": ["@platforms//:incompatible"],
1331+
}),
1332+
deps = [
1333+
":__support_libc_assert",
1334+
":__support_time_linux_abs_timeout",
1335+
":__support_time_linux_clock_conversion",
1336+
":hdr_time_macros",
1337+
],
1338+
)
1339+
13001340
############################### errno targets ################################
13011341

13021342
libc_function(

0 commit comments

Comments
 (0)