opencv-rust icon indicating copy to clipboard operation
opencv-rust copied to clipboard

undefined reference to symbol '__tls_get_addr@@GLIBC_2.3'

Open egimbernat opened this issue 4 years ago • 3 comments

I'm trying to static cross-compile my application to linux-gnu but things are not going as expected. When compiling opencv-binding-generator v0.29.0 appear this weird error as if glib was trying to compile itself.

OpenCV is compiled with the ci script of this repository on Ubuntu18.04 and I'm executing the compilation with:

RUSTFLAGS="-C target-feature=+crt-static" cargo install --target x86_64-unknown-linux-gnu --path .

LOGS are as follows: Compiling opencv-binding-generator v0.29.0 error: linking withccfailed: exit status: 1 | = note: "cc" "-m64" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/binding_generator-8da5aaf216a602b6.binding_generator.cxnydhkx-cgu.0.rcgu.o" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/binding_generator-8da5aaf216a602b6.binding_generator.cxnydhkx-cgu.1.rcgu.o" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/binding_generator-8da5aaf216a602b6.binding_generator.cxnydhkx-cgu.10.rcgu.o" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/binding_generator-8da5aaf216a602b6.binding_generator.cxnydhkx-cgu.11.rcgu.o" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/binding_generator-8da5aaf216a602b6.binding_generator.cxnydhkx-cgu.12.rcgu.o" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/binding_generator-8da5aaf216a602b6.binding_generator.cxnydhkx-cgu.13.rcgu.o" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/binding_generator-8da5aaf216a602b6.binding_generator.cxnydhkx-cgu.14.rcgu.o" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/binding_generator-8da5aaf216a602b6.binding_generator.cxnydhkx-cgu.15.rcgu.o" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/binding_generator-8da5aaf216a602b6.binding_generator.cxnydhkx-cgu.2.rcgu.o" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/binding_generator-8da5aaf216a602b6.binding_generator.cxnydhkx-cgu.3.rcgu.o" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/binding_generator-8da5aaf216a602b6.binding_generator.cxnydhkx-cgu.4.rcgu.o" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/binding_generator-8da5aaf216a602b6.binding_generator.cxnydhkx-cgu.5.rcgu.o" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/binding_generator-8da5aaf216a602b6.binding_generator.cxnydhkx-cgu.6.rcgu.o" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/binding_generator-8da5aaf216a602b6.binding_generator.cxnydhkx-cgu.7.rcgu.o" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/binding_generator-8da5aaf216a602b6.binding_generator.cxnydhkx-cgu.8.rcgu.o" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/binding_generator-8da5aaf216a602b6.binding_generator.cxnydhkx-cgu.9.rcgu.o" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/binding_generator-8da5aaf216a602b6.gvglpgtxxcb0dhq.rcgu.o" "-Wl,--as-needed" "-L" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps" "-L" "/usr/lib/llvm-10/lib" "-L" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/libopencv_binding_generator-67065a0baed4ded2.rlib" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/libmaplit-cf24d5ce276becc8.rlib" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/libregex-b99d1a95bc4ce35e.rlib" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/libaho_corasick-3a93a503e8e1e620.rlib" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/libmemchr-cd9014d9657d47a3.rlib" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/libregex_syntax-f98d69d7dab0ab3d.rlib" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/libpercent_encoding-3e98fd2fb3908003.rlib" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/libonce_cell-363d1256018ec773.rlib" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/libdunce-6ef68f7e25fa16ce.rlib" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/libclang-315a9c39d8c29e20.rlib" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/libclang_sys-dadfa1a278a65a24.rlib" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/liblibc-c9890d77ebef9f59.rlib" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/libglob-f69c020e5499229c.rlib" "-Wl,--start-group" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-2420485b9e5ef5e1.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-785e3cb61c4b1960.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-087191a88bdaa22d.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-9981842c02975178.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-6fb405869b015fde.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-d05c5c3c56004b7b.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-42d74d2097528b38.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-fb36534c113d2209.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-b56b9042c12b6535.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-491902d6cb3e76df.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-61834e0981b8c367.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-f78aa99d613a55bc.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-53ee54cd7fed2c57.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-544ecdbd6cda3c58.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-379cc252b6943a79.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-8063eea38dcc5e62.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-5b228734afae15ee.rlib" "-Wl,--end-group" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-d6c7a399d95d173f.rlib" "-Wl,-Bdynamic" "-lclang-10.0.0" "-Wl,-Bstatic" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-lgcc_eh" "-lgcc" "-Wl,-Bdynamic" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/binding_generator-8da5aaf216a602b6" "-Wl,--gc-sections" "-static" "-no-pie" "-Wl,-zrelro" "-Wl,-znow" "-Wl,-O1" "-nodefaultlibs" = note: /usr/bin/ld: /usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-2420485b9e5ef5e1.rlib(std-2420485b9e5ef5e1.std.9zz23vuf-cgu.0.rcgu.o): in functionstd::sys::unix::os::home_dir::fallback': /rustc/a178d0322ce20e33eac124758e837cbd80a6f633//library/std/src/sys/unix/os.rs:609: warning: Using 'getpwuid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/bin/ld: /usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-2420485b9e5ef5e1.rlib(std-2420485b9e5ef5e1.std.9zz23vuf-cgu.0.rcgu.o): in function <std::sys_common::net::LookupHost as core::convert::TryFrom<(&str,u16)>>::try_from': /rustc/a178d0322ce20e33eac124758e837cbd80a6f633//library/std/src/sys_common/net.rs:197: warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/bin/ld: /usr/src/hjordis/target/x86_64-unknown-linux-gnu/release/build/opencv-96f467dd8b889eb7/out/release/deps/libopencv_binding_generator-67065a0baed4ded2.rlib(opencv_binding_generator-67065a0baed4ded2.opencv_binding_generator.6391plyz-cgu.11.rcgu.o): undefined reference to symbol '__tls_get_addr@@GLIBC_2.3' /usr/bin/ld: /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status

egimbernat avatar Sep 03 '21 03:09 egimbernat

I can confirm the same occurring with musl

egimbernat avatar Sep 03 '21 04:09 egimbernat

Can you please tell me what's your specific host triple and the target triple you're crosscompiling for?

twistedfall avatar Sep 03 '21 08:09 twistedfall

Sure, the Host is Ubuntu 18.04 and the target is Debian distroless both running amd64/x86_64

egimbernat avatar Sep 03 '21 12:09 egimbernat