@@ -678,7 +678,7 @@ def get_files(self):
678
678
679
679
# musl modules
680
680
ignore = [
681
- 'ipc' , 'passwd' , 'thread' , ' signal' , 'sched' , 'ipc' , 'time' , 'linux' ,
681
+ 'ipc' , 'passwd' , 'signal' , 'sched' , 'ipc' , 'time' , 'linux' ,
682
682
'aio' , 'exit' , 'legacy' , 'mq' , 'search' , 'setjmp' , 'env' ,
683
683
'ldso'
684
684
]
@@ -713,6 +713,65 @@ def get_files(self):
713
713
shared .path_from_root ('system' , 'lib' , 'libc' , 'emscripten_asan_fcntl.c' ),
714
714
]
715
715
716
+ if self .is_mt :
717
+ ignore += [
718
+ 'clone.c' , '__lock.c' ,
719
+ 'pthread_cleanup_push.c' , 'pthread_create.c' ,
720
+ 'pthread_kill.c' , 'pthread_sigmask.c' ,
721
+ '__set_thread_area.c' , 'synccall.c' ,
722
+ '__syscall_cp.c' , '__tls_get_addr.c' ,
723
+ '__unmapself.c' ,
724
+ # Empty files, simply ignore them.
725
+ 'syscall_cp.c' , 'tls.c' ,
726
+ # TODO: Comment out (or support) within upcoming musl upgrade. See #12216.
727
+ # 'pthread_setname_np.c',
728
+ # TODO: No longer exists in the latest musl version.
729
+ '__futex.c' ,
730
+ # TODO: Could be supported in the upcoming musl upgrade
731
+ 'lock_ptc.c' , 'pthread_getattr_np.c' ,
732
+ # 'pthread_setattr_default_np.c',
733
+ # TODO: These could be moved away from JS in the upcoming musl upgrade.
734
+ 'pthread_cancel.c' , 'pthread_detach.c' ,
735
+ 'pthread_join.c' , 'pthread_testcancel.c' ,
736
+ # TODO: Support C11 condition variable and mutex library functions.
737
+ 'cnd_broadcast.c' ,
738
+ 'cnd_destroy.c' ,
739
+ 'cnd_init.c' ,
740
+ 'cnd_signal.c' ,
741
+ 'cnd_timedwait.c' ,
742
+ 'cnd_wait.c' ,
743
+ 'mtx_destroy.c' ,
744
+ 'mtx_init.c' ,
745
+ 'mtx_lock.c' ,
746
+ 'mtx_timedlock.c' ,
747
+ 'mtx_trylock.c' ,
748
+ 'mtx_unlock.c' ,
749
+ ]
750
+ libc_files += files_in_path (
751
+ path_components = ['system' , 'lib' , 'pthread' ],
752
+ filenames = [
753
+ 'library_pthread.c' ,
754
+ 'emscripten_thread_state.s' ,
755
+ ])
756
+ else :
757
+ ignore += ['thread' ]
758
+ libc_files += files_in_path (
759
+ path_components = ['system' , 'lib' , 'libc' , 'musl' , 'src' , 'thread' ],
760
+ filenames = [
761
+ 'pthread_self.c' ,
762
+ # C11 thread library functions
763
+ 'thrd_create.c' ,
764
+ 'thrd_exit.c' ,
765
+ 'thrd_join.c' ,
766
+ 'thrd_sleep.c' ,
767
+ 'thrd_yield.c' ,
768
+ 'call_once.c' ,
769
+ 'tss_create.c' ,
770
+ 'tss_delete.c' ,
771
+ 'tss_set.c' ,
772
+ ])
773
+ libc_files += [shared .path_from_root ('system' , 'lib' , 'pthread' , 'library_pthread_stub.c' )]
774
+
716
775
# These are included in wasm_libc_rt instead
717
776
ignore += [os .path .basename (f ) for f in get_wasm_libc_rt_files ()]
718
777
@@ -765,74 +824,8 @@ def get_files(self):
765
824
path_components = ['system' , 'lib' , 'pthread' ],
766
825
filenames = ['emscripten_atomic.c' ])
767
826
768
- libc_files += files_in_path (
769
- path_components = ['system' , 'lib' , 'libc' , 'musl' , 'src' , 'thread' ],
770
- filenames = [
771
- 'pthread_self.c' ,
772
- # C11 thread library functions
773
- 'thrd_create.c' ,
774
- 'thrd_exit.c' ,
775
- 'thrd_join.c' ,
776
- 'thrd_sleep.c' ,
777
- 'thrd_yield.c' ,
778
- 'call_once.c' ,
779
- 'tss_create.c' ,
780
- 'tss_delete.c' ,
781
- 'tss_set.c' ,
782
- ])
783
-
784
827
libc_files += glob_in_path (['system' , 'lib' , 'libc' , 'compat' ], '*.c' )
785
828
786
- if self .is_mt :
787
- libc_files += files_in_path (
788
- path_components = ['system' , 'lib' , 'libc' , 'musl' , 'src' , 'thread' ],
789
- filenames = [
790
- 'pthread_attr_destroy.c' , 'pthread_condattr_setpshared.c' ,
791
- 'pthread_mutex_lock.c' , 'pthread_spin_destroy.c' , 'pthread_attr_get.c' ,
792
- 'pthread_cond_broadcast.c' , 'pthread_mutex_setprioceiling.c' ,
793
- 'pthread_spin_init.c' , 'pthread_attr_init.c' , 'pthread_cond_destroy.c' ,
794
- 'pthread_mutex_timedlock.c' , 'pthread_spin_lock.c' ,
795
- 'pthread_attr_setdetachstate.c' , 'pthread_cond_init.c' ,
796
- 'pthread_mutex_trylock.c' , 'pthread_spin_trylock.c' ,
797
- 'pthread_attr_setguardsize.c' , 'pthread_cond_signal.c' ,
798
- 'pthread_mutex_unlock.c' , 'pthread_spin_unlock.c' ,
799
- 'pthread_attr_setinheritsched.c' , 'pthread_cond_timedwait.c' ,
800
- 'pthread_once.c' , 'sem_destroy.c' , 'pthread_attr_setschedparam.c' ,
801
- 'pthread_cond_wait.c' , 'pthread_rwlockattr_destroy.c' , 'sem_getvalue.c' ,
802
- 'pthread_attr_setschedpolicy.c' , 'pthread_equal.c' , 'pthread_rwlockattr_init.c' ,
803
- 'sem_init.c' , 'pthread_attr_setscope.c' , 'pthread_getspecific.c' ,
804
- 'pthread_rwlockattr_setpshared.c' , 'sem_open.c' , 'pthread_attr_setstack.c' ,
805
- 'pthread_key_create.c' , 'pthread_rwlock_destroy.c' , 'sem_post.c' ,
806
- 'pthread_attr_setstacksize.c' , 'pthread_mutexattr_destroy.c' ,
807
- 'pthread_rwlock_init.c' , 'sem_timedwait.c' , 'pthread_barrierattr_destroy.c' ,
808
- 'pthread_mutexattr_init.c' , 'pthread_rwlock_rdlock.c' , 'sem_trywait.c' ,
809
- 'pthread_barrierattr_init.c' , 'pthread_mutexattr_setprotocol.c' ,
810
- 'pthread_rwlock_timedrdlock.c' , 'sem_unlink.c' ,
811
- 'pthread_barrierattr_setpshared.c' , 'pthread_mutexattr_setpshared.c' ,
812
- 'pthread_rwlock_timedwrlock.c' , 'sem_wait.c' , 'pthread_barrier_destroy.c' ,
813
- 'pthread_mutexattr_setrobust.c' , 'pthread_rwlock_tryrdlock.c' ,
814
- '__timedwait.c' , 'pthread_barrier_init.c' , 'pthread_mutexattr_settype.c' ,
815
- 'pthread_rwlock_trywrlock.c' , 'vmlock.c' , 'pthread_barrier_wait.c' ,
816
- 'pthread_mutex_consistent.c' , 'pthread_rwlock_unlock.c' , '__wait.c' ,
817
- 'pthread_condattr_destroy.c' , 'pthread_mutex_destroy.c' ,
818
- 'pthread_rwlock_wrlock.c' , 'pthread_condattr_init.c' ,
819
- 'pthread_mutex_getprioceiling.c' , 'pthread_setcanceltype.c' ,
820
- 'pthread_condattr_setclock.c' , 'pthread_mutex_init.c' ,
821
- 'pthread_setspecific.c' , 'pthread_setcancelstate.c' ,
822
- 'pthread_getconcurrency.c' , 'pthread_setconcurrency.c' ,
823
- 'pthread_getschedparam.c' , 'pthread_setschedparam.c' ,
824
- 'pthread_setschedprio.c' , 'pthread_atfork.c' ,
825
- 'pthread_getcpuclockid.c' ,
826
- ])
827
- libc_files += files_in_path (
828
- path_components = ['system' , 'lib' , 'pthread' ],
829
- filenames = [
830
- 'library_pthread.c' ,
831
- 'emscripten_thread_state.s' ,
832
- ])
833
- else :
834
- libc_files += [shared .path_from_root ('system' , 'lib' , 'pthread' , 'library_pthread_stub.c' )]
835
-
836
829
return libc_files
837
830
838
831
0 commit comments