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