using native-xtools's make and MACHINE, MACHINE_ARCH values
Bryan Drewery
bdrewery at FreeBSD.org
Sat Nov 18 21:44:31 UTC 2017
On 11/18/17 7:26 AM, Guy Yur wrote:
> Hi,
>
> I am trying to use native-xtools's make (amd64 targeting armv7)
> on an amd64 host in an armv7 chroot.
My guess is that it's because you're using a chroot rather than a jail.
When poudriere creates the jail with 'jail -c' it does not do things
like setup the make.conf or even setup nxb-bin hardlinks. It only does
this stuff at Jail Startup time (bulk/testport/jail -s).
Checkout jail -s and jail -k rather than using a chroot.
> (qemu-arm-static and binmiscctl used for the arm binaries.)
> Running /nxb-bin/usr/bin/make -V MACHINE and -V MACHINE_ARCH it
> reports amd64, amd64 not arm, armv7.
> (12.0-CURRENT r325963)
>
> Do I need to override MACHINE and MACHINE_ARCH explicitly when
> running nxb's make or should it report the target values?
>
> bmake is compiled with -DMAKE_NATIVE in usr.bin/bmake/Makefile
> so it uses uname, sysctl to get the values.
> If I add -UMAKE_NATIVE -DMAKE_MACHINE=\"${MACHINE}\"
> -DMACHINE_ARCH=\"${MACHINE_ARCH}\" to the nxb's make
> compilation it reports arm and armv7.
> Turning off MAKE_NATIVE also affects other things so it is
> probably not be the correct change to make.
>
Poudriere sets MACHINE and MACHINE_ARCH in /etc/make.conf. It seems ok
to me in a Jail.
> # grep MACHINE /etc/make.conf
> MACHINE=arm64
> MACHINE_ARCH=aarch64
> # /nxb-bin/usr/bin/make -V MACHINE -V MACHINE_ARCH
> arm64
> aarch64
If I change it to something else it takes the value.
> # grep MACHINE /etc/make.conf
> MACHINE=machine
> MACHINE_ARCH=machine_arch
> # /nxb-bin/usr/bin/make -V MACHINE -V MACHINE_ARCH
> machine
> machine_arch
As for chroot it's wrong:
> # /nxb-bin/usr/bin/make -V MACHINE -V MACHINE_ARCH
> amd64
> amd64
It's not using uname as far as I can tell. The /etc/make.conf is setup
at Jail Startup time but the jail's /etc/login.conf is setup at 'jail
-c' time currently, which sets UNAME_m and UNAME_p so uname should be
fine anyway:
> # grep arm /etc/login.conf
> :setenv=MAIL=/var/mail/$,BLOCKSIZE=K,UNAME_r=12.0-CURRENT,UNAME_v=FreeBSD 12.0-CURRENT 1200051,OSVERSION=1200051,ABI_FILE=/usr/lib/crt1.o,UNAME_m=arm64,UNAME_p=aarch64:\
--
Regards,
Bryan Drewery
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 529 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20171118/784748ae/attachment.sig>
More information about the freebsd-questions
mailing list