fix(aur): override RUSTFLAGS to swap lld→bfd for ring linker error

makepkg.conf on Arch injects -fuse-ld=lld into RUSTFLAGS which overrides
.cargo/config.toml target rustflags. PKGBUILD now explicitly patches
RUSTFLAGS at env level so bfd is used regardless of system config.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Psychotoxical
2026-04-02 11:44:00 +02:00
parent 005abae97d
commit 74c75d83ca
2 changed files with 10 additions and 0 deletions
+4
View File
@@ -3,6 +3,10 @@
# resolve (ring_core_* symbols). Fix: force cc as linker driver and append # resolve (ring_core_* symbols). Fix: force cc as linker driver and append
# -fuse-ld=bfd so it overrides the hardcoded -fuse-ld=lld (last flag wins). # -fuse-ld=bfd so it overrides the hardcoded -fuse-ld=lld (last flag wins).
# bfd is always available via binutils (part of base-devel on Arch). # bfd is always available via binutils (part of base-devel on Arch).
#
# NOTE: When building via makepkg (AUR), RUSTFLAGS from /etc/makepkg.conf
# overrides target-specific rustflags here. The PKGBUILD's build() applies
# the same fix by patching the RUSTFLAGS env var directly.
[target.x86_64-unknown-linux-gnu] [target.x86_64-unknown-linux-gnu]
linker = "cc" linker = "cc"
rustflags = ["-C", "link-arg=-fuse-ld=bfd"] rustflags = ["-C", "link-arg=-fuse-ld=bfd"]
+6
View File
@@ -27,6 +27,12 @@ build() {
export CARGO_HOME="$srcdir/cargo-home" export CARGO_HOME="$srcdir/cargo-home"
export npm_config_cache="$srcdir/npm-cache" export npm_config_cache="$srcdir/npm-cache"
# ring (used by tauri-plugin-updater → rustls) ships C/asm objects whose
# symbols (ring_core_*) lld cannot resolve. Arch's makepkg.conf bakes
# -fuse-ld=lld into RUSTFLAGS which overrides .cargo/config.toml.
# Swap lld → bfd (binutils, part of base-devel) so the link succeeds.
export RUSTFLAGS="${RUSTFLAGS//-fuse-ld=lld/-fuse-ld=bfd}"
npm install npm install
npm run tauri:build -- --no-bundle npm run tauri:build -- --no-bundle
} }