Skip to content

Does not compile on linux (?) #3

@Garfield100

Description

@Garfield100

Hello,

if I cargo init a fresh Rust repo, cargo add lsl, and then cargo build, I get the following error both on my fedora machine and on my debian server (works great on windows though):

Error
garfield@lasagne:~/projects/rust/lsltest$ cargo build
   Compiling lsl-sys v0.1.1
error: failed to run custom build command for `lsl-sys v0.1.1`
note: To improve backtraces for build dependencies, set the CARGO_PROFILE_DEV_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation.

Caused by:
  process didn't exit successfully: `/home/garfield/projects/rust/lsltest/target/debug/build/lsl-sys-d2a6095d1609182d/build-script-build` (exit status: 101)
  --- stdout
  CMAKE_TOOLCHAIN_FILE_x86_64-unknown-linux-gnu = None
  CMAKE_TOOLCHAIN_FILE_x86_64_unknown_linux_gnu = None
  HOST_CMAKE_TOOLCHAIN_FILE = None
  CMAKE_TOOLCHAIN_FILE = None
  CMAKE_GENERATOR_x86_64-unknown-linux-gnu = None
  CMAKE_GENERATOR_x86_64_unknown_linux_gnu = None
  HOST_CMAKE_GENERATOR = None
  CMAKE_GENERATOR = None
  CMAKE_PREFIX_PATH_x86_64-unknown-linux-gnu = None
  CMAKE_PREFIX_PATH_x86_64_unknown_linux_gnu = None
  HOST_CMAKE_PREFIX_PATH = None
  CMAKE_PREFIX_PATH = None
  CMAKE_x86_64-unknown-linux-gnu = None
  CMAKE_x86_64_unknown_linux_gnu = None
  HOST_CMAKE = None
  CMAKE = None
  running: cd "/home/garfield/projects/rust/lsltest/target/debug/build/lsl-sys-7990ee826447bbba/out/build" && CMAKE_PREFIX_PATH="" "cmake" "/home/garfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lsl-sys-0.1.1/liblsl" "-DLSL_NO_FANCY_LIBNAME=ON" "-DLSL_BUILD_STATIC=ON" "-DCMAKE_INSTALL_PREFIX=/home/garfield/projects/rust/lsltest/target/debug/build/lsl-sys-7990ee826447bbba/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_C_COMPILER=/usr/bin/cc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_CXX_COMPILER=/usr/bin/c++" "-DCMAKE_ASM_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_ASM_COMPILER=/usr/bin/cc" "-DCMAKE_BUILD_TYPE=Debug"
  -- Git version information: /
  -- Included LSL CMake helpers, rev. 12, /home/garfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lsl-sys-0.1.1/liblsl/cmake
  -- Installing Components: liblsl
  -- Configuring done
  -- Generating done
  -- Build files have been written to: /home/garfield/projects/rust/lsltest/target/debug/build/lsl-sys-7990ee826447bbba/out/build
  running: cd "/home/garfield/projects/rust/lsltest/target/debug/build/lsl-sys-7990ee826447bbba/out/build" && MAKEFLAGS="-j --jobserver-fds=7,8 --jobserver-auth=7,8" "cmake" "--build" "." "--target" "install" "--config" "Debug"
  [  2%] Building CXX object CMakeFiles/lslboost.dir/lslboost/libs/thread/src/pthread/thread.cpp.o

  --- stderr
  fatal: not a git repository (or any of the parent directories): .git
  fatal: not a git repository (or any of the parent directories): .git
  In file included from /usr/include/pthread.h:33,
                   from /usr/include/x86_64-linux-gnu/c++/12/bits/gthr-default.h:35,
                   from /usr/include/x86_64-linux-gnu/c++/12/bits/gthr.h:148,
                   from /usr/include/c++/12/ext/atomicity.h:35,
                   from /usr/include/c++/12/bits/ios_base.h:39,
                   from /usr/include/c++/12/ios:42,
                   from /usr/include/c++/12/ostream:38,
                   from /home/garfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lsl-sys-0.1.1/liblsl/lslboost/boost/system/error_code.hpp:17,
                   from /home/garfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lsl-sys-0.1.1/liblsl/lslboost/boost/system/system_error.hpp:11,
                   from /home/garfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lsl-sys-0.1.1/liblsl/lslboost/boost/thread/exceptions.hpp:22,
                   from /home/garfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lsl-sys-0.1.1/liblsl/lslboost/boost/thread/pthread/thread_data.hpp:10,
                   from /home/garfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lsl-sys-0.1.1/liblsl/lslboost/boost/thread/thread_only.hpp:17,
                   from /home/garfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lsl-sys-0.1.1/liblsl/lslboost/libs/thread/src/pthread/thread.cpp:11:
  /home/garfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lsl-sys-0.1.1/liblsl/lslboost/boost/thread/pthread/thread_data.hpp:60:5: error: missing binary operator before token "("
     60 | #if PTHREAD_STACK_MIN > 0
        |     ^~~~~~~~~~~~~~~~~
  In file included from /home/garfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lsl-sys-0.1.1/liblsl/lslboost/boost/functional/hash.hpp:6,
                   from /home/garfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lsl-sys-0.1.1/liblsl/lslboost/boost/thread/detail/thread.hpp:38,
                   from /home/garfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lsl-sys-0.1.1/liblsl/lslboost/boost/thread/thread_only.hpp:22:
  /home/garfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lsl-sys-0.1.1/liblsl/lslboost/boost/container_hash/hash.hpp:130:33: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
    130 |         struct hash_base : std::unary_function<T, std::size_t> {};
        |                                 ^~~~~~~~~~~~~~
  In file included from /usr/include/c++/12/string:48,
                   from /home/garfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lsl-sys-0.1.1/liblsl/lslboost/boost/thread/exceptions.hpp:20:
  /usr/include/c++/12/bits/stl_function.h:117:12: note: declared here
    117 |     struct unary_function
        |            ^~~~~~~~~~~~~~
  gmake[2]: *** [CMakeFiles/lslboost.dir/build.make:272: CMakeFiles/lslboost.dir/lslboost/libs/thread/src/pthread/thread.cpp.o] Error 1
  gmake[1]: *** [CMakeFiles/Makefile2:119: CMakeFiles/lslboost.dir/all] Error 2
  gmake: *** [Makefile:156: all] Error 2
  thread 'main' panicked at /home/garfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cmake-0.1.50/src/lib.rs:1098:5:

  command did not execute successfully, got: exit status: 2

  build script failed, must exit now
  stack backtrace:
     0: rust_begin_unwind
               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
     1: core::panicking::panic_fmt
               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
     2: cmake::fail
     3: cmake::run
     4: cmake::Config::build
     5: build_script_build::build_liblsl
     6: build_script_build::main
     7: core::ops::function::FnOnce::call_once
  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

Here some versions and other system details:

Debian 12 server

cmake version 3.25.1
gcc (Debian 12.2.0-14) 12.2.0
Kernel: 6.1.0-16-amd64
Package: build-essential Version: 12.9

Fedora 39 machine

cmake version 3.28.1
gcc (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6)
Kernel: 6.6.6-200.fc39.x86_64

What I've tried:

  • setting the GIT_DISCOVERY_ACROSS_FILESYSTEM environment variable. Yielded a slightly different error. If you believe this to be relevant I can post it.
  • cloning andn building liblsl itself to see if that works on its own, it does.

Am I doing something wrong or is this an issue with the lsl/lsl-sys crates? I unfortunately do not understand much of the error, and there are several weird parts (fatal: not a git repository? missing operator when it works on windows?).
I've also installed the liblsl shared library but judging by lsl-sys' build.rs this makes no difference (yet?).
Ideas?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions