Suricata 6.0.4 Ignores LD=@LD@ in Makefile

Suricata 6.0.4 under OpenWrt using Rust 1.60.0.

autogen.sh and configure set the proper Linker, but fails to call it, instead using the Build Host /usr/bin/ld, which causes errors for Wrong filetype (EM:8 Mips) rather than the defined linker. Note, this happens even when I directly call cargo from the ./rust subdirectory, and is the only rust/cargo package I’m having issues with. It appears to be hard-coded to use /usr/bin/ld.

LD = mips64-openwrt-linux-musl-ld
LDFLAGS = -L/media/data/openwrt/staging_dir/toolchain-mips64_octeonplus_64_gcc-11.2.0_musl/usr/lib -L/media/data/openwrt/staging_dir/toolchain-mips64_octeonplus_64_gcc-11.2.0_musl/lib -znow -zrelro -L/media/data/openwrt/staging_dir/target-mips64_octeonplus_64_musl/usr/lib/libiconv-stub/lib -Wl,-rpath-link=/media/data/openwrt/staging_dir/target-mips64_octeonplus_64_musl/usr/lib/libiconv-stub/lib -L/media/data/openwrt/staging_dir/target-mips64_octeonplus_64_musl/usr/lib/libintl-stub/lib -Wl,-rpath-link=/media/data/openwrt/staging_dir/target-mips64_octeonplus_64_musl/usr/lib/libintl-stub/lib  -rdynamic -L/media/data/openwrt/staging_dir/target-mips64_octeonplus_64_musl/usr/lib/

Error as follows, generated Makefile Suricata Makefile · GitHub due to character limits.

Note: I cut many of the below lines to make character limits

          /usr/bin/ld: /media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.0.rcgu.o: Relocations in generic ELF (EM: 8)
make[4]: Entering directory '/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust'
\
        CARGO_HOME="/media/data/openwrt/staging_dir/host" \
        CARGO_TARGET_DIR="/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target" \
        /media/data/openwrt/staging_dir/host/bin/cargo build --release  \
                --features "function-macro    " --target mips64-openwrt-linux-musl
    Updating crates.io index
   Compiling autocfg v1.1.0
   Compiling semver-parser v0.7.0
   Compiling arrayvec v0.4.12
   Compiling bitflags v1.2.1
   Compiling memchr v2.3.4
   Compiling libc v0.2.125
   Compiling version_check v0.9.4
   Compiling nodrop v0.1.14
   Compiling cfg-if v0.1.10
   Compiling getrandom v0.1.16
   Compiling static_assertions v0.3.4
   Compiling ryu v1.0.9
   Compiling cfg-if v1.0.0
   Compiling ppv-lite86 v0.2.16
   Compiling siphasher v0.3.10
   Compiling proc-macro-hack v0.5.19
   Compiling proc-macro2 v0.4.30
   Compiling unicode-xid v0.1.0
   Compiling build_const v0.2.2
   Compiling syn v0.15.44
   Compiling num-derive v0.2.5
   Compiling base64 v0.11.0
   Compiling widestring v0.4.3
   Compiling uuid v0.8.2
   Compiling md5 v0.7.0
   Compiling byteorder v1.4.3
   Compiling semver v0.9.0
   Compiling num-traits v0.2.15
   Compiling num-integer v0.1.45
   Compiling num-bigint v0.3.3
   Compiling num-bigint v0.2.6
   Compiling num-iter v0.1.43
   Compiling num-complex v0.2.4
   Compiling num-rational v0.2.4
   Compiling nom v5.1.1
   Compiling phf_shared v0.8.0
   Compiling crc v1.8.1
   Compiling rustc_version v0.2.3
   Compiling phf v0.8.0
   Compiling lexical-core v0.6.8
   Compiling time v0.1.44
   Compiling quote v0.6.13
   Compiling rand_core v0.5.1
   Compiling rand_chacha v0.2.2
   Compiling rand_pcg v0.2.1
   Compiling rand v0.7.3
   Compiling phf_generator v0.8.0
   Compiling phf_codegen v0.8.0
   Compiling num-traits v0.1.43
   Compiling tls-parser v0.9.4
   Compiling enum_primitive v0.1.1
   Compiling rusticata-macros v2.1.0
   Compiling ntp-parser v0.4.0
   Compiling ipsec-parser v0.5.0
   Compiling der-parser v3.0.4
   Compiling x509-parser v0.6.5
   Compiling num v0.2.1
   Compiling der-oid-macro v0.2.0
   Compiling der-parser v4.1.0
   Compiling kerberos-parser v0.5.0
   Compiling snmp-parser v0.6.0
   Compiling suricata v6.0.4 (/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust)
