• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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    # dlfcn.h entrypoints
21    libc.src.dlfcn.dlclose
22    libc.src.dlfcn.dlerror
23    libc.src.dlfcn.dlopen
24    libc.src.dlfcn.dlsym
25
26    # errno.h entrypoints
27    libc.src.errno.errno
28
29    # fcntl.h entrypoints
30    libc.src.fcntl.creat
31    libc.src.fcntl.fcntl
32    libc.src.fcntl.open
33    libc.src.fcntl.openat
34
35    # sched.h entrypoints
36    libc.src.sched.sched_get_priority_max
37    libc.src.sched.sched_get_priority_min
38    libc.src.sched.sched_getaffinity
39    libc.src.sched.sched_getparam
40    libc.src.sched.sched_getscheduler
41    libc.src.sched.sched_rr_get_interval
42    libc.src.sched.sched_setaffinity
43    libc.src.sched.sched_setparam
44    libc.src.sched.sched_setscheduler
45    libc.src.sched.sched_yield
46
47    # string.h entrypoints
48    libc.src.string.bcmp
49    libc.src.string.bcopy
50    libc.src.string.bzero
51    libc.src.string.index
52    libc.src.string.memccpy
53    libc.src.string.memchr
54    libc.src.string.memcmp
55    libc.src.string.memcpy
56    libc.src.string.memmem
57    libc.src.string.memmove
58    libc.src.string.mempcpy
59    libc.src.string.memrchr
60    libc.src.string.memset
61    libc.src.string.memset_explicit
62    libc.src.string.rindex
63    libc.src.string.stpcpy
64    libc.src.string.stpncpy
65    libc.src.string.strcasecmp
66    libc.src.string.strcasestr
67    libc.src.string.strcat
68    libc.src.string.strchr
69    libc.src.string.strchrnul
70    libc.src.string.strcmp
71    libc.src.string.strcoll
72    libc.src.string.strcpy
73    libc.src.string.strcspn
74    libc.src.string.strdup
75    libc.src.string.strerror
76    libc.src.string.strerror_r
77    libc.src.string.strlcat
78    libc.src.string.strlcpy
79    libc.src.string.strlen
80    libc.src.string.strncasecmp
81    libc.src.string.strncat
82    libc.src.string.strncmp
83    libc.src.string.strncpy
84    libc.src.string.strndup
85    libc.src.string.strnlen
86    libc.src.string.strpbrk
87    libc.src.string.strrchr
88    libc.src.string.strsep
89    libc.src.string.strsignal
90    libc.src.string.strspn
91    libc.src.string.strstr
92    libc.src.string.strtok
93    libc.src.string.strtok_r
94    libc.src.string.strxfrm
95
96    # inttypes.h entrypoints
97    libc.src.inttypes.imaxabs
98    libc.src.inttypes.imaxdiv
99    libc.src.inttypes.strtoimax
100    libc.src.inttypes.strtoumax
101
102    # stdbit.h entrypoints
103    libc.src.stdbit.stdc_bit_ceil_uc
104    libc.src.stdbit.stdc_bit_ceil_ui
105    libc.src.stdbit.stdc_bit_ceil_ul
106    libc.src.stdbit.stdc_bit_ceil_ull
107    libc.src.stdbit.stdc_bit_ceil_us
108    libc.src.stdbit.stdc_bit_floor_uc
109    libc.src.stdbit.stdc_bit_floor_ui
110    libc.src.stdbit.stdc_bit_floor_ul
111    libc.src.stdbit.stdc_bit_floor_ull
112    libc.src.stdbit.stdc_bit_floor_us
113    libc.src.stdbit.stdc_bit_width_uc
114    libc.src.stdbit.stdc_bit_width_ui
115    libc.src.stdbit.stdc_bit_width_ul
116    libc.src.stdbit.stdc_bit_width_ull
117    libc.src.stdbit.stdc_bit_width_us
118    libc.src.stdbit.stdc_count_ones_uc
119    libc.src.stdbit.stdc_count_ones_ui
120    libc.src.stdbit.stdc_count_ones_ul
121    libc.src.stdbit.stdc_count_ones_ull
122    libc.src.stdbit.stdc_count_ones_us
123    libc.src.stdbit.stdc_count_zeros_uc
124    libc.src.stdbit.stdc_count_zeros_ui
125    libc.src.stdbit.stdc_count_zeros_ul
126    libc.src.stdbit.stdc_count_zeros_ull
127    libc.src.stdbit.stdc_count_zeros_us
128    libc.src.stdbit.stdc_first_leading_one_uc
129    libc.src.stdbit.stdc_first_leading_one_ui
130    libc.src.stdbit.stdc_first_leading_one_ul
131    libc.src.stdbit.stdc_first_leading_one_ull
132    libc.src.stdbit.stdc_first_leading_one_us
133    libc.src.stdbit.stdc_first_leading_zero_uc
134    libc.src.stdbit.stdc_first_leading_zero_ui
135    libc.src.stdbit.stdc_first_leading_zero_ul
136    libc.src.stdbit.stdc_first_leading_zero_ull
137    libc.src.stdbit.stdc_first_leading_zero_us
138    libc.src.stdbit.stdc_first_trailing_one_uc
139    libc.src.stdbit.stdc_first_trailing_one_ui
140    libc.src.stdbit.stdc_first_trailing_one_ul
141    libc.src.stdbit.stdc_first_trailing_one_ull
142    libc.src.stdbit.stdc_first_trailing_one_us
143    libc.src.stdbit.stdc_first_trailing_zero_uc
144    libc.src.stdbit.stdc_first_trailing_zero_ui
145    libc.src.stdbit.stdc_first_trailing_zero_ul
146    libc.src.stdbit.stdc_first_trailing_zero_ull
147    libc.src.stdbit.stdc_first_trailing_zero_us
148    libc.src.stdbit.stdc_has_single_bit_uc
149    libc.src.stdbit.stdc_has_single_bit_ui
150    libc.src.stdbit.stdc_has_single_bit_ul
151    libc.src.stdbit.stdc_has_single_bit_ull
152    libc.src.stdbit.stdc_has_single_bit_us
153    libc.src.stdbit.stdc_leading_ones_uc
154    libc.src.stdbit.stdc_leading_ones_ui
155    libc.src.stdbit.stdc_leading_ones_ul
156    libc.src.stdbit.stdc_leading_ones_ull
157    libc.src.stdbit.stdc_leading_ones_us
158    libc.src.stdbit.stdc_leading_zeros_uc
159    libc.src.stdbit.stdc_leading_zeros_ui
160    libc.src.stdbit.stdc_leading_zeros_ul
161    libc.src.stdbit.stdc_leading_zeros_ull
162    libc.src.stdbit.stdc_leading_zeros_us
163    libc.src.stdbit.stdc_trailing_ones_uc
164    libc.src.stdbit.stdc_trailing_ones_ui
165    libc.src.stdbit.stdc_trailing_ones_ul
166    libc.src.stdbit.stdc_trailing_ones_ull
167    libc.src.stdbit.stdc_trailing_ones_us
168    libc.src.stdbit.stdc_trailing_zeros_uc
169    libc.src.stdbit.stdc_trailing_zeros_ui
170    libc.src.stdbit.stdc_trailing_zeros_ul
171    libc.src.stdbit.stdc_trailing_zeros_ull
172    libc.src.stdbit.stdc_trailing_zeros_us
173
174    # stdlib.h entrypoints
175    libc.src.stdlib.abs
176    libc.src.stdlib.atof
177    libc.src.stdlib.atoi
178    libc.src.stdlib.atol
179    libc.src.stdlib.atoll
180    libc.src.stdlib.bsearch
181    libc.src.stdlib.div
182    libc.src.stdlib.labs
183    libc.src.stdlib.ldiv
184    libc.src.stdlib.llabs
185    libc.src.stdlib.lldiv
186    libc.src.stdlib.qsort
187    libc.src.stdlib.qsort_r
188    libc.src.stdlib.rand
189    libc.src.stdlib.srand
190    libc.src.stdlib.strfromd
191    libc.src.stdlib.strfromf
192    # TODO: long double support is buggy with clang-11. Re-enable when buildbots are upgraded.
193    # libc.src.stdlib.strfroml
194    libc.src.stdlib.strtod
195    libc.src.stdlib.strtof
196    libc.src.stdlib.strtol
197    libc.src.stdlib.strtold
198    libc.src.stdlib.strtoll
199    libc.src.stdlib.strtoul
200    libc.src.stdlib.strtoull
201
202    # stdlib.h external entrypoints
203    libc.src.stdlib.aligned_alloc
204    libc.src.stdlib.calloc
205    libc.src.stdlib.free
206    libc.src.stdlib.malloc
207    libc.src.stdlib.realloc
208
209    # stdio.h entrypoints
210    libc.src.stdio.fdopen
211    libc.src.stdio.fileno
212    libc.src.stdio.fprintf
213    libc.src.stdio.fscanf
214    libc.src.stdio.vfscanf
215    libc.src.stdio.printf
216    libc.src.stdio.remove
217    libc.src.stdio.rename
218    libc.src.stdio.scanf
219    libc.src.stdio.vscanf
220    libc.src.stdio.snprintf
221    libc.src.stdio.sprintf
222    libc.src.stdio.asprintf
223    libc.src.stdio.sscanf
224    libc.src.stdio.vsscanf
225    libc.src.stdio.vfprintf
226    libc.src.stdio.vprintf
227    libc.src.stdio.vsnprintf
228    libc.src.stdio.vsprintf
229    libc.src.stdio.vasprintf
230
231    # sys/epoll.h entrypoints
232    libc.src.sys.epoll.epoll_create
233    libc.src.sys.epoll.epoll_create1
234    libc.src.sys.epoll.epoll_ctl
235    libc.src.sys.epoll.epoll_pwait
236    libc.src.sys.epoll.epoll_wait
237    # TODO: Need to check if pwait2 is available before providing.
238    # https://github.com/llvm/llvm-project/issues/80060
239    # libc.src.sys.epoll.epoll_pwait2
240
241    # sys/mman.h entrypoints
242    libc.src.sys.mman.madvise
243    libc.src.sys.mman.mincore
244    libc.src.sys.mman.mlock
245    libc.src.sys.mman.mlock2
246    libc.src.sys.mman.mlockall
247    libc.src.sys.mman.mmap
248    libc.src.sys.mman.mremap
249    libc.src.sys.mman.mprotect
250    libc.src.sys.mman.msync
251    libc.src.sys.mman.munlock
252    libc.src.sys.mman.munlockall
253    libc.src.sys.mman.munmap
254    libc.src.sys.mman.remap_file_pages
255    libc.src.sys.mman.process_mrelease
256    libc.src.sys.mman.posix_madvise
257    libc.src.sys.mman.shm_open
258    libc.src.sys.mman.shm_unlink
259
260    # sys/random.h entrypoints
261    libc.src.sys.random.getrandom
262
263    # sys/resource.h entrypoints
264    libc.src.sys.resource.getrlimit
265    libc.src.sys.resource.setrlimit
266
267    # sys/sendfile entrypoints
268    libc.src.sys.sendfile.sendfile
269
270    # sys/stat.h entrypoints
271    libc.src.sys.stat.chmod
272    libc.src.sys.stat.fchmod
273    libc.src.sys.stat.fchmodat
274    libc.src.sys.stat.fstat
275    libc.src.sys.stat.lstat
276    libc.src.sys.stat.mkdir
277    libc.src.sys.stat.mkdirat
278    libc.src.sys.stat.stat
279
280    # sys/statvfs.h
281    libc.src.sys.statvfs.fstatvfs
282    libc.src.sys.statvfs.statvfs
283
284    # sys/utsname.h entrypoints
285    libc.src.sys.utsname.uname
286
287    # sys/wait.h entrypoints
288    libc.src.sys.wait.wait
289    libc.src.sys.wait.wait4
290    libc.src.sys.wait.waitpid
291
292    # sys/prctl.h entrypoints
293    libc.src.sys.prctl.prctl
294
295    # sys/auxv.h entrypoints
296    libc.src.sys.auxv.getauxval
297
298    # termios.h entrypoints
299    libc.src.termios.cfgetispeed
300    libc.src.termios.cfgetospeed
301    libc.src.termios.cfsetispeed
302    libc.src.termios.cfsetospeed
303    libc.src.termios.tcdrain
304    libc.src.termios.tcflow
305    libc.src.termios.tcflush
306    libc.src.termios.tcgetattr
307    libc.src.termios.tcgetsid
308    libc.src.termios.tcsendbreak
309    libc.src.termios.tcsetattr
310
311    # unistd.h entrypoints
312    libc.src.unistd.access
313    libc.src.unistd.chdir
314    libc.src.unistd.close
315    libc.src.unistd.dup
316    libc.src.unistd.dup2
317    libc.src.unistd.dup3
318    libc.src.unistd.execve
319    libc.src.unistd.fchdir
320    libc.src.unistd.fpathconf
321    libc.src.unistd.fsync
322    libc.src.unistd.ftruncate
323    libc.src.unistd.getcwd
324    libc.src.unistd.geteuid
325    libc.src.unistd.getpid
326    libc.src.unistd.getppid
327    libc.src.unistd.gettid
328    libc.src.unistd.getuid
329    libc.src.unistd.isatty
330    libc.src.unistd.link
331    libc.src.unistd.linkat
332    libc.src.unistd.lseek
333    libc.src.unistd.pathconf
334    libc.src.unistd.pipe
335    libc.src.unistd.pipe2
336    libc.src.unistd.pread
337    libc.src.unistd.pwrite
338    libc.src.unistd.read
339    libc.src.unistd.readlink
340    libc.src.unistd.readlinkat
341    libc.src.unistd.rmdir
342    libc.src.unistd.symlink
343    libc.src.unistd.symlinkat
344    libc.src.unistd.sysconf
345    libc.src.unistd.truncate
346    libc.src.unistd.unlink
347    libc.src.unistd.unlinkat
348    libc.src.unistd.write
349
350    # wchar.h entrypoints
351    libc.src.wchar.wctob
352)
353
354if(LLVM_LIBC_INCLUDE_SCUDO)
355  list(APPEND TARGET_LIBC_ENTRYPOINTS
356    # malloc.h external entrypoints
357    libc.src.stdlib.mallopt
358  )
359endif()
360
361set(TARGET_LIBM_ENTRYPOINTS
362    # complex.h entrypoints
363    libc.src.complex.creal
364    libc.src.complex.crealf
365    libc.src.complex.creall
366    libc.src.complex.cimag
367    libc.src.complex.cimagf
368    libc.src.complex.cimagl
369
370    # fenv.h entrypoints
371    libc.src.fenv.feclearexcept
372    libc.src.fenv.fedisableexcept
373    libc.src.fenv.feenableexcept
374    libc.src.fenv.fegetenv
375    libc.src.fenv.fegetexcept
376    libc.src.fenv.fegetexceptflag
377    libc.src.fenv.fegetround
378    libc.src.fenv.feholdexcept
379    libc.src.fenv.feraiseexcept
380    libc.src.fenv.fesetenv
381    libc.src.fenv.fesetexcept
382    libc.src.fenv.fesetexceptflag
383    libc.src.fenv.fesetround
384    libc.src.fenv.fetestexcept
385    libc.src.fenv.fetestexceptflag
386    libc.src.fenv.feupdateenv
387
388    # math.h entrypoints
389    libc.src.math.acosf
390    libc.src.math.acoshf
391    libc.src.math.asinf
392    libc.src.math.asinhf
393    libc.src.math.atan2
394    libc.src.math.atan2f
395    libc.src.math.atanf
396    libc.src.math.atanhf
397    libc.src.math.canonicalize
398    libc.src.math.canonicalizef
399    libc.src.math.canonicalizel
400    libc.src.math.cbrt
401    libc.src.math.cbrtf
402    libc.src.math.ceil
403    libc.src.math.ceilf
404    libc.src.math.ceill
405    libc.src.math.copysign
406    libc.src.math.copysignf
407    libc.src.math.copysignl
408    libc.src.math.cos
409    libc.src.math.cosf
410    libc.src.math.coshf
411    libc.src.math.cospif
412    libc.src.math.daddl
413    libc.src.math.ddivl
414    libc.src.math.dfmal
415    libc.src.math.dmull
416    libc.src.math.dsqrtl
417    libc.src.math.dsubl
418    libc.src.math.erff
419    libc.src.math.exp
420    libc.src.math.exp10
421    libc.src.math.exp10f
422    libc.src.math.exp2
423    libc.src.math.exp2f
424    libc.src.math.exp2m1f
425    libc.src.math.expf
426    libc.src.math.expm1
427    libc.src.math.expm1f
428    libc.src.math.fabs
429    libc.src.math.fabsf
430    libc.src.math.fabsl
431    libc.src.math.fadd
432    libc.src.math.faddl
433    libc.src.math.fadd
434    libc.src.math.fdim
435    libc.src.math.fdimf
436    libc.src.math.fdiml
437    libc.src.math.floor
438    libc.src.math.floorf
439    libc.src.math.floorl
440    libc.src.math.fma
441    libc.src.math.fmaf
442    libc.src.math.fmax
443    libc.src.math.fmaxf
444    libc.src.math.fmaximum
445    libc.src.math.fmaximum_mag
446    libc.src.math.fmaximum_mag_num
447    libc.src.math.fmaximum_mag_numf
448    libc.src.math.fmaximum_mag_numl
449    libc.src.math.fmaximum_magf
450    libc.src.math.fmaximum_magl
451    libc.src.math.fmaximum_num
452    libc.src.math.fmaximum_numf
453    libc.src.math.fmaximum_numl
454    libc.src.math.fmaximumf
455    libc.src.math.fmaximuml
456    libc.src.math.fmaxl
457    libc.src.math.fmin
458    libc.src.math.fminf
459    libc.src.math.fminimum
460    libc.src.math.fminimum_mag
461    libc.src.math.fminimum_mag_num
462    libc.src.math.fminimum_mag_numf
463    libc.src.math.fminimum_mag_numl
464    libc.src.math.fminimum_magf
465    libc.src.math.fminimum_magl
466    libc.src.math.fminimum_num
467    libc.src.math.fminimum_numf
468    libc.src.math.fminimum_numl
469    libc.src.math.fminimumf
470    libc.src.math.fminimuml
471    libc.src.math.fminl
472    libc.src.math.fmod
473    libc.src.math.fmodf
474    libc.src.math.fmodl
475    libc.src.math.fmul
476    libc.src.math.fmull
477    libc.src.math.frexp
478    libc.src.math.frexpf
479    libc.src.math.frexpl
480    libc.src.math.fromfp
481    libc.src.math.fromfpf
482    libc.src.math.fromfpl
483    libc.src.math.fromfpx
484    libc.src.math.fromfpxf
485    libc.src.math.fromfpxl
486    libc.src.math.fsqrt
487    libc.src.math.fsqrtl
488    libc.src.math.fsub
489    libc.src.math.fsubl
490    libc.src.math.getpayload
491    libc.src.math.getpayloadf
492    libc.src.math.getpayloadl
493    libc.src.math.hypot
494    libc.src.math.hypotf
495    libc.src.math.ilogb
496    libc.src.math.ilogbf
497    libc.src.math.ilogbl
498    libc.src.math.iscanonical
499    libc.src.math.iscanonicalf
500    libc.src.math.iscanonicall
501    libc.src.math.isnan
502    libc.src.math.isnanf
503    libc.src.math.isnanl
504    libc.src.math.issignaling
505    libc.src.math.issignalingf
506    libc.src.math.issignalingl
507    libc.src.math.ldexp
508    libc.src.math.ldexpf
509    libc.src.math.ldexpl
510    libc.src.math.llogb
511    libc.src.math.llogbf
512    libc.src.math.llogbl
513    libc.src.math.llrint
514    libc.src.math.llrintf
515    libc.src.math.llrintl
516    libc.src.math.llround
517    libc.src.math.llroundf
518    libc.src.math.llroundl
519    libc.src.math.log
520    libc.src.math.log10
521    libc.src.math.log10f
522    libc.src.math.log1p
523    libc.src.math.log1pf
524    libc.src.math.log2
525    libc.src.math.log2f
526    libc.src.math.logb
527    libc.src.math.logbf
528    libc.src.math.logbl
529    libc.src.math.logf
530    libc.src.math.lrint
531    libc.src.math.lrintf
532    libc.src.math.lrintl
533    libc.src.math.lround
534    libc.src.math.lroundf
535    libc.src.math.lroundl
536    libc.src.math.modf
537    libc.src.math.modff
538    libc.src.math.modfl
539    libc.src.math.nan
540    libc.src.math.nanf
541    libc.src.math.nanl
542    libc.src.math.nearbyint
543    libc.src.math.nearbyintf
544    libc.src.math.nearbyintl
545    libc.src.math.nextafter
546    libc.src.math.nextafterf
547    libc.src.math.nextafterl
548    libc.src.math.nextdown
549    libc.src.math.nextdownf
550    libc.src.math.nextdownl
551    libc.src.math.nexttoward
552    libc.src.math.nexttowardf
553    libc.src.math.nexttowardl
554    libc.src.math.nextup
555    libc.src.math.nextupf
556    libc.src.math.nextupl
557    libc.src.math.pow
558    libc.src.math.powf
559    libc.src.math.remainder
560    libc.src.math.remainderf
561    libc.src.math.remainderl
562    libc.src.math.remquo
563    libc.src.math.remquof
564    libc.src.math.remquol
565    libc.src.math.rint
566    libc.src.math.rintf
567    libc.src.math.rintl
568    libc.src.math.round
569    libc.src.math.roundeven
570    libc.src.math.roundevenf
571    libc.src.math.roundevenl
572    libc.src.math.roundf
573    libc.src.math.roundl
574    libc.src.math.scalbln
575    libc.src.math.scalblnf
576    libc.src.math.scalblnl
577    libc.src.math.scalbn
578    libc.src.math.scalbnf
579    libc.src.math.scalbnl
580    libc.src.math.setpayload
581    libc.src.math.setpayloadf
582    libc.src.math.setpayloadl
583    libc.src.math.setpayloadsig
584    libc.src.math.setpayloadsigf
585    libc.src.math.setpayloadsigl
586    libc.src.math.sin
587    libc.src.math.sincos
588    libc.src.math.sincosf
589    libc.src.math.sinf
590    libc.src.math.sinhf
591    libc.src.math.sinpif
592    libc.src.math.sqrt
593    libc.src.math.sqrtf
594    libc.src.math.sqrtl
595    libc.src.math.tan
596    libc.src.math.tanf
597    libc.src.math.tanhf
598    libc.src.math.totalorder
599    libc.src.math.totalorderf
600    libc.src.math.totalorderl
601    libc.src.math.totalordermag
602    libc.src.math.totalordermagf
603    libc.src.math.totalordermagl
604    libc.src.math.trunc
605    libc.src.math.truncf
606    libc.src.math.truncl
607    libc.src.math.ufromfp
608    libc.src.math.ufromfpf
609    libc.src.math.ufromfpl
610    libc.src.math.ufromfpx
611    libc.src.math.ufromfpxf
612    libc.src.math.ufromfpxl
613)
614
615if(LIBC_TYPES_HAS_FLOAT16)
616  list(APPEND TARGET_LIBM_ENTRYPOINTS
617    # complex.h C23 _Complex _Float16 entrypoints
618    # libc.src.complex.crealf16
619    # libc.src.complex.cimagf16
620
621    # math.h C23 _Float16 entrypoints
622    libc.src.math.canonicalizef16
623    libc.src.math.ceilf16
624    libc.src.math.copysignf16
625    libc.src.math.cospif16
626    # TODO: aarch64 bug
627    # Please see https://github.com/llvm/llvm-project/pull/100632#issuecomment-2258772681
628    # libc.src.math.expf16
629    libc.src.math.f16add
630    libc.src.math.f16addf
631    # libc.src.math.f16addl
632    libc.src.math.f16div
633    libc.src.math.f16divf
634    # libc.src.math.f16divl
635    libc.src.math.f16fma
636    libc.src.math.f16fmaf
637    # libc.src.math.f16fmal
638    libc.src.math.f16mul
639    libc.src.math.f16mulf
640    # libc.src.math.f16mull
641    libc.src.math.f16sqrt
642    libc.src.math.f16sqrtf
643    # libc.src.math.f16sqrtl
644    libc.src.math.f16sub
645    libc.src.math.f16subf
646    # libc.src.math.f16subl
647    libc.src.math.fabsf16
648    libc.src.math.fdimf16
649    libc.src.math.fdiv
650    libc.src.math.fdivl
651    libc.src.math.ffma
652    libc.src.math.ffmal
653    libc.src.math.floorf16
654    libc.src.math.fmaxf16
655    libc.src.math.fmaximum_mag_numf16
656    libc.src.math.fmaximum_magf16
657    libc.src.math.fmaximum_numf16
658    libc.src.math.fmaximumf16
659    libc.src.math.fminf16
660    libc.src.math.fminimum_mag_numf16
661    libc.src.math.fminimum_magf16
662    libc.src.math.fminimum_numf16
663    libc.src.math.fminimumf16
664    # libc.src.math.fmodf16
665    libc.src.math.frexpf16
666    libc.src.math.fromfpf16
667    libc.src.math.fromfpxf16
668    libc.src.math.getpayloadf16
669    libc.src.math.ilogbf16
670    libc.src.math.iscanonicalf16
671    libc.src.math.issignalingf16
672    libc.src.math.ldexpf16
673    libc.src.math.llogbf16
674    libc.src.math.llrintf16
675    libc.src.math.llroundf16
676    libc.src.math.logbf16
677    libc.src.math.lrintf16
678    libc.src.math.lroundf16
679    # libc.src.math.modff16
680    libc.src.math.nanf16
681    libc.src.math.nearbyintf16
682    libc.src.math.nextafterf16
683    libc.src.math.nextdownf16
684    # Temporarily disable nexttowardf16 on aarch64 because the conversion
685    # between _Float16 and long double will crash clang-11.  This is fixed in
686    # clang-12 and after: https://godbolt.org/z/8ceT9454c
687    # libc.src.math.nexttowardf16
688    libc.src.math.nextupf16
689    libc.src.math.remainderf16
690    libc.src.math.remquof16
691    libc.src.math.rintf16
692    libc.src.math.roundevenf16
693    libc.src.math.roundf16
694    libc.src.math.scalblnf16
695    libc.src.math.scalbnf16
696    libc.src.math.setpayloadf16
697    libc.src.math.setpayloadsigf16
698    libc.src.math.sinpif16
699    libc.src.math.sqrtf16
700    libc.src.math.totalorderf16
701    libc.src.math.totalordermagf16
702    libc.src.math.truncf16
703    libc.src.math.ufromfpf16
704    libc.src.math.ufromfpxf16
705  )
706
707  # if(LIBC_TYPES_HAS_FLOAT128)
708  #   list(APPEND TARGET_LIBM_ENTRYPOINTS
709  #     # math.h C23 mixed _Float16 and _Float128 entrypoints
710  #     libc.src.math.f16addf128
711  #     libc.src.math.f16divf128
712  #     libc.src.math.f16fmaf128
713  #     libc.src.math.f16mulf128
714  #     libc.src.math.f16sqrtf128
715  #     libc.src.math.f16subf128
716  #   )
717  # endif()
718endif()
719
720if(LIBC_TYPES_HAS_FLOAT128)
721  list(APPEND TARGET_LIBM_ENTRYPOINTS
722    # complex.h C23 _Complex _Float128 entrypoints
723    libc.src.complex.crealf128
724    libc.src.complex.cimagf128
725
726    # math.h C23 _Float128 entrypoints
727    libc.src.math.canonicalizef128
728    libc.src.math.ceilf128
729    libc.src.math.copysignf128
730    libc.src.math.daddf128
731    libc.src.math.ddivf128
732    libc.src.math.dfmaf128
733    libc.src.math.dmulf128
734    libc.src.math.dsqrtf128
735    libc.src.math.dsubf128
736    libc.src.math.fabsf128
737    libc.src.math.faddf128
738    libc.src.math.fdimf128
739    libc.src.math.fdivf128
740    libc.src.math.ffmaf128
741    libc.src.math.floorf128
742    libc.src.math.fmaxf128
743    libc.src.math.fmaximum_mag_numf128
744    libc.src.math.fmaximum_magf128
745    libc.src.math.fmaximum_numf128
746    libc.src.math.fmaximumf128
747    libc.src.math.fminf128
748    libc.src.math.fminimum_mag_numf128
749    libc.src.math.fminimum_magf128
750    libc.src.math.fminimum_numf128
751    libc.src.math.fminimumf128
752    libc.src.math.fmodf128
753    libc.src.math.fmulf128
754    libc.src.math.frexpf128
755    libc.src.math.fromfpf128
756    libc.src.math.fromfpxf128
757    libc.src.math.fsqrtf128
758    libc.src.math.fsubf128
759    libc.src.math.getpayloadf128
760    libc.src.math.ilogbf128
761    libc.src.math.iscanonicalf128
762    libc.src.math.issignalingf128
763    libc.src.math.ldexpf128
764    libc.src.math.llogbf128
765    libc.src.math.llrintf128
766    libc.src.math.llroundf128
767    libc.src.math.logbf128
768    libc.src.math.lrintf128
769    libc.src.math.lroundf128
770    libc.src.math.modff128
771    libc.src.math.nanf128
772    libc.src.math.nearbyintf128
773    libc.src.math.nextafterf128
774    libc.src.math.nextdownf128
775    libc.src.math.nextupf128
776    libc.src.math.remainderf128
777    libc.src.math.remquof128
778    libc.src.math.rintf128
779    libc.src.math.roundevenf128
780    libc.src.math.roundf128
781    libc.src.math.scalblnf128
782    libc.src.math.scalbnf128
783    libc.src.math.setpayloadf128
784    libc.src.math.setpayloadsigf128
785    libc.src.math.sqrtf128
786    libc.src.math.totalorderf128
787    libc.src.math.totalordermagf128
788    libc.src.math.truncf128
789    libc.src.math.ufromfpf128
790    libc.src.math.ufromfpxf128
791  )
792endif()
793
794if(LLVM_LIBC_FULL_BUILD)
795  list(APPEND TARGET_LIBC_ENTRYPOINTS
796    # assert.h entrypoints
797    libc.src.assert.__assert_fail
798
799    # compiler entrypoints (no corresponding header)
800    libc.src.compiler.__stack_chk_fail
801
802    # dirent.h entrypoints
803    libc.src.dirent.closedir
804    libc.src.dirent.dirfd
805    libc.src.dirent.opendir
806    libc.src.dirent.readdir
807
808    # network.h entrypoints
809    libc.src.network.htonl
810    libc.src.network.htons
811    libc.src.network.ntohl
812    libc.src.network.ntohs
813
814    # pthread.h entrypoints
815    libc.src.pthread.pthread_atfork
816    libc.src.pthread.pthread_attr_destroy
817    libc.src.pthread.pthread_attr_getdetachstate
818    libc.src.pthread.pthread_attr_getguardsize
819    libc.src.pthread.pthread_attr_getstack
820    libc.src.pthread.pthread_attr_getstacksize
821    libc.src.pthread.pthread_attr_init
822    libc.src.pthread.pthread_attr_setdetachstate
823    libc.src.pthread.pthread_attr_setguardsize
824    libc.src.pthread.pthread_attr_setstack
825    libc.src.pthread.pthread_attr_setstacksize
826    libc.src.pthread.pthread_condattr_destroy
827    libc.src.pthread.pthread_condattr_getclock
828    libc.src.pthread.pthread_condattr_getpshared
829    libc.src.pthread.pthread_condattr_init
830    libc.src.pthread.pthread_condattr_setclock
831    libc.src.pthread.pthread_condattr_setpshared
832    libc.src.pthread.pthread_create
833    libc.src.pthread.pthread_detach
834    libc.src.pthread.pthread_equal
835    libc.src.pthread.pthread_exit
836    libc.src.pthread.pthread_getname_np
837    libc.src.pthread.pthread_getspecific
838    libc.src.pthread.pthread_join
839    libc.src.pthread.pthread_key_create
840    libc.src.pthread.pthread_key_delete
841    libc.src.pthread.pthread_mutex_destroy
842    libc.src.pthread.pthread_mutex_init
843    libc.src.pthread.pthread_mutex_lock
844    libc.src.pthread.pthread_mutex_unlock
845    libc.src.pthread.pthread_mutexattr_destroy
846    libc.src.pthread.pthread_mutexattr_getpshared
847    libc.src.pthread.pthread_mutexattr_getrobust
848    libc.src.pthread.pthread_mutexattr_gettype
849    libc.src.pthread.pthread_mutexattr_init
850    libc.src.pthread.pthread_mutexattr_setpshared
851    libc.src.pthread.pthread_mutexattr_setrobust
852    libc.src.pthread.pthread_mutexattr_settype
853    libc.src.pthread.pthread_once
854    libc.src.pthread.pthread_rwlock_clockrdlock
855    libc.src.pthread.pthread_rwlock_clockwrlock
856    libc.src.pthread.pthread_rwlock_destroy
857    libc.src.pthread.pthread_rwlock_init
858    libc.src.pthread.pthread_rwlock_rdlock
859    libc.src.pthread.pthread_rwlock_timedrdlock
860    libc.src.pthread.pthread_rwlock_timedwrlock
861    libc.src.pthread.pthread_rwlock_tryrdlock
862    libc.src.pthread.pthread_rwlock_trywrlock
863    libc.src.pthread.pthread_rwlock_unlock
864    libc.src.pthread.pthread_rwlock_wrlock
865    libc.src.pthread.pthread_rwlockattr_destroy
866    libc.src.pthread.pthread_rwlockattr_getkind_np
867    libc.src.pthread.pthread_rwlockattr_getpshared
868    libc.src.pthread.pthread_rwlockattr_init
869    libc.src.pthread.pthread_rwlockattr_setkind_np
870    libc.src.pthread.pthread_rwlockattr_setpshared
871    libc.src.pthread.pthread_spin_destroy
872    libc.src.pthread.pthread_spin_init
873    libc.src.pthread.pthread_spin_lock
874    libc.src.pthread.pthread_spin_trylock
875    libc.src.pthread.pthread_spin_unlock
876    libc.src.pthread.pthread_self
877    libc.src.pthread.pthread_setname_np
878    libc.src.pthread.pthread_setspecific
879
880    # sched.h entrypoints
881    libc.src.sched.__sched_getcpucount
882
883    # setjmp.h entrypoints
884    libc.src.setjmp.longjmp
885    libc.src.setjmp.setjmp
886
887    # stdio.h entrypoints
888    libc.src.stdio.clearerr
889    libc.src.stdio.clearerr_unlocked
890    libc.src.stdio.fclose
891    libc.src.stdio.feof
892    libc.src.stdio.feof_unlocked
893    libc.src.stdio.ferror
894    libc.src.stdio.ferror_unlocked
895    libc.src.stdio.fflush
896    libc.src.stdio.fgetc
897    libc.src.stdio.fgetc_unlocked
898    libc.src.stdio.fgets
899    libc.src.stdio.flockfile
900    libc.src.stdio.fopen
901    libc.src.stdio.fopencookie
902    libc.src.stdio.fputc
903    libc.src.stdio.fputs
904    libc.src.stdio.fread
905    libc.src.stdio.fread_unlocked
906    libc.src.stdio.fseek
907    libc.src.stdio.fseeko
908    libc.src.stdio.ftell
909    libc.src.stdio.ftello
910    libc.src.stdio.funlockfile
911    libc.src.stdio.fwrite
912    libc.src.stdio.fwrite_unlocked
913    libc.src.stdio.getc
914    libc.src.stdio.getc_unlocked
915    libc.src.stdio.getchar
916    libc.src.stdio.getchar_unlocked
917    libc.src.stdio.putc
918    libc.src.stdio.putchar
919    libc.src.stdio.puts
920    libc.src.stdio.setbuf
921    libc.src.stdio.setvbuf
922    libc.src.stdio.stderr
923    libc.src.stdio.stdin
924    libc.src.stdio.stdout
925    libc.src.stdio.ungetc
926
927    # stdlib.h entrypoints
928    libc.src.stdlib._Exit
929    libc.src.stdlib.abort
930    libc.src.stdlib.at_quick_exit
931    libc.src.stdlib.atexit
932    libc.src.stdlib.exit
933    libc.src.stdlib.getenv
934    libc.src.stdlib.quick_exit
935
936    # signal.h entrypoints
937    libc.src.signal.kill
938    libc.src.signal.raise
939    libc.src.signal.sigaction
940    libc.src.signal.sigaddset
941    libc.src.signal.sigaltstack
942    libc.src.signal.sigdelset
943    libc.src.signal.sigemptyset
944    libc.src.signal.sigfillset
945    libc.src.signal.signal
946    libc.src.signal.sigprocmask
947
948    # spawn.h entrypoints
949    libc.src.spawn.posix_spawn
950    libc.src.spawn.posix_spawn_file_actions_addclose
951    libc.src.spawn.posix_spawn_file_actions_adddup2
952    libc.src.spawn.posix_spawn_file_actions_addopen
953    libc.src.spawn.posix_spawn_file_actions_destroy
954    libc.src.spawn.posix_spawn_file_actions_init
955
956    # search.h entrypoints
957    libc.src.search.hcreate
958    libc.src.search.hcreate_r
959    libc.src.search.hdestroy
960    libc.src.search.hdestroy_r
961    libc.src.search.hsearch
962    libc.src.search.hsearch_r
963    libc.src.search.insque
964    libc.src.search.lfind
965    libc.src.search.remque
966
967    # threads.h entrypoints
968    libc.src.threads.call_once
969    libc.src.threads.cnd_broadcast
970    libc.src.threads.cnd_destroy
971    libc.src.threads.cnd_init
972    libc.src.threads.cnd_signal
973    libc.src.threads.cnd_wait
974    libc.src.threads.mtx_destroy
975    libc.src.threads.mtx_init
976    libc.src.threads.mtx_lock
977    libc.src.threads.mtx_unlock
978    libc.src.threads.thrd_create
979    libc.src.threads.thrd_current
980    libc.src.threads.thrd_detach
981    libc.src.threads.thrd_equal
982    libc.src.threads.thrd_exit
983    libc.src.threads.thrd_join
984    libc.src.threads.tss_create
985    libc.src.threads.tss_delete
986    libc.src.threads.tss_get
987    libc.src.threads.tss_set
988
989    # time.h entrypoints
990    libc.src.time.asctime
991    libc.src.time.asctime_r
992    libc.src.time.ctime
993    libc.src.time.ctime_r
994    libc.src.time.clock
995    libc.src.time.clock_gettime
996    libc.src.time.difftime
997    libc.src.time.gettimeofday
998    libc.src.time.gmtime
999    libc.src.time.gmtime_r
1000    libc.src.time.mktime
1001    libc.src.time.nanosleep
1002    libc.src.time.time
1003    libc.src.time.timespec_get
1004
1005    # unistd.h entrypoints
1006    libc.src.unistd.__llvm_libc_syscall
1007    libc.src.unistd._exit
1008    libc.src.unistd.environ
1009    libc.src.unistd.execv
1010    libc.src.unistd.fork
1011    libc.src.unistd.getopt
1012    libc.src.unistd.optarg
1013    libc.src.unistd.opterr
1014    libc.src.unistd.optind
1015    libc.src.unistd.optopt
1016    libc.src.unistd.swab
1017
1018    # sys/select.h entrypoints
1019    libc.src.sys.select.select
1020
1021    # sys/socket.h entrypoints
1022    libc.src.sys.socket.bind
1023    libc.src.sys.socket.socket
1024  )
1025endif()
1026
1027set(TARGET_LLVMLIBC_ENTRYPOINTS
1028  ${TARGET_LIBC_ENTRYPOINTS}
1029  ${TARGET_LIBM_ENTRYPOINTS}
1030)
1031