"Cross" building for same architecture, different CPUTYPE

Christian Ullrich chris at chrullrich.net
Sun Mar 4 17:29:38 UTC 2018


Hello,

I'm trying to buildworld/buildkernel of stable/11 r330373 for an Intel 
Atom CPU (CPUTYPE=slm) on a (slightly faster, CPUTYPE=core-avx2) build 
machine. That works fine, but make installkernel on the Atom box fails 
with a SIGILL (signal 4) in the "install" command (sorry, no log or 
screenshot).

As far as I can tell, this is because installkernel uses the install 
from ...obj.../tmp/legacy/usr/bin, which is built for the host. 
Disassembling the binary shows that it uses AVX opcodes. The "main" part 
of the build output correctly respects the CPUTYPE override.

I suppose I'm doing something wrong here, but what? It must be possible 
to build for a different CPU of the same family, right? I even tried 
running a cross build (TARGET=amd64 TARGET_ARCH=amd64), but since the 
build host _is_ amd64, the Makefiles laughed at me and only did the 
normal build.

The command that did not work was:

MAKEOBJDIRPREFIX=/usr/obj/slm make CPUTYPE=slm buildworld buildkernel

I have CPUTYPE?=core-avx2 in make.conf, but that should be irrelevant here.

Thanks for any hints.

-- 
Christian


More information about the freebsd-stable mailing list