[flang] Use object before converts in fir.dispatch (#68589)
[llvm-project.git] / libc / src / stdlib / CMakeLists.txt
blobc54d32eb7afdb1adf07630323f32f2c9a52838f4
1 add_entrypoint_object(
2   atoi
3   SRCS
4     atoi.cpp
5   HDRS
6     atoi.h
7   DEPENDS
8     libc.src.errno.errno
9     libc.src.__support.str_to_integer
12 add_entrypoint_object(
13   atof
14   SRCS
15     atof.cpp
16   HDRS
17     atof.h
18   DEPENDS
19     libc.src.errno.errno
20     libc.src.__support.str_to_float
23 add_entrypoint_object(
24   atol
25   SRCS
26     atol.cpp
27   HDRS
28     atol.h
29   DEPENDS
30     libc.src.errno.errno
31     libc.src.__support.str_to_integer
34 add_entrypoint_object(
35   atoll
36   SRCS
37     atoll.cpp
38   HDRS
39     atoll.h
40   DEPENDS
41     libc.src.errno.errno
42     libc.src.__support.str_to_integer
45 add_entrypoint_object(
46   getenv
47   SRCS
48     getenv.cpp
49   HDRS
50     getenv.h
51   DEPENDS
52     libc.config.linux.app_h
55 add_entrypoint_object(
56   strtof
57   SRCS
58     strtof.cpp
59   HDRS
60     strtof.h
61   DEPENDS
62     libc.src.errno.errno
63     libc.src.__support.str_to_float
66 add_entrypoint_object(
67   strtod
68   SRCS
69     strtod.cpp
70   HDRS
71     strtod.h
72   DEPENDS
73     libc.src.errno.errno
74     libc.src.__support.str_to_float
77 add_entrypoint_object(
78   strtold
79   SRCS
80     strtold.cpp
81   HDRS
82     strtold.h
83   DEPENDS
84     libc.src.errno.errno
85     libc.src.__support.str_to_float
88 add_entrypoint_object(
89   strtol
90   SRCS
91     strtol.cpp
92   HDRS
93     strtol.h
94   DEPENDS
95     libc.src.errno.errno
96     libc.src.__support.str_to_integer
99 add_entrypoint_object(
100   strtoll
101   SRCS
102     strtoll.cpp
103   HDRS
104     strtoll.h
105   DEPENDS
106     libc.src.errno.errno
107     libc.src.__support.str_to_integer
110 add_entrypoint_object(
111   strtoul
112   SRCS
113     strtoul.cpp
114   HDRS
115     strtoul.h
116   DEPENDS
117     libc.src.errno.errno
118     libc.src.__support.str_to_integer
121 add_entrypoint_object(
122   strtoull
123   SRCS
124     strtoull.cpp
125   HDRS
126     strtoull.h
127   DEPENDS
128     libc.src.errno.errno
129     libc.src.__support.str_to_integer
132 add_entrypoint_object(
133   abs
134   SRCS
135     abs.cpp
136   HDRS
137     abs.h
138   DEPENDS
139     libc.src.__support.integer_operations
142 add_entrypoint_object(
143   labs
144   SRCS
145     labs.cpp
146   HDRS
147     labs.h
148   DEPENDS
149     libc.src.__support.integer_operations
152 add_entrypoint_object(
153   llabs
154   SRCS
155     llabs.cpp
156   HDRS
157     llabs.h
158   DEPENDS
159     libc.src.__support.integer_operations
162 add_entrypoint_object(
163   div
164   SRCS
165     div.cpp
166   HDRS
167     div.h
168   DEPENDS
169     libc.include.stdlib
170     libc.src.__support.integer_operations
173 add_entrypoint_object(
174   ldiv
175   SRCS
176     ldiv.cpp
177   HDRS
178     ldiv.h
179   DEPENDS
180     libc.include.stdlib
181     libc.src.__support.integer_operations
184 add_entrypoint_object(
185   lldiv
186   SRCS
187     lldiv.cpp
188   HDRS
189     lldiv.h
190   DEPENDS
191     libc.include.stdlib
192     libc.src.__support.integer_operations
195 add_entrypoint_object(
196   bsearch
197   SRCS
198     bsearch.cpp
199   HDRS
200     bsearch.h
201   DEPENDS
202     libc.include.stdlib
205 add_header_library(
206   qsort_util
207   HDRS
208     qsort_util.h
209   DEPENDS
210     libc.include.stdlib
213 add_entrypoint_object(
214   qsort
215   SRCS
216     qsort.cpp
217   HDRS
218     qsort.h
219   DEPENDS
220     .qsort_util
221     libc.include.stdlib
224 add_entrypoint_object(
225   qsort_r
226   SRCS
227     qsort_r.cpp
228   HDRS
229     qsort_r.h
230   DEPENDS
231     .qsort_util
232     libc.include.stdlib
235 add_object_library(
236   rand_util
237   SRCS
238     rand_util.cpp
239   HDRS
240     rand_util.h
241   DEPENDS
242     libc.src.__support.common
245 add_entrypoint_object(
246   rand
247   SRCS
248     rand.cpp
249   HDRS
250     rand.h
251   DEPENDS
252     .rand_util
253     libc.include.stdlib
256 add_entrypoint_object(
257   srand
258   SRCS
259     srand.cpp
260   HDRS
261     srand.h
262   DEPENDS
263     .rand_util
264     libc.include.stdlib
267 if(LLVM_LIBC_INCLUDE_SCUDO)
268   set(SCUDO_DEPS "")
270   include(${LIBC_SOURCE_DIR}/../compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake)
271   if(NOT (LIBC_TARGET_ARCHITECTURE IN_LIST ALL_SCUDO_STANDALONE_SUPPORTED_ARCH))
272     message(FATAL_ERROR "Architecture ${LIBC_TARGET_ARCHITECTURE} is not supported by SCUDO. 
273       Either disable LLVM_LIBC_INCLUDE_SCUDO or change your target architecture.")
274   endif()
276   list(APPEND SCUDO_DEPS RTScudoStandalone.${LIBC_TARGET_ARCHITECTURE}
277       RTScudoStandaloneCWrappers.${LIBC_TARGET_ARCHITECTURE})
279   list(APPEND SCUDO_DEPS
280     RTGwpAsan.${LIBC_TARGET_ARCHITECTURE}
281     RTGwpAsanBacktraceLibc.${LIBC_TARGET_ARCHITECTURE}
282     RTGwpAsanSegvHandler.${LIBC_TARGET_ARCHITECTURE}
283     )
284   
285   add_entrypoint_external(
286     malloc
287     DEPENDS
288       ${SCUDO_DEPS}
289   )
290   add_entrypoint_external(
291     calloc
292     DEPENDS
293       ${SCUDO_DEPS}
294   )
295   add_entrypoint_external(
296     realloc
297     DEPENDS
298       ${SCUDO_DEPS}
299   )
300   add_entrypoint_external(
301     aligned_alloc
302     DEPENDS
303       ${SCUDO_DEPS}
304   )
305   add_entrypoint_external(
306     free
307     DEPENDS
308       ${SCUDO_DEPS}
309   )
310 elseif(LIBC_TARGET_ARCHITECTURE_IS_GPU)
311   add_entrypoint_external(
312     calloc
313   )
314   add_entrypoint_external(
315     realloc
316   )
317   add_entrypoint_external(
318     aligned_alloc
319   )
320 else()
321   add_entrypoint_external(
322     malloc
323   )
324   add_entrypoint_external(
325     free
326   )
327   add_entrypoint_external(
328     calloc
329   )
330   add_entrypoint_external(
331     realloc
332   )
333   add_entrypoint_external(
334     aligned_alloc
335   )
336 endif()
338 if(NOT LLVM_LIBC_FULL_BUILD)
339   return()
340 endif()
342 if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_OS})
343   add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_OS})
344 endif()
346 add_entrypoint_object(
347   _Exit
348   SRCS
349     _Exit.cpp
350   HDRS
351     _Exit.h
352   DEPENDS
353     libc.include.stdlib
354     libc.src.__support.OSUtil.osutil
357 add_entrypoint_object(
358   atexit
359   SRCS
360     atexit.cpp
361   HDRS
362     atexit.h
363   CXX_STANDARD
364     20 # For constinit of the atexit callback list.
365   DEPENDS
366     libc.src.__support.fixedvector
367     libc.src.__support.blockstore
368     libc.src.__support.threads.mutex
369     libc.src.__support.CPP.new
372 add_entrypoint_object(
373   exit
374   SRCS
375     exit.cpp
376   HDRS
377     exit.h
378   DEPENDS
379     ._Exit
380     .atexit
381     libc.src.__support.OSUtil.osutil
384 add_entrypoint_object(
385   abort
386   ALIAS
387   DEPENDS
388     .${LIBC_TARGET_OS}.abort
391 if(LIBC_TARGET_ARCHITECTURE_IS_GPU)
392   add_entrypoint_object(
393     malloc
394     ALIAS
395     DEPENDS
396       .${LIBC_TARGET_OS}.malloc
397   )
399   add_entrypoint_object(
400     free
401     ALIAS
402     DEPENDS
403       .${LIBC_TARGET_OS}.free
404   )
405 endif()