Skip to content

Commit 0ffea21

Browse files
[libc] Small improvements to libc cmake
This patch includes: 1. Better error message when cmake finds incompatible triple 2. Added missing header dependencies libc/include/CMakeLists.txt as per app.td 3. Removed unused $LLVM_LIBC_INCLUDE_DIRS cmake variable Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D145496
1 parent e510d0b commit 0ffea21

File tree

6 files changed

+44
-32
lines changed

6 files changed

+44
-32
lines changed

libc/cmake/modules/LLVMLibCArchitectures.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,8 @@ if(explicit_target_triple AND
178178
set(LIBC_CROSSBUILD TRUE)
179179
if(CMAKE_COMPILER_IS_GNUCXX)
180180
message(FATAL_ERROR
181-
"GCC target triple and the explicity specified target triple do "
182-
"not match.")
181+
"GCC target triple (${libc_compiler_triple}) and the explicity "
182+
"specified target triple (${explicit_target_triple}) do not match.")
183183
else()
184184
list(APPEND
185185
LIBC_COMPILE_OPTIONS_DEFAULT "--target=${explicit_target_triple}")

libc/config/linux/api.td

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,6 @@ def SchedAPI : PublicAPI<"sched.h"> {
108108

109109
def SysMManAPI : PublicAPI<"sys/mman.h"> {
110110
let Types = ["off_t", "size_t"];
111-
let Macros = [
112-
];
113-
114111
}
115112

116113
def SignalAPI : PublicAPI<"signal.h"> {
@@ -177,15 +174,17 @@ def DirentAPI : PublicAPI<"dirent.h"> {
177174
}
178175

179176
def UniStdAPI : PublicAPI<"unistd.h"> {
180-
let Types = ["__exec_argv_t", "__exec_envp_t", "off_t", "pid_t", "size_t", "ssize_t", "uid_t", "__getoptargv_t"];
177+
let Types = ["__exec_argv_t", "__exec_envp_t", "off_t", "pid_t", "size_t",
178+
"ssize_t", "uid_t", "__getoptargv_t"];
181179
}
182180

183181
def SysRandomAPI : PublicAPI<"sys/random.h"> {
184182
let Types = ["size_t", "ssize_t"];
185183
}
186184

187185
def SysSelectAPI : PublicAPI<"sys/select.h"> {
188-
let Types = ["fd_set", "sigset_t", "suseconds_t", "time_t", "struct timespec", "struct timeval"];
186+
let Types = ["fd_set", "sigset_t", "suseconds_t", "time_t", "struct timespec",
187+
"struct timeval"];
189188
}
190189

191190
def SysResourceAPI : PublicAPI<"sys/resource.h"> {

libc/include/CMakeLists.txt

Lines changed: 35 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ add_gen_header(
2424
GEN_HDR dirent.h
2525
DEPENDS
2626
.llvm_libc_common_h
27-
.llvm-libc-types.DIR
2827
.llvm-libc-types.ino_t
28+
.llvm-libc-types.DIR
2929
.llvm-libc-types.struct_dirent
3030
)
3131

@@ -124,12 +124,12 @@ add_gen_header(
124124
DEPENDS
125125
.llvm_libc_common_h
126126
.llvm-libc-macros.time_macros
127-
.llvm-libc-types.time_t
128127
.llvm-libc-types.clock_t
129-
.llvm-libc-types.clockid_t
128+
.llvm-libc-types.time_t
130129
.llvm-libc-types.struct_tm
131130
.llvm-libc-types.struct_timespec
132131
.llvm-libc-types.struct_timeval
132+
.llvm-libc-types.clockid_t
133133
)
134134

135135
add_gen_header(
@@ -139,11 +139,11 @@ add_gen_header(
139139
DEPENDS
140140
.llvm_libc_common_h
141141
.llvm-libc-types.__call_once_func_t
142+
.llvm-libc-types.once_flag
142143
.llvm-libc-types.cnd_t
143144
.llvm-libc-types.mtx_t
144-
.llvm-libc-types.once_flag
145-
.llvm-libc-types.thrd_start_t
146145
.llvm-libc-types.thrd_t
146+
.llvm-libc-types.thrd_start_t
147147
.llvm-libc-types.tss_t
148148
.llvm-libc-types.tss_dtor_t
149149
)
@@ -166,11 +166,12 @@ add_gen_header(
166166
../config/${LIBC_TARGET_OS}/signal.h.in
167167
DEPENDS
168168
.llvm-libc-macros.signal_macros
169-
.llvm-libc-types.__sighandler_t
170-
.llvm-libc-types.sigset_t
171169
.llvm-libc-types.sig_atomic_t
172-
.llvm-libc-types.stack_t
170+
.llvm-libc-types.sigset_t
173171
.llvm-libc-types.struct_sigaction
172+
.llvm-libc-types.union_sigval
173+
.llvm-libc-types.siginfo_t
174+
.llvm-libc-types.stack_t
174175
.llvm-libc-types.pid_t
175176
)
176177

@@ -182,10 +183,9 @@ add_gen_header(
182183
.llvm_libc_common_h
183184
.llvm-libc-macros.file_seek_macros
184185
.llvm-libc-macros.stdio_macros
185-
.llvm-libc-types.cookie_io_functions_t
186-
.llvm-libc-types.FILE
187-
.llvm-libc-types.off_t
188186
.llvm-libc-types.size_t
187+
.llvm-libc-types.FILE
188+
.llvm-libc-types.cookie_io_functions_t
189189
)
190190

191191
add_gen_header(
@@ -195,12 +195,12 @@ add_gen_header(
195195
DEPENDS
196196
.llvm_libc_common_h
197197
.llvm-libc-macros.stdlib_macros
198-
.llvm-libc-types.__bsearchcompare_t
199-
.llvm-libc-types.__qsortcompare_t
200198
.llvm-libc-types.div_t
201199
.llvm-libc-types.ldiv_t
202200
.llvm-libc-types.lldiv_t
203201
.llvm-libc-types.size_t
202+
.llvm-libc-types.__bsearchcompare_t
203+
.llvm-libc-types.__qsortcompare_t
204204
.llvm-libc-types.__atexithandler_t
205205
)
206206

@@ -229,15 +229,15 @@ add_gen_header(
229229
DEPENDS
230230
.llvm_libc_common_h
231231
.llvm-libc-types.__atfork_callback_t
232+
.llvm-libc-types.__pthread_once_func_t
232233
.llvm-libc-types.__pthread_start_t
233234
.llvm-libc-types.__pthread_tss_dtor_t
234235
.llvm-libc-types.pthread_attr_t
235-
.llvm-libc-types.pthread_key_t
236236
.llvm-libc-types.pthread_mutex_t
237237
.llvm-libc-types.pthread_mutexattr_t
238-
.llvm-libc-types.pthread_once_t
239-
.llvm-libc-types.__pthread_once_func_t
240238
.llvm-libc-types.pthread_t
239+
.llvm-libc-types.pthread_key_t
240+
.llvm-libc-types.pthread_once_t
241241
)
242242

243243
add_gen_header(
@@ -246,8 +246,10 @@ add_gen_header(
246246
GEN_HDR sched.h
247247
DEPENDS
248248
.llvm_libc_common_h
249-
.llvm-libc-types.cpu_set_t
250249
.llvm-libc-macros.sched_macros
250+
.llvm-libc-types.pid_t
251+
.llvm-libc-types.size_t
252+
.llvm-libc-types.cpu_set_t
251253
)
252254

253255
add_gen_header(
@@ -291,9 +293,9 @@ add_gen_header(
291293
GEN_HDR sys/mman.h
292294
DEPENDS
293295
.llvm_libc_common_h
296+
.llvm-libc-macros.sys_mman_macros
294297
.llvm-libc-types.off_t
295298
.llvm-libc-types.ssize_t
296-
.llvm-libc-macros.sys_mman_macros
297299
)
298300

299301
add_gen_header(
@@ -311,8 +313,8 @@ add_gen_header(
311313
DEPENDS
312314
.llvm_libc_common_h
313315
.llvm-libc-macros.sys_random_macros
314-
.llvm-libc-types.ssize_t
315316
.llvm-libc-types.size_t
317+
.llvm-libc-types.ssize_t
316318
)
317319

318320
add_gen_header(
@@ -334,6 +336,16 @@ add_gen_header(
334336
.llvm_libc_common_h
335337
.llvm-libc-macros.sys_stat_macros
336338
.llvm-libc-types.mode_t
339+
.llvm-libc-types.dev_t
340+
.llvm-libc-types.ino_t
341+
.llvm-libc-types.nlink_t
342+
.llvm-libc-types.uid_t
343+
.llvm-libc-types.gid_t
344+
.llvm-libc-types.off_t
345+
.llvm-libc-types.struct_timespec
346+
.llvm-libc-types.struct_timeval
347+
.llvm-libc-types.blksize_t
348+
.llvm-libc-types.blkcnt_t
337349
.llvm-libc-types.struct_stat
338350
)
339351

@@ -346,11 +358,10 @@ add_gen_header(
346358
.llvm-libc-macros.sys_select_macros
347359
.llvm-libc-types.fd_set
348360
.llvm-libc-types.sigset_t
349-
.llvm-libc-types.struct_timespec
350-
.llvm-libc-types.struct_timeval
351361
.llvm-libc-types.suseconds_t
352362
.llvm-libc-types.time_t
353-
.llvm-libc-types.ssize_t
363+
.llvm-libc-types.struct_timespec
364+
.llvm-libc-types.struct_timeval
354365
)
355366

356367
add_gen_header(
@@ -360,6 +371,7 @@ add_gen_header(
360371
DEPENDS
361372
.llvm_libc_common_h
362373
.llvm-libc-types.off_t
374+
.llvm-libc-types.size_t
363375
.llvm-libc-types.ssize_t
364376
)
365377

@@ -449,6 +461,7 @@ add_gen_header(
449461
.llvm_libc_common_h
450462
.llvm-libc-macros.termios_macros
451463
.llvm-libc-types.cc_t
464+
.llvm-libc-types.pid_t
452465
.llvm-libc-types.speed_t
453466
.llvm-libc-types.struct_termios
454467
.llvm-libc-types.tcflag_t

libc/src/stdlib/linux/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,5 @@ add_entrypoint_object(
1919
DEPENDS
2020
libc.include.stdlib
2121
libc.src.signal.raise
22-
._Exit
22+
libc.src.stdlib._Exit
2323
)

libc/utils/HdrGen/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ add_tablegen(libc-hdrgen LIBC
1414
PublicAPICommand.h
1515
)
1616

17-
target_include_directories(libc-hdrgen PRIVATE ${LIBC_SOURCE_DIR} ${LLVM_LIBC_INCLUDE_DIRS})
17+
target_include_directories(libc-hdrgen PRIVATE ${LIBC_SOURCE_DIR})
1818
target_link_libraries(libc-hdrgen PRIVATE LibcTableGenUtil)
1919

2020
add_subdirectory(PrototypeTestGen)

libc/utils/LibcTableGenUtil/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ add_llvm_library(
44
APIIndexer.h
55
LINK_COMPONENTS Support TableGen
66
)
7-
target_include_directories(LibcTableGenUtil PUBLIC ${LIBC_SOURCE_DIR} ${LLVM_LIBC_INCLUDE_DIRS})
7+
target_include_directories(LibcTableGenUtil PUBLIC ${LIBC_SOURCE_DIR})

0 commit comments

Comments
 (0)