@@ -2810,7 +2810,7 @@ fn test_emscripten(target: &str) {
28102810 // Just pass all these through, no need for a "struct" prefix
28112811 "FILE" | "fd_set" | "Dl_info" | "DIR" => ty. to_string ( ) ,
28122812
2813- // LFS64 types have been removed in Emscripten 3.1.44+
2813+ // LFS64 types have been removed in Emscripten 3.1.44
28142814 // https://github.com/emscripten-core/emscripten/pull/19812
28152815 "off64_t" => "off_t" . to_string ( ) ,
28162816
@@ -2834,7 +2834,7 @@ fn test_emscripten(target: &str) {
28342834 s if s. ends_with ( "_nsec" ) && struct_. starts_with ( "stat" ) => {
28352835 s. replace ( "e_nsec" , ".tv_nsec" )
28362836 }
2837- // FIXME: appears that `epoll_event.data` is an union
2837+ // Rust struct uses raw u64, rather than union
28382838 "u64" if struct_ == "epoll_event" => "data.u64" . to_string ( ) ,
28392839 s => s. to_string ( ) ,
28402840 }
@@ -2850,10 +2850,7 @@ fn test_emscripten(target: &str) {
28502850 // https://github.com/emscripten-core/emscripten/issues/5033
28512851 ty if ty. starts_with ( "epoll" ) => true ,
28522852
2853- // FIXME: The size has been changed due to musl's time64
2854- "time_t" => true ,
2855-
2856- // LFS64 types have been removed in Emscripten 3.1.44+
2853+ // LFS64 types have been removed in Emscripten 3.1.44
28572854 // https://github.com/emscripten-core/emscripten/pull/19812
28582855 t => t. ends_with ( "64" ) || t. ends_with ( "64_t" ) ,
28592856 }
@@ -2862,34 +2859,19 @@ fn test_emscripten(target: &str) {
28622859 cfg. skip_struct ( move |ty| {
28632860 match ty {
28642861 // This is actually a union, not a struct
2865- // FIXME: is this necessary?
28662862 "sigval" => true ,
28672863
2868- // FIXME: It was removed in
2869- // emscripten-core/emscripten@953e414
2870- "pthread_mutexattr_t" => true ,
2871-
28722864 // FIXME: Investigate why the test fails.
28732865 // Skip for now to unblock CI.
28742866 "pthread_condattr_t" => true ,
2875-
2876- // FIXME: The size has been changed when upgraded to musl 1.2.2
2877- "pthread_mutex_t" => true ,
2867+ "pthread_mutexattr_t" => true ,
28782868
28792869 // No epoll support
28802870 // https://github.com/emscripten-core/emscripten/issues/5033
28812871 ty if ty. starts_with ( "epoll" ) => true ,
28822872 ty if ty. starts_with ( "signalfd" ) => true ,
28832873
2884- // FIXME: Lowered from 16 to 8 bytes in
2885- // llvm/llvm-project@d1a96e9
2886- "max_align_t" => true ,
2887-
2888- // FIXME: The size has been changed due to time64
2889- "utimbuf" | "timeval" | "timespec" | "rusage" | "itimerval" | "sched_param"
2890- | "stat" | "stat64" | "shmid_ds" | "msqid_ds" => true ,
2891-
2892- // LFS64 types have been removed in Emscripten 3.1.44+
2874+ // LFS64 types have been removed in Emscripten 3.1.44
28932875 // https://github.com/emscripten-core/emscripten/pull/19812
28942876 ty => ty. ends_with ( "64" ) || ty. ends_with ( "64_t" ) ,
28952877 }
@@ -2898,12 +2880,9 @@ fn test_emscripten(target: &str) {
28982880 cfg. skip_fn ( move |name| {
28992881 match name {
29002882 // Emscripten does not support fork/exec/wait or any kind of multi-process support
2901- // https://github.com/emscripten-core/emscripten/blob/3.1.30 /tools/system_libs.py#L973
2883+ // https://github.com/emscripten-core/emscripten/blob/3.1.68 /tools/system_libs.py#L1100
29022884 "execv" | "execve" | "execvp" | "execvpe" | "fexecve" | "wait4" => true ,
29032885
2904- // FIXME: Remove after emscripten-core/emscripten#18492 is released (> 3.1.30).
2905- "clearenv" => true ,
2906-
29072886 _ => false ,
29082887 }
29092888 } ) ;
@@ -2931,8 +2910,8 @@ fn test_emscripten(target: &str) {
29312910 "USRQUOTA" | "GRPQUOTA" | "Q_GETFMT" | "Q_GETINFO" | "Q_SETINFO" | "Q_SYNC"
29322911 | "Q_QUOTAON" | "Q_QUOTAOFF" | "Q_GETQUOTA" | "Q_SETQUOTA" => true ,
29332912
2934- // FIXME: `SYS_gettid` was removed in
2935- // emscripten-core/emscripten@6d6474e
2913+ // `SYS_gettid` was removed in Emscripten v1.39.9
2914+ // https://github.com/ emscripten-core/emscripten/pull/10439
29362915 "SYS_gettid" => true ,
29372916
29382917 // No personality.h
@@ -2941,19 +2920,11 @@ fn test_emscripten(target: &str) {
29412920 | "ADDR_LIMIT_32BIT" | "SHORT_INODE" | "WHOLE_SECONDS" | "STICKY_TIMEOUTS"
29422921 | "ADDR_LIMIT_3GB" => true ,
29432922
2944- // FIXME: These values have been changed
2945- | "POSIX_MADV_DONTNEED" // to 4
2946- | "RLIMIT_NLIMITS" // to 16
2947- | "RLIM_NLIMITS" // to 16
2948- | "IPPROTO_MAX" // to 263
2949- | "F_GETLK" // to 5
2950- | "F_SETLK" // to 6
2951- | "F_SETLKW" // to 7
2952- | "O_TMPFILE" // to 65
2953- | "SIG_IGN" // -1
2954- => true ,
2923+ // `SIG_IGN` has been changed to -2 since 1 is a valid function address
2924+ // https://github.com/emscripten-core/emscripten/pull/14883
2925+ "SIG_IGN" => true ,
29552926
2956- // LFS64 types have been removed in Emscripten 3.1.44+
2927+ // LFS64 types have been removed in Emscripten 3.1.44
29572928 // https://github.com/emscripten-core/emscripten/pull/19812
29582929 n if n. starts_with ( "RLIM64" ) => true ,
29592930
@@ -2963,23 +2934,18 @@ fn test_emscripten(target: &str) {
29632934
29642935 cfg. skip_field_type ( move |struct_, field| {
29652936 // This is a weird union, don't check the type.
2966- // FIXME: is this necessary?
29672937 ( struct_ == "ifaddrs" && field == "ifa_ifu" ) ||
29682938 // sighandler_t type is super weird
2969- // FIXME: is this necessary?
29702939 ( struct_ == "sigaction" && field == "sa_sigaction" ) ||
29712940 // sigval is actually a union, but we pretend it's a struct
2972- // FIXME: is this necessary?
29732941 ( struct_ == "sigevent" && field == "sigev_value" )
29742942 } ) ;
29752943
29762944 cfg. skip_field ( move |struct_, field| {
29772945 // this is actually a union on linux, so we can't represent it well and
29782946 // just insert some padding.
2979- // FIXME: is this necessary?
29802947 ( struct_ == "siginfo_t" && field == "_pad" ) ||
29812948 // musl names this __dummy1 but it's still there
2982- // FIXME: is this necessary?
29832949 ( struct_ == "glob_t" && field == "gl_flags" ) ||
29842950 // FIXME: After musl 1.1.24, it have only one field `sched_priority`,
29852951 // while other fields become reserved.
@@ -2991,7 +2957,6 @@ fn test_emscripten(target: &str) {
29912957 ] . contains ( & field) )
29922958 } ) ;
29932959
2994- // FIXME: test linux like
29952960 cfg. generate ( "../src/lib.rs" , "main.rs" ) ;
29962961}
29972962
0 commit comments