error: linking with `cc` failed: exit status: 1
  |
  = note: "cc" "-Wl,--version-script=/media/data/openwrt/tmp/rustcikhedo/list" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.0.rcgu.o" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.1.rcgu.o" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.10.rcgu.o" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.11.rcgu.o" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.12.rcgu.o" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.13.rcgu.o" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.14.rcgu.o" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.15.rcgu.o" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.2.rcgu.o" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.3.rcgu.o" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.4.rcgu.o" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.5.rcgu.o" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.6.rcgu.o" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.7.rcgu.o" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.8.rcgu.o" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.9.rcgu.o" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.11tb4w6qft5344yp.rcgu.o" "-Wl,--as-needed" "-L" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps" "-L" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/release/deps" "-L" "/media/data/openwrt/staging_dir/host/lib64/rustlib/mips64-openwrt-linux-musl/lib" "-Wl,-Bstatic" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libnum-1553a2b4d8563b92.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libnum_rational-ddae9aa434e8be5f.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libnum_iter-86ef3ed1c1fdc891.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libnum_complex-8fb3e4910cf62ec7.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libmd5-bdd3030fdb1f224b.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libuuid-92252f5cc3704972.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libntp_parser-ed2c461137e340b9.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libsnmp_parser-b4837e07176be8d4.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libipsec_parser-cc325f2ca8c3cfa3.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libx509_parser-e49b785c02c7b8de.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libtime-d88cfcda7bc46822.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/liblibc-f1b70c0828e220ca.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libbase64-98f393bd16e23af0.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libder_parser-4e02a21a39f58bbd.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libnum_bigint-fc5b8722122ee007.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libnum_integer-d77a145e10543d37.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libtls_parser-7909e52b081f5cea.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libphf-0c402924709d7abf.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libphf_shared-d2db1a947df42660.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libsiphasher-a0519b188cc0d84b.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libenum_primitive-a6d5f3be7a18b13e.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libnum_traits-a04902a156dcfe1d.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libkerberos_parser-3429af3d7a7e21c1.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libder_parser-5a9ca3cca2bd85fc.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libnum_traits-a7fd9da87d0a8171.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/librusticata_macros-34e219ae029d9b8e.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libwidestring-2e280f2d58e7ce0a.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libcrc-c0ac466961c88de9.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libbyteorder-48b38cc2c83b9f9d.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libnom-8120174429787259.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/liblexical_core-c06531e2190e2669.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libryu-eec1846f208aef98.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libarrayvec-54d4213d90c7daa0.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libnodrop-12886cb3229f9668.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libstatic_assertions-72f1f9c2a2063e65.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libcfg_if-3ca7d69329534fce.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libbitflags-39f8954c827ed3e1.rlib" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libmemchr-1d98ec79401cb4d4.rlib" "-Wl,--start-group" "/media/data/openwrt/staging_dir/host/lib/rustlib/mips64-openwrt-linux-musl/lib/libstd-4de174856421be80.rlib" "/media/data/openwrt/staging_dir/host/lib/rustlib/mips64-openwrt-linux-musl/lib/libpanic_unwind-fd8f4c1bda08875d.rlib" "/media/data/openwrt/staging_dir/host/lib/rustlib/mips64-openwrt-linux-musl/lib/libminiz_oxide-d66af3b5ec65e3da.rlib" "/media/data/openwrt/staging_dir/host/lib/rustlib/mips64-openwrt-linux-musl/lib/libadler-ebb256ae7a3587b1.rlib" "/media/data/openwrt/staging_dir/host/lib/rustlib/mips64-openwrt-linux-musl/lib/libobject-fa09704042ff3546.rlib" "/media/data/openwrt/staging_dir/host/lib/rustlib/mips64-openwrt-linux-musl/lib/libmemchr-73a2a4aa32d9a226.rlib" "/media/data/openwrt/staging_dir/host/lib/rustlib/mips64-openwrt-linux-musl/lib/libaddr2line-250a0a760fed3ff0.rlib" "/media/data/openwrt/staging_dir/host/lib/rustlib/mips64-openwrt-linux-musl/lib/libgimli-637b1d3a0abd873f.rlib" "/media/data/openwrt/staging_dir/host/lib/rustlib/mips64-openwrt-linux-musl/lib/librustc_demangle-0738c6fcdc963add.rlib" "/media/data/openwrt/staging_dir/host/lib/rustlib/mips64-openwrt-linux-musl/lib/libstd_detect-84ceb3c600fc3b1d.rlib" "/media/data/openwrt/staging_dir/host/lib/rustlib/mips64-openwrt-linux-musl/lib/libhashbrown-fd1fdae801f7bcb4.rlib" "/media/data/openwrt/staging_dir/host/lib/rustlib/mips64-openwrt-linux-musl/lib/librustc_std_workspace_alloc-b5e2e4cbfcdb336e.rlib" "/media/data/openwrt/staging_dir/host/lib/rustlib/mips64-openwrt-linux-musl/lib/libunwind-cf2831e94ac27ee8.rlib" "/media/data/openwrt/staging_dir/host/lib/rustlib/mips64-openwrt-linux-musl/lib/libcfg_if-48810a17a27c65d1.rlib" "/media/data/openwrt/staging_dir/host/lib/rustlib/mips64-openwrt-linux-musl/lib/liblibc-fd9f15db1aa827b0.rlib" "/media/data/openwrt/staging_dir/host/lib/rustlib/mips64-openwrt-linux-musl/lib/liballoc-1f4df83a30fc0432.rlib" "/media/data/openwrt/staging_dir/host/lib/rustlib/mips64-openwrt-linux-musl/lib/librustc_std_workspace_core-7bab05d20330266a.rlib" "/media/data/openwrt/staging_dir/host/lib/rustlib/mips64-openwrt-linux-musl/lib/libcore-fbab469a77eb0bb9.rlib" "-Wl,--end-group" "/media/data/openwrt/staging_dir/host/lib/rustlib/mips64-openwrt-linux-musl/lib/libcompiler_builtins-b823d34493215920.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "/media/data/openwrt/staging_dir/host/lib64/rustlib/mips64-openwrt-linux-musl/lib" "-o" "/media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/libsuricata.so" "-Wl,--gc-sections" "-shared" "-Wl,-zrelro,-znow" "-Wl,-O1" "-nodefaultlibs"
  = note: /usr/bin/ld: /media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.0.rcgu.o: Relocations in generic ELF (EM: 8)
          /usr/bin/ld: /media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.0.rcgu.o: Relocations in generic ELF (EM: 8)
          /usr/bin/ld: /media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.0.rcgu.o: Relocations in generic ELF (EM: 8)
          /usr/bin/ld: /media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.0.rcgu.o: Relocations in generic ELF (EM: 8)
          /usr/bin/ld: /media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.0.rcgu.o: Relocations in generic ELF (EM: 8)
          /usr/bin/ld: /media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.0.rcgu.o: Relocations in generic ELF (EM: 8)
          /usr/bin/ld: /media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.0.rcgu.o: Relocations in generic ELF (EM: 8)
          /usr/bin/ld: /media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.0.rcgu.o: Relocations in generic ELF (EM: 8)
          /usr/bin/ld: /media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.0.rcgu.o: Relocations in generic ELF (EM: 8)
          /usr/bin/ld: /media/data/openwrt/build_dir/target-mips64_octeonplus_64_musl/suricata-6.0.4/rust/target/mips64-openwrt-linux-musl/release/deps/suricata.suricata.956a1e7a-cgu.0.rcgu.o: error adding symbols: file in wrong format
          collect2: error: ld returned 1 exit status

