foucault / nvfancontrol

NVidia dynamic fan control for Linux and Windows

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Can't built this thing

nazar-pc opened this issue · comments

I'm trying to build this thing, but unfortunately it fails like following:

root@9c993574d3a6:/rust# cargo build --release
    Updating registry `https://github.com/rust-lang/crates.io-index`
 Downloading log v0.3.6
 Downloading getopts v0.2.14
 Downloading nix v0.7.0
 Downloading time v0.1.35
 Downloading xdg v2.0.0
 Downloading libc v0.2.17
 Downloading void v1.0.2
 Downloading cfg-if v0.1.0
 Downloading bitflags v0.4.0
 Downloading rustc_version v0.1.7
 Downloading semver v0.1.20
 Downloading winapi v0.2.8
 Downloading kernel32-sys v0.2.2
 Downloading winapi-build v0.1.1
   Compiling nvctrl v0.1.0 (file:///rust/src/nvctrl)
   Compiling nix v0.7.0
Build failed, waiting for other jobs to finish...
error: failed to run custom build command for `nvctrl v0.1.0 (file:///rust/src/nvctrl)`
process didn't exit successfully: `/rust/target/release/build/nvctrl-beba15aebcc2b6bb/build-script-build` (exit code: 101)
--- stderr
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { repr: Os { code: 2, message: "No such file or directory" } }', ../src/libcore/result.rs:837
note: Run with `RUST_BACKTRACE=1` for a backtrace.

root@9c993574d3a6:/rust# RUST_BACKTRACE=1 cargo build --release
   Compiling nvctrl v0.1.0 (file:///rust/src/nvctrl)
   Compiling nix v0.7.0
Build failed, waiting for other jobs to finish...
error: failed to run custom build command for `nvctrl v0.1.0 (file:///rust/src/nvctrl)`
process didn't exit successfully: `/rust/target/release/build/nvctrl-beba15aebcc2b6bb/build-script-build` (exit code: 101)
--- stderr
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { repr: Os { code: 2, message: "No such file or directory" } }', ../src/libcore/result.rs:837
stack backtrace:
   1:     0x5597f9d46b8a - std::sys::imp::backtrace::tracing::imp::write::he3d1bfbdbf113480
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:42
   2:     0x5597f9d4b9ef - std::panicking::default_hook::{{closure}}::h575f1b40d2e88f07
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/panicking.rs:247
   3:     0x5597f9d4a1c6 - std::panicking::default_hook::h3d5dccce8125d0cf
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/panicking.rs:263
   4:     0x5597f9d4a7b7 - std::panicking::rust_panic_with_hook::h00b81bb3dcbd51f2
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/panicking.rs:451
   5:     0x5597f9d4a644 - std::panicking::begin_panic::ha6a0d553db9869ff
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/panicking.rs:413
   6:     0x5597f9d4a569 - std::panicking::begin_panic_fmt::h24d113aee3ee4081
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/panicking.rs:397
   7:     0x5597f9d4a4f7 - rust_begin_unwind
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/panicking.rs:373
   8:     0x5597f9d8151d - core::panicking::panic_fmt::he441b2ea2036b98a
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libcore/panicking.rs:69
   9:     0x5597f9d3f2fb - core::result::unwrap_failed::h88381ff2d9927dee
  10:     0x5597f9d3f97c - build_script_build::main::h62d404266768de3e
  11:     0x5597f9d534ca - __rust_maybe_catch_panic
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libpanic_unwind/lib.rs:97
  12:     0x5597f9d4af95 - std::rt::lang_start::h74b3afbdd8daef1c
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/panicking.rs:332
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/panic.rs:351
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/rt.rs:57
  13:     0x7f682ca5bb44 - __libc_start_main
  14:     0x5597f9d3f108 - <unknown>
  15:                0x0 - <unknown>

I've tried both rustc 1.14.0-nightly (cae6ab1c4 2016-11-05) and rustc 1.15.0-nightly (0bd2ce62b 2016-11-19).
At least 1.15 should be "nightly enough".

As I'm not working with Rust, can you suggest anything in this scenario?

I've used this docker image and just installed libxnvctrl-dev there.

It builds properly here with rustc 1.15.0-nightly (2217bd771 2016-11-25). Please note that you also need gcc and ar along with rust to build the native component, but I suppose they should be installed by default in the docker image. Additionally, make sure that the location of the libxnvctrl static library is correct in the Makefile. If nothing works, run cargo build again with a single thread (-j1) and verbose output (-v) to find out more.

Both gcc and ar are present, libxnvctrl is also located correctly:

root@780c7a9abd21:/rust# ls -al /usr/lib | grep libXNVCtrl
-rw-r--r-- 1 root root   20524 Oct 17  2014 libXNVCtrl.a
lrwxrwxrwx 1 root root      15 Oct 17  2014 libXNVCtrl.so -> libXNVCtrl.so.0
lrwxrwxrwx 1 root root      19 Oct 17  2014 libXNVCtrl.so.0 -> libXNVCtrl.so.0.0.0
-rw-r--r-- 1 root root   18632 Oct 17  2014 libXNVCtrl.so.0.0.0

Here is the output with single thread and verbose output:

root@780c7a9abd21:/rust# cargo build -j1 -v
       Fresh winapi v0.2.8
       Fresh log v0.3.6
       Fresh semver v0.1.20
       Fresh getopts v0.2.14
   Compiling libc v0.2.17
     Running `rustc /root/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.17/src/lib.rs --crate-name libc --crate-type lib -g --cfg feature=\"default\" --cfg feature=\"use_std\" -C metadata=38a11e2c014183dd -C extra-filename=-38a11e2c014183dd --out-dir /rust/target/debug/deps --emit=dep-info,link -L dependency=/rust/target/debug/deps --cap-lints allow`

       Fresh rustc_version v0.1.7
   Compiling bitflags v0.4.0
     Running `rustc /root/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-0.4.0/src/lib.rs --crate-name bitflags --crate-type lib -g -C metadata=d6e9c9f26754b52f -C extra-filename=-d6e9c9f26754b52f --out-dir /rust/target/debug/deps --emit=dep-info,link -L dependency=/rust/target/debug/deps --cap-lints allow`
       Fresh cfg-if v0.1.0
   Compiling nix v0.7.0
     Running `/rust/target/debug/build/nix-a4eb866b27c5afd7/build-script-build`
   Compiling nvctrl v0.1.0 (file:///rust/src/nvctrl)
     Running `/rust/target/debug/build/nvctrl-beba15aebcc2b6bb/build-script-build`
error: failed to run custom build command for `nvctrl v0.1.0 (file:///rust/src/nvctrl)`
process didn't exit successfully: `/rust/target/debug/build/nvctrl-beba15aebcc2b6bb/build-script-build` (exit code: 101)
--- stderr
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { repr: Os { code: 2, message: "No such file or directory" } }', ../src/libcore/result.rs:837
note: Run with `RUST_BACKTRACE=1` for a backtrace.

Maybe there are some additional dependencies that are only present in your environment or something like this?

Can you try version from mentioned docker image? Latest commit in this repository is older than the rustc version I'm using, so it should be fine.

Updated Rust to latest rustc 1.15.0-nightly (1c448574b 2016-11-28), still the same issue

I doubt it's a problem with rust, it seems like the C code is not building properly. Can you please cd to src/nvctrl and run OUT_DIR=. make ? Sorry, I am not comfortable with docker so I can't test it with docker at least for now.

OK, appears that following packages are also needed:

  • nvidia-* (nvidia-375 in my case)
  • libx11-xcb-dev

Now I'm getting a different error:

root@540d11ba4446:/source# RUST_BACKTRACE=1 /usr/bin/cargo build -j1 --release -v
       Fresh void v1.0.2
       Fresh xdg v2.0.0
       Fresh winapi-build v0.1.1
       Fresh winapi v0.2.8
       Fresh bitflags v0.4.0
   Compiling nvctrl v0.1.0 (file:///source/src/nvctrl)
     Running `/source/target/release/build/nvctrl-394da3cdea818096/build-script-build`
error: failed to run custom build command for `nvctrl v0.1.0 (file:///source/src/nvctrl)`
Process didn't exit successfully: `/source/target/release/build/nvctrl-394da3cdea818096/build-script-build` (exit code: 101)
--- stdout
mkdir -p /source/target/release/build/nvctrl-394da3cdea818096/out/build
gcc -c -o /source/target/release/build/nvctrl-394da3cdea818096/out/build/libnvctrl_c.o -static -O2 -fPIC -Wall -pedantic -Wl,-Bdynamic -lX11 -lXext -Wl,-Bstatic -lXNVCtrl nvctrl_c.c
echo -e "CREATE /source/target/release/build/nvctrl-394da3cdea818096/out/build/libnvctrl_c.a\nADDLIB /usr/lib/libXNVCtrl.a\nADDMOD /source/target/release/build/nvctrl-394da3cdea818096/out/build/libnvctrl_c.o\nSAVE\nEND" | ar -M
Syntax error in archive script, line 1
Syntax error in archive script, line 1
Makefile:17: recipe for target 'library' failed

--- stderr
ar: no output archive specified yet
make: *** [library] Error 9
thread 'main' panicked at 'assertion failed: ret.success()', src/nvctrl/build.rs:11
stack backtrace:
   1:     0x5588236bd8aa - std::sys::imp::backtrace::tracing::imp::write::h944c02ac40aee2d7
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:42
   2:     0x5588236c12ef - std::panicking::default_hook::{{closure}}::h6875a2976258b020
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/panicking.rs:247
   3:     0x5588236c0eee - std::panicking::default_hook::h88ffbc5922643264
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/panicking.rs:263
   4:     0x5588236c16d7 - std::panicking::rust_panic_with_hook::ha5aed1dfc0e220e3
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/panicking.rs:451
   5:     0x5588236b3473 - std::panicking::begin_panic::h5f0a1fd8f4de57ec
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/panicking.rs:413
   6:     0x5588236b61d0 - build_script_build::main::h08b0ae86132052e7
                        at /source/src/nvctrl/build.rs:11
   7:     0x5588236cbe0a - __rust_maybe_catch_panic
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libpanic_unwind/lib.rs:97
   8:     0x5588236c1cda - std::rt::lang_start::h5d71a3afaaa4b2ff
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/panicking.rs:332
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/panic.rs:351
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/rt.rs:57
   9:     0x5588236b64c2 - main
  10:     0x7faeb97783f0 - __libc_start_main
  11:     0x5588236b2cf9 - _start
  12:                0x0 - <unknown>

I see /source/target/release/build/nvctrl-394da3cdea818096/out/build/libnvctrl_c.o file, but not /source/target/release/build/nvctrl-394da3cdea818096/out/build/libnvctrl_c.a

It seems that ar complains about the first line in generated

CREATE /source/target/release/build/nvctrl-394da3cdea818096/out/build/libnvctrl_c.a
ADDLIB /usr/lib/libXNVCtrl.a
ADDMOD /source/target/release/build/nvctrl-394da3cdea818096/out/build/libnvctrl_c.o
SAVE
END

Fix for above issue is in #2

Now I'm left with following:

root@540d11ba4446:/source# RUST_BACKTRACE=1 /usr/bin/cargo build -j1 --release -v
       Fresh winapi-build v0.1.1
       Fresh bitflags v0.4.0
       Fresh winapi v0.2.8
       Fresh cfg-if v0.1.0
       Fresh getopts v0.2.14
       Fresh semver v0.1.20
       Fresh rustc_version v0.1.7
       Fresh xdg v2.0.0
       Fresh log v0.3.6
       Fresh libc v0.2.17
   Compiling nvctrl v0.1.0 (file:///source/src/nvctrl)
     Running `rustc src/nvctrl/build.rs --crate-name build_script_build --crate-type bin -g --out-dir /source/target/release/build/nvctrl-394da3cdea818096 --emit=dep-info,link -L dependency=/source/target/release/deps -L dependency=/source/target/release/deps`
     Running `/source/target/release/build/nvctrl-394da3cdea818096/build-script-build`
     Running `rustc src/nvctrl/lib.rs --crate-name nvctrl --crate-type lib -C opt-level=3 -C metadata=19b50dc7c7302c85 -C extra-filename=-19b50dc7c7302c85 --out-dir /source/target/release/deps --emit=dep-info,link -L dependency=/source/target/release/deps -L dependency=/source/target/release/deps --extern libc=/source/target/release/deps/liblibc-ad32fde1bd850538.rlib -L /source/target/release/build/nvctrl-394da3cdea818096/out/build -l static=nvctrl_c -l X11 -l Xext`
error: could not find native static library `nvctrl_c`, perhaps an -L flag is missing?

error: Could not compile `nvctrl`.

Caused by:
  Process didn't exit successfully: `rustc src/nvctrl/lib.rs --crate-name nvctrl --crate-type lib -C opt-level=3 -C metadata=19b50dc7c7302c85 -C extra-filename=-19b50dc7c7302c85 --out-dir /source/target/release/deps --emit=dep-info,link -L dependency=/source/target/release/deps -L dependency=/source/target/release/deps --extern libc=/source/target/release/deps/liblibc-ad32fde1bd850538.rlib -L /source/target/release/build/nvctrl-394da3cdea818096/out/build -l static=nvctrl_c -l X11 -l Xext` (exit code: 101)

It was actually caused by more dependencies needed, all of them are reflected in #3
Now it finally compiles:)

Thanks, good detective work!