[Bug 270421] graphics/librsvg2-rust: 2.56.0 Fails to compile because of LLVM version mismatch

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 23 May 2023 05:56:50 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270421

throwaway_vthgwq4@protonmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |throwaway_vthgwq4@protonmai
                   |                            |l.com

--- Comment #4 from throwaway_vthgwq4@protonmail.com ---
I have similar here with -CURRENT (base LLVM 15) and Rust using LLVM 16:

[...]
cargo --locked build --verbose  --release --bin rsvg-convert
libtool: link: /usr/bin/nm -B   ./.libs/librsvg_c_api.a | /usr/bin/sed -n -e
 's/^.*[         ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[         ][      ]*\([_A-Za-
z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | /usr/bin/sed '/ __gnu_lto/d' | /usr/bin/sed
 's/.* //' | sort | uniq > .libs/librsvg-2.exp
/usr/bin/nm: error:
./.libs/librsvg_c_api.a(rsvg-6aae7815bd5a5a95.rsvg.f7c38f4e-cgu.0.rcgu.o):
Unknown attribute kind (86) (Producer: 'LLVM16.0.3' Reader: 'LLVM 15.0.7')
[...]

/usr/bin/nm is detected in configure script:

[...]
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
[...]

To avoid Rust LLVM and nm version match, try (adjust 16 for Rust LLVM version
in use):

diff --git a/graphics/librsvg2-rust/Makefile b/graphics/librsvg2-rust/Makefile
--- a/graphics/librsvg2-rust/Makefile
+++ b/graphics/librsvg2-rust/Makefile
@@ -13,7 +13,8 @@ WWW=          https://live.gnome.org/LibRsvg

 LICENSE=       LGPL20

-BUILD_DEPENDS= rst2man:textproc/py-docutils
+BUILD_DEPENDS= rst2man:textproc/py-docutils \
+               llvm-nm16:devel/llvm16
 LIB_DEPENDS=   libfontconfig.so:x11-fonts/fontconfig \
                libfreetype.so:print/freetype2 \
                libharfbuzz.so:print/harfbuzz \
@@ -30,7 +31,7 @@ CONFIGURE_ARGS=       --disable-Bsymbolic \
                --disable-dependency-tracking \
                --disable-static \
                --enable-vala
-CONFIGURE_ENV= ${CARGO_ENV}
+CONFIGURE_ENV= ${CARGO_ENV} NM=/usr/local/bin/llvm-nm16
 MAKE_ENV=      ${CARGO_ENV}
 CARGO_ENV=     RUST_TARGET=${CARGO_BUILD_TARGET}
 CARGO_BUILD=   no

Alternatively, investigate if parts of librsvg2-rust invoking cargo directly
(rg 'CARGO_RELEASE_ARGS' in WRKDIR) could opt-out either from LTO (maybe
ThinLTO is partly used, and switching to fat LTO would help) or build.

-- 
You are receiving this mail because:
You are the assignee for the bug.