@@ -2874,7 +2874,7 @@ fn test_emscripten(target: &str) {
28742874 // Just pass all these through, no need for a "struct" prefix
28752875 "FILE" | "fd_set" | "Dl_info" | "DIR" => ty. to_string ( ) ,
28762876
2877- // LFS64 types have been removed in Emscripten 3.1.44+
2877+ // LFS64 types have been removed in Emscripten 3.1.44
28782878 // https://github.com/emscripten-core/emscripten/pull/19812
28792879 "off64_t" => "off_t" . to_string ( ) ,
28802880
@@ -2898,7 +2898,7 @@ fn test_emscripten(target: &str) {
28982898 s if s. ends_with ( "_nsec" ) && struct_. starts_with ( "stat" ) => {
28992899 s. replace ( "e_nsec" , ".tv_nsec" )
29002900 }
2901- // FIXME: appears that `epoll_event.data` is an union
2901+ // Rust struct uses raw u64, rather than union
29022902 "u64" if struct_ == "epoll_event" => "data.u64" . to_string ( ) ,
29032903 s => s. to_string ( ) ,
29042904 }
@@ -2914,10 +2914,7 @@ fn test_emscripten(target: &str) {
29142914 // https://github.com/emscripten-core/emscripten/issues/5033
29152915 ty if ty. starts_with ( "epoll" ) => true ,
29162916
2917- // FIXME: The size has been changed due to musl's time64
2918- "time_t" => true ,
2919-
2920- // LFS64 types have been removed in Emscripten 3.1.44+
2917+ // LFS64 types have been removed in Emscripten 3.1.44
29212918 // https://github.com/emscripten-core/emscripten/pull/19812
29222919 t => t. ends_with ( "64" ) || t. ends_with ( "64_t" ) ,
29232920 }
@@ -2926,30 +2923,19 @@ fn test_emscripten(target: &str) {
29262923 cfg. skip_struct ( move |ty| {
29272924 match ty {
29282925 // This is actually a union, not a struct
2929- // FIXME: is this necessary?
29302926 "sigval" => true ,
29312927
2932- // FIXME: It was removed in
2933- // emscripten-core/emscripten@953e414
2934- "pthread_mutexattr_t" => true ,
2935-
29362928 // FIXME: Investigate why the test fails.
29372929 // Skip for now to unblock CI.
29382930 "pthread_condattr_t" => true ,
2939-
2940- // FIXME: The size has been changed when upgraded to musl 1.2.2
2941- "pthread_mutex_t" => true ,
2931+ "pthread_mutexattr_t" => true ,
29422932
29432933 // No epoll support
29442934 // https://github.com/emscripten-core/emscripten/issues/5033
29452935 ty if ty. starts_with ( "epoll" ) => true ,
29462936 ty if ty. starts_with ( "signalfd" ) => true ,
29472937
2948- // FIXME: The size has been changed due to time64
2949- "utimbuf" | "timeval" | "timespec" | "rusage" | "itimerval" | "sched_param"
2950- | "stat" | "stat64" | "shmid_ds" | "msqid_ds" => true ,
2951-
2952- // LFS64 types have been removed in Emscripten 3.1.44+
2938+ // LFS64 types have been removed in Emscripten 3.1.44
29532939 // https://github.com/emscripten-core/emscripten/pull/19812
29542940 ty => ty. ends_with ( "64" ) || ty. ends_with ( "64_t" ) ,
29552941 }
@@ -2958,12 +2944,9 @@ fn test_emscripten(target: &str) {
29582944 cfg. skip_fn ( move |name| {
29592945 match name {
29602946 // Emscripten does not support fork/exec/wait or any kind of multi-process support
2961- // https://github.com/emscripten-core/emscripten/blob/3.1.30 /tools/system_libs.py#L973
2947+ // https://github.com/emscripten-core/emscripten/blob/3.1.68 /tools/system_libs.py#L1100
29622948 "execv" | "execve" | "execvp" | "execvpe" | "fexecve" | "wait4" => true ,
29632949
2964- // FIXME: Remove after emscripten-core/emscripten#18492 is released (> 3.1.30).
2965- "clearenv" => true ,
2966-
29672950 _ => false ,
29682951 }
29692952 } ) ;
@@ -2991,8 +2974,8 @@ fn test_emscripten(target: &str) {
29912974 "USRQUOTA" | "GRPQUOTA" | "Q_GETFMT" | "Q_GETINFO" | "Q_SETINFO" | "Q_SYNC"
29922975 | "Q_QUOTAON" | "Q_QUOTAOFF" | "Q_GETQUOTA" | "Q_SETQUOTA" => true ,
29932976
2994- // FIXME: `SYS_gettid` was removed in
2995- // emscripten-core/emscripten@6d6474e
2977+ // `SYS_gettid` was removed in Emscripten v1.39.9
2978+ // https://github.com/ emscripten-core/emscripten/pull/10439
29962979 "SYS_gettid" => true ,
29972980
29982981 // No personality.h
@@ -3001,19 +2984,11 @@ fn test_emscripten(target: &str) {
30012984 | "ADDR_LIMIT_32BIT" | "SHORT_INODE" | "WHOLE_SECONDS" | "STICKY_TIMEOUTS"
30022985 | "ADDR_LIMIT_3GB" => true ,
30032986
3004- // FIXME: These values have been changed
3005- | "POSIX_MADV_DONTNEED" // to 4
3006- | "RLIMIT_NLIMITS" // to 16
3007- | "RLIM_NLIMITS" // to 16
3008- | "IPPROTO_MAX" // to 263
3009- | "F_GETLK" // to 5
3010- | "F_SETLK" // to 6
3011- | "F_SETLKW" // to 7
3012- | "O_TMPFILE" // to 65
3013- | "SIG_IGN" // -1
3014- => true ,
2987+ // `SIG_IGN` has been changed to -2 since 1 is a valid function address
2988+ // https://github.com/emscripten-core/emscripten/pull/14883
2989+ "SIG_IGN" => true ,
30152990
3016- // LFS64 types have been removed in Emscripten 3.1.44+
2991+ // LFS64 types have been removed in Emscripten 3.1.44
30172992 // https://github.com/emscripten-core/emscripten/pull/19812
30182993 n if n. starts_with ( "RLIM64" ) => true ,
30192994
@@ -3023,23 +2998,18 @@ fn test_emscripten(target: &str) {
30232998
30242999 cfg. skip_field_type ( move |struct_, field| {
30253000 // This is a weird union, don't check the type.
3026- // FIXME: is this necessary?
30273001 ( struct_ == "ifaddrs" && field == "ifa_ifu" ) ||
30283002 // sighandler_t type is super weird
3029- // FIXME: is this necessary?
30303003 ( struct_ == "sigaction" && field == "sa_sigaction" ) ||
30313004 // sigval is actually a union, but we pretend it's a struct
3032- // FIXME: is this necessary?
30333005 ( struct_ == "sigevent" && field == "sigev_value" )
30343006 } ) ;
30353007
30363008 cfg. skip_field ( move |struct_, field| {
30373009 // this is actually a union on linux, so we can't represent it well and
30383010 // just insert some padding.
3039- // FIXME: is this necessary?
30403011 ( struct_ == "siginfo_t" && field == "_pad" ) ||
30413012 // musl names this __dummy1 but it's still there
3042- // FIXME: is this necessary?
30433013 ( struct_ == "glob_t" && field == "gl_flags" ) ||
30443014 // FIXME: After musl 1.1.24, it have only one field `sched_priority`,
30453015 // while other fields become reserved.
@@ -3051,7 +3021,6 @@ fn test_emscripten(target: &str) {
30513021 ] . contains ( & field) )
30523022 } ) ;
30533023
3054- // FIXME: test linux like
30553024 cfg. generate ( "../src/lib.rs" , "main.rs" ) ;
30563025}
30573026
0 commit comments