CURRENT: aarch64 /poudriere installation fails with: sh: cc: not found

O. Hartmann ohartmann at walstatt.org
Wed Mar 22 14:10:00 UTC 2017


Hello List(s),

I'm pretty new to cross compiling on FreeBSD, so to make the introduction
short: amazed by the possibilities of FreeBSD on Pine64 and poudriere as the
basis of our own ports repository, I try to build a repository of selected
ports via poudriere for arm64.aarch64 and - fail!

When installaing the jail from a prebuilt world via "-m src=...", the
installation fails with:

[...]
make[2]: "/pool/CURRENT/src/share/mk/bsd.compiler.mk" line 145: Unable
to determine compiler type for CC=cc -target aarch64-unknown-freebsd12.0
--sysroot=/usr/obj/arm64.aarch64/pool/CURRENT/src/tmp
-B/usr/local/aarch64-freebsd/bin/.  Consider setting COMPILER_TYPE.
*** Error code 1

Stop.
make[1]: stopped in /pool/sources/CURRENT/src
*** Error code 1
[...]

I use the option "-m src=" with all of my jails, where for amd64 the source
tree and object tree resides in /usr/src and /usr/obj respectively from a
buildworld. For poudriere jails intended to be used for cross building, I
checked out the whole CURRENT tree (among 11 and 10) at /pool/CURRENT/src
(or /pool/11-STABLE/src or /pool/10.3-RELEASE/src) to keep the main tree clean
and intact in case I have to patch too much. 

The hosting system is a 12-CURRENT as of recent date: 12.0-CURRENT #30 r315698:
Wed Mar 22 06:09:40 CET 2017 amd64.

Building a "buildworld" for the arm64.aarch64 has been performed successfully
via 

env MAKEOBJDIRPREFIX=/pool/11-STABLE/obj SRCCONF=/dev/null \
__MAKE_CONF=/dev/null TARGET=arm64 make -j12 buildworld

After a successful build, there is a object's folder
structure /pool/CURRENT/obj/arm64.aarch/ containing (obviosly?) the world
without a kernel.

Since I use some optimisation flags and special setting in /etc/src.conf
and /etc/make.conf, I needed to neutralise those settings and followed the
examples and ways I've learned from using NanoBSD. Now, I try to install this
world as the base of my arm64.aarch64 jail, which is supposed to build the
ports tree for arm64.aarch64 platforms.

As a prerequisite, I have already installed the most recent port
emulators/qemu-user-static (qemu-user-static-2.8.50.g20170307) and it has been
started as a service, as kldstat seems to indicate:

kldstat
[...]
 4    1 0xffffffff81901000 23d0     filemon.ko
 5    1 0xffffffff81904000 14fe     imgact_binmisc.ko

Well, now I try to install the jail:
poudriere jail -c -j head-aarch64 -a arm64.aarch64 \
-M /pool/poudriere/jails/head-aarch64 -m src=/pool/CURRENT/src -v head

and as a desperate try also with option "-x".

But either way, I fail installing the jail with the error shown above.

Something is missing and I think, the recommendation of setting the
COMPILER_TYPE has a deeper sense here ;-)

I tried to google some advices, but I stumbled only over some "simple and easy"
advices which lead me to the failure seen above. Maybe nullifying the SRCCONF
and __MAKE_CONF isn't a good idea at that point, but I'd like to to await the
professionals advice.

Thanks in advance,

Oliver


More information about the freebsd-questions mailing list