0.5.1: Linker errors for e.g. libspa_rs_type_param when using LTO
Hi! I package this project for Arch Linux.
When trying to build 0.5.1 for an update, I unfortunately ran into linker errors:
Compiling helvum v0.5.1 (/build/helvum/src/helvum-0.5.1)
error: linking with `cc` failed: exit status: 1
|
= note: LC_ALL="C" PATH="/usr/lib64/rustlib/x86_64-unknown-linux-gnu/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl" VSLANG="1033" "cc" "-m64" "/tmp/rustc48BxYk/symbols.o" "/build/helvum/src/build/src/release/deps/helvum-39b578bfb2382f36.helvum.480a8d651bd504ff
-cgu.00.rcgu.o" "/build/helvum/src/build/src/release/deps/helvum-39b578bfb2382f36.helvum.480a8d651bd504ff-cgu.01.rcgu.o" "/build/helvum/src/build/src/release/deps/helvum-39b578bfb2382f36.helvum.480a8d651bd504ff-cgu.02.rcgu.o" "/build/helvum/src/build/src/release/deps/helvum-39b578bfb2382f36.helvum.480a8d651bd504ff-cgu
.03.rcgu.o" "/build/helvum/src/build/src/release/deps/helvum-39b578bfb2382f36.helvum.480a8d651bd504ff-cgu.04.rcgu.o" "/build/helvum/src/build/src/release/deps/helvum-39b578bfb2382f36.helvum.480a8d651bd504ff-cgu.05.rcgu.o" "/build/helvum/src/build/src/release/deps/helvum-39b578bfb2382f36.helvum.480a8d651bd504ff-cgu.06.
rcgu.o" "/build/helvum/src/build/src/release/deps/helvum-39b578bfb2382f36.helvum.480a8d651bd504ff-cgu.07.rcgu.o" "/build/helvum/src/build/src/release/deps/helvum-39b578bfb2382f36.helvum.480a8d651bd504ff-cgu.08.rcgu.o" "/build/helvum/src/build/src/release/deps/helvum-39b578bfb2382f36.helvum.480a8d651bd504ff-cgu.09.rcgu
.o" "/build/helvum/src/build/src/release/deps/helvum-39b578bfb2382f36.helvum.480a8d651bd504ff-cgu.10.rcgu.o" "/build/helvum/src/build/src/release/deps/helvum-39b578bfb2382f36.helvum.480a8d651bd504ff-cgu.11.rcgu.o" "/build/helvum/src/build/src/release/deps/helvum-39b578bfb2382f36.helvum.480a8d651bd504ff-cgu.12.rcgu.o"
"/build/helvum/src/build/src/release/deps/helvum-39b578bfb2382f36.helvum.480a8d651bd504ff-cgu.13.rcgu.o" "/build/helvum/src/build/src/release/deps/helvum-39b578bfb2382f36.helvum.480a8d651bd504ff-cgu.14.rcgu.o" "/build/helvum/src/build/src/release/deps/helvum-39b578bfb2382f36.helvum.480a8d651bd504ff-cgu.15.rcgu.o" "/bu
ild/helvum/src/build/src/release/deps/helvum-39b578bfb2382f36.2q9thhcdl3wgukjg.rcgu.o" "-Wl,--as-needed" "-L" "/build/helvum/src/build/src/release/deps" "-L" "/build/helvum/src/build/src/release/build/libspa-9cbcd6d5b747dde1/out" "-L" "/build/helvum/src/build/src/release/build/libspa-sys-f75a6e9178fd48b3/out" "-L" "/u
sr/lib64/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/build/helvum/src/build/src/release/deps/libpipewire-e99b6ca22af09223.rlib" "/build/helvum/src/build/src/release/deps/liblibspa-c2e6f7ad2a31b303.rlib" "/build/helvum/src/build/src/release/deps/libconvert_case-028fda839a7fdb38.rlib" "/build/helvum/src/build
/src/release/deps/libunicode_segmentation-606826a994d8e8d1.rlib" "/build/helvum/src/build/src/release/deps/libcookie_factory-a2ec5e4f289d8978.rlib" "/build/helvum/src/build/src/release/deps/libnom-34a9f4ff4d67d617.rlib" "/build/helvum/src/build/src/release/deps/libnix-b7afd9d754a78518.rlib" "/build/helvum/src/build/sr
c/release/deps/libmemoffset-80e15cdbd523a874.rlib" "/build/helvum/src/build/src/release/deps/libbitflags-3ab6f7f2fc9f356b.rlib" "/build/helvum/src/build/src/release/deps/libcfg_if-c12238bfd79531bc.rlib" "/build/helvum/src/build/src/release/deps/libpipewire_sys-9a3f0abc8138dabd.rlib" "/build/helvum/src/build/src/releas
e/deps/liblibspa_sys-640f59eccc65e951.rlib" "/build/helvum/src/build/src/release/deps/liblibadwaita-2ed69a3c2b79851a.rlib" "/build/helvum/src/build/src/release/deps/libgtk4-90dd4fbcdaa46b4f.rlib" "/build/helvum/src/build/src/release/deps/libgsk4-2f9d86df774b3dfa.rlib" "/build/helvum/src/build/src/release/deps/libgraph
ene-bc1e2940c4517d84.rlib" "/build/helvum/src/build/src/release/deps/libfield_offset-f0beaa1a46a3f236.rlib" "/build/helvum/src/build/src/release/deps/libmemoffset-dcd4d360aef10f9a.rlib" "/build/helvum/src/build/src/release/deps/libgdk4-4f460fe56208a2dc.rlib" "/build/helvum/src/build/src/release/deps/libpango-24080c49a
51fbb8b.rlib" "/build/helvum/src/build/src/release/deps/libgdk_pixbuf-25b4ff602929e987.rlib" "/build/helvum/src/build/src/release/deps/libgio-ddd2db7dea607b11.rlib" "/build/helvum/src/build/src/release/deps/libfutures_io-43fc2018a19e75b8.rlib" "/build/helvum/src/build/src/release/deps/libcairo-1f645a459fda333a.rlib" "
/build/helvum/src/build/src/release/deps/libglib-2ce7d9800d482f8c.rlib" "/build/helvum/src/build/src/release/deps/libfutures_executor-8f9cdda8cb3a3cc7.rlib" "/build/helvum/src/build/src/release/deps/libmemchr-35c6c1de3ea415fb.rlib" "/build/helvum/src/build/src/release/deps/libsmallvec-adcfef780df4cd66.rlib" "/build/he
lvum/src/build/src/release/deps/liblog-66701c3da1800aec.rlib" "/build/helvum/src/build/src/release/deps/libthiserror-7960bf022f89db2b.rlib" "/build/helvum/src/build/src/release/deps/libfutures_util-2cd5572cb9995b84.rlib" "/build/helvum/src/build/src/release/deps/libslab-e69f0ecebc62d959.rlib" "/build/helvum/src/build/
src/release/deps/libpin_project_lite-deff50a9c02ac06f.rlib" "/build/helvum/src/build/src/release/deps/libpin_utils-28182f84d0334054.rlib" "/build/helvum/src/build/src/release/deps/libfutures_task-36ee4e87ad5b27fe.rlib" "/build/helvum/src/build/src/release/deps/libfutures_channel-a6bf77044706cad7.rlib" "/build/helvum/s
rc/build/src/release/deps/libfutures_core-8a49f2dc55de9596.rlib" "/build/helvum/src/build/src/release/deps/libonce_cell-c7baaff1ba530963.rlib" "/build/helvum/src/build/src/release/deps/libbitflags-a5d975202e292ae7.rlib" "/build/helvum/src/build/src/release/deps/liblibadwaita_sys-b73de8a0d88a3b69.rlib" "/build/helvum/s
rc/build/src/release/deps/libgtk4_sys-21a47a2d7928c3be.rlib" "/build/helvum/src/build/src/release/deps/libgsk4_sys-dd6b1f824f73e2c0.rlib" "/build/helvum/src/build/src/release/deps/libgraphene_sys-cbb01bded570a328.rlib" "/build/helvum/src/build/src/release/deps/libgdk4_sys-1d9875e5ff554827.rlib" "/build/helvum/src/buil
d/src/release/deps/libgdk_pixbuf_sys-640f9d45b19b3009.rlib" "/build/helvum/src/build/src/release/deps/libpango_sys-280cd987ddc6b3bc.rlib" "/build/helvum/src/build/src/release/deps/libcairo_sys-e73fb8a082701955.rlib" "/build/helvum/src/build/src/release/deps/libgio_sys-bd8c1260f59aa156.rlib" "/build/helvum/src/build/sr
c/release/deps/libgobject_sys-95faddd71edd6f00.rlib" "/build/helvum/src/build/src/release/deps/libglib_sys-67516f85d0c79f6f.rlib" "/build/helvum/src/build/src/release/deps/liblibc-93e7c23c5df1f757.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libstd-2233469ceb4c3fd5.rlib" "/usr/lib64/rustlib/x86_64-unknown-li
nux-gnu/lib/libpanic_unwind-ce03895663010647.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libobject-c96e35c9ef47b517.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-9ba85d490501a8ae.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-8f773169fece53d4.rlib" "/usr/lib64/rustlib
/x86_64-unknown-linux-gnu/lib/libgimli-445086dae0c172c0.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-c3982acc95c6ae05.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-85db8733b40480fc.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-69d00bb839da2efc.rl
ib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-a274be5892cabf36.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-7ca433d5704e3361.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libadler-13bdcf7a363e630a.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/l
ib/libunwind-cc611df0a96ac3a8.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-ebfc1e15ea31b4df.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-5e2d3cf09d3b85d1.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-0f38d2d3efdd78ad.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux
-gnu/lib/librustc_std_workspace_core-27621badca72e1cb.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libcore-16fa4d23e92b6ecb.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-ccce96004dc981d1.rlib" "-Wl,-Bdynamic" "-lpipewire-0.3" "-lpipewire-0.3" "-lgobject-2.0" "-ladwaita-1" "-lgtk
-4" "-lpangocairo-1.0" "-lpango-1.0" "-lharfbuzz" "-lgdk_pixbuf-2.0" "-lcairo-gobject" "-lcairo" "-lgraphene-1.0" "-lgio-2.0" "-lgobject-2.0" "-lglib-2.0" "-lgtk-4" "-lpangocairo-1.0" "-lpango-1.0" "-lharfbuzz" "-lgdk_pixbuf-2.0" "-lcairo-gobject" "-lcairo" "-lgraphene-1.0" "-lgio-2.0" "-lgobject-2.0" "-lglib-2.0" "-l
gtk-4" "-lpangocairo-1.0" "-lpango-1.0" "-lharfbuzz" "-lgdk_pixbuf-2.0" "-lcairo-gobject" "-lcairo" "-lgraphene-1.0" "-lgio-2.0" "-lgobject-2.0" "-lglib-2.0" "-lgraphene-1.0" "-lgobject-2.0" "-lglib-2.0" "-lgtk-4" "-lpangocairo-1.0" "-lpango-1.0" "-lharfbuzz" "-lgdk_pixbuf-2.0" "-lcairo-gobject" "-lcairo" "-lgraphene-
1.0" "-lgio-2.0" "-lgobject-2.0" "-lglib-2.0" "-lgdk_pixbuf-2.0" "-lgobject-2.0" "-lglib-2.0" "-lpango-1.0" "-lgobject-2.0" "-lglib-2.0" "-lharfbuzz" "-lcairo-gobject" "-lcairo" "-lgobject-2.0" "-lglib-2.0" "-lgio-2.0" "-lgobject-2.0" "-lglib-2.0" "-lgobject-2.0" "-lglib-2.0" "-lgobject-2.0" "-lglib-2.0" "-lgcc_s" "-l
util" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/build/helvum/src/build/src/release/deps/helvum-39b578bfb2382f36" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-nodefaultlibs"
= note: /usr/bin/ld: /build/helvum/src/build/src/release/deps/liblibspa-c2e6f7ad2a31b303.rlib(libspa-c2e6f7ad2a31b303.libspa.3af28c6a197fdbbf-cgu.14.rcgu.o): in function `libspa::param::format_utils::parse_format':
/usr/src/debug/helvum/build/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/libspa-0.7.2/src/param/format_utils.rs:18:(.text._ZN6libspa5param12format_utils12parse_format17hbbbb0bf96681a95bE+0x1a): undefined reference to `libspa_rs_format_parse'
/usr/bin/ld: /build/helvum/src/build/src/release/deps/liblibspa-c2e6f7ad2a31b303.rlib(libspa-c2e6f7ad2a31b303.libspa.3af28c6a197fdbbf-cgu.14.rcgu.o): in function `<libspa::param::ParamType as core::fmt::Debug>::fmt':
/usr/src/debug/helvum/build/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/libspa-0.7.2/src/param/mod.rs:69:(.text._ZN61_$LT$libspa..param..ParamType$u20$as$u20$core..fmt..Debug$GT$3fmt17h3663fb404f27cb49E+0xf): undefined reference to `libspa_rs_type_param'
/usr/bin/ld: /usr/src/debug/helvum/build/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/libspa-0.7.2/src/param/mod.rs:69:(.text._ZN61_$LT$libspa..param..ParamType$u20$as$u20$core..fmt..Debug$GT$3fmt17h3663fb404f27cb49E+0x1d): undefined reference to `libspa_rs_debug_type_find_short_name'
collect2: error: ld returned 1 exit status
= note: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified
= note: use the `-l` flag to specify native libraries to link
= note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.html#cargorustc-link-libkindname)
error: could not compile `helvum` (bin "helvum") due to previous error
FAILED: src/helvum
/usr/bin/env CARGO_HOME=/build/helvum/src/build/cargo-home /usr/bin/cargo build --manifest-path /build/helvum/src/helvum-0.5.1/Cargo.toml --target-dir /build/helvum/src/build/src --release && cp src/release/helvum src/helvum
ninja: build stopped: subcommand failed.
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /usr/bin/ninja -C /build/helvum/src/build
Full build log: helvum-0.5.1-1-x86_64-build.log
I'm a bit puzzled by this, as I do have latest pipewire (and therefore also libspa-0.2 libs) installed in the build environment. The libspa/ libspa-sys crates also seem to build successfully.
Maybe you have an idea what is going wrong here?