@@ -91,12 +91,16 @@ set(TARGET_LIBC_ENTRYPOINTS
9191 libc.src.string.strxfrm
9292
9393 # strings.h entrypoints
94- libc.src.strings.index
95- libc.src.strings.rindex
9694 libc.src.strings.bcmp
9795 libc.src.strings.bcopy
9896 libc.src.strings.bzero
97+ libc.src.strings.ffs
98+ libc.src.strings.ffsl
99+ libc.src.strings.ffsll
100+ libc.src.strings.index
101+ libc.src.strings.rindex
99102 libc.src.strings.strcasecmp
103+ libc.src.strings.strncasecmp
100104
101105 # inttypes.h entrypoints
102106 libc.src.inttypes.imaxabs
@@ -177,13 +181,15 @@ set(TARGET_LIBC_ENTRYPOINTS
177181 libc.src.stdbit.stdc_trailing_zeros_us
178182
179183 # stdlib.h entrypoints
184+ libc.src.stdlib.a64l
180185 libc.src.stdlib.abs
181186 libc.src.stdlib.atof
182187 libc.src.stdlib.atoi
183188 libc.src.stdlib.atol
184189 libc.src.stdlib.atoll
185190 libc.src.stdlib.bsearch
186191 libc.src.stdlib.div
192+ libc.src.stdlib.l64a
187193 libc.src.stdlib.labs
188194 libc.src.stdlib.ldiv
189195 libc.src.stdlib.llabs
@@ -248,6 +254,7 @@ set(TARGET_LIBC_ENTRYPOINTS
248254 libc.src.sys.mman.mlock2
249255 libc.src.sys.mman.mlockall
250256 libc.src.sys.mman.mmap
257+ libc.src.sys.mman.mremap
251258 libc.src.sys.mman.mprotect
252259 libc.src.sys.mman.msync
253260 libc.src.sys.mman.munlock
@@ -282,6 +289,9 @@ set(TARGET_LIBC_ENTRYPOINTS
282289 libc.src.sys.statvfs.fstatvfs
283290 libc.src.sys.statvfs.statvfs
284291
292+ # sys/utimes.h entrypoints
293+ # libc.src.sys.time.utimes
294+
285295 # sys/utsname.h entrypoints
286296 libc.src.sys.utsname.uname
287297
@@ -322,6 +332,7 @@ set(TARGET_LIBC_ENTRYPOINTS
322332 libc.src.unistd.fsync
323333 libc.src.unistd.ftruncate
324334 libc.src.unistd.getcwd
335+ libc.src.unistd.getentropy
325336 libc.src.unistd.geteuid
326337 libc.src.unistd.getpid
327338 libc.src.unistd.getppid
@@ -351,8 +362,17 @@ set(TARGET_LIBC_ENTRYPOINTS
351362 libc.src.unistd.write
352363
353364 # wchar.h entrypoints
365+ libc.src.wchar.btowc
354366 libc.src.wchar.wcslen
355367 libc.src.wchar.wctob
368+
369+ # sys/uio.h entrypoints
370+ libc.src.sys.uio.writev
371+ libc.src.sys.uio.readv
372+
373+ # sys/time.h entrypoints
374+ # libc.src.sys.time.setitimer
375+ # libc.src.sys.time.getitimer
356376)
357377
358378if(LLVM_LIBC_INCLUDE_SCUDO)
@@ -431,6 +451,7 @@ set(TARGET_LIBM_ENTRYPOINTS
431451 libc.src.math.exp
432452 libc.src.math.exp10
433453 libc.src.math.exp10f
454+ # libc.src.math.exp10m1f
434455 libc.src.math.exp2
435456 libc.src.math.exp2f
436457 libc.src.math.exp2m1f
@@ -627,6 +648,130 @@ set(TARGET_LIBM_ENTRYPOINTS
627648 libc.src.math.ufromfpxf
628649 libc.src.math.ufromfpxl
629650)
651+ if(LIBC_TYPES_HAS_CFLOAT16)
652+ list(APPEND TARGET_LIBM_ENTRYPOINTS
653+ # complex.h C23 _Complex _Float16 entrypoints
654+ libc.src.complex.crealf16
655+ libc.src.complex.cimagf16
656+ libc.src.complex.conjf16
657+ libc.src.complex.cprojf16
658+ )
659+ endif()
660+
661+ if(LIBC_TYPES_HAS_FLOAT16)
662+ list(APPEND TARGET_LIBM_ENTRYPOINTS
663+ # math.h C23 _Float16 entrypoints
664+ libc.src.math.acosf16
665+ libc.src.math.acoshf16
666+ libc.src.math.acospif16
667+ libc.src.math.asinf16
668+ libc.src.math.asinhf16
669+ libc.src.math.atanhf16
670+ libc.src.math.canonicalizef16
671+ libc.src.math.ceilf16
672+ libc.src.math.copysignf16
673+ libc.src.math.cosf16
674+ libc.src.math.coshf16
675+ libc.src.math.cospif16
676+ libc.src.math.exp10f16
677+ libc.src.math.exp10m1f16
678+ libc.src.math.exp2f16
679+ libc.src.math.exp2m1f16
680+ libc.src.math.expf16
681+ libc.src.math.expm1f16
682+ libc.src.math.f16add
683+ libc.src.math.f16addf
684+ libc.src.math.f16addl
685+ libc.src.math.f16div
686+ libc.src.math.f16divf
687+ libc.src.math.f16divl
688+ libc.src.math.f16fma
689+ libc.src.math.f16fmaf
690+ libc.src.math.f16fmal
691+ libc.src.math.f16mul
692+ libc.src.math.f16mulf
693+ libc.src.math.f16mull
694+ libc.src.math.f16sqrt
695+ libc.src.math.f16sqrtf
696+ libc.src.math.f16sqrtl
697+ libc.src.math.f16sub
698+ libc.src.math.f16subf
699+ libc.src.math.f16subl
700+ libc.src.math.fabsf16
701+ libc.src.math.fdimf16
702+ libc.src.math.floorf16
703+ libc.src.math.fmaf16
704+ libc.src.math.fmaxf16
705+ libc.src.math.fmaximum_mag_numf16
706+ libc.src.math.fmaximum_magf16
707+ libc.src.math.fmaximum_numf16
708+ libc.src.math.fmaximumf16
709+ libc.src.math.fminf16
710+ libc.src.math.fminimum_mag_numf16
711+ libc.src.math.fminimum_magf16
712+ libc.src.math.fminimum_numf16
713+ libc.src.math.fminimumf16
714+ libc.src.math.fmodf16
715+ libc.src.math.frexpf16
716+ libc.src.math.fromfpf16
717+ libc.src.math.fromfpxf16
718+ libc.src.math.getpayloadf16
719+ libc.src.math.hypotf16
720+ libc.src.math.ilogbf16
721+ libc.src.math.iscanonicalf16
722+ libc.src.math.issignalingf16
723+ libc.src.math.ldexpf16
724+ libc.src.math.llogbf16
725+ libc.src.math.llrintf16
726+ libc.src.math.llroundf16
727+ libc.src.math.log10f16
728+ libc.src.math.log2f16
729+ libc.src.math.logbf16
730+ libc.src.math.logf16
731+ libc.src.math.lrintf16
732+ libc.src.math.lroundf16
733+ libc.src.math.modff16
734+ libc.src.math.nanf16
735+ libc.src.math.nearbyintf16
736+ libc.src.math.nextafterf16
737+ libc.src.math.nextdownf16
738+ libc.src.math.nexttowardf16
739+ libc.src.math.nextupf16
740+ libc.src.math.remainderf16
741+ libc.src.math.remquof16
742+ libc.src.math.rintf16
743+ libc.src.math.roundevenf16
744+ libc.src.math.roundf16
745+ libc.src.math.scalblnf16
746+ libc.src.math.scalbnf16
747+ libc.src.math.setpayloadf16
748+ libc.src.math.setpayloadsigf16
749+ libc.src.math.sinf16
750+ libc.src.math.sinhf16
751+ libc.src.math.sinpif16
752+ libc.src.math.sqrtf16
753+ libc.src.math.tanf16
754+ libc.src.math.tanhf16
755+ libc.src.math.tanpif16
756+ libc.src.math.totalorderf16
757+ libc.src.math.totalordermagf16
758+ libc.src.math.truncf16
759+ libc.src.math.ufromfpf16
760+ libc.src.math.ufromfpxf16
761+ )
762+
763+ if(LIBC_TYPES_HAS_FLOAT128)
764+ list(APPEND TARGET_LIBM_ENTRYPOINTS
765+ # math.h C23 mixed _Float16 and _Float128 entrypoints
766+ libc.src.math.f16addf128
767+ libc.src.math.f16divf128
768+ libc.src.math.f16fmaf128
769+ libc.src.math.f16mulf128
770+ libc.src.math.f16sqrtf128
771+ libc.src.math.f16subf128
772+ )
773+ endif()
774+ endif()
630775
631776if(LIBC_TYPES_HAS_CFLOAT128)
632777 list(APPEND TARGET_LIBM_ENTRYPOINTS
@@ -736,6 +881,7 @@ if(LIBC_COMPILER_HAS_FIXED_POINT)
736881 libc.src.stdfix.sqrtuhr
737882 libc.src.stdfix.sqrtuk
738883 libc.src.stdfix.sqrtur
884+ # libc.src.stdfix.sqrtulk
739885 libc.src.stdfix.sqrtulr
740886 libc.src.stdfix.uhksqrtus
741887 libc.src.stdfix.uksqrtui
@@ -749,7 +895,6 @@ if(LIBC_COMPILER_HAS_FIXED_POINT)
749895 libc.src.stdfix.uhkbits
750896 libc.src.stdfix.kbits
751897 libc.src.stdfix.ukbits
752- # TODO: https://github.com/llvm/llvm-project/issues/115778
753898 libc.src.stdfix.lkbits
754899 libc.src.stdfix.ulkbits
755900 libc.src.stdfix.bitshr
@@ -789,6 +934,39 @@ endif()
789934
790935if(LLVM_LIBC_FULL_BUILD)
791936 list(APPEND TARGET_LIBC_ENTRYPOINTS
937+ # ctype.h entrypoints
938+ libc.src.ctype.isalnum_l
939+ libc.src.ctype.isalpha_l
940+ libc.src.ctype.isblank_l
941+ libc.src.ctype.iscntrl_l
942+ libc.src.ctype.isdigit_l
943+ libc.src.ctype.isgraph_l
944+ libc.src.ctype.islower_l
945+ libc.src.ctype.isprint_l
946+ libc.src.ctype.ispunct_l
947+ libc.src.ctype.isspace_l
948+ libc.src.ctype.isupper_l
949+ libc.src.ctype.isxdigit_l
950+ libc.src.ctype.tolower_l
951+ libc.src.ctype.toupper_l
952+
953+ # stdlib.h entrypoints
954+ libc.src.stdlib.strtod_l
955+ libc.src.stdlib.strtof_l
956+ libc.src.stdlib.strtol_l
957+ libc.src.stdlib.strtold_l
958+ libc.src.stdlib.strtoll_l
959+ libc.src.stdlib.strtoul_l
960+ libc.src.stdlib.strtoull_l
961+
962+ # string.h entrypoints
963+ libc.src.string.strcoll_l
964+ libc.src.string.strxfrm_l
965+
966+ # strings.h entrypoints
967+ libc.src.strings.strcasecmp_l
968+ libc.src.strings.strncasecmp_l
969+
792970 # assert.h entrypoints
793971 libc.src.assert.__assert_fail
794972
@@ -864,6 +1042,11 @@ if(LLVM_LIBC_FULL_BUILD)
8641042 libc.src.pthread.pthread_rwlockattr_init
8651043 libc.src.pthread.pthread_rwlockattr_setkind_np
8661044 libc.src.pthread.pthread_rwlockattr_setpshared
1045+ libc.src.pthread.pthread_spin_destroy
1046+ libc.src.pthread.pthread_spin_init
1047+ libc.src.pthread.pthread_spin_lock
1048+ libc.src.pthread.pthread_spin_trylock
1049+ libc.src.pthread.pthread_spin_unlock
8671050 libc.src.pthread.pthread_self
8681051 libc.src.pthread.pthread_setname_np
8691052 libc.src.pthread.pthread_setspecific
@@ -998,9 +1181,20 @@ if(LLVM_LIBC_FULL_BUILD)
9981181 libc.src.time.gmtime_r
9991182 libc.src.time.mktime
10001183 libc.src.time.nanosleep
1184+ libc.src.time.strftime
1185+ libc.src.time.strftime_l
10011186 libc.src.time.time
10021187 libc.src.time.timespec_get
10031188
1189+ # locale.h entrypoints
1190+ libc.src.locale.localeconv
1191+ libc.src.locale.duplocale
1192+ libc.src.locale.freelocale
1193+ libc.src.locale.localeconv
1194+ libc.src.locale.newlocale
1195+ libc.src.locale.setlocale
1196+ libc.src.locale.uselocale
1197+
10041198 # unistd.h entrypoints
10051199 libc.src.unistd.__llvm_libc_syscall
10061200 libc.src.unistd._exit
@@ -1020,6 +1214,13 @@ if(LLVM_LIBC_FULL_BUILD)
10201214 # sys/socket.h entrypoints
10211215 libc.src.sys.socket.bind
10221216 libc.src.sys.socket.socket
1217+ libc.src.sys.socket.socketpair
1218+ libc.src.sys.socket.send
1219+ libc.src.sys.socket.sendto
1220+ libc.src.sys.socket.sendmsg
1221+ libc.src.sys.socket.recv
1222+ libc.src.sys.socket.recvfrom
1223+ libc.src.sys.socket.recvmsg
10231224 )
10241225endif()
10251226
0 commit comments