Warner Losh
2018-Mar-04 17:58 UTC
"Cross" building for same architecture, different CPUTYPE
On Sun, Mar 4, 2018 at 10:43 AM, Dimitry Andric <dim at freebsd.org> wrote:> Again, this depends on how exactly you are overriding CPUTYPE.I'd suggest *NOT* setting CPUTYPE and instead using TARGET_CPUTYPE to do these sorts of things. CPUTYPE is known to only work on native builds and is tricky to do in this scenario just so. It might work for 'near cross' builds, or it might not. TARGET_CPUTYPE overrides CPUTYPE that might be set in weird places and generally works a lot better. You don't need to set TARGET or TARGET_ARCH to do this, but it would work if you did that also. Warner
Christian Ullrich
2018-Mar-04 18:32 UTC
"Cross" building for same architecture, different CPUTYPE
* Warner Losh wrote:> On Sun, Mar 4, 2018 at 10:43 AM, Dimitry Andric <dim at freebsd.org > <mailto:dim at freebsd.org>> wrote: > > Again, this depends on how exactly you are overriding CPUTYPE. > > I'd suggest *NOT* setting CPUTYPE and instead using TARGET_CPUTYPE to do > these sorts of things. CPUTYPE is known to only work on native buildsDoesn't work either, sorry: [chul at build /usr/obj/slm/usr/src/tmp/legacy/usr/bin]$ CCACHE_DISABLE=yes MAKEOBJDIRPREFIX=/usr/obj/slm make TARGET_CPUTYPE=slm -j4 buildworld buildkernel ... [chul at build /usr/obj/slm/usr/src/tmp/legacy/usr/bin]$ objdump -d install | fgrep '(bad)' | wc -l 8345 This objdump (in base, "GNU objdump 2.17.50 [FreeBSD] 2007-07-03") does not understand AVX, and most of the (bad)s are c4 and c5 prefixes, aka AVX. For /usr/obj/slm/usr/src/lib/libc/libc.so.7 I get a lot of (bad), too, but these seem to be instructions that the chip actually has, only the old objdump does not know them. The same happens with the TARGET_CPUTYPE in make.conf , and also if I spell it "silvermont". bsd.cpu.mk turns "slm" into "silvermont", but somehow it ends up as "-march=slm" on the command line again. gcc's docs say "-march=silvermont", and clang is apparently notorious for not providing any useful detail on what architecture variants it supports. Should I try make release? I'm really interesting in something that will bring down build time, because buildworld/buildkernel on the Atom takes 24 hours without ccache and at least 8 with. -- Christian