So autogen.sh and ./configure is primarily for the C code, it doesn’t pass much of anything that it discovers over to Rust. You’ll probably have more luck just using ./configure to generate a Cargo.toml, which you have, then working with cargo build and various build flags passed directly to Rust. Once we know what those are, then maybe we can add some help via ./configure.

1 Like

I am using ./configure to generate all of the files and the Makefile to actually build it.

For standard cargo calls on other packages, I pass

RUSTFLAGS = \
  -C linker=$(TOOLCHAIN_DIR)/bin/$(TARGET_CC_NOCACHE) \
  -C ar=$(TOOLCHAIN_DIR)/bin/$(TARGET_AR) \
  -C target-cpu=$(RUSTC_CPU_TYPE)

ifneq ($(RUST_TARGET_FEATURES),)
RUSTFLAGS += -C target-feature=$(RUST_TARGET_FEATURES)
endif

to the function, but I’m not sure how/if tagging ./configure or the make invoke with that would pass them onto the internal cargo call Suricata uses. I can certainly try it though.

Something in the mixing of the C and rust isn’t being shared between, so I wanted to report it.

It seems that if I prepend the make invoke with the RUSTFLAGS=$(RUSTFLAGS), it does indeed work! Huzzah! It was just confusing since ./configure was seeing and setting the correct values, it just wasn’t using them :slight_smile:

Thanks @ish !