This repository was archived by the owner on Mar 7, 2021. It is now read-only.
File tree Expand file tree Collapse file tree 1 file changed +23
-2
lines changed Expand file tree Collapse file tree 1 file changed +23
-2
lines changed Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ extern crate nix;
3
3
4
4
use std:: env;
5
5
use std:: path:: PathBuf ;
6
+ use std:: process:: Command ;
6
7
7
8
const HEADERS : & [ & str ] = & [ "linux/fs.h" ] ;
8
9
const INCLUDED_TYPES : & [ & str ] = & [ "file_system_type" ] ;
@@ -11,10 +12,30 @@ const INCLUDED_VARS: &[&str] = &[];
11
12
12
13
fn main ( ) {
13
14
let kernel = nix:: sys:: utsname:: uname ( ) ;
14
- let mut builder = bindgen:: Builder :: default ( ) . clang_arg ( format ! ( "-I/lib/modules/{}/build/include" , kernel. release( ) ) ) ;
15
+ let mut builder = bindgen:: Builder :: default ( ) ;
16
+
17
+ let output = String :: from_utf8 (
18
+ Command :: new ( "make" )
19
+ . arg ( "-C" )
20
+ . arg ( "kernel-cflags-finder" )
21
+ . arg ( "-s" )
22
+ . output ( )
23
+ . unwrap ( )
24
+ . stdout ,
25
+ ) . unwrap ( ) ;
26
+ assert ! ( !output. contains( '"' ) ) ;
27
+ assert ! ( !output. contains( '\'' ) ) ;
28
+
29
+ for arg in output. split ( ' ' ) {
30
+ builder = builder. clang_arg ( arg) ;
31
+ }
15
32
16
33
for h in HEADERS {
17
- builder = builder. header ( format ! ( "/lib/modules/{}/build/include/{}" , kernel. release( ) , h. to_string( ) ) ) ;
34
+ builder = builder. header ( format ! (
35
+ "/lib/modules/{}/build/include/{}" ,
36
+ kernel. release( ) ,
37
+ h. to_string( )
38
+ ) ) ;
18
39
}
19
40
20
41
for t in INCLUDED_TYPES {
You can’t perform that action at this time.
0 commit comments