@@ -2810,7 +2810,7 @@ fn test_emscripten(target: &str) {
2810
2810
// Just pass all these through, no need for a "struct" prefix
2811
2811
"FILE" | "fd_set" | "Dl_info" | "DIR" => ty. to_string ( ) ,
2812
2812
2813
- // LFS64 types have been removed in Emscripten 3.1.44+
2813
+ // LFS64 types have been removed in Emscripten 3.1.44
2814
2814
// https://github.com/emscripten-core/emscripten/pull/19812
2815
2815
"off64_t" => "off_t" . to_string ( ) ,
2816
2816
@@ -2834,7 +2834,7 @@ fn test_emscripten(target: &str) {
2834
2834
s if s. ends_with ( "_nsec" ) && struct_. starts_with ( "stat" ) => {
2835
2835
s. replace ( "e_nsec" , ".tv_nsec" )
2836
2836
}
2837
- // FIXME: appears that `epoll_event.data` is an union
2837
+ // Rust struct uses raw u64, rather than union
2838
2838
"u64" if struct_ == "epoll_event" => "data.u64" . to_string ( ) ,
2839
2839
s => s. to_string ( ) ,
2840
2840
}
@@ -2850,10 +2850,7 @@ fn test_emscripten(target: &str) {
2850
2850
// https://github.com/emscripten-core/emscripten/issues/5033
2851
2851
ty if ty. starts_with ( "epoll" ) => true ,
2852
2852
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
2857
2854
// https://github.com/emscripten-core/emscripten/pull/19812
2858
2855
t => t. ends_with ( "64" ) || t. ends_with ( "64_t" ) ,
2859
2856
}
@@ -2862,34 +2859,19 @@ fn test_emscripten(target: &str) {
2862
2859
cfg. skip_struct ( move |ty| {
2863
2860
match ty {
2864
2861
// This is actually a union, not a struct
2865
- // FIXME: is this necessary?
2866
2862
"sigval" => true ,
2867
2863
2868
- // FIXME: It was removed in
2869
- // emscripten-core/emscripten@953e414
2870
- "pthread_mutexattr_t" => true ,
2871
-
2872
2864
// FIXME: Investigate why the test fails.
2873
2865
// Skip for now to unblock CI.
2874
2866
"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 ,
2878
2868
2879
2869
// No epoll support
2880
2870
// https://github.com/emscripten-core/emscripten/issues/5033
2881
2871
ty if ty. starts_with ( "epoll" ) => true ,
2882
2872
ty if ty. starts_with ( "signalfd" ) => true ,
2883
2873
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
2893
2875
// https://github.com/emscripten-core/emscripten/pull/19812
2894
2876
ty => ty. ends_with ( "64" ) || ty. ends_with ( "64_t" ) ,
2895
2877
}
@@ -2898,12 +2880,9 @@ fn test_emscripten(target: &str) {
2898
2880
cfg. skip_fn ( move |name| {
2899
2881
match name {
2900
2882
// 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
2902
2884
"execv" | "execve" | "execvp" | "execvpe" | "fexecve" | "wait4" => true ,
2903
2885
2904
- // FIXME: Remove after emscripten-core/emscripten#18492 is released (> 3.1.30).
2905
- "clearenv" => true ,
2906
-
2907
2886
_ => false ,
2908
2887
}
2909
2888
} ) ;
@@ -2931,8 +2910,8 @@ fn test_emscripten(target: &str) {
2931
2910
"USRQUOTA" | "GRPQUOTA" | "Q_GETFMT" | "Q_GETINFO" | "Q_SETINFO" | "Q_SYNC"
2932
2911
| "Q_QUOTAON" | "Q_QUOTAOFF" | "Q_GETQUOTA" | "Q_SETQUOTA" => true ,
2933
2912
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
2936
2915
"SYS_gettid" => true ,
2937
2916
2938
2917
// No personality.h
@@ -2941,19 +2920,10 @@ fn test_emscripten(target: &str) {
2941
2920
| "ADDR_LIMIT_32BIT" | "SHORT_INODE" | "WHOLE_SECONDS" | "STICKY_TIMEOUTS"
2942
2921
| "ADDR_LIMIT_3GB" => true ,
2943
2922
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
+ // FIXME: https://github.com/emscripten-core/emscripten/pull/14883
2924
+ "SIG_IGN" => true ,
2955
2925
2956
- // LFS64 types have been removed in Emscripten 3.1.44+
2926
+ // LFS64 types have been removed in Emscripten 3.1.44
2957
2927
// https://github.com/emscripten-core/emscripten/pull/19812
2958
2928
n if n. starts_with ( "RLIM64" ) => true ,
2959
2929
@@ -2963,23 +2933,18 @@ fn test_emscripten(target: &str) {
2963
2933
2964
2934
cfg. skip_field_type ( move |struct_, field| {
2965
2935
// This is a weird union, don't check the type.
2966
- // FIXME: is this necessary?
2967
2936
( struct_ == "ifaddrs" && field == "ifa_ifu" ) ||
2968
2937
// sighandler_t type is super weird
2969
- // FIXME: is this necessary?
2970
2938
( struct_ == "sigaction" && field == "sa_sigaction" ) ||
2971
2939
// sigval is actually a union, but we pretend it's a struct
2972
- // FIXME: is this necessary?
2973
2940
( struct_ == "sigevent" && field == "sigev_value" )
2974
2941
} ) ;
2975
2942
2976
2943
cfg. skip_field ( move |struct_, field| {
2977
2944
// this is actually a union on linux, so we can't represent it well and
2978
2945
// just insert some padding.
2979
- // FIXME: is this necessary?
2980
2946
( struct_ == "siginfo_t" && field == "_pad" ) ||
2981
2947
// musl names this __dummy1 but it's still there
2982
- // FIXME: is this necessary?
2983
2948
( struct_ == "glob_t" && field == "gl_flags" ) ||
2984
2949
// FIXME: After musl 1.1.24, it have only one field `sched_priority`,
2985
2950
// while other fields become reserved.
@@ -2991,7 +2956,6 @@ fn test_emscripten(target: &str) {
2991
2956
] . contains ( & field) )
2992
2957
} ) ;
2993
2958
2994
- // FIXME: test linux like
2995
2959
cfg. generate ( "../src/lib.rs" , "main.rs" ) ;
2996
2960
}
2997
2961
0 commit comments