[Bug 287493] lang/expect: fails to build on riscv

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 13 Jun 2025 17:53:22 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=287493

Jessica Clarke <jrtc27@freebsd.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|Affects Only Me             |Affects Some People
                 CC|                            |bapt@FreeBSD.org
           Hardware|riscv                       |Any
             Status|New                         |Open

--- Comment #6 from Jessica Clarke <jrtc27@freebsd.org> ---
Did you build tcl from source or install a package? That specific configure
check uses TCL_CC, which comes from the installed tcl's config
(/usr/local/lib/tcl<version>/tclConfig.sh). Unfortunately that bakes in the
path to the compiler that was used to build tcl, which may differ from that
used on your system. Specifically, Poudriere when cross-compiling (as used by
the cluster to build ports for non-amd64/arm64(?)) builds a native toolchain
(defaulting to cross-compiling), as it's much faster than having to run the
jail's foreign toolchain in an emulator, and installs that into the jail in
/nxb-bin. Unfortunately this breaks assumptions in upstream software that the
same compiler will be present when that package is used later.

I've long held the view that the correct way to deal with this kind of software
is for Poudriere to just replace /usr/bin/cc so no matter what system you're on
it'll be the right compiler to use. We see this downstream too in CheriBSD, and
it can leak into other packages like Perl for compiling XS modules, I think
(possibly and/or native Python modules).

If you want a workaround, you could either fake up an /nxb-bin locally (symlink
to / or recreate the structure and symlink the needed tools individually) or
patch tclConfig.sh to not use /nxb-bin.

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