@@ -68,6 +68,7 @@ set(TARGET_LIBC_ENTRYPOINTS
68
68
libc.src.string.strchr
69
69
libc.src.string.strchrnul
70
70
libc.src.string.strcmp
71
+ libc.src.string.strcoll
71
72
libc.src.string.strcpy
72
73
libc.src.string.strcspn
73
74
libc.src.string.strdup
@@ -90,6 +91,7 @@ set(TARGET_LIBC_ENTRYPOINTS
90
91
libc.src.string.strstr
91
92
libc.src.string.strtok
92
93
libc.src.string.strtok_r
94
+ libc.src.string.strxfrm
93
95
94
96
# inttypes.h entrypoints
95
97
libc.src.inttypes.imaxabs
@@ -185,6 +187,9 @@ set(TARGET_LIBC_ENTRYPOINTS
185
187
libc.src.stdlib.qsort_r
186
188
libc.src.stdlib.rand
187
189
libc.src.stdlib.srand
190
+ libc.src.stdlib.strfromd
191
+ libc.src.stdlib.strfromf
192
+ libc.src.stdlib.strfroml
188
193
libc.src.stdlib.strtod
189
194
libc.src.stdlib.strtof
190
195
libc.src.stdlib.strtol
@@ -202,18 +207,34 @@ set(TARGET_LIBC_ENTRYPOINTS
202
207
203
208
# stdio.h entrypoints
204
209
libc.src.stdio.fdopen
205
- #libc.src.stdio.fscanf
210
+ libc.src.stdio.fileno
211
+ libc.src.stdio.fprintf
212
+ libc.src.stdio.fscanf
213
+ libc.src.stdio.printf
206
214
libc.src.stdio.remove
207
215
libc.src.stdio.rename
216
+ libc.src.stdio.scanf
208
217
libc.src.stdio.snprintf
209
218
libc.src.stdio.sprintf
210
219
libc.src.stdio.asprintf
211
- #libc.src.stdio.scanf
212
- #libc.src.stdio.sscanf
220
+ libc.src.stdio.sscanf
221
+ libc.src.stdio.vsscanf
222
+ libc.src.stdio.vfprintf
223
+ libc.src.stdio.vprintf
213
224
libc.src.stdio.vsnprintf
214
225
libc.src.stdio.vsprintf
215
226
libc.src.stdio.vasprintf
216
227
228
+ # sys/epoll.h entrypoints
229
+ libc.src.sys.epoll.epoll_create
230
+ libc.src.sys.epoll.epoll_create1
231
+ libc.src.sys.epoll.epoll_ctl
232
+ libc.src.sys.epoll.epoll_pwait
233
+ libc.src.sys.epoll.epoll_wait
234
+ # TODO: Need to check if pwait2 is available before providing.
235
+ # https://github.com/llvm/llvm-project/issues/80060
236
+ # libc.src.sys.epoll.epoll_pwait2
237
+
217
238
# sys/mman.h entrypoints
218
239
libc.src.sys.mman.madvise
219
240
libc.src.sys.mman.mincore
@@ -250,6 +271,10 @@ set(TARGET_LIBC_ENTRYPOINTS
250
271
libc.src.sys.stat.mkdirat
251
272
libc.src.sys.stat.stat
252
273
274
+ # sys/statvfs.h
275
+ libc.src.sys.statvfs.fstatvfs
276
+ libc.src.sys.statvfs.statvfs
277
+
253
278
# sys/utsname.h entrypoints
254
279
libc.src.sys.utsname.uname
255
280
@@ -264,12 +289,6 @@ set(TARGET_LIBC_ENTRYPOINTS
264
289
# sys/auxv.h entrypoints
265
290
libc.src.sys.auxv.getauxval
266
291
267
- # sys/epoll.h entrypoints
268
- # Disabled due to epoll_wait syscalls not being available on this platform.
269
- # libc.src.sys.epoll.epoll_wait
270
- # libc.src.sys.epoll.epoll_pwait
271
- # libc.src.sys.epoll.epoll_pwait2
272
-
273
292
# termios.h entrypoints
274
293
libc.src.termios.cfgetispeed
275
294
libc.src.termios.cfgetospeed
@@ -306,6 +325,7 @@ set(TARGET_LIBC_ENTRYPOINTS
306
325
libc.src.unistd.linkat
307
326
libc.src.unistd.lseek
308
327
libc.src.unistd.pathconf
328
+ libc.src.unistd.pipe
309
329
libc.src.unistd.pread
310
330
libc.src.unistd.pwrite
311
331
libc.src.unistd.read
@@ -319,6 +339,9 @@ set(TARGET_LIBC_ENTRYPOINTS
319
339
libc.src.unistd.unlink
320
340
libc.src.unistd.unlinkat
321
341
libc.src.unistd.write
342
+
343
+ # wchar.h entrypoints
344
+ libc.src.wchar.wctob
322
345
)
323
346
324
347
set(TARGET_LIBM_ENTRYPOINTS
@@ -552,17 +575,27 @@ if(LIBC_TYPES_HAS_FLOAT16)
552
575
libc.src.math.canonicalizef16
553
576
libc.src.math.ceilf16
554
577
libc.src.math.copysignf16
578
+ # TODO: aarch64 bug
579
+ # Please see https://github.com/llvm/llvm-project/pull/100632#issuecomment-2258772681
580
+ # libc.src.math.expf16
555
581
libc.src.math.f16add
556
582
libc.src.math.f16addf
583
+ # libc.src.math.f16addl
557
584
libc.src.math.f16div
558
585
libc.src.math.f16divf
586
+ # libc.src.math.f16divl
587
+ libc.src.math.f16fma
559
588
libc.src.math.f16fmaf
589
+ # libc.src.math.f16fmal
560
590
libc.src.math.f16mul
561
591
libc.src.math.f16mulf
592
+ # libc.src.math.f16mull
562
593
libc.src.math.f16sqrt
563
594
libc.src.math.f16sqrtf
595
+ # libc.src.math.f16sqrtl
564
596
libc.src.math.f16sub
565
597
libc.src.math.f16subf
598
+ # libc.src.math.f16subl
566
599
libc.src.math.fabsf16
567
600
libc.src.math.fdimf16
568
601
libc.src.math.floorf16
@@ -576,6 +609,7 @@ if(LIBC_TYPES_HAS_FLOAT16)
576
609
libc.src.math.fminimum_magf16
577
610
libc.src.math.fminimum_numf16
578
611
libc.src.math.fminimumf16
612
+ # libc.src.math.fmodf16
579
613
libc.src.math.frexpf16
580
614
libc.src.math.fromfpf16
581
615
libc.src.math.fromfpxf16
@@ -613,16 +647,30 @@ if(LIBC_TYPES_HAS_FLOAT16)
613
647
libc.src.math.ufromfpf16
614
648
libc.src.math.ufromfpxf16
615
649
)
650
+
651
+ # if(LIBC_TYPES_HAS_FLOAT128)
652
+ # list(APPEND TARGET_LIBM_ENTRYPOINTS
653
+ # # math.h C23 mixed _Float16 and _Float128 entrypoints
654
+ # libc.src.math.f16addf128
655
+ # libc.src.math.f16divf128
656
+ # libc.src.math.f16fmaf128
657
+ # libc.src.math.f16mulf128
658
+ # libc.src.math.f16sqrtf128
659
+ # libc.src.math.f16subf128
660
+ # )
661
+ # endif()
616
662
endif()
617
663
618
664
if(LIBC_TYPES_HAS_FLOAT128)
619
665
list(APPEND TARGET_LIBM_ENTRYPOINTS
620
666
# math.h C23 _Float128 entrypoints
667
+ libc.src.math.canonicalizef128
621
668
libc.src.math.ceilf128
622
669
libc.src.math.copysignf128
623
670
libc.src.math.daddf128
624
671
libc.src.math.ddivf128
625
672
libc.src.math.dfmaf128
673
+ libc.src.math.dmulf128
626
674
libc.src.math.dsqrtf128
627
675
libc.src.math.dsubf128
628
676
libc.src.math.fabsf128
@@ -639,9 +687,11 @@ if(LIBC_TYPES_HAS_FLOAT128)
639
687
libc.src.math.fminimum_numf128
640
688
libc.src.math.fminimumf128
641
689
libc.src.math.fmodf128
690
+ libc.src.math.fmulf128
642
691
libc.src.math.frexpf128
643
692
libc.src.math.fromfpf128
644
693
libc.src.math.fromfpxf128
694
+ libc.src.math.fsqrtf128
645
695
libc.src.math.getpayloadf128
646
696
libc.src.math.ilogbf128
647
697
libc.src.math.ldexpf128
@@ -659,8 +709,8 @@ if(LIBC_TYPES_HAS_FLOAT128)
659
709
libc.src.math.nextupf128
660
710
libc.src.math.remquof128
661
711
libc.src.math.rintf128
662
- libc.src.math.roundf128
663
712
libc.src.math.roundevenf128
713
+ libc.src.math.roundf128
664
714
libc.src.math.scalbnf128
665
715
libc.src.math.setpayloadf128
666
716
libc.src.math.sqrtf128
@@ -674,9 +724,18 @@ endif()
674
724
675
725
if(LLVM_LIBC_FULL_BUILD)
676
726
list(APPEND TARGET_LIBC_ENTRYPOINTS
727
+ # assert.h entrypoints
728
+ libc.src.assert.__assert_fail
729
+
677
730
# compiler entrypoints (no corresponding header)
678
731
libc.src.compiler.__stack_chk_fail
679
732
733
+ # dirent.h entrypoints
734
+ libc.src.dirent.closedir
735
+ libc.src.dirent.dirfd
736
+ libc.src.dirent.opendir
737
+ libc.src.dirent.readdir
738
+
680
739
# network.h entrypoints
681
740
libc.src.network.htonl
682
741
libc.src.network.htons
@@ -695,6 +754,12 @@ if(LLVM_LIBC_FULL_BUILD)
695
754
libc.src.pthread.pthread_attr_setguardsize
696
755
libc.src.pthread.pthread_attr_setstack
697
756
libc.src.pthread.pthread_attr_setstacksize
757
+ libc.src.pthread.pthread_condattr_destroy
758
+ libc.src.pthread.pthread_condattr_getclock
759
+ libc.src.pthread.pthread_condattr_getpshared
760
+ libc.src.pthread.pthread_condattr_init
761
+ libc.src.pthread.pthread_condattr_setclock
762
+ libc.src.pthread.pthread_condattr_setpshared
698
763
libc.src.pthread.pthread_create
699
764
libc.src.pthread.pthread_detach
700
765
libc.src.pthread.pthread_equal
@@ -755,7 +820,8 @@ if(LLVM_LIBC_FULL_BUILD)
755
820
libc.src.stdio.ferror_unlocked
756
821
libc.src.stdio.fflush
757
822
libc.src.stdio.fgetc
758
- libc.src.stdio.fileno
823
+ libc.src.stdio.fgetc_unlocked
824
+ libc.src.stdio.fgets
759
825
libc.src.stdio.flockfile
760
826
libc.src.stdio.fopen
761
827
libc.src.stdio.fopencookie
@@ -764,29 +830,34 @@ if(LLVM_LIBC_FULL_BUILD)
764
830
libc.src.stdio.fread
765
831
libc.src.stdio.fread_unlocked
766
832
libc.src.stdio.fseek
833
+ libc.src.stdio.fseeko
834
+ libc.src.stdio.ftell
835
+ libc.src.stdio.ftello
767
836
libc.src.stdio.funlockfile
768
837
libc.src.stdio.fwrite
769
838
libc.src.stdio.fwrite_unlocked
839
+ libc.src.stdio.getc
840
+ libc.src.stdio.getc_unlocked
770
841
libc.src.stdio.getchar
771
842
libc.src.stdio.getchar_unlocked
772
- #TODO: Look into if fprintf can be enabled for overlay on aarch64
773
- libc.src.stdio.fprintf
774
- libc.src.stdio.printf
775
843
libc.src.stdio.putc
776
844
libc.src.stdio.putchar
777
845
libc.src.stdio.puts
846
+ libc.src.stdio.setbuf
847
+ libc.src.stdio.setvbuf
778
848
libc.src.stdio.stderr
779
849
libc.src.stdio.stdin
780
850
libc.src.stdio.stdout
781
- libc.src.stdio.vfprintf
782
- libc.src.stdio.vprintf
851
+ libc.src.stdio.ungetc
783
852
784
853
# stdlib.h entrypoints
785
854
libc.src.stdlib._Exit
786
855
libc.src.stdlib.abort
856
+ libc.src.stdlib.at_quick_exit
787
857
libc.src.stdlib.atexit
788
858
libc.src.stdlib.exit
789
859
libc.src.stdlib.getenv
860
+ libc.src.stdlib.quick_exit
790
861
791
862
# signal.h entrypoints
792
863
libc.src.signal.kill
@@ -800,6 +871,14 @@ if(LLVM_LIBC_FULL_BUILD)
800
871
libc.src.signal.signal
801
872
libc.src.signal.sigprocmask
802
873
874
+ # spawn.h entrypoints
875
+ libc.src.spawn.posix_spawn
876
+ libc.src.spawn.posix_spawn_file_actions_addclose
877
+ libc.src.spawn.posix_spawn_file_actions_adddup2
878
+ libc.src.spawn.posix_spawn_file_actions_addopen
879
+ libc.src.spawn.posix_spawn_file_actions_destroy
880
+ libc.src.spawn.posix_spawn_file_actions_init
881
+
803
882
# search.h entrypoints
804
883
libc.src.search.hcreate
805
884
libc.src.search.hcreate_r
@@ -860,6 +939,10 @@ if(LLVM_LIBC_FULL_BUILD)
860
939
861
940
# sys/select.h entrypoints
862
941
libc.src.sys.select.select
942
+
943
+ # sys/socket.h entrypoints
944
+ libc.src.sys.socket.bind
945
+ libc.src.sys.socket.socket
863
946
)
864
947
endif()
865
948
0 commit comments