git: b4bff3511f7b - main - Mk/Uses/cargo.mk, lang/rust: keep RUST_BACKTRACE on powerpc64le

From: Piotr Kubaj <pkubaj_at_FreeBSD.org>
Date: Fri, 16 Oct 2026 14:14:58 UTC
The branch main has been updated by pkubaj:

URL: https://cgit.FreeBSD.org/ports/commit/?id=b4bff3511f7b98baa3d3b80ac6c7316b65a7166c

commit b4bff3511f7b98baa3d3b80ac6c7316b65a7166c
Author:     Piotr Kubaj <pkubaj@FreeBSD.org>
AuthorDate: 2026-10-16 09:17:18 +0000
Commit:     Piotr Kubaj <pkubaj@FreeBSD.org>
CommitDate: 2026-10-16 14:13:57 +0000

    Mk/Uses/cargo.mk, lang/rust: keep RUST_BACKTRACE on powerpc64le
    
    Only backtraces captured by libraries hit the libunwind bug, so disable
    those with RUST_LIB_BACKTRACE and keep panic backtraces everywhere. The
    fix is in releng/14.5, stable/15 and main.
---
 Mk/Uses/cargo.mk   | 5 ++++-
 lang/rust/Makefile | 5 ++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/Mk/Uses/cargo.mk b/Mk/Uses/cargo.mk
index cc2506f338ee..c47c36cf6bb3 100644
--- a/Mk/Uses/cargo.mk
+++ b/Mk/Uses/cargo.mk
@@ -142,8 +142,11 @@ CARGO_ENV+= \
 	RUSTDOC=${RUSTDOC} \
 	RUSTFLAGS="${RUSTFLAGS} -C linker=${CC} ${LDFLAGS:C/.+/-C link-args=&/}"
 
-.  if ${ARCH} != powerpc64le || (${ARCH} == powerpc64le && ${OSVERSION} >= 1600019)
 CARGO_ENV+=	RUST_BACKTRACE=1
+.  if ${ARCH} == powerpc64le && (${OSVERSION} < 1405000 || \
+	(${OSVERSION} >= 1500000 && ${OSVERSION} < 1501501) || \
+	(${OSVERSION} >= 1600000 && ${OSVERSION} < 1600019))
+CARGO_ENV+=	RUST_LIB_BACKTRACE=0
 .  endif
 
 .  if !defined(WITHOUT_LTO)
diff --git a/lang/rust/Makefile b/lang/rust/Makefile
index 0c6b4dad13be..5ebd8916cd5f 100644
--- a/lang/rust/Makefile
+++ b/lang/rust/Makefile
@@ -109,8 +109,11 @@ LIB_DEPENDS+=	libatomic.so:lang/gcc${GCC_DEFAULT}
 MAKE_ENV+=	RUSTFLAGS="-L/usr/local/lib/gcc${GCC_DEFAULT}"
 .endif
 
-.if ${ARCH} != powerpc64le || (${ARCH} == powerpc64le && ${OSVERSION} >= 1600019)
 MAKE_ENV+=	RUST_BACKTRACE=1
+.if ${ARCH} == powerpc64le && (${OSVERSION} < 1405000 || \
+	(${OSVERSION} >= 1500000 && ${OSVERSION} < 1501501) || \
+	(${OSVERSION} >= 1600000 && ${OSVERSION} < 1600019))
+MAKE_ENV+=	RUST_LIB_BACKTRACE=0
 .endif
 
 # per https://rust-lang.github.io/rustup/concepts/components.html