native x-tools fails to build for poudriere/riscv64

From: void <void_at_f-m.fm>
Date: Thu, 21 Aug 2025 19:46:17 UTC
Hi,

(x-posted to groups who'd probably be interested in this)

native x-tools cross compilation fails to build on 
main-n278917-233a26b5c5d7 GENERIC-NODEBUG amd64 1500053 1500053 for poudriere/riscv64

I'm unsure if it's a poudriere problem or a x-compilation problem, or both.

poudriere jail -c -j riscv64 -J20 -a riscv.riscv64 -X -m git+https -v stable/14 *actually* *works*,
but ofc this is very slow for building anything. The -X means 'no native cross-compilation'

server is FreeBSD 15.0-CURRENT #0 main-n278917-233a26b5c5d7 GENERIC-NODEBUG amd64 1500053 1500053

# cat riscv64-src.conf
KERNCONF=GENERIC-NODEBUG
WITH_CCACHE_BUILD=
CCACHE_PREFIX=/usr/local/bin
#
WITHOUT_LLVM_ASSERTIONS=
WITH_LLVM_TARGET_ALL=
#WITH_LLVM_TARGET_RISCV=
#
WITHOUT_TESTS=

# cat riscv64-src-env.conf
WITH_META_MODE=YES

# poudriere jail -c -j riscv64 -J20 -a riscv.riscv64 -m git+https -v stable/14

I've also tried -b -m src=/usr/src -v main but it errors in the same way.

fails here:

make[5]: stopped making "all" in /usr/local/poudriere/jails/riscv64/usr/src/usr.bin/clang/llvm-strings
.ERROR_TARGET='llvm-strings'
.ERROR_META_FILE='/usr/obj/usr/local/poudriere/jails/riscv64/usr/src/amd64.amd64/nxb/riscv.riscv64/usr.bin/clang/llvm-strings/llvm-strings.meta'
.MAKE.LEVEL='5'
MAKEFILE=''
.MAKE.MODE='meta missing-filemon=yes missing-meta=yes silent=yes verbose'
_ERROR_CMD='/usr/obj/usr/local/poudriere/jails/riscv64/usr/src/amd64.amd64/nxb/riscv.riscv64/tmp/usr/bin/c++ -target x86_64-unknown-freebsd14.3 --sysroot=/usr/obj/usr/local/poudriere/jails/riscv64/usr/src/amd64.amd64/nxb/riscv.riscv64/tmp -B/usr/obj/usr/local/poudriere/jails/riscv64/usr/src/amd64.amd64/nxb/riscv.riscv64/tmp/usr/bin -O2 -pipe -fno-common -I/usr/obj/usr/local/poudriere/jails/riscv64/usr/src/amd64.amd64/nxb/riscv.riscv64/usr.bin/clang/llvm-strings -I/usr/obj/usr/local/poudriere/jails/riscv64/usr/src/amd64.amd64/nxb/riscv.riscv64/lib/clang/libllvm -I/usr/local/poudriere/jails/riscv64/usr/src/lib/clang/include -I/usr/local/poudriere/jails/riscv64/usr/src/contrib/llvm-project/llvm/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DHAVE_VCS_VERSION_INC -DNDEBUG -DLLVM_DEFAULT_TARGET_TRIPLE=\"riscv64-unknown-freebsd14.3\" -DLLVM_HOST_TRIPLE=\"x86_64-unknown-freebsd14.3\" -DDEFAULT_SYSROOT=\"\" -DLLVM_TARGET_ENABLE_AARCH64 -DLLVM_TARGET_ENABLE_ARM -DLLVM_TARGET_ENABLE_POWERPC -DLLVM_TARGET_ENABLE_RISCV -DLLVM_TARGET_ENABLE_X86 -DLLVM_NATIVE_ASMPARSER=LLVMInitializeX86AsmParser -DLLVM_NATIVE_ASMPRINTER=LLVMInitializeX86AsmPrinter -DLLVM_NATIVE_DISASSEMBLER=LLVMInitializeX86Disassembler -DLLVM_NATIVE_TARGET=LLVMInitializeX86Target -DLLVM_NATIVE_TARGETINFO=LLVMInitializeX86TargetInfo -DLLVM_NATIVE_TARGETMC=LLVMInitializeX86TargetMC -ffunction-sections -fdata-sections -Wno-format-zero-length -nobuiltininc -idirafter /usr/obj/usr/local/poudriere/jails/riscv64/usr/src/amd64.amd64/nxb/riscv.riscv64/tmp/usr/lib/clang/19/include -Wdate-time -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable -Wno-error=unused-but-set-parameter -Wno-error=cast-function-type-mismatch -Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality -Wno-unused-function -Wno-enum-conversion -Wno-unused-local-typedef -Wno-address-of-packed-member -Wno-switch -Wno-switch-enum -Wno-knr-promoted-parameter -Wno-parentheses -Qunused-arguments -fno-exceptions -fno-rtti -std=c++17 -stdlib=libc++ -Wno-c++11-extensions  -Wl,--gc-sections -Wl,-zrelro -static   -o llvm-strings  llvm-strings.o /usr/obj/usr/local/poudriere/jails/riscv64/usr/src/amd64.amd64/nxb/riscv.riscv64/lib/clang/libllvm/libprivatellvm.so  -lz -lprivatezstd   -lexecinfo  -lelf  -ltinfow  -lpthread ;'
.CURDIR='/usr/local/poudriere/jails/riscv64/usr/src/usr.bin/clang/llvm-strings'
.MAKE='make'
.OBJDIR='/usr/obj/usr/local/poudriere/jails/riscv64/usr/src/amd64.amd64/nxb/riscv.riscv64/usr.bin/clang/llvm-strings'
.TARGETS='all'
CPUTYPE=''
DESTDIR='/usr/obj/usr/local/poudriere/jails/riscv64/usr/src/amd64.amd64/nxb/riscv.riscv64/tmp'
LD_LIBRARY_PATH=''
MACHINE='amd64'
MACHINE_ARCH='amd64'
MACHINE_CPUARCH='amd64'
MAKEOBJDIRPREFIX=''
MAKESYSPATH='/usr/local/poudriere/jails/riscv64/usr/src/share/mk'
MAKE_VERSION='20250618'
PATH='/usr/obj/usr/local/poudriere/jails/riscv64/usr/src/amd64.amd64/nxb/riscv.riscv64/tmp/bin:/usr/obj/usr/local/poudriere/jails/riscv64/usr/src/amd64.amd64/nxb/riscv.riscv64/tmp/usr/sbin:/usr/obj/usr/local/poudriere/jails/riscv64/usr/src/amd64.amd64/nxb/riscv.riscv64/tmp/usr/bin:/usr/obj/usr/local/poudriere/jails/riscv64/usr/src/amd64.amd64/nxb/riscv.riscv64/tmp/legacy/usr/sbin:/usr/obj/usr/local/poudriere/jails/riscv64/usr/src/amd64.amd64/nxb/riscv.riscv64/tmp/legacy/usr/bin:/usr/obj/usr/local/poudriere/jails/riscv64/usr/src/amd64.amd64/nxb/riscv.riscv64/tmp/legacy/bin:/usr/obj/usr/local/poudriere/jails/riscv64/usr/src/amd64.amd64/nxb/riscv.riscv64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin'
SRCTOP='/usr/local/poudriere/jails/riscv64/usr/src'
OBJTOP='/usr/obj/usr/local/poudriere/jails/riscv64/usr/src/amd64.amd64/nxb/riscv.riscv64'
.MAKE.MAKEFILES='/usr/local/poudriere/jails/riscv64/usr/src/share/mk/sys.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/local.sys.env.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/src.sys.env.mk /usr/local/poudriere/jails/riscv64/etc/src-env.conf /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.mkopt.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/src.sys.obj.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/sys.machine.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/meta.sys.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/local.meta.sys.env.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/auto.obj.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.suffixes.mk /usr/local/poudriere/jails/riscv64/etc/make.conf /usr/local/poudriere/jails/riscv64/usr/src/share/mk/local.sys.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/src.sys.mk /usr/local/poudriere/jails/riscv64/etc/src.conf /usr/local/poudriere/jails/riscv64/usr/src/usr.bin/clang/llvm-strings/Makefile /usr/local/poudriere/jails/riscv64/usr/src/share/mk/src.opts.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.own.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.opts.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.cpu.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.compiler.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.endian.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.linker.mk /usr/local/poudriere/jails/riscv64/usr/src/lib/clang/llvm.pre.mk /usr/local/poudriere/jails/riscv64/usr/src/usr.bin/clang/llvm.prog.mk /usr/local/poudriere/jails/riscv64/usr/src/lib/clang/llvm.build.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.prog.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.init.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/local.init.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/src.init.mk /usr/local/poudriere/jails/riscv64/usr/src/usr.bin/clang/llvm-strings/../Makefile.inc /usr/local/poudriere/jails/riscv64/usr/src/usr.bin/clang/llvm-strings/../../Makefile.inc /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.suffixes-extra.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.sanitizer.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.libnames.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/src.libnames.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.nls.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.confs.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.files.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.dirs.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.incs.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.links.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.dep.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.clang-analyze.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.obj.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.subdir.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.sys.mk /dev/null'
.PATH='. /usr/local/poudriere/jails/riscv64/usr/src/usr.bin/clang/llvm-strings /usr/local/poudriere/jails/riscv64/usr/src/contrib/llvm-project/llvm/tools/llvm-strings'

make[4]: stopped making "all" in /usr/local/poudriere/jails/riscv64/usr/src/usr.bin/clang

make[4]: stopped making "all" in /usr/local/poudriere/jails/riscv64/usr/src/usr.bin/clang

make[4]: stopped making "all" in /usr/local/poudriere/jails/riscv64/usr/src/usr.bin/clang

make[4]: stopped making "all" in /usr/local/poudriere/jails/riscv64/usr/src/usr.bin/clang

make[4]: stopped making "all" in /usr/local/poudriere/jails/riscv64/usr/src/usr.bin/clang

make[4]: stopped making "all" in /usr/local/poudriere/jails/riscv64/usr/src/usr.bin/clang

make[4]: stopped making "all" in /usr/local/poudriere/jails/riscv64/usr/src/usr.bin/clang

make[4]: stopped making "all" in /usr/local/poudriere/jails/riscv64/usr/src/usr.bin/clang

make[4]: stopped making "all" in /usr/local/poudriere/jails/riscv64/usr/src/usr.bin/clang

make[4]: stopped making "all" in /usr/local/poudriere/jails/riscv64/usr/src/usr.bin/clang

make[4]: stopped making "all" in /usr/local/poudriere/jails/riscv64/usr/src/usr.bin/clang

make[4]: stopped making "all" in /usr/local/poudriere/jails/riscv64/usr/src/usr.bin/clang

make[4]: stopped making "all" in /usr/local/poudriere/jails/riscv64/usr/src/usr.bin/clang

make[4]: stopped making "all" in /usr/local/poudriere/jails/riscv64/usr/src/usr.bin/clang

make[3]: stopped making "all" in /usr/local/poudriere/jails/riscv64/usr/src
        44.42 real       459.34 user        51.31 sys

        make[2]: stopped making "everything" in /usr/local/poudriere/jails/riscv64/usr/src
        *** [native-xtools] Error code 2

        make[1]: stopped making "native-xtools" in /usr/local/poudriere/jails/riscv64/usr/src
        .ERROR_TARGET='native-xtools'
        .ERROR_META_FILE=''
        .MAKE.LEVEL='1'
        MAKEFILE=''
        .MAKE.MODE='meta missing-filemon=yes missing-meta=yes silent=yes verbose'
        _ERROR_CMD='.PHONY'
        .CURDIR='/usr/local/poudriere/jails/riscv64/usr/src'
        .MAKE='make'
        .OBJDIR='/usr/obj/usr/local/poudriere/jails/riscv64/usr/src/amd64.amd64'
        .TARGETS='native-xtools'
        CPUTYPE=''
        DESTDIR=''
        LD_LIBRARY_PATH=''
        MACHINE='amd64'
        MACHINE_ARCH='amd64'
        MACHINE_CPUARCH='amd64'
        MAKEOBJDIRPREFIX=''
        MAKESYSPATH='/usr/local/poudriere/jails/riscv64/usr/src/share/mk'
        MAKE_VERSION='20250618'
        PATH='/sbin:/bin:/usr/sbin:/usr/bin'
        SRCTOP='/usr/local/poudriere/jails/riscv64/usr/src'
        OBJTOP='/usr/obj/usr/local/poudriere/jails/riscv64/usr/src/amd64.amd64'
        .MAKE.MAKEFILES='/usr/local/poudriere/jails/riscv64/usr/src/share/mk/sys.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/local.sys.env.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/src.sys.env.mk /usr/local/poudriere/jails/riscv64/etc/src-env.conf /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.mkopt.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/src.sys.obj.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/sys.machine.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/meta.sys.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/local.meta.sys.env.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/auto.obj.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.suffixes.mk /usr/local/poudriere/jails/riscv64/etc/make.conf /usr/local/poudriere/jails/riscv64/usr/src/share/mk/local.sys.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/src.sys.mk /usr/local/poudriere/jails/riscv64/etc/src.conf /usr/local/poudriere/jails/riscv64/usr/src/Makefile.inc1 /usr/local/poudriere/jails/riscv64/usr/src/share/mk/src.tools.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.compiler.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.opts.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.cpu.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.endian.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/src.opts.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.own.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.linker.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.compat.pre.mk /usr/local/poudriere/jails/riscv64/usr/src/Makefile.libcompat /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.compat.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.subdir.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.init.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/local.init.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/src.init.mk'
        .PATH='. /usr/local/poudriere/jails/riscv64/usr/src'
        make[1]: 1 error

        make[1]: stopped making "native-xtools" in /usr/local/poudriere/jails/riscv64/usr/src
        .ERROR_TARGET='native-xtools'
        .ERROR_META_FILE=''
        .MAKE.LEVEL='1'
        MAKEFILE=''
        .MAKE.MODE='meta missing-filemon=yes missing-meta=yes silent=yes verbose'
        _ERROR_CMD='.PHONY'
        .CURDIR='/usr/local/poudriere/jails/riscv64/usr/src'
        .MAKE='make'
        .OBJDIR='/usr/obj/usr/local/poudriere/jails/riscv64/usr/src/amd64.amd64'
        .TARGETS='native-xtools'
        CPUTYPE=''
        DESTDIR=''
        LD_LIBRARY_PATH=''
        MACHINE='amd64'
        MACHINE_ARCH='amd64'
        MACHINE_CPUARCH='amd64'
        MAKEOBJDIRPREFIX=''
        MAKESYSPATH='/usr/local/poudriere/jails/riscv64/usr/src/share/mk'
        MAKE_VERSION='20250618'
        PATH='/sbin:/bin:/usr/sbin:/usr/bin'
        SRCTOP='/usr/local/poudriere/jails/riscv64/usr/src'
        OBJTOP='/usr/obj/usr/local/poudriere/jails/riscv64/usr/src/amd64.amd64'
        .MAKE.MAKEFILES='/usr/local/poudriere/jails/riscv64/usr/src/share/mk/sys.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/local.sys.env.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/src.sys.env.mk /usr/local/poudriere/jails/riscv64/etc/src-env.conf /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.mkopt.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/src.sys.obj.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/sys.machine.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/meta.sys.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/local.meta.sys.env.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/auto.obj.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.suffixes.mk /usr/local/poudriere/jails/riscv64/etc/make.conf /usr/local/poudriere/jails/riscv64/usr/src/share/mk/local.sys.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/src.sys.mk /usr/local/poudriere/jails/riscv64/etc/src.conf /usr/local/poudriere/jails/riscv64/usr/src/Makefile.inc1 /usr/local/poudriere/jails/riscv64/usr/src/share/mk/src.tools.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.compiler.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.opts.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.cpu.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.endian.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/src.opts.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.own.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.linker.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.compat.pre.mk /usr/local/poudriere/jails/riscv64/usr/src/Makefile.libcompat /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.compat.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.subdir.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/bsd.init.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/local.init.mk /usr/local/poudriere/jails/riscv64/usr/src/share/mk/src.init.mk'
        .PATH='. /usr/local/poudriere/jails/riscv64/usr/src'

        make: stopped making "native-xtools" in /usr/local/poudriere/jails/riscv64/usr/src
        [01:09:44] Error: /usr/local/share/poudriere/jail.sh:build_native_xtools:29:Failed to 'make native-xtools' in /usr/local/poudriere/jails/riscv64/usr/src
        [01:09:44] Error while creating jail, cleaning up.
        [01:09:44] Removing riscv64 jail... done

--