@@ -1348,15 +1348,16 @@ fn test_android(target: &str) {
1348
1348
s if s. ends_with ( "_nsec" ) && struct_. starts_with ( "stat" ) => {
1349
1349
s. to_string ( )
1350
1350
}
1351
+ // FIXME: appears that `epoll_event.data` is an union
1351
1352
"u64" if struct_ == "epoll_event" => "data.u64" . to_string ( ) ,
1352
1353
s => s. to_string ( ) ,
1353
1354
}
1354
1355
} ) ;
1355
1356
1356
1357
cfg. skip_type ( move |ty| {
1357
1358
match ty {
1358
- // sighandler_t is crazy across platforms
1359
- // FIXME: still necessary?
1359
+ // FIXME: ` sighandler_t` type is incorrect, see:
1360
+ // https://github.com/rust-lang/libc/issues/1359
1360
1361
"sighandler_t" => true ,
1361
1362
_ => false ,
1362
1363
}
@@ -1419,8 +1420,15 @@ fn test_android(target: &str) {
1419
1420
// this is actually a union on linux, so we can't represent it well and
1420
1421
// just insert some padding.
1421
1422
( struct_ == "siginfo_t" && field == "_pad" ) ||
1423
+ // FIXME: `sa_sigaction` has type `sighandler_t` but that type is
1424
+ // incorrect, see: https://github.com/rust-lang/libc/issues/1359
1425
+ ( struct_ == "sigaction" && field == "sa_sigaction" ) ||
1422
1426
// sigev_notify_thread_id is actually part of a sigev_un union
1423
- ( struct_ == "sigevent" && field == "sigev_notify_thread_id" )
1427
+ ( struct_ == "sigevent" && field == "sigev_notify_thread_id" ) ||
1428
+ // signalfd had SIGSYS fields added in Android 4.19, but CI does not have that version yet.
1429
+ ( struct_ == "signalfd_siginfo" && ( field == "ssi_syscall" ||
1430
+ field == "ssi_call_addr" ||
1431
+ field == "ssi_arch" ) )
1424
1432
} ) ;
1425
1433
1426
1434
cfg. generate ( "../src/lib.rs" , "main.rs" ) ;
0 commit comments