Re: poudriere cross-compile problem.
Craig Leres <[email protected]>
| Newsgroups | gmane.os.freebsd.devel.hackers |
|---|---|
| Message-ID | <[email protected]> |
On 4/2/26 21:31, Mark Millard wrote:
> On 4/2/26 14:13, Craig Leres wrote:
>> In the past I've used poudriere on an amd64 host (14.4) to build
>> packages for my pfsense box (arm64.aarch64). In order to use the same
>> git hash as netgate, I build my poudriere jails from a local source
>> tree, e.g:
>>
>> zfs create -o mountpoint=/usr/src/16-CURRENT -o compress=lz4
>> tank/16-CURRENT
>> cd /usr/src
>> git clone https://git.freebsd.org/src.git 16-CURRENT
>> cd 16-CURRENT
>> git checkout c215eef34550
>> poudriere jail -x -c -j pfsense2607 -a arm64.aarch64 -m src=/usr/
>> src/16-CURRENT -b
>>
>> This workflow was briefly broken, for example to build with 44f3e9f7f6c9
>> you had to apply these changes:
>>
>>
>> https://cgit.freebsd.org/src/patch/?
>> id=8d5a11cd0137d3ad70f6b06e063ea91a776d510a
>>
>> https://cgit.freebsd.org/src/patch/?
>> id=38e5564ecef53064c984d086a040c01100023f40
>>
>> It's my understanding that everything should be working again but I'm
>> not finding that to be the case. When I try to build a package with this
>> newly built jail I see:
>>
>> zinc 117 # poudriere bulk -c -j pfsense2607 -p pfsense ports-mgmt/pkg
>> [00:00:00] Cross-building ports for arm64.aarch64 on amd64 requires
>> QEMU
>> [00:00:00] Creating the reference jail... done
>> [00:00:01] Warning: !!! Jail is newer than host. (Jail: 1600011,
>> Host: 1404000) !!!
>
> The following may be contributing . . .
>
> Running a 1600011 poudriere(-devel) jail world on a 1404000 boot kernel
> is not supported: the 1600011 jail may use new/changed 1600011 or
> 15????? kernel functionality/inerfacing that 1404000 kernels do not support.
>
> Not that you would want to, but: What is supported is to run a 1404000
> poudriere(-devel) jail world on a 1600011 boot kernel. 1600011 has means
> of supporting the older kernels behavior/interfacing for older programs.
>
> The boot kernel and its vintage is always involved. To run a 1600011
> poudriere(-devel) jail world should normally mean booting 1600011 or
> later kernel --or having a lot of knowledge about compatibility with
> earlier 16000?? kernels for everything you need to have working.
>
> The official port-package build servers boot 16000?? kernels at this
> point, be that for 13.5, 14.3, 15.0, or main [so: 16.0] jail use. (The
> boot world likely matches the boot kernel, though I've no direct
> evidence of the boot world vintages.)
>
>> [00:00:01] Warning: This is not supported.
>> [00:00:01] Warning: Host kernel must be same or newer than jail.
>> [00:00:01] Warning: Expect build failures.
>> [00:00:02] Mounting system devices for pfsense2607-pfsense
>> [00:00:02] Warning: Using packages from previously failed, or
>> uncommitted, build: /usr/local/poudriere/data/packages/pfsense2607-
>> pfsense/.building
>> [00:00:02] Mounting ccache from: /var/cache/ccache
>> [00:00:02] Mounting ports from: /usr/local/poudriere/ports/pfsense
>> [00:00:02] Mounting packages from: /usr/local/poudriere/data/
>> packages/pfsense2607-pfsense
>> [00:00:02] Mounting distfiles from: /usr/ports/distfiles
>> [00:00:02] Copying /var/db/ports from: /usr/local/etc/poudriere.d/
>> pfsense-options
>> [00:00:02] Setting up native-xtools environment in jail... done
>> [00:00:02] Raising MAX_EXECUTION_TIME and NOHANG_TIME for QEMU from
>> QEMU_ values
>> [00:00:02] Copying latest version of the emulator from: /usr/local/
>> bin/qemu-aarch64-static
>> [00:00:02] Appending to make.conf: /usr/local/etc/poudriere.d/
>> pfsense-make.conf
>> /etc/resolv.conf -> /usr/local/poudriere/data/.m/pfsense2607-
>> pfsense/ref/etc/resolv.conf
>> [00:00:02] Starting jail pfsense2607-pfsense
>> [00:00:02] Error: Unable to execute id(1) in jail. Emulation or ABI
>> wrong.
Thanks for the response.
> I'm unsure if the above specific message would be a possible result of
> what I referenced earlier above.
>
> Can you try booting with a 1600011 (or later) kernel, leaving the rest
> the same in order to see if the behavior chnages?
>
>> [00:00:02] Cleaning up
>> [00:00:02] Unmounting file systems
>> Exiting with status 1
I tried booting this:
zinc 13 # uname -a
FreeBSD zinc.ee.lbl.gov 16.0-CURRENT FreeBSD 16.0-CURRENT #0
main-n284768-e6eba5076929: Mon Mar 30 12:58:15 UTC 2026
[email protected]:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64
And a built attempt fails differently:
[00:00:06] Error: Fatal errors encountered gathering ports metadata
I also tried rebuilding the poudriere jail while running 16.0 (no change).
Ignoring the "not supported" warning has worked for me in the past but I
guess I just need to be patient until I upgrade this server to something
newer.
Craig