Closed CircArgs closed 2 years ago
The linux prebuilts on there seem to be a big buggy which is why i disabled them. This is something weird with llvm config giving invalid flags, maybe try installing the apt package of llvm7? This is what we do in CI and it seems to work
It's because the prebuilt llvm is built with a later version of gcc. I fixed this on master a while ago but it appears to have been reverted
On Fri, 17 Dec 2021 at 14:05, RDambrosio016 @.***> wrote:
The linux prebuilts on there seem to be a big buggy which is why i disabled them. This is something weird with llvm config giving invalid flags, maybe try installing the apt package of llvm7? This is what we do in CI and it seems to work
— Reply to this email directly, view it on GitHub https://github.com/Rust-GPU/Rust-CUDA/issues/22#issuecomment-996338615, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAOYQXIVFGDQS5H4YGWIF73URKEE5ANCNFSM5KHUYL3A . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you are subscribed to this thread.Message ID: @.***>
I dont think i did anything to revert that, if i did... oops my bad 🙃
Oops no I just never pushed it :D try pulling master now
I took the latest from master and unset my LLVM_CONFIG
variable. To get the build to pull the prebuilt llvm itself I uncommented this match arm line
then I get error: linking with
ccfailed: exit status: 1
see this gist for the full output
I also tried with llvm-7 from an apt install while setting LLVM_CONFIG
to that.
I also tried on Windows with a similar result but I can go fetch the exact result there if it'd help somehow.
@RDambrosio016 I put together a docker image to reproduce the error. I still cannot get the example to build.
Please see the dockerfile and output here https://gist.github.com/CircArgs/56bc8917d850681c65d0787279e5284e
As you'll see
In my output, you'll see I added a few statements to the build file
warning: CONFIG ENVSome("/root/llvm/bin/llvm-config")
warning: PATH TO TRY"/root/llvm/bin/llvm-config"
warning: CMDOk(Output { status: ExitStatus(unix_wait_status(0)), stdout: "7.0.1\n", stderr: "" })
so I could confirm the build was seeing what I expected.
I'm not sure this works perfectly even with the new docker container. My output from attempting to use the docker container to build device code is as following.
Compiling rustc_codegen_nvvm v0.2.2
The following warnings were emitted during compilation:
warning: c++: error: unrecognized command line option '-Wcovered-switch-default'; did you mean '-Wno-switch-default'?
warning: c++: error: unrecognized command line option '-Wcovered-switch-default'; did you mean '-Wno-switch-default'?
warning: c++: error: unrecognized command line option '-Wstring-conversion'; did you mean '-Wint-conversion'?
warning: c++: error: unrecognized command line option '-Wstring-conversion'; did you mean '-Wint-conversion'?
error: failed to run custom build command for `rustc_codegen_nvvm v0.2.2`
Caused by:
process didn't exit successfully: `/root/rust-cuda/cpu/target/debug/build/rustc_codegen_nvvm-c17627aa63ef38d5/build-script-build` (exit status: 1)
--- stdout
cargo:rerun-if-env-changed=LLVM_CONFIG
cargo:rerun-if-env-changed=USE_PREBUILT_LLVM
cargo:rustc-cfg=llvm_component="bitreader"
cargo:rustc-cfg=llvm_component="bitwriter"
cargo:rustc-cfg=llvm_component="ipo"
cargo:rustc-cfg=llvm_component="lto"
cargo:rustc-cfg=llvm_component="nvptx"
cargo:rerun-if-env-changed=LLVM_RUSTLLVM
cargo:rerun-if-changed=rustc_llvm_wrapper
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
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("true")
CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-m64" "-I" "rustc_llvm_wrapper/rustllvm.h" "-I/root/llvm/include" "-fPIC" "-fvisibility-inlines-hidden" "-Werror=date-time" "-Werror=unguarded-availability-new" "-std=c++11" "-Wall" "-Wextra" "-Wno-unused-parameter" "-Wwrite-strings" "-Wcast-qual" "-Wmissing-field-initializers" "-pedantic" "-Wno-long-long" "-Wcovered-switch-default" "-Wnon-virtual-dtor" "-Wdelete-non-virtual-dtor" "-Wstring-conversion" "-ffunction-sections" "-fdata-sections" "-O3" "-DNDEBUG" "-fno-exceptions" "-fno-rtti" "-D_GNU_SOURCE" "-D__STDC_CONSTANT_MACROS" "-D__STDC_FORMAT_MACROS" "-D__STDC_LIMIT_MACROS" "-DLLVM_COMPONENT_BITREADER" "-DLLVM_COMPONENT_BITWRITER" "-DLLVM_COMPONENT_IPO" "-DLLVM_COMPONENT_LTO" "-DLLVM_COMPONENT_NVPTX" "-o" "/root/rust-cuda/cpu/target/debug/build/rustc_codegen_nvvm-d9367606b4785ea8/out/rustc_llvm_wrapper/RustWrapper.o" "-c" "rustc_llvm_wrapper/RustWrapper.cpp"
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-m64" "-I" "rustc_llvm_wrapper/rustllvm.h" "-I/root/llvm/include" "-fPIC" "-fvisibility-inlines-hidden" "-Werror=date-time" "-Werror=unguarded-availability-new" "-std=c++11" "-Wall" "-Wextra" "-Wno-unused-parameter" "-Wwrite-strings" "-Wcast-qual" "-Wmissing-field-initializers" "-pedantic" "-Wno-long-long" "-Wcovered-switch-default" "-Wnon-virtual-dtor" "-Wdelete-non-virtual-dtor" "-Wstring-conversion" "-ffunction-sections" "-fdata-sections" "-O3" "-DNDEBUG" "-fno-exceptions" "-fno-rtti" "-D_GNU_SOURCE" "-D__STDC_CONSTANT_MACROS" "-D__STDC_FORMAT_MACROS" "-D__STDC_LIMIT_MACROS" "-DLLVM_COMPONENT_BITREADER" "-DLLVM_COMPONENT_BITWRITER" "-DLLVM_COMPONENT_IPO" "-DLLVM_COMPONENT_LTO" "-DLLVM_COMPONENT_NVPTX" "-o" "/root/rust-cuda/cpu/target/debug/build/rustc_codegen_nvvm-d9367606b4785ea8/out/rustc_llvm_wrapper/PassWrapper.o" "-c" "rustc_llvm_wrapper/PassWrapper.cpp"
cargo:warning=c++: error: unrecognized command line option '-Wcovered-switch-default'; did you mean '-Wno-switch-default'?
cargo:warning=c++: error: unrecognized command line option '-Wcovered-switch-default'; did you mean '-Wno-switch-default'?
cargo:warning=c++: error: unrecognized command line option '-Wstring-conversion'; did you mean '-Wint-conversion'?
cargo:warning=c++: error: unrecognized command line option '-Wstring-conversion'; did you mean '-Wint-conversion'?
exit status: 1
exit status: 1
--- stderr
error occurred: Command "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-m64" "-I" "rustc_llvm_wrapper/rustllvm.h" "-I/root/llvm/include" "-fPIC" "-fvisibility-inlines-hidden" "-Werror=date-time" "-Werror=unguarded-availability-new" "-std=c++11" "-Wall" "-Wextra" "-Wno-unused-parameter" "-Wwrite-strings" "-Wcast-qual" "-Wmissing-field-initializers" "-pedantic" "-Wno-long-long" "-Wcovered-switch-default" "-Wnon-virtual-dtor" "-Wdelete-non-virtual-dtor" "-Wstring-conversion" "-ffunction-sections" "-fdata-sections" "-O3" "-DNDEBUG" "-fno-exceptions" "-fno-rtti" "-D_GNU_SOURCE" "-D__STDC_CONSTANT_MACROS" "-D__STDC_FORMAT_MACROS" "-D__STDC_LIMIT_MACROS" "-DLLVM_COMPONENT_BITREADER" "-DLLVM_COMPONENT_BITWRITER" "-DLLVM_COMPONENT_IPO" "-DLLVM_COMPONENT_LTO" "-DLLVM_COMPONENT_NVPTX" "-o" "/root/rust-cuda/cpu/target/debug/build/rustc_codegen_nvvm-d9367606b4785ea8/out/rustc_llvm_wrapper/RustWrapper.o" "-c" "rustc_llvm_wrapper/RustWrapper.cpp" with args "c++" did not execute successfully (status code exit status: 1).
Hello, I was trying to build the example and after troubleshooting a few issues as I worked through the getting started, I've hit a wall I think without hints at least with my knowledge.
Before I show the output of the build failure, here is some background:
System is Ubuntu 20.04
>>> nvcc --version
I took the prebuilt llvm from https://github.com/rust-gpu/rustc_codegen_nvvm-llvm/releases/download/LLVM-7.1.0/ and set
LLVM_CONFIG
to it (I was hitting this before but no longer)I needed to set
CUDA_ROOT
andCUDA_PATH
to/usr/local/cuda-11.5/bin
I also has
libnvvm.so
under/usr/local/cuda-11.5/nvvm/lib64
which is now in myPATH
My toolchain is defaulted to
nightly-2021-12-04-x86_64-unknown-linux-gnu
to be sure, but I also put the toolchain file in the root of Rust-CUDA in theadd
example rootI don't see anything from the getting started that I seem to have missed, so, finally, the output of the build now is