3 ms·
Does rustfmt-preview work with bindgen though?
by inferiorhuman 8y ago
Does rustfmt-preview work with bindgen though?
- steveklabnik 8y agoI don’t know what this sentence means.
- inferiorhuman 8y agoBindgen relies on rustfmt. With the codebase I'm using rustfmt-nightly works, but the stable version segfaults. Known issue but that's why I've stuck with rustfmt-nightly.
- steveklabnik 8y agoInteresting! I was not aware of that. So, no idea :)
- inferiorhuman 8y agohttps://github.com/rust-lang-nursery/rust-bindgen/issues/1045 https://github.com/rust-lang-nursery/rust-bindgen/issues/104... So yeah looks like I'm tethered to the nightly toolchain after all. :/
- steveklabnik 8y agoI happen to be in the same physical location as the maintainers of both. This should be re-opened. I’ll chat with them. But first... I’m also confused. The component is the rustfmt-nightly codebase. You’re still seeing problems with the component?
- inferiorhuman 8y agoI'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!