1set(TARGET_LIBC_ENTRYPOINTS 2 # assert.h entrypoints 3 libc.src.assert.__assert_fail 4 5 # ctype.h entrypoints 6 libc.src.ctype.isalnum 7 libc.src.ctype.isalnum_l 8 libc.src.ctype.isalpha 9 libc.src.ctype.isalpha_l 10 libc.src.ctype.isascii 11 libc.src.ctype.isblank 12 libc.src.ctype.isblank_l 13 libc.src.ctype.iscntrl 14 libc.src.ctype.iscntrl_l 15 libc.src.ctype.isdigit 16 libc.src.ctype.isdigit_l 17 libc.src.ctype.isgraph 18 libc.src.ctype.isgraph_l 19 libc.src.ctype.islower 20 libc.src.ctype.islower_l 21 libc.src.ctype.isprint 22 libc.src.ctype.isprint_l 23 libc.src.ctype.ispunct 24 libc.src.ctype.ispunct_l 25 libc.src.ctype.isspace 26 libc.src.ctype.isspace_l 27 libc.src.ctype.isupper 28 libc.src.ctype.isupper_l 29 libc.src.ctype.isxdigit 30 libc.src.ctype.isxdigit_l 31 libc.src.ctype.toascii 32 libc.src.ctype.tolower 33 libc.src.ctype.tolower_l 34 libc.src.ctype.toupper 35 libc.src.ctype.toupper_l 36 37 # string.h entrypoints 38 libc.src.string.bcmp 39 libc.src.string.bcopy 40 libc.src.string.bzero 41 libc.src.string.index 42 libc.src.string.memccpy 43 libc.src.string.memchr 44 libc.src.string.memcmp 45 libc.src.string.memcpy 46 libc.src.string.memmem 47 libc.src.string.memmove 48 libc.src.string.mempcpy 49 libc.src.string.memrchr 50 libc.src.string.memset 51 libc.src.string.rindex 52 libc.src.string.stpcpy 53 libc.src.string.stpncpy 54 libc.src.string.strcasecmp 55 libc.src.string.strcasestr 56 libc.src.string.strcat 57 libc.src.string.strchr 58 libc.src.string.strchrnul 59 libc.src.string.strcmp 60 libc.src.string.strcoll 61 libc.src.string.strcoll_l 62 libc.src.string.strcpy 63 libc.src.string.strcspn 64 libc.src.string.strdup 65 libc.src.string.strerror 66 libc.src.string.strlcat 67 libc.src.string.strlcpy 68 libc.src.string.strlen 69 libc.src.string.strncasecmp 70 libc.src.string.strncat 71 libc.src.string.strncmp 72 libc.src.string.strncpy 73 libc.src.string.strndup 74 libc.src.string.strnlen 75 libc.src.string.strpbrk 76 libc.src.string.strrchr 77 libc.src.string.strsep 78 libc.src.string.strspn 79 libc.src.string.strstr 80 libc.src.string.strtok 81 libc.src.string.strtok_r 82 libc.src.string.strxfrm 83 libc.src.string.strxfrm_l 84 85 # stdbit.h entrypoints 86 libc.src.stdbit.stdc_bit_ceil_uc 87 libc.src.stdbit.stdc_bit_ceil_ui 88 libc.src.stdbit.stdc_bit_ceil_ul 89 libc.src.stdbit.stdc_bit_ceil_ull 90 libc.src.stdbit.stdc_bit_ceil_us 91 libc.src.stdbit.stdc_bit_floor_uc 92 libc.src.stdbit.stdc_bit_floor_ui 93 libc.src.stdbit.stdc_bit_floor_ul 94 libc.src.stdbit.stdc_bit_floor_ull 95 libc.src.stdbit.stdc_bit_floor_us 96 libc.src.stdbit.stdc_bit_width_uc 97 libc.src.stdbit.stdc_bit_width_ui 98 libc.src.stdbit.stdc_bit_width_ul 99 libc.src.stdbit.stdc_bit_width_ull 100 libc.src.stdbit.stdc_bit_width_us 101 libc.src.stdbit.stdc_count_ones_uc 102 libc.src.stdbit.stdc_count_ones_ui 103 libc.src.stdbit.stdc_count_ones_ul 104 libc.src.stdbit.stdc_count_ones_ull 105 libc.src.stdbit.stdc_count_ones_us 106 libc.src.stdbit.stdc_count_zeros_uc 107 libc.src.stdbit.stdc_count_zeros_ui 108 libc.src.stdbit.stdc_count_zeros_ul 109 libc.src.stdbit.stdc_count_zeros_ull 110 libc.src.stdbit.stdc_count_zeros_us 111 libc.src.stdbit.stdc_first_leading_one_uc 112 libc.src.stdbit.stdc_first_leading_one_ui 113 libc.src.stdbit.stdc_first_leading_one_ul 114 libc.src.stdbit.stdc_first_leading_one_ull 115 libc.src.stdbit.stdc_first_leading_one_us 116 libc.src.stdbit.stdc_first_leading_zero_uc 117 libc.src.stdbit.stdc_first_leading_zero_ui 118 libc.src.stdbit.stdc_first_leading_zero_ul 119 libc.src.stdbit.stdc_first_leading_zero_ull 120 libc.src.stdbit.stdc_first_leading_zero_us 121 libc.src.stdbit.stdc_first_trailing_one_uc 122 libc.src.stdbit.stdc_first_trailing_one_ui 123 libc.src.stdbit.stdc_first_trailing_one_ul 124 libc.src.stdbit.stdc_first_trailing_one_ull 125 libc.src.stdbit.stdc_first_trailing_one_us 126 libc.src.stdbit.stdc_first_trailing_zero_uc 127 libc.src.stdbit.stdc_first_trailing_zero_ui 128 libc.src.stdbit.stdc_first_trailing_zero_ul 129 libc.src.stdbit.stdc_first_trailing_zero_ull 130 libc.src.stdbit.stdc_first_trailing_zero_us 131 libc.src.stdbit.stdc_has_single_bit_uc 132 libc.src.stdbit.stdc_has_single_bit_ui 133 libc.src.stdbit.stdc_has_single_bit_ul 134 libc.src.stdbit.stdc_has_single_bit_ull 135 libc.src.stdbit.stdc_has_single_bit_us 136 libc.src.stdbit.stdc_leading_ones_uc 137 libc.src.stdbit.stdc_leading_ones_ui 138 libc.src.stdbit.stdc_leading_ones_ul 139 libc.src.stdbit.stdc_leading_ones_ull 140 libc.src.stdbit.stdc_leading_ones_us 141 libc.src.stdbit.stdc_leading_zeros_uc 142 libc.src.stdbit.stdc_leading_zeros_ui 143 libc.src.stdbit.stdc_leading_zeros_ul 144 libc.src.stdbit.stdc_leading_zeros_ull 145 libc.src.stdbit.stdc_leading_zeros_us 146 libc.src.stdbit.stdc_trailing_ones_uc 147 libc.src.stdbit.stdc_trailing_ones_ui 148 libc.src.stdbit.stdc_trailing_ones_ul 149 libc.src.stdbit.stdc_trailing_ones_ull 150 libc.src.stdbit.stdc_trailing_ones_us 151 libc.src.stdbit.stdc_trailing_zeros_uc 152 libc.src.stdbit.stdc_trailing_zeros_ui 153 libc.src.stdbit.stdc_trailing_zeros_ul 154 libc.src.stdbit.stdc_trailing_zeros_ull 155 libc.src.stdbit.stdc_trailing_zeros_us 156 157 # stdlib.h entrypoints 158 libc.src.stdlib._Exit 159 libc.src.stdlib.abort 160 libc.src.stdlib.abs 161 libc.src.stdlib.atexit 162 libc.src.stdlib.atof 163 libc.src.stdlib.atoi 164 libc.src.stdlib.atol 165 libc.src.stdlib.atoll 166 libc.src.stdlib.bsearch 167 libc.src.stdlib.div 168 libc.src.stdlib.exit 169 libc.src.stdlib.labs 170 libc.src.stdlib.ldiv 171 libc.src.stdlib.llabs 172 libc.src.stdlib.lldiv 173 libc.src.stdlib.qsort 174 libc.src.stdlib.qsort_r 175 libc.src.stdlib.rand 176 libc.src.stdlib.srand 177 libc.src.stdlib.strtod 178 libc.src.stdlib.strtod_l 179 libc.src.stdlib.strtof 180 libc.src.stdlib.strtof_l 181 libc.src.stdlib.strtol 182 libc.src.stdlib.strtol_l 183 libc.src.stdlib.strtold 184 libc.src.stdlib.strtold_l 185 libc.src.stdlib.strtoll 186 libc.src.stdlib.strtoll_l 187 libc.src.stdlib.strtoul 188 libc.src.stdlib.strtoul_l 189 libc.src.stdlib.strtoull 190 libc.src.stdlib.strtoull_l 191 libc.src.stdlib.at_quick_exit 192 libc.src.stdlib.quick_exit 193 libc.src.stdlib.getenv 194 libc.src.stdlib.system 195 196 # TODO: Implement these correctly 197 libc.src.stdlib.aligned_alloc 198 libc.src.stdlib.calloc 199 libc.src.stdlib.free 200 libc.src.stdlib.malloc 201 libc.src.stdlib.realloc 202 203 # errno.h entrypoints 204 libc.src.errno.errno 205 206 # stdio.h entrypoints 207 libc.src.stdio.clearerr 208 libc.src.stdio.fclose 209 libc.src.stdio.printf 210 libc.src.stdio.vprintf 211 libc.src.stdio.fprintf 212 libc.src.stdio.vfprintf 213 libc.src.stdio.snprintf 214 libc.src.stdio.sprintf 215 libc.src.stdio.vsnprintf 216 libc.src.stdio.vsprintf 217 libc.src.stdio.asprintf 218 libc.src.stdio.vasprintf 219 libc.src.stdio.scanf 220 libc.src.stdio.vscanf 221 libc.src.stdio.fscanf 222 libc.src.stdio.vfscanf 223 libc.src.stdio.sscanf 224 libc.src.stdio.vsscanf 225 libc.src.stdio.feof 226 libc.src.stdio.ferror 227 libc.src.stdio.fflush 228 libc.src.stdio.fgetc 229 libc.src.stdio.fgets 230 libc.src.stdio.fopen 231 libc.src.stdio.fputc 232 libc.src.stdio.fputs 233 libc.src.stdio.fread 234 libc.src.stdio.fseek 235 libc.src.stdio.ftell 236 libc.src.stdio.fwrite 237 libc.src.stdio.getc 238 libc.src.stdio.getchar 239 libc.src.stdio.putc 240 libc.src.stdio.putchar 241 libc.src.stdio.puts 242 libc.src.stdio.remove 243 libc.src.stdio.rename 244 libc.src.stdio.stderr 245 libc.src.stdio.stdin 246 libc.src.stdio.stdout 247 libc.src.stdio.ungetc 248 249 # inttypes.h entrypoints 250 libc.src.inttypes.imaxabs 251 libc.src.inttypes.imaxdiv 252 libc.src.inttypes.strtoimax 253 libc.src.inttypes.strtoumax 254 255 # time.h entrypoints 256 libc.src.time.clock 257 libc.src.time.clock_gettime 258 libc.src.time.nanosleep 259 260 # wchar.h entrypoints 261 libc.src.wchar.wctob 262 263 # locale.h entrypoints 264 libc.src.locale.localeconv 265 libc.src.locale.duplocale 266 libc.src.locale.freelocale 267 libc.src.locale.localeconv 268 libc.src.locale.newlocale 269 libc.src.locale.setlocale 270 libc.src.locale.uselocale 271 272 # gpu/rpc.h entrypoints 273 libc.src.gpu.rpc_host_call 274) 275 276set(TARGET_LIBM_ENTRYPOINTS 277 # math.h entrypoints 278 libc.src.math.acos 279 libc.src.math.acosf 280 libc.src.math.acosh 281 libc.src.math.acoshf 282 libc.src.math.asin 283 libc.src.math.asinf 284 libc.src.math.asinh 285 libc.src.math.asinhf 286 libc.src.math.atan 287 libc.src.math.atan2 288 libc.src.math.atan2f 289 libc.src.math.atan2l 290 libc.src.math.atanf 291 libc.src.math.atanh 292 libc.src.math.atanhf 293 libc.src.math.canonicalize 294 libc.src.math.canonicalizef 295 libc.src.math.canonicalizel 296 libc.src.math.cbrt 297 libc.src.math.cbrtf 298 libc.src.math.ceil 299 libc.src.math.ceilf 300 libc.src.math.ceill 301 libc.src.math.copysign 302 libc.src.math.copysignf 303 libc.src.math.copysignl 304 libc.src.math.cos 305 libc.src.math.cosf 306 libc.src.math.cosh 307 libc.src.math.coshf 308 libc.src.math.cospif 309 libc.src.math.ddivl 310 libc.src.math.dfmal 311 libc.src.math.dmull 312 libc.src.math.dsqrtl 313 libc.src.math.erf 314 libc.src.math.erff 315 libc.src.math.exp 316 libc.src.math.exp10 317 libc.src.math.exp10f 318 libc.src.math.exp2 319 libc.src.math.exp2f 320 libc.src.math.exp2m1f 321 libc.src.math.expf 322 libc.src.math.expm1 323 libc.src.math.expm1f 324 libc.src.math.fabs 325 libc.src.math.fabsf 326 libc.src.math.fabsl 327 libc.src.math.fadd 328 libc.src.math.faddl 329 libc.src.math.fdim 330 libc.src.math.fdimf 331 libc.src.math.fdiml 332 libc.src.math.fdiv 333 libc.src.math.fdivl 334 libc.src.math.ffma 335 libc.src.math.ffmal 336 libc.src.math.floor 337 libc.src.math.floorf 338 libc.src.math.floorl 339 libc.src.math.fma 340 libc.src.math.fmaf 341 libc.src.math.fmax 342 libc.src.math.fmaxf 343 libc.src.math.fmaximum 344 libc.src.math.fmaximumf 345 libc.src.math.fmaximuml 346 libc.src.math.fmaximum_mag 347 libc.src.math.fmaximum_magf 348 libc.src.math.fmaximum_magl 349 libc.src.math.fmaximum_mag_num 350 libc.src.math.fmaximum_mag_numf 351 libc.src.math.fmaximum_mag_numl 352 libc.src.math.fmaximum_num 353 libc.src.math.fmaximum_numf 354 libc.src.math.fmaximum_numl 355 libc.src.math.fmaxl 356 libc.src.math.fmin 357 libc.src.math.fminf 358 libc.src.math.fminimum 359 libc.src.math.fminimumf 360 libc.src.math.fminimuml 361 libc.src.math.fminimum_mag 362 libc.src.math.fminimum_magf 363 libc.src.math.fminimum_magl 364 libc.src.math.fminimum_mag_num 365 libc.src.math.fminimum_mag_numf 366 libc.src.math.fminimum_mag_numl 367 libc.src.math.fminimum_num 368 libc.src.math.fminimum_numf 369 libc.src.math.fminimum_numl 370 libc.src.math.fminl 371 libc.src.math.fmod 372 libc.src.math.fmodf 373 libc.src.math.fmodl 374 libc.src.math.fmul 375 libc.src.math.fmull 376 libc.src.math.frexp 377 libc.src.math.frexpf 378 libc.src.math.frexpl 379 # FIXME: Broken on NVPTX. 380 # libc.src.math.fromfp 381 # libc.src.math.fromfpf 382 # libc.src.math.fromfpl 383 # libc.src.math.fromfpx 384 # libc.src.math.fromfpxf 385 # libc.src.math.fromfpxl 386 libc.src.math.fsqrt 387 libc.src.math.fsqrtl 388 libc.src.math.fsub 389 libc.src.math.fsubl 390 libc.src.math.getpayload 391 libc.src.math.getpayloadf 392 libc.src.math.getpayloadl 393 libc.src.math.hypot 394 libc.src.math.hypotf 395 libc.src.math.ilogb 396 libc.src.math.ilogbf 397 libc.src.math.ilogbl 398 libc.src.math.isnan 399 libc.src.math.isnanf 400 libc.src.math.isnanl 401 libc.src.math.ldexp 402 libc.src.math.ldexpf 403 libc.src.math.ldexpl 404 libc.src.math.lgamma 405 libc.src.math.lgamma_r 406 libc.src.math.llogb 407 libc.src.math.llogbf 408 libc.src.math.llogbl 409 libc.src.math.llrint 410 libc.src.math.llrintf 411 libc.src.math.llrintl 412 libc.src.math.llround 413 libc.src.math.llroundf 414 libc.src.math.llroundl 415 libc.src.math.log 416 libc.src.math.log10 417 libc.src.math.log10f 418 libc.src.math.log1p 419 libc.src.math.log1pf 420 libc.src.math.log2 421 libc.src.math.log2f 422 libc.src.math.logb 423 libc.src.math.logbf 424 libc.src.math.logbl 425 libc.src.math.logf 426 libc.src.math.lrint 427 libc.src.math.lrintf 428 libc.src.math.lrintl 429 libc.src.math.lround 430 libc.src.math.lroundf 431 libc.src.math.lroundl 432 libc.src.math.modf 433 libc.src.math.modff 434 libc.src.math.modfl 435 libc.src.math.nan 436 libc.src.math.nanf 437 libc.src.math.nanl 438 libc.src.math.nearbyint 439 libc.src.math.nearbyintf 440 libc.src.math.nearbyintl 441 libc.src.math.nextafter 442 libc.src.math.nextafterf 443 libc.src.math.nextafterl 444 libc.src.math.nextdown 445 libc.src.math.nextdownf 446 libc.src.math.nextdownl 447 libc.src.math.nexttoward 448 libc.src.math.nexttowardf 449 libc.src.math.nexttowardl 450 libc.src.math.nextup 451 libc.src.math.nextupf 452 libc.src.math.nextupl 453 libc.src.math.pow 454 libc.src.math.powf 455 libc.src.math.powi 456 libc.src.math.powif 457 libc.src.math.remainder 458 libc.src.math.remainderf 459 libc.src.math.remainderl 460 libc.src.math.remquo 461 libc.src.math.remquof 462 libc.src.math.remquol 463 libc.src.math.rint 464 libc.src.math.rintf 465 libc.src.math.rintl 466 libc.src.math.roundeven 467 libc.src.math.roundevenf 468 libc.src.math.roundevenl 469 libc.src.math.round 470 libc.src.math.roundf 471 libc.src.math.roundl 472 libc.src.math.scalbln 473 libc.src.math.scalblnf 474 libc.src.math.scalblnl 475 libc.src.math.scalbn 476 libc.src.math.scalbnf 477 libc.src.math.scalbnl 478 libc.src.math.setpayload 479 libc.src.math.setpayloadf 480 libc.src.math.setpayloadl 481 libc.src.math.setpayloadsig 482 libc.src.math.setpayloadsigf 483 libc.src.math.setpayloadsigl 484 libc.src.math.sin 485 libc.src.math.sincos 486 libc.src.math.sincosf 487 libc.src.math.sinf 488 libc.src.math.sinh 489 libc.src.math.sinhf 490 libc.src.math.sinpif 491 libc.src.math.sqrt 492 libc.src.math.sqrtf 493 libc.src.math.sqrtl 494 libc.src.math.tan 495 libc.src.math.tanf 496 libc.src.math.tanh 497 libc.src.math.tanhf 498 libc.src.math.tgamma 499 libc.src.math.tgammaf 500 libc.src.math.totalorder 501 libc.src.math.totalorderf 502 libc.src.math.totalorderl 503 libc.src.math.totalordermag 504 libc.src.math.totalordermagf 505 libc.src.math.totalordermagl 506 libc.src.math.trunc 507 libc.src.math.truncf 508 libc.src.math.truncl 509 # FIXME: Broken on NVPTX. 510 # libc.src.math.ufromfp 511 # libc.src.math.ufromfpf 512 # libc.src.math.ufromfpl 513 # libc.src.math.ufromfpx 514 # libc.src.math.ufromfpxf 515 # libc.src.math.ufromfpxl 516) 517 518if(LIBC_TYPES_HAS_FLOAT16) 519 list(APPEND TARGET_LIBM_ENTRYPOINTS 520 # math.h C23 _Float16 entrypoints 521 libc.src.math.canonicalizef16 522 libc.src.math.ceilf16 523 libc.src.math.copysignf16 524 libc.src.math.coshf16 525 libc.src.math.exp10f16 526 libc.src.math.exp10m1f16 527 libc.src.math.exp2f16 528 libc.src.math.expf16 529 libc.src.math.f16add 530 libc.src.math.f16addf 531 libc.src.math.f16addl 532 libc.src.math.f16div 533 libc.src.math.f16divf 534 libc.src.math.f16divl 535 libc.src.math.f16fma 536 libc.src.math.f16fmaf 537 libc.src.math.f16fmal 538 libc.src.math.f16mul 539 libc.src.math.f16mulf 540 libc.src.math.f16mull 541 libc.src.math.f16sqrt 542 libc.src.math.f16sqrtf 543 libc.src.math.f16sqrtl 544 libc.src.math.f16sub 545 libc.src.math.f16subf 546 libc.src.math.f16subl 547 libc.src.math.fabsf16 548 libc.src.math.fdimf16 549 libc.src.math.floorf16 550 libc.src.math.fmaxf16 551 libc.src.math.fmaximum_mag_numf16 552 libc.src.math.fmaximum_magf16 553 libc.src.math.fmaximum_numf16 554 libc.src.math.fmaximumf16 555 libc.src.math.fminf16 556 libc.src.math.fminimum_mag_numf16 557 libc.src.math.fminimum_magf16 558 libc.src.math.fminimum_numf16 559 libc.src.math.fminimumf16 560 libc.src.math.fmodf16 561 libc.src.math.frexpf16 562 libc.src.math.fromfpf16 563 libc.src.math.fromfpxf16 564 libc.src.math.getpayloadf16 565 libc.src.math.ilogbf16 566 libc.src.math.ldexpf16 567 libc.src.math.llogbf16 568 libc.src.math.llrintf16 569 libc.src.math.llroundf16 570 libc.src.math.log10f16 571 libc.src.math.log2f16 572 libc.src.math.logbf16 573 libc.src.math.logf16 574 libc.src.math.lrintf16 575 libc.src.math.lroundf16 576 libc.src.math.modff16 577 libc.src.math.nanf16 578 libc.src.math.nearbyintf16 579 libc.src.math.nextafterf16 580 libc.src.math.nextdownf16 581 libc.src.math.nexttowardf16 582 libc.src.math.nextupf16 583 libc.src.math.remainderf16 584 libc.src.math.remquof16 585 libc.src.math.rintf16 586 libc.src.math.roundevenf16 587 libc.src.math.roundf16 588 libc.src.math.scalblnf16 589 libc.src.math.scalbnf16 590 libc.src.math.setpayloadf16 591 libc.src.math.setpayloadsigf16 592 libc.src.math.sinhf16 593 libc.src.math.sqrtf16 594 libc.src.math.tanhf16 595 libc.src.math.totalorderf16 596 libc.src.math.totalordermagf16 597 libc.src.math.truncf16 598 libc.src.math.ufromfpf16 599 libc.src.math.ufromfpxf16 600 ) 601endif() 602 603set(TARGET_LLVMLIBC_ENTRYPOINTS 604 ${TARGET_LIBC_ENTRYPOINTS} 605 ${TARGET_LIBM_ENTRYPOINTS} 606) 607