filecoin-project/lotus

Fil-blst requires libclang to build

hyunmoon opened this issue · 2 comments

18c025f

This is a new requirement so I think it should be documented somewhere.

How to fix

Ubuntu:
apt-get install -y libclang-dev

   Compiling failure v0.1.8
error: failed to run custom build command for `fil-blst v0.1.1`

Caused by:
  process didn't exit successfully: `/home/downloads/lotus/extern/filecoin-ffi/rust/target/release/build/fil-blst-9bd86e5e45b0c01d/build-script-build` (exit code: 101)
--- stdout
Using fil-blst source directory "fil-blst"
Using       blst source directory "blst"
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CC_x86_64-unknown-linux-gnu = None
CC_x86_64_unknown_linux_gnu = None
HOST_CC = None
CC = None
CFLAGS_x86_64-unknown-linux-gnu = None
CFLAGS_x86_64_unknown_linux_gnu = None
HOST_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
DEBUG = Some("false")
CARGO_CFG_TARGET_FEATURE = Some("avx,avx2,fxsr,sha,sse,sse2,sse3,sse4.1,sse4.2,ssse3")
CC_x86_64-unknown-linux-gnu = None
CC_x86_64_unknown_linux_gnu = None
HOST_CC = None
CC = None
CFLAGS_x86_64-unknown-linux-gnu = None
CFLAGS_x86_64_unknown_linux_gnu = None
HOST_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
CARGO_CFG_TARGET_FEATURE = Some("avx,avx2,fxsr,sha,sse,sse2,sse3,sse4.1,sse4.2,ssse3")
CC_x86_64-unknown-linux-gnu = None
CC_x86_64_unknown_linux_gnu = None
HOST_CC = None
CC = None
CFLAGS_x86_64-unknown-linux-gnu = None
CFLAGS_x86_64_unknown_linux_gnu = None
HOST_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
CARGO_CFG_TARGET_FEATURE = Some("avx,avx2,fxsr,sha,sse,sse2,sse3,sse4.1,sse4.2,ssse3")
running: "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-Wall" "-Wextra" "-mno-avx" "-Wno-unused-command-line-argument" "-D__ADX__" "-o" "/home/downloads/lotus/extern/filecoin-ffi/rust/target/release/build/fil-blst-910e419bf55388a4/out/blst/src/server.o" "-c" "blst/src/server.c"
exit code: 0
running: "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-Wall" "-Wextra" "-mno-avx" "-Wno-unused-command-line-argument" "-D__ADX__" "-o" "/home/downloads/lotus/extern/filecoin-ffi/rust/target/release/build/fil-blst-910e419bf55388a4/out/blst/build/assembly.o" "-c" "blst/build/assembly.S"
exit code: 0
AR_x86_64-unknown-linux-gnu = None
AR_x86_64_unknown_linux_gnu = None
HOST_AR = None
AR = None
running: "ar" "crs" "/home/downloads/lotus/extern/filecoin-ffi/rust/target/release/build/fil-blst-910e419bf55388a4/out/libblst.a" "/home/downloads/lotus/extern/filecoin-ffi/rust/target/release/build/fil-blst-910e419bf55388a4/out/blst/src/server.o" "/home/downloads/lotus/extern/filecoin-ffi/rust/target/release/build/fil-blst-910e419bf55388a4/out/blst/build/assembly.o"
exit code: 0
cargo:rustc-link-lib=static=blst
cargo:rustc-link-search=native=/home/downloads/lotus/extern/filecoin-ffi/rust/target/release/build/fil-blst-910e419bf55388a4/out
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
CRATE_CC_NO_DEFAULTS = None
DEBUG = Some("false")
CARGO_CFG_TARGET_FEATURE = Some("avx,avx2,fxsr,sha,sse,sse2,sse3,sse4.1,sse4.2,ssse3")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
CRATE_CC_NO_DEFAULTS = None
CARGO_CFG_TARGET_FEATURE = Some("avx,avx2,fxsr,sha,sse,sse2,sse3,sse4.1,sse4.2,ssse3")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
CRATE_CC_NO_DEFAULTS = None
CARGO_CFG_TARGET_FEATURE = Some("avx,avx2,fxsr,sha,sse,sse2,sse3,sse4.1,sse4.2,ssse3")
running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "blst/bindings" "-Wall" "-Wextra" "-mno-avx" "-std=gnu++11" "-D__ADX__" "-o" "/home/downloads/lotus/extern/filecoin-ffi/rust/target/release/build/fil-blst-910e419bf55388a4/out/fil-blst/fil_blst.o" "-c" "fil-blst/fil_blst.cpp"
exit code: 0
running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "blst/bindings" "-Wall" "-Wextra" "-mno-avx" "-std=gnu++11" "-D__ADX__" "-o" "/home/downloads/lotus/extern/filecoin-ffi/rust/target/release/build/fil-blst-910e419bf55388a4/out/fil-blst/thread_pool.o" "-c" "fil-blst/thread_pool.cpp"
exit code: 0
AR_x86_64-unknown-linux-gnu = None
AR_x86_64_unknown_linux_gnu = None
HOST_AR = None
AR = None
running: "ar" "crs" "/home/downloads/lotus/extern/filecoin-ffi/rust/target/release/build/fil-blst-910e419bf55388a4/out/libfilblst.a" "/home/downloads/lotus/extern/filecoin-ffi/rust/target/release/build/fil-blst-910e419bf55388a4/out/fil-blst/fil_blst.o" "/home/downloads/lotus/extern/filecoin-ffi/rust/target/release/build/fil-blst-910e419bf55388a4/out/fil-blst/thread_pool.o"
exit code: 0
cargo:rustc-link-lib=static=filblst
cargo:rustc-link-search=native=/home/downloads/lotus/extern/filecoin-ffi/rust/target/release/build/fil-blst-910e419bf55388a4/out
CXXSTDLIB_x86_64-unknown-linux-gnu = None
CXXSTDLIB_x86_64_unknown_linux_gnu = None
HOST_CXXSTDLIB = None
CXXSTDLIB = None
cargo:rustc-link-lib=stdc++
cargo:warning=couldn't execute `llvm-config --prefix` (error: No such file or directory (os error 2))
cargo:warning=set the LLVM_CONFIG_PATH environment variable to the full path to a valid `llvm-config` executable (including the executable itself)

--- stderr
thread 'main' panicked at 'Unable to find libclang: "couldn\'t find any valid shared libraries matching: [\'libclang.so\', \'libclang-*.so\', \'libclang.so.*\', \'libclang-*.so.*\'], set the `LIBCLANG_PATH` environment variable to a path where one of these files can be found (invalid: [])"', /root/.cargo/registry/src/github.com-1ecc6299db9ec823/bindgen-0.54.0/src/lib.rs:1959:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

warning: build failed, waiting for other jobs to finish...
error: build failed
+ rm -f /home/tmp/tmp.hD9Cnz7578
make[1]: *** [Makefile:11: .install-filcrypto] Error 101
make[1]: Leaving directory '/home/downloads/lotus/extern/filecoin-ffi'
make: *** [Makefile:37: build/.filecoin-install] Error 2

vmx commented

From a side channel:

One option if you don't want this extra dep would be to check in bindgen.rs and not call bindgen in build.rs

I'd prefer if we just keep that dep.

thanks for the ticket!