@@ -2819,7 +2819,7 @@ fn test_emscripten(target: &str) {
28192819 // Just pass all these through, no need for a "struct" prefix
28202820 "FILE" | "fd_set" | "Dl_info" | "DIR" => ty. to_string ( ) ,
28212821
2822- // LFS64 types have been removed in Emscripten 3.1.44+
2822+ // LFS64 types have been removed in Emscripten 3.1.44
28232823 // https://github.com/emscripten-core/emscripten/pull/19812
28242824 "off64_t" => "off_t" . to_string ( ) ,
28252825
@@ -2843,7 +2843,7 @@ fn test_emscripten(target: &str) {
28432843 s if s. ends_with ( "_nsec" ) && struct_. starts_with ( "stat" ) => {
28442844 s. replace ( "e_nsec" , ".tv_nsec" )
28452845 }
2846- // FIXME: appears that `epoll_event.data` is an union
2846+ // Rust struct uses raw u64, rather than union
28472847 "u64" if struct_ == "epoll_event" => "data.u64" . to_string ( ) ,
28482848 s => s. to_string ( ) ,
28492849 }
@@ -2859,10 +2859,7 @@ fn test_emscripten(target: &str) {
28592859 // https://github.com/emscripten-core/emscripten/issues/5033
28602860 ty if ty. starts_with ( "epoll" ) => true ,
28612861
2862- // FIXME: The size has been changed due to musl's time64
2863- "time_t" => true ,
2864-
2865- // LFS64 types have been removed in Emscripten 3.1.44+
2862+ // LFS64 types have been removed in Emscripten 3.1.44
28662863 // https://github.com/emscripten-core/emscripten/pull/19812
28672864 t => t. ends_with ( "64" ) || t. ends_with ( "64_t" ) ,
28682865 }
@@ -2871,30 +2868,19 @@ fn test_emscripten(target: &str) {
28712868 cfg. skip_struct ( move |ty| {
28722869 match ty {
28732870 // This is actually a union, not a struct
2874- // FIXME: is this necessary?
28752871 "sigval" => true ,
28762872
2877- // FIXME: It was removed in
2878- // emscripten-core/emscripten@953e414
2879- "pthread_mutexattr_t" => true ,
2880-
28812873 // FIXME: Investigate why the test fails.
28822874 // Skip for now to unblock CI.
28832875 "pthread_condattr_t" => true ,
2884-
2885- // FIXME: The size has been changed when upgraded to musl 1.2.2
2886- "pthread_mutex_t" => true ,
2876+ "pthread_mutexattr_t" => true ,
28872877
28882878 // No epoll support
28892879 // https://github.com/emscripten-core/emscripten/issues/5033
28902880 ty if ty. starts_with ( "epoll" ) => true ,
28912881 ty if ty. starts_with ( "signalfd" ) => true ,
28922882
2893- // FIXME: The size has been changed due to time64
2894- "utimbuf" | "timeval" | "timespec" | "rusage" | "itimerval" | "sched_param"
2895- | "stat" | "stat64" | "shmid_ds" | "msqid_ds" => true ,
2896-
2897- // LFS64 types have been removed in Emscripten 3.1.44+
2883+ // LFS64 types have been removed in Emscripten 3.1.44
28982884 // https://github.com/emscripten-core/emscripten/pull/19812
28992885 ty => ty. ends_with ( "64" ) || ty. ends_with ( "64_t" ) ,
29002886 }
@@ -2903,12 +2889,9 @@ fn test_emscripten(target: &str) {
29032889 cfg. skip_fn ( move |name| {
29042890 match name {
29052891 // Emscripten does not support fork/exec/wait or any kind of multi-process support
2906- // https://github.com/emscripten-core/emscripten/blob/3.1.30 /tools/system_libs.py#L973
2892+ // https://github.com/emscripten-core/emscripten/blob/3.1.68 /tools/system_libs.py#L1100
29072893 "execv" | "execve" | "execvp" | "execvpe" | "fexecve" | "wait4" => true ,
29082894
2909- // FIXME: Remove after emscripten-core/emscripten#18492 is released (> 3.1.30).
2910- "clearenv" => true ,
2911-
29122895 _ => false ,
29132896 }
29142897 } ) ;
@@ -2936,8 +2919,8 @@ fn test_emscripten(target: &str) {
29362919 "USRQUOTA" | "GRPQUOTA" | "Q_GETFMT" | "Q_GETINFO" | "Q_SETINFO" | "Q_SYNC"
29372920 | "Q_QUOTAON" | "Q_QUOTAOFF" | "Q_GETQUOTA" | "Q_SETQUOTA" => true ,
29382921
2939- // FIXME: `SYS_gettid` was removed in
2940- // emscripten-core/emscripten@6d6474e
2922+ // `SYS_gettid` was removed in Emscripten v1.39.9
2923+ // https://github.com/ emscripten-core/emscripten/pull/10439
29412924 "SYS_gettid" => true ,
29422925
29432926 // No personality.h
@@ -2946,19 +2929,11 @@ fn test_emscripten(target: &str) {
29462929 | "ADDR_LIMIT_32BIT" | "SHORT_INODE" | "WHOLE_SECONDS" | "STICKY_TIMEOUTS"
29472930 | "ADDR_LIMIT_3GB" => true ,
29482931
2949- // FIXME: These values have been changed
2950- | "POSIX_MADV_DONTNEED" // to 4
2951- | "RLIMIT_NLIMITS" // to 16
2952- | "RLIM_NLIMITS" // to 16
2953- | "IPPROTO_MAX" // to 263
2954- | "F_GETLK" // to 5
2955- | "F_SETLK" // to 6
2956- | "F_SETLKW" // to 7
2957- | "O_TMPFILE" // to 65
2958- | "SIG_IGN" // -1
2959- => true ,
2932+ // `SIG_IGN` has been changed to -2 since 1 is a valid function address
2933+ // https://github.com/emscripten-core/emscripten/pull/14883
2934+ "SIG_IGN" => true ,
29602935
2961- // LFS64 types have been removed in Emscripten 3.1.44+
2936+ // LFS64 types have been removed in Emscripten 3.1.44
29622937 // https://github.com/emscripten-core/emscripten/pull/19812
29632938 n if n. starts_with ( "RLIM64" ) => true ,
29642939
@@ -2968,23 +2943,18 @@ fn test_emscripten(target: &str) {
29682943
29692944 cfg. skip_field_type ( move |struct_, field| {
29702945 // This is a weird union, don't check the type.
2971- // FIXME: is this necessary?
29722946 ( struct_ == "ifaddrs" && field == "ifa_ifu" ) ||
29732947 // sighandler_t type is super weird
2974- // FIXME: is this necessary?
29752948 ( struct_ == "sigaction" && field == "sa_sigaction" ) ||
29762949 // sigval is actually a union, but we pretend it's a struct
2977- // FIXME: is this necessary?
29782950 ( struct_ == "sigevent" && field == "sigev_value" )
29792951 } ) ;
29802952
29812953 cfg. skip_field ( move |struct_, field| {
29822954 // this is actually a union on linux, so we can't represent it well and
29832955 // just insert some padding.
2984- // FIXME: is this necessary?
29852956 ( struct_ == "siginfo_t" && field == "_pad" ) ||
29862957 // musl names this __dummy1 but it's still there
2987- // FIXME: is this necessary?
29882958 ( struct_ == "glob_t" && field == "gl_flags" ) ||
29892959 // FIXME: After musl 1.1.24, it have only one field `sched_priority`,
29902960 // while other fields become reserved.
@@ -2996,7 +2966,6 @@ fn test_emscripten(target: &str) {
29962966 ] . contains ( & field) )
29972967 } ) ;
29982968
2999- // FIXME: test linux like
30002969 cfg. generate ( "../src/lib.rs" , "main.rs" ) ;
30012970}
30022971
0 commit comments