2 ms·
I'm using bindgen to generate bindings for radare2. But I'm also using TryFrom, so I'm not likely to move off of the nightly toolchain any time soon. Before I
by inferiorhuman 8y ago
I'm using bindgen to generate bindings for radare2. But I'm also using TryFrom, so I'm not likely to move off of the nightly toolchain any time soon.
Before I ended up going down the TryFrom rabbit hole I ran into two issues with bindgen:
1.) Bindgen segfaults with the ancient LLVM on OSX 10.9. Issue #1006. Solution: use LLVM >= 5 binaries from the LLVM site.
2.) Stable (deprecated) rustfmt causes bindgen to segfault. Solution: cargo install -f rustfmt-nightly. It could be as simple as "stable rustfmt requires --force to run because it's been deprecated", but more helpful error messages would be a great thing here.
- steveklabnik 8y agoWhat happens if you uninstall the rustfmt-nightly and use the component instead? (TryFrom is being stabilized fairly soon, it got caught up in some silly stuff but is basically good to go)
- inferiorhuman 8y agoSo on the mac, something's going on and even with LIBCLANG_PATH set I'm still getting a segfault in some clang stuff. On the BSD box, rustfmt-nightly allows everything to work. Using `cargo install --force rustfmt` will provoke bindgen into reporting an internal error: Custom { kind: Other, error: StringError("Internal rustfmt error") } I get the same results if I call the bindgen executable or have build.rs call the bindgen API. I've stuck with having build.rs call the bindgen executable because if I use the bindgen API, compilation is SLOW.
- steveklabnik 8y agoNot cargo install, the rustup component add rustfmt-preview
- inferiorhuman 8y agoResults: $ cargo uninstall rustfmt && rustup component add rustfmt-preview Removing /home/alex/.cargo/bin/cargo-fmt Removing /home/alex/.cargo/bin/rustfmt info: downloading component 'rustfmt-preview' info: installing component 'rustfmt-preview' $ bindgen bindings.h -- -I/usr/local/include/libr > /dev/null Custom { kind: Other, error: StringError("Cannot find binary path") } $ rustc --version rustc 1.28.0-nightly (29f48ccf3 2018-06-03) $ cat bindings.h #include <r_lib.h> #include <r_asm.h> #include <r_reg.h> #include <r_anal.h> #include <r_bin.h>
- steveklabnik 8y agoOkay. Let’s get that bug re-opened!