Project

General

Profile

Actions

Bug #4850

closed

rust: compile error on OpenBSD 6.8: ld: error: unable to find library -lexecinfo

Added by Victor Julien over 2 years ago. Updated about 1 year ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
Affected Versions:
Effort:
Difficulty:
Label:

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

Actions #1

Updated by Victor Julien over 2 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
Actions #2

Updated by Jason Ish over 2 years ago

OpenBSD 6.8 went EOL in October. 6.9 should probably get a check though.

Actions #3

Updated by Victor Julien over 2 years ago

The Rust version is still new enough, so I would like to understand what causes the issue.

Actions #4

Updated by Jason Ish over 2 years ago

See if installing execinfo or libexecinfo helps.

Actions #5

Updated by Jason Ish over 2 years ago

Looks like a recent change to the libc crate now makes it require libexecinfo.

Actions #6

Updated by Victor Julien over 2 years ago

I installed the libexecinfo pkg, but it still fails with the same error message.

Actions #7

Updated by Victor Julien over 2 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
Actions #8

Updated by Jason Ish over 2 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"
Actions #9

Updated by Victor Julien about 1 year 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)

Actions

Also available in: Atom PDF