Bug #4850
closedrust: compile error on OpenBSD 6.8: ld: error: unable to find library -lexecinfo
Description
Started seeing failures w/o making any updates to my OpenBSD setup. It should be noted that OpenBSD 7.0 still works.
CARGO_HOME="/home/qa/.cargo" CARGO_TARGET_DIR="/home/qa/suricata-ci/build/suricata/rust/target" /usr/local/bin/cargo build --release --features "function-macro " Compiling autocfg v1.0.1 Compiling cfg-if v1.0.0 Compiling version_check v0.9.3 Compiling memchr v2.2.1 Compiling ryu v1.0.5 Compiling bitflags v1.2.1 Compiling lexical-core v0.7.6 Compiling libc v0.2.108 Compiling proc-macro2 v1.0.32 Compiling arrayvec v0.5.2 Compiling static_assertions v1.1.0 Compiling unicode-xid v0.2.2 Compiling syn v1.0.81 Compiling getrandom v0.1.16 Compiling typenum v1.14.0 Compiling siphasher v0.3.7 Compiling serde v1.0.130 Compiling ppv-lite86 v0.2.15 Compiling proc-macro-hack v0.5.19 Compiling proc-macro2 v0.4.30 Compiling unicode-xid v0.1.0 Compiling opaque-debug v0.3.0 Compiling crc32fast v1.2.1 Compiling syn v0.15.44 Compiling alloc-no-stdlib v2.0.3 Compiling build_const v0.2.2 Compiling adler v1.0.2 Compiling cpufeatures v0.2.1 Compiling num-derive v0.2.5 Compiling minimal-lexical v0.1.4 Compiling regex-syntax v0.6.25 Compiling base64 v0.11.0 Compiling byteorder v1.4.3 Compiling uuid v0.8.2 Compiling lazy_static v1.4.0 Compiling widestring v0.4.3 Compiling nom v5.1.2 Compiling generic-array v0.14.4 Compiling nom v7.0.0 Compiling num-traits v0.2.14 Compiling num-integer v0.1.44 Compiling num-bigint v0.2.6 Compiling num-bigint v0.3.3 Compiling miniz_oxide v0.4.4 Compiling num-iter v0.1.42 Compiling num-complex v0.2.4 Compiling num-rational v0.2.4 Compiling phf_shared v0.8.0 Compiling alloc-stdlib v0.2.1 Compiling crc v1.8.1 Compiling phf v0.8.0 Compiling brotli-decompressor v2.3.2 Compiling aho-corasick v0.7.15 Compiling time v0.1.44 Compiling quote v1.0.10 Compiling quote v0.6.13 Compiling toml v0.5.8 Compiling brotli v3.3.2 Compiling regex v1.4.6 Compiling flate2 v1.0.22 Compiling num-traits v0.1.43 Compiling rand_core v0.5.1 Compiling digest v0.9.0 Compiling block-buffer v0.9.0 Compiling rusticata-macros v2.1.0 Compiling ntp-parser v0.4.0 Compiling sawp v0.5.0 Compiling enum_primitive v0.1.1 Compiling rand_chacha v0.2.2 Compiling rand_pcg v0.2.1 Compiling md-5 v0.9.1 Compiling sha-1 v0.9.8 Compiling sha2 v0.9.8 Compiling ipsec-parser v0.5.0 Compiling der-parser v3.0.4 Compiling rand v0.7.3 Compiling num v0.2.1 Compiling der-oid-macro v0.2.0 Compiling x509-parser v0.6.5 Compiling phf_generator v0.8.0 Compiling der-parser v4.0.2 Compiling phf_codegen v0.8.0 Compiling snmp-parser v0.6.0 Compiling kerberos-parser v0.5.0 Compiling tls-parser v0.9.4 error: linking with `cc` failed: exit code: 1 | = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-Wl,--eh-frame-hdr" "-L" "/usr/local/lib/rustlib/x86_64-unknown-openbsd/lib" "/home/qa/suricata-ci/build/suricata/rust/target/release/build/tls-parser-52125d3e5e4afadb/build_script_build-52125d3e5e4afadb.build_script_build.5tewzyu2-cgu.0.rcgu.o" "/home/qa/suricata-ci/build/suricata/rust/target/release/build/tls-parser-52125d3e5e4afadb/build_script_build-52125d3e5e4afadb.build_script_build.5tewzyu2-cgu.1.rcgu.o" "/home/qa/suricata-ci/build/suricata/rust/target/release/build/tls-parser-52125d3e5e4afadb/build_script_build-52125d3e5e4afadb.build_script_build.5tewzyu2-cgu.10.rcgu.o" "/home/qa/suricata-ci/build/suricata/rust/target/release/build/tls-parser-52125d3e5e4afadb/build_script_build-52125d3e5e4afadb.build_script_build.5tewzyu2-cgu.11.rcgu.o" "/home/qa/suricata-ci/build/suricata/rust/target/release/build/tls-parser-52125d3e5e4afadb/build_script_build-52125d3e5e4afadb.build_script_build.5tewzyu2-cgu.12.rcgu.o" "/home/qa/suricata-ci/build/suricata/rust/target/release/build/tls-parser-52125d3e5e4afadb/build_script_build-52125d3e5e4afadb.build_script_build.5tewzyu2-cgu.13.rcgu.o" "/home/qa/suricata-ci/build/suricata/rust/target/release/build/tls-parser-52125d3e5e4afadb/build_script_build-52125d3e5e4afadb.build_script_build.5tewzyu2-cgu.14.rcgu.o" "/home/qa/suricata-ci/build/suricata/rust/target/release/build/tls-parser-52125d3e5e4afadb/build_script_build-52125d3e5e4afadb.build_script_build.5tewzyu2-cgu.15.rcgu.o" "/home/qa/suricata-ci/build/suricata/rust/target/release/build/tls-parser-52125d3e5e4afadb/build_script_build-52125d3e5e4afadb.build_script_build.5tewzyu2-cgu.2.rcgu.o" "/home/qa/suricata-ci/build/suricata/rust/target/release/build/tls-parser-52125d3e5e4afadb/build_script_build-52125d3e5e4afadb.build_script_build.5tewzyu2-cgu.3.rcgu.o" "/home/qa/suricata-ci/build/suricata/rust/target/release/build/tls-parser-52125d3e5e4afadb/build_script_build-52125d3e5e4afadb.build_script_build.5tewzyu2-cgu.4.rcgu.o" "/home/qa/suricata-ci/build/suricata/rust/target/release/build/tls-parser-52125d3e5e4afadb/build_script_build-52125d3e5e4afadb.build_script_build.5tewzyu2-cgu.5.rcgu.o" "/home/qa/suricata-ci/build/suricata/rust/target/release/build/tls-parser-52125d3e5e4afadb/build_script_build-52125d3e5e4afadb.build_script_build.5tewzyu2-cgu.6.rcgu.o" "/home/qa/suricata-ci/build/suricata/rust/target/release/build/tls-parser-52125d3e5e4afadb/build_script_build-52125d3e5e4afadb.build_script_build.5tewzyu2-cgu.7.rcgu.o" "/home/qa/suricata-ci/build/suricata/rust/target/release/build/tls-parser-52125d3e5e4afadb/build_script_build-52125d3e5e4afadb.build_script_build.5tewzyu2-cgu.8.rcgu.o" "/home/qa/suricata-ci/build/suricata/rust/target/release/build/tls-parser-52125d3e5e4afadb/build_script_build-52125d3e5e4afadb.build_script_build.5tewzyu2-cgu.9.rcgu.o" "-o" "/home/qa/suricata-ci/build/suricata/rust/target/release/build/tls-parser-52125d3e5e4afadb/build_script_build-52125d3e5e4afadb" "/home/qa/suricata-ci/build/suricata/rust/target/release/build/tls-parser-52125d3e5e4afadb/build_script_build-52125d3e5e4afadb.2sdpvbqgaq8guela.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-Wl,-O1" "-nodefaultlibs" "-L" "/home/qa/suricata-ci/build/suricata/rust/target/release/deps" "-L" "/usr/local/lib/rustlib/x86_64-unknown-openbsd/lib" "-Wl,-Bstatic" "/home/qa/suricata-ci/build/suricata/rust/target/release/deps/libphf_codegen-e61e4b0bbdd9a480.rlib" "/home/qa/suricata-ci/build/suricata/rust/target/release/deps/libphf_generator-557abe9ed77f5f6c.rlib" "/home/qa/suricata-ci/build/suricata/rust/target/release/deps/librand-12060f7e207e6b4f.rlib" "/home/qa/suricata-ci/build/suricata/rust/target/release/deps/librand_pcg-3163b695a7250cb5.rlib" "/home/qa/suricata-ci/build/suricata/rust/target/release/deps/librand_chacha-985cecb1136470c0.rlib" "/home/qa/suricata-ci/build/suricata/rust/target/release/deps/libppv_lite86-79097dd6f8ea8ea0.rlib" "/home/qa/suricata-ci/build/suricata/rust/target/release/deps/librand_core-d4059369429e7c92.rlib" "/home/qa/suricata-ci/build/suricata/rust/target/release/deps/libgetrandom-037278081a13fca8.rlib" "/home/qa/suricata-ci/build/suricata/rust/target/release/deps/liblibc-b94c0087213b143f.rlib" "/home/qa/suricata-ci/build/suricata/rust/target/release/deps/libcfg_if-3838e39e009c7ccb.rlib" "/home/qa/suricata-ci/build/suricata/rust/target/release/deps/libphf_shared-0ac01e19df0d4460.rlib" "/home/qa/suricata-ci/build/suricata/rust/target/release/deps/libsiphasher-f6cedf5b65720b5c.rlib" "-Wl,--start-group" "/usr/local/lib/rustlib/x86_64-unknown-openbsd/lib/libstd-bebc5cbb7956cc14.rlib" "/usr/local/lib/rustlib/x86_64-unknown-openbsd/lib/libpanic_unwind-bebc5cbb7956cc0c.rlib" "/usr/local/lib/rustlib/x86_64-unknown-openbsd/lib/libhashbrown-bebc5cbb7956cc09.rlib" "/usr/local/lib/rustlib/x86_64-unknown-openbsd/lib/librustc_std_workspace_alloc-bebc5cbb7956cc11.rlib" "/usr/local/lib/rustlib/x86_64-unknown-openbsd/lib/libbacktrace-bebc5cbb7956cc02.rlib" "/usr/local/lib/rustlib/x86_64-unknown-openbsd/lib/libbacktrace_sys-bebc5cbb7956cc03.rlib" "/usr/local/lib/rustlib/x86_64-unknown-openbsd/lib/librustc_demangle-bebc5cbb7956cc0e.rlib" "/usr/local/lib/rustlib/x86_64-unknown-openbsd/lib/libunwind-bebc5cbb7956cc19.rlib" "/usr/local/lib/rustlib/x86_64-unknown-openbsd/lib/libcfg_if-bebc5cbb7956cc05.rlib" "/usr/local/lib/rustlib/x86_64-unknown-openbsd/lib/liblibc-bebc5cbb7956cc0a.rlib" "/usr/local/lib/rustlib/x86_64-unknown-openbsd/lib/liballoc-bebc5cbb7956cc01.rlib" "/usr/local/lib/rustlib/x86_64-unknown-openbsd/lib/librustc_std_workspace_core-bebc5cbb7956cc12.rlib" "/usr/local/lib/rustlib/x86_64-unknown-openbsd/lib/libcore-bebc5cbb7956cc07.rlib" "-Wl,--end-group" "/usr/local/lib/rustlib/x86_64-unknown-openbsd/lib/libcompiler_builtins-bebc5cbb7956cc06.rlib" "-Wl,-Bdynamic" "-lutil" "-lexecinfo" "-lpthread" "-lc++abi" "-lc" "-lm" "-lutil" "-lcompiler_rt" = note: ld: error: unable to find library -lexecinfo cc: error: linker command failed with exit code 1 (use -v to see invocation) error: aborting due to previous error error: could not compile `tls-parser`. To learn more, run the command again with --verbose. warning: build failed, waiting for other jobs to finish... error: build failed *** Error 101 in rust (Makefile:542 'all-local') *** Error 1 in /home/qa/suricata-ci/build/suricata (Makefile:515 'all-recursive')
Some info:
Rust support: yes Rust strict mode: no Rust compiler path: /usr/local/bin/rustc Rust compiler version: rustc 1.46.0 Cargo path: /usr/local/bin/cargo Cargo version: cargo 1.46.0 Cargo vendor: yes Python support: yes Python path: /usr/local/bin/python3 Python distutils yes Python yaml no Install suricatactl: yes Install suricatasc: yes Install suricata-update: no, requires pyyaml Profiling enabled: no Profiling locks enabled: no Plugin support (experimental): yes Development settings: Coccinelle / spatch: no Unit tests enabled: yes Debug output enabled: no Debug validation enabled: no Generic build parameters: Installation prefix: /usr/local Configuration directory: /usr/local/etc/suricata/ Log directory: /usr/local/var/log/suricata/ --prefix /usr/local --sysconfdir /usr/local/etc --localstatedir /usr/local/var --datarootdir /usr/local/share Host: x86_64-unknown-openbsd6.8 Compiler: clang (exec name) / g++ (real) GCC Protect enabled: no GCC march native enabled: no GCC Profile enabled: no Position Independent Executable enabled: no CFLAGS -Wall -Werror -Wno-unused-function -D__OpenBSD__ -std=c11 -I${srcdir}/../rust/gen -I${srcdir}/../rust/dist PCAP_CFLAGS SECCFLAGS
Last successful build from last week:
CARGO_HOME="/home/qa/.cargo" CARGO_TARGET_DIR="/home/qa/suricata-ci/build/suricata/rust/target" /usr/local/bin/cargo build --release --features "function-macro " Compiling autocfg v1.0.1 Compiling cfg-if v1.0.0 Compiling version_check v0.9.3 Compiling memchr v2.2.1 Compiling ryu v1.0.5 Compiling bitflags v1.2.1 Compiling lexical-core v0.7.6 Compiling libc v0.2.107 Compiling proc-macro2 v1.0.32 Compiling static_assertions v1.1.0 Compiling arrayvec v0.5.2 Compiling unicode-xid v0.2.2 Compiling syn v1.0.81 Compiling getrandom v0.1.16 Compiling typenum v1.14.0 Compiling ppv-lite86 v0.2.15 Compiling serde v1.0.130 Compiling siphasher v0.3.7 Compiling proc-macro-hack v0.5.19 Compiling proc-macro2 v0.4.30 Compiling unicode-xid v0.1.0 Compiling opaque-debug v0.3.0 Compiling crc32fast v1.2.1 Compiling alloc-no-stdlib v2.0.3 Compiling build_const v0.2.2 Compiling syn v0.15.44 Compiling cpufeatures v0.2.1 Compiling adler v1.0.2 Compiling num-derive v0.2.5 Compiling minimal-lexical v0.1.4 Compiling base64 v0.11.0 Compiling regex-syntax v0.6.25 Compiling widestring v0.4.3 Compiling byteorder v1.4.3 Compiling uuid v0.8.2 Compiling lazy_static v1.4.0 Compiling nom v5.1.2 Compiling generic-array v0.14.4 Compiling nom v7.0.0 Compiling num-traits v0.2.14 Compiling num-integer v0.1.44 Compiling num-bigint v0.2.6 Compiling num-bigint v0.3.3 Compiling num-complex v0.2.4 Compiling miniz_oxide v0.4.4 Compiling num-iter v0.1.42 Compiling num-rational v0.2.4 Compiling phf_shared v0.8.0 Compiling alloc-stdlib v0.2.1 Compiling crc v1.8.1 Compiling phf v0.8.0 Compiling brotli-decompressor v2.3.2 Compiling aho-corasick v0.7.15 Compiling time v0.1.44 Compiling quote v1.0.10 Compiling toml v0.5.8 Compiling brotli v3.3.2 Compiling quote v0.6.13 Compiling regex v1.4.6 Compiling flate2 v1.0.22 Compiling num-traits v0.1.43 Compiling rand_core v0.5.1 Compiling digest v0.9.0 Compiling block-buffer v0.9.0 Compiling rusticata-macros v2.1.0 Compiling ntp-parser v0.4.0 Compiling sawp v0.5.0 Compiling enum_primitive v0.1.1 Compiling rand_pcg v0.2.1 Compiling rand_chacha v0.2.2 Compiling sha-1 v0.9.8 Compiling md-5 v0.9.1 Compiling sha2 v0.9.8 Compiling ipsec-parser v0.5.0 Compiling rand v0.7.3 Compiling der-parser v3.0.4 Compiling der-oid-macro v0.2.0 Compiling num v0.2.1 Compiling phf_generator v0.8.0 Compiling x509-parser v0.6.5 Compiling phf_codegen v0.8.0 Compiling der-parser v4.0.2 Compiling tls-parser v0.9.4 Compiling kerberos-parser v0.5.0 Compiling snmp-parser v0.6.0 Compiling thiserror-impl v1.0.30 Compiling derivative v2.2.0 Compiling sawp-flags-derive v0.5.0 Compiling suricata-derive v7.0.0-dev (/home/qa/suricata-ci/build/suricata/rust/derive) Compiling sawp-flags v0.5.0 Compiling thiserror v1.0.30 Compiling proc-macro-crate v1.1.0 Compiling num_enum_derive v0.5.4 Compiling num_enum v0.5.4 Compiling sawp-modbus v0.5.0 Compiling suricata v7.0.0-dev (/home/qa/suricata-ci/build/suricata/rust) Finished release [optimized + debuginfo] target(s) in 9m 07s if test -e ../rust/target/release/suricata_rust.lib; then cp ../rust/target/release/suricata_rust.lib ../rust/target/release/libsuricata_rust.a; fi make gen/rust-bindings.h
Some info:
Rust support: yes Rust strict mode: no Rust compiler path: /usr/local/bin/rustc Rust compiler version: rustc 1.46.0 Cargo path: /usr/local/bin/cargo Cargo version: cargo 1.46.0 Cargo vendor: yes Python support: yes Python path: /usr/local/bin/python3 Python distutils yes Python yaml no Install suricatactl: yes Install suricatasc: yes Install suricata-update: no, requires pyyaml Profiling enabled: no Profiling locks enabled: no Plugin support (experimental): yes Development settings: Coccinelle / spatch: no Unit tests enabled: yes Debug output enabled: no Debug validation enabled: no Generic build parameters: Installation prefix: /usr/local Configuration directory: /usr/local/etc/suricata/ Log directory: /usr/local/var/log/suricata/ --prefix /usr/local --sysconfdir /usr/local/etc --localstatedir /usr/local/var --datarootdir /usr/local/share Host: x86_64-unknown-openbsd6.8 Compiler: clang (exec name) / g++ (real) GCC Protect enabled: no GCC march native enabled: no GCC Profile enabled: no Position Independent Executable enabled: no CFLAGS -Wall -Werror -Wno-unused-function -D__OpenBSD__ -std=c11 -I${srcdir}/../rust/gen -I${srcdir}/../rust/dist PCAP_CFLAGS SECCFLAGS
Updated by Victor Julien over 3 years ago
@@ -32,7 +38,6 @@
Compiling cpufeatures v0.2.1
Compiling crc32fast v1.2.1
Compiling crc v1.8.1
- Compiling derivative v2.2.0
Compiling der-oid-macro v0.2.0
Compiling der-parser v3.0.4
Compiling der-parser v4.0.2
@@ -45,7 +50,7 @@
Compiling kerberos-parser v0.5.0
Compiling lazy_static v1.4.0
Compiling lexical-core v0.7.6
- Compiling libc v0.2.107
+ Compiling libc v0.2.108
Compiling md-5 v0.9.1
Compiling memchr v2.2.1
Compiling minimal-lexical v0.1.4
@@ -57,8 +62,6 @@
Compiling num-bigint v0.3.3
Compiling num-complex v0.2.4
Compiling num-derive v0.2.5
- Compiling num_enum_derive v0.5.4
- Compiling num_enum v0.5.4
Compiling num-integer v0.1.44
Compiling num-iter v0.1.42
Compiling num-rational v0.2.4
@@ -73,7 +76,6 @@
Compiling ppv-lite86 v0.2.15
Compiling proc-macro2 v0.4.30
Compiling proc-macro2 v1.0.32
- Compiling proc-macro-crate v1.1.0
Compiling proc-macro-hack v0.5.19
Compiling quote v0.6.13
Compiling quote v1.0.10
@@ -85,9 +87,6 @@
Compiling regex v1.4.6
Compiling rusticata-macros v2.1.0
Compiling ryu v1.0.5
- Compiling sawp-flags-derive v0.5.0
- Compiling sawp-flags v0.5.0
- Compiling sawp-modbus v0.5.0
Compiling sawp v0.5.0
Compiling serde v1.0.130
Compiling sha-1 v0.9.8
@@ -95,12 +94,8 @@
Compiling siphasher v0.3.7
Compiling snmp-parser v0.6.0
Compiling static_assertions v1.1.0
- Compiling suricata-derive v7.0.0-dev (/home/qa/suricata-ci/build/suricata/rust/derive)
- Compiling suricata v7.0.0-dev (/home/qa/suricata-ci/build/suricata/rust)
Compiling syn v0.15.44
Compiling syn v1.0.81
- Compiling thiserror-impl v1.0.30
- Compiling thiserror v1.0.30
Compiling time v0.1.44
Compiling tls-parser v0.9.4
Compiling toml v0.5.8
Note that some the missing output is due to compilation failing before all crates are compiled
Updated by Jason Ish over 3 years ago
OpenBSD 6.8 went EOL in October. 6.9 should probably get a check though.
Updated by Victor Julien over 3 years ago
The Rust version is still new enough, so I would like to understand what causes the issue.
Updated by Jason Ish over 3 years ago
See if installing execinfo
or libexecinfo
helps.
Updated by Jason Ish over 3 years ago
Looks like a recent change to the libc
crate now makes it require libexecinfo
.
Updated by Victor Julien over 3 years ago
I installed the libexecinfo pkg, but it still fails with the same error message.
Updated by Victor Julien over 3 years ago
- Subject changed from rust compile error on OpenBSD 6.8: ld: error: unable to find library -lexecinfo to rust: compile error on OpenBSD 6.8: ld: error: unable to find library -lexecinfo
Updated by Jason Ish over 3 years ago
It looks like libexecinfo
was added to the base install of OpenBSD in 7.0 and this usage of it in the libc
crate depends on that, and not being installed by a port.
This likely affects OpenBSD 6.9 as well.
For a work-around, make sure `libexecinfo` is installed then set the following environment variable before building:
RUSTFLAGS="-L/usr/local/lib"
Updated by Victor Julien about 2 years ago
- Status changed from New to Closed
Doesn't appear to be an issue on any recent OpenBSD (tested 7.1, 7.2 and 7.3)