@@ -9,6 +9,7 @@ fn main() {
9
9
let aarch64 = target. contains ( "aarch64" ) ;
10
10
let i686 = target. contains ( "i686" ) ;
11
11
let x86_64 = target. contains ( "x86_64" ) ;
12
+ let powerpc = target. contains ( "powerpc" ) ;
12
13
let windows = target. contains ( "windows" ) ;
13
14
let mingw = target. contains ( "windows-gnu" ) ;
14
15
let linux = target. contains ( "unknown-linux" ) ;
@@ -377,6 +378,10 @@ fn main() {
377
378
// FIXME: unskip it for next major release
378
379
"stat" | "stat64" if android => true ,
379
380
381
+ // These are tested as part of the linux_fcntl tests since there are
382
+ // header conflicts when including them with all the other structs.
383
+ "termios2" => true ,
384
+
380
385
_ => false
381
386
}
382
387
} ) ;
@@ -671,8 +676,16 @@ fn main() {
671
676
// fails on a lot of platforms.
672
677
let mut cfg = ctest:: TestGenerator :: new ( ) ;
673
678
cfg. skip_type ( |_| true )
674
- . skip_struct ( |_| true )
675
- . skip_fn ( |_| true ) ;
679
+ . type_name ( move |ty, _| {
680
+ match ty {
681
+ // The termios2 struct is the same as `termios` on powerpc, so it's actually
682
+ // undeclared in the headers. We'll still expose it there to still provide
683
+ // some type safety, but we can't check it directly.
684
+ "termios2" if powerpc => "termios" . to_string ( ) ,
685
+ t => t. to_string ( ) ,
686
+ }
687
+ } )
688
+ . skip_fn ( |_| true ) ;
676
689
if android || linux {
677
690
// musl defines these directly in `fcntl.h`
678
691
if musl {
0 commit comments