Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 4 Mar 2018 18:29:29 +0100
From:      Christian Ullrich <chris@chrullrich.net>
To:        freebsd-stable@freebsd.org
Subject:   "Cross" building for same architecture, different CPUTYPE
Message-ID:  <2126f358-c827-ecf0-109b-0488c5b155b6@chrullrich.net>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2126f358-c827-ecf0-109b-0488c5b155b6>