Skip to content

Instantly share code, notes, and snippets.

@zarch
Created June 18, 2017 21:17
Show Gist options
  • Save zarch/024b1bec4772b8735a61aef18c4143fb to your computer and use it in GitHub Desktop.
Save zarch/024b1bec4772b8735a61aef18c4143fb to your computer and use it in GitHub Desktop.
Errors when trying to generate GRASS GIS binding with bindgen
$ clang --version
clang version 4.0.0 (tags/RELEASE_400/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
$ CPATH=:/lib:$GISBASE/include OUT_DIR=binding cargo build --verbose
Fresh lazy_static v0.2.2
Fresh vec_map v0.6.0
Fresh unicode-segmentation v1.1.0
Fresh strsim v0.6.0
Fresh unicode-width v0.1.4
Fresh void v1.0.2
Fresh nom v1.2.4
Fresh cfg-if v0.1.0
Fresh rustc-serialize v0.3.22
Fresh glob v0.2.11
Fresh log v0.3.6
Fresh unreachable v0.1.1
Fresh syntex_pos v0.54.0
Fresh libc v0.2.20
Fresh bitflags v0.7.1
Fresh term v0.4.5
Fresh thread-id v3.0.0
Fresh ansi_term v0.9.0
Fresh unicode-xid v0.0.4
Fresh num-traits v0.1.36
Fresh thread_local v0.3.2
Fresh regex-syntax v0.4.0
Fresh syntex_errors v0.54.0
Fresh rand v0.3.15
Fresh memchr v1.0.1
Fresh dtoa v0.4.1
Fresh syntex_syntax v0.54.0
Fresh term_size v0.2.2
Fresh aho-corasick v0.6.2
Fresh utf8-ranges v1.0.0
Fresh quasi v0.29.0
Fresh syntex v0.54.0
Fresh clap v2.20.3
Fresh regex v0.2.1
Fresh aster v0.38.0
Fresh itoa v0.3.1
Fresh siphasher v0.2.1
Fresh env_logger v0.4.0
Fresh quasi_codegen v0.29.0
Fresh cexpr v0.2.0
Fresh phf_shared v0.7.21
Fresh serde v0.9.7
Fresh phf_generator v0.7.21
Fresh phf v0.7.21
Fresh serde_json v0.9.6
Fresh phf_codegen v0.7.21
Fresh target_build_utils v0.3.0
Fresh libloading v0.3.2
Fresh clang-sys v0.12.0
Fresh bindgen v0.21.2
Compiling grass-sys v0.1.0 (file:///home/pietro/docdat/src/rust/grass-sys)
Running `rustc --crate-name grass_sys src/lib.rs --crate-type lib --emit=dep-info,link -C debuginfo=2 -C metadata=c115786b598e1a01 -C extra-filename=-c115786b598e1a01 --out-dir /home/pietro/docdat/src/rust/grass-sys/target/debug/deps -L dependency=/home/pietro/docdat/src/rust/grass-sys/target/debug/deps -l grass`
error[E0428]: a value named `FP_NAN` has already been defined in this module
--> /home/pietro/docdat/src/rust/grass-sys/target/debug/build/grass-sys-b46ad39c21964512/out/bindings.rs:22338:1
|
612 | pub const FP_NAN: ::std::os::raw::c_uint = 0;
| --------------------------------------------- previous definition of `FP_NAN` here
...
22338 | pub const FP_NAN: _bindgen_ty_52 = _bindgen_ty_52::FP_NAN;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `FP_NAN` already defined
error[E0428]: a value named `FP_INFINITE` has already been defined in this module
--> /home/pietro/docdat/src/rust/grass-sys/target/debug/build/grass-sys-b46ad39c21964512/out/bindings.rs:22339:1
|
613 | pub const FP_INFINITE: ::std::os::raw::c_uint = 1;
| -------------------------------------------------- previous definition of `FP_INFINITE` here
...
22339 | pub const FP_INFINITE: _bindgen_ty_52 = _bindgen_ty_52::FP_INFINITE;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `FP_INFINITE` already defined
error[E0428]: a value named `FP_ZERO` has already been defined in this module
--> /home/pietro/docdat/src/rust/grass-sys/target/debug/build/grass-sys-b46ad39c21964512/out/bindings.rs:22340:1
|
614 | pub const FP_ZERO: ::std::os::raw::c_uint = 2;
| ---------------------------------------------- previous definition of `FP_ZERO` here
...
22340 | pub const FP_ZERO: _bindgen_ty_52 = _bindgen_ty_52::FP_ZERO;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `FP_ZERO` already defined
error[E0428]: a value named `FP_SUBNORMAL` has already been defined in this module
--> /home/pietro/docdat/src/rust/grass-sys/target/debug/build/grass-sys-b46ad39c21964512/out/bindings.rs:22341:1
|
615 | pub const FP_SUBNORMAL: ::std::os::raw::c_uint = 3;
| --------------------------------------------------- previous definition of `FP_SUBNORMAL` here
...
22341 | pub const FP_SUBNORMAL: _bindgen_ty_52 = _bindgen_ty_52::FP_SUBNORMAL;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `FP_SUBNORMAL` already defined
error[E0428]: a value named `FP_NORMAL` has already been defined in this module
--> /home/pietro/docdat/src/rust/grass-sys/target/debug/build/grass-sys-b46ad39c21964512/out/bindings.rs:22342:1
|
616 | pub const FP_NORMAL: ::std::os::raw::c_uint = 4;
| ------------------------------------------------ previous definition of `FP_NORMAL` here
...
22342 | pub const FP_NORMAL: _bindgen_ty_52 = _bindgen_ty_52::FP_NORMAL;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `FP_NORMAL` already defined
error[E0277]: the trait bound `unsafe extern "C" fn(*mut interp_params, *mut quaddata, *mut BM, f64, f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, i64, f64) -> i32: std::fmt::Debug` is not satisfied
--> /home/pietro/docdat/src/rust/grass-sys/target/debug/build/grass-sys-b46ad39c21964512/out/bindings.rs:40817:5
|
40817 | pub grid_calc: grid_calc_fn,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `unsafe extern "C" fn(*mut interp_params, *mut quaddata, *mut BM, f64, f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, i64, f64) -> i32`
|
= note: `unsafe extern "C" fn(*mut interp_params, *mut quaddata, *mut BM, f64, f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, i64, f64) -> i32` cannot be formatted using `:?`; if it is defined in your crate, add `#[derive(Debug)]` or manually implement it
= note: required because of the requirements on the impl of `std::fmt::Debug` for `std::option::Option<unsafe extern "C" fn(*mut interp_params, *mut quaddata, *mut BM, f64, f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, i64, f64) -> i32>`
= note: required because of the requirements on the impl of `std::fmt::Debug` for `&std::option::Option<unsafe extern "C" fn(*mut interp_params, *mut quaddata, *mut BM, f64, f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, i64, f64) -> i32>`
= note: required for the cast to the object type `std::fmt::Debug`
error[E0277]: the trait bound `unsafe extern "C" fn(*mut interp_params, i32, i32, i32, *mut BM, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, i32, i32) -> i32: std::fmt::Debug` is not satisfied
--> /home/pietro/docdat/src/rust/grass-sys/target/debug/build/grass-sys-b46ad39c21964512/out/bindings.rs:40820:5
|
40820 | pub secpar: secpar_fn,
| ^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `unsafe extern "C" fn(*mut interp_params, i32, i32, i32, *mut BM, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, i32, i32) -> i32`
|
= note: `unsafe extern "C" fn(*mut interp_params, i32, i32, i32, *mut BM, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, i32, i32) -> i32` cannot be formatted using `:?`; if it is defined in your crate, add `#[derive(Debug)]` or manually implement it
= note: required because of the requirements on the impl of `std::fmt::Debug` for `std::option::Option<unsafe extern "C" fn(*mut interp_params, i32, i32, i32, *mut BM, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, i32, i32) -> i32>`
= note: required because of the requirements on the impl of `std::fmt::Debug` for `&std::option::Option<unsafe extern "C" fn(*mut interp_params, i32, i32, i32, *mut BM, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, *mut f64, i32, i32) -> i32>`
= note: required for the cast to the object type `std::fmt::Debug`
error: aborting due to 2 previous errors
error: Could not compile `grass-sys`.
Caused by:
process didn't exit successfully: `rustc --crate-name grass_sys src/lib.rs --crate-type lib --emit=dep-info,link -C debuginfo=2 -C metadata=c115786b598e1a01 -C extra-filename=-c115786b598e1a01 --out-dir /home/pietro/docdat/src/rust/grass-sys/target/debug/deps -L dependency=/home/pietro/docdat/src/rust/grass-sys/target/debug/deps -l grass` (exit code: 101)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment