1set(TARGET_LIBC_ENTRYPOINTS
2    # ctype.h entrypoints
3    libc.src.ctype.isalnum
4    libc.src.ctype.isalpha
5    libc.src.ctype.isascii
6    libc.src.ctype.isblank
7    libc.src.ctype.iscntrl
8    libc.src.ctype.isdigit
9    libc.src.ctype.isgraph
10    libc.src.ctype.islower
11    libc.src.ctype.isprint
12    libc.src.ctype.ispunct
13    libc.src.ctype.isspace
14    libc.src.ctype.isupper
15    libc.src.ctype.isxdigit
16    libc.src.ctype.toascii
17    libc.src.ctype.tolower
18    libc.src.ctype.toupper
19
20    # fcntl.h entrypoints
21    libc.src.fcntl.creat
22    libc.src.fcntl.open
23    libc.src.fcntl.openat
24
25    # string.h entrypoints
26    libc.src.string.bcmp
27    libc.src.string.bzero
28    libc.src.string.memccpy
29    libc.src.string.memchr
30    libc.src.string.memcmp
31    libc.src.string.memcpy
32    libc.src.string.memmove
33    libc.src.string.mempcpy
34    libc.src.string.memrchr
35    libc.src.string.memset
36    libc.src.string.stpcpy
37    libc.src.string.stpncpy
38    libc.src.string.strcat
39    libc.src.string.strchr
40    libc.src.string.strcmp
41    libc.src.string.strcpy
42    libc.src.string.strcspn
43    libc.src.string.strlcat
44    libc.src.string.strlcpy
45    libc.src.string.strlen
46    libc.src.string.strncat
47    libc.src.string.strncmp
48    libc.src.string.strncpy
49    libc.src.string.strnlen
50    libc.src.string.strpbrk
51    libc.src.string.strrchr
52    libc.src.string.strspn
53    libc.src.string.strstr
54    libc.src.string.strtok
55    libc.src.string.strtok_r
56
57    # string.h entrypoints that depend on malloc
58    libc.src.string.strdup
59    libc.src.string.strndup
60
61    # inttypes.h entrypoints
62    libc.src.inttypes.imaxabs
63    libc.src.inttypes.imaxdiv
64    libc.src.inttypes.strtoimax
65    libc.src.inttypes.strtoumax
66
67    # stdlib.h entrypoints
68    libc.src.stdlib.abs
69    libc.src.stdlib.atoi
70    libc.src.stdlib.atof
71    libc.src.stdlib.atol
72    libc.src.stdlib.atoll
73    libc.src.stdlib.bsearch
74    libc.src.stdlib.div
75    libc.src.stdlib.labs
76    libc.src.stdlib.ldiv
77    libc.src.stdlib.llabs
78    libc.src.stdlib.lldiv
79    libc.src.stdlib.qsort
80    libc.src.stdlib.strtod
81    libc.src.stdlib.strtof
82    libc.src.stdlib.strtol
83    libc.src.stdlib.strtold
84    libc.src.stdlib.strtoll
85    libc.src.stdlib.strtoul
86    libc.src.stdlib.strtoull
87
88    # stdlib.h external entrypoints
89    libc.src.stdlib.malloc
90    libc.src.stdlib.calloc
91    libc.src.stdlib.realloc
92    libc.src.stdlib.aligned_alloc
93    libc.src.stdlib.free
94
95    # sys/mman.h entrypoints
96    libc.src.sys.mman.mmap
97    libc.src.sys.mman.munmap
98
99    # sys/stat.h entrypoints
100    libc.src.sys.stat.mkdir
101    libc.src.sys.stat.mkdirat
102
103    # unistd.h entrypoints
104    libc.src.unistd.close
105    libc.src.unistd.fsync
106    libc.src.unistd.lseek
107    libc.src.unistd.read
108    libc.src.unistd.rmdir
109    libc.src.unistd.unlink
110    libc.src.unistd.unlinkat
111    libc.src.unistd.write
112)
113
114set(TARGET_LIBM_ENTRYPOINTS
115    # fenv.h entrypoints
116    libc.src.fenv.feclearexcept
117    libc.src.fenv.fedisableexcept
118    libc.src.fenv.feenableexcept
119    libc.src.fenv.fegetenv
120    libc.src.fenv.fegetexcept
121    libc.src.fenv.fegetexceptflag
122    libc.src.fenv.fegetround
123    libc.src.fenv.feholdexcept
124    libc.src.fenv.fesetenv
125    libc.src.fenv.fesetexceptflag
126    libc.src.fenv.fesetround
127    libc.src.fenv.feraiseexcept
128    libc.src.fenv.fetestexcept
129    libc.src.fenv.feupdateenv
130
131    # math.h entrypoints
132    libc.src.math.copysign
133    libc.src.math.copysignf
134    libc.src.math.copysignl
135    libc.src.math.ceil
136    libc.src.math.ceilf
137    libc.src.math.ceill
138    libc.src.math.cos
139    libc.src.math.cosf
140    libc.src.math.expf
141    libc.src.math.exp2f
142    libc.src.math.expm1f
143    libc.src.math.fabs
144    libc.src.math.fabsf
145    libc.src.math.fabsl
146    libc.src.math.fdim
147    libc.src.math.fdimf
148    libc.src.math.fdiml
149    libc.src.math.floor
150    libc.src.math.floorf
151    libc.src.math.floorl
152    libc.src.math.fma
153    libc.src.math.fmaf
154    libc.src.math.fmin
155    libc.src.math.fminf
156    libc.src.math.fminl
157    libc.src.math.fmax
158    libc.src.math.fmaxf
159    libc.src.math.fmaxl
160    libc.src.math.fmod
161    libc.src.math.fmodf
162    libc.src.math.frexp
163    libc.src.math.frexpf
164    libc.src.math.frexpl
165    libc.src.math.hypot
166    libc.src.math.hypotf
167    libc.src.math.ilogb
168    libc.src.math.ilogbf
169    libc.src.math.ilogbl
170    libc.src.math.ldexp
171    libc.src.math.ldexpf
172    libc.src.math.ldexpl
173    libc.src.math.llrint
174    libc.src.math.llrintf
175    libc.src.math.llrintl
176    libc.src.math.llround
177    libc.src.math.llroundf
178    libc.src.math.llroundl
179    libc.src.math.log10f
180    libc.src.math.log1pf
181    libc.src.math.log2f
182    libc.src.math.logf
183    libc.src.math.logb
184    libc.src.math.logbf
185    libc.src.math.logbl
186    libc.src.math.lrint
187    libc.src.math.lrintf
188    libc.src.math.lrintl
189    libc.src.math.lround
190    libc.src.math.lroundf
191    libc.src.math.lroundl
192    libc.src.math.modf
193    libc.src.math.modff
194    libc.src.math.modfl
195    libc.src.math.nearbyint
196    libc.src.math.nearbyintf
197    libc.src.math.nearbyintl
198    libc.src.math.nextafter
199    libc.src.math.nextafterf
200    libc.src.math.nextafterl
201    libc.src.math.remainderf
202    libc.src.math.remainder
203    libc.src.math.remainderl
204    libc.src.math.remquof
205    libc.src.math.remquo
206    libc.src.math.remquol
207    libc.src.math.rint
208    libc.src.math.rintf
209    libc.src.math.rintl
210    libc.src.math.round
211    libc.src.math.roundf
212    libc.src.math.roundl
213    libc.src.math.sin
214    libc.src.math.sincosf
215    libc.src.math.sinf
216    libc.src.math.sqrt
217    libc.src.math.sqrtf
218    libc.src.math.sqrtl
219    libc.src.math.tan
220    libc.src.math.trunc
221    libc.src.math.truncf
222    libc.src.math.truncl
223)
224
225if(LLVM_LIBC_FULL_BUILD)
226  list(APPEND TARGET_LIBC_ENTRYPOINTS
227    # assert.h entrypoints
228    # libc.src.assert.__assert_fail
229
230    # pthread.h entrypoints
231    libc.src.pthread.pthread_attr_destroy
232    libc.src.pthread.pthread_attr_init
233    libc.src.pthread.pthread_attr_getdetachstate
234    libc.src.pthread.pthread_attr_getguardsize
235    libc.src.pthread.pthread_attr_getstack
236    libc.src.pthread.pthread_attr_getstacksize
237    libc.src.pthread.pthread_attr_setdetachstate
238    libc.src.pthread.pthread_attr_setguardsize
239    libc.src.pthread.pthread_attr_setstack
240    libc.src.pthread.pthread_attr_setstacksize
241    libc.src.pthread.pthread_attr_init
242    libc.src.pthread.pthread_create
243    libc.src.pthread.pthread_detach
244    libc.src.pthread.pthread_equal
245    libc.src.pthread.pthread_join
246    libc.src.pthread.pthread_self
247    libc.src.pthread.pthread_mutex_destroy
248    libc.src.pthread.pthread_mutex_init
249    libc.src.pthread.pthread_mutex_lock
250    libc.src.pthread.pthread_mutex_unlock
251    libc.src.pthread.pthread_mutexattr_destroy
252    libc.src.pthread.pthread_mutexattr_init
253    libc.src.pthread.pthread_mutexattr_getpshared
254    libc.src.pthread.pthread_mutexattr_getrobust
255    libc.src.pthread.pthread_mutexattr_gettype
256    libc.src.pthread.pthread_mutexattr_setpshared
257    libc.src.pthread.pthread_mutexattr_setrobust
258    libc.src.pthread.pthread_mutexattr_settype
259
260    # stdlib.h entrypoints
261    libc.src.stdlib._Exit
262    libc.src.stdlib.atexit
263    libc.src.stdlib.exit
264    libc.src.stdlib.getenv
265
266    # stdio.h entrypoints
267    libc.src.stdio.clearerr
268    libc.src.stdio.clearerr_unlocked
269    libc.src.stdio.fclose
270    libc.src.stdio.flockfile
271    libc.src.stdio.feof
272    libc.src.stdio.feof_unlocked
273    libc.src.stdio.ferror
274    libc.src.stdio.ferror_unlocked
275    libc.src.stdio.fflush
276    libc.src.stdio.fopen
277    libc.src.stdio.fopencookie
278    libc.src.stdio.fread
279    libc.src.stdio.fread_unlocked
280    libc.src.stdio.fseek
281    libc.src.stdio.funlockfile
282    libc.src.stdio.fwrite
283    libc.src.stdio.fwrite_unlocked
284    libc.src.stdio.sprintf
285    libc.src.stdio.snprintf
286    libc.src.stdio.fprintf
287    libc.src.stdio.printf
288    libc.src.stdio.stderr
289    libc.src.stdio.stdout
290
291    # signal.h entrypoints
292    # TODO: Enable signal.h entrypoints after fixing signal.h
293    # libc.src.signal.raise
294    # libc.src.signal.sigaction
295    # libc.src.signal.sigdelset
296    # libc.src.signal.sigaddset
297    # libc.src.signal.sigemptyset
298    # libc.src.signal.sigprocmask
299    # libc.src.signal.sigfillset
300    # libc.src.signal.signal
301
302    # threads.h entrypoints
303    libc.src.threads.call_once
304    libc.src.threads.cnd_broadcast
305    libc.src.threads.cnd_destroy
306    libc.src.threads.cnd_init
307    libc.src.threads.cnd_signal
308    libc.src.threads.cnd_wait
309    libc.src.threads.mtx_destroy
310    libc.src.threads.mtx_init
311    libc.src.threads.mtx_lock
312    libc.src.threads.mtx_unlock
313    libc.src.threads.thrd_create
314    libc.src.threads.thrd_current
315    libc.src.threads.thrd_detach
316    libc.src.threads.thrd_equal
317    libc.src.threads.thrd_join
318
319    # time.h entrypoints
320    libc.src.time.asctime
321    libc.src.time.asctime_r
322    libc.src.time.gmtime
323    libc.src.time.gmtime_r
324    libc.src.time.mktime
325  )
326endif()
327
328set(TARGET_LLVMLIBC_ENTRYPOINTS
329  ${TARGET_LIBC_ENTRYPOINTS}
330  ${TARGET_LIBM_ENTRYPOINTS}
331)
332