undefined reference to symbol '__tls_get_addr@@GLIBC_2.3'
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
I can confirm the same occurring with musl
Can you please tell me what's your specific host triple and the target triple you're crosscompiling for?
Sure, the Host is Ubuntu 18.04 and the target is Debian distroless both running amd64/x86_64