defining CPUTYPE when building a custom release

Don Lewis truckman at FreeBSD.org
Mon Jun 4 22:36:18 UTC 2018


I'm trying to build a custom 11-STABLE release for a machine that is too
wimpy to self-host using the /usr/src/release/release.sh script.  The
build host is an amd64 machine and the target machine is is in the i386
family.  I've set:
  TARGET=i386
  TARGET_ARCH=i386
in the release.conf file.

If I don't try to specify a CPUTYPE, I have no problems.  But if I add
  CPUTYPE?=pentium3
to the make.conf file, the release build fails like this:

--------------------------------------------------------------
>>> stage 4.2: building libraries
--------------------------------------------------------------
===> gnu/lib/libssp/libssp_nonshared (obj,all,install)
===> lib/libcompiler_rt (obj,all,install)
===> gnu/lib/libgcc (obj,all,install)
error: unknown target CPU 'pentium3'
--- ssp-local.o ---
*** [ssp-local.o] Error code 1


This is the same message that I get if I try to compile something on
amd64 if I specify -march:
  %cc -c blah.c -march=pentium3
  error: unknown target CPU 'pentium3'
but I don't see this when I do the same on an actual i386 machine.  I'm
assuming it is because pentium3 is not valid amd64 family member.  It
seems like I should be able to avoid this by telling clang that I want
to cross-compile, but clang doesn't seem to like the -arch
command line flag:

%cc -c blah.c -arch x86 -march=pentium3
cc: warning: argument unused during compilation: '-arch x86' [-Wunused-command-line-argument]
error: unknown target CPU 'pentium3'
%cc -c blah.c -arch i386 -march=pentium3
cc: warning: argument unused during compilation: '-arch i386' [-Wunused-command-line-argument]
error: unknown target CPU 'pentium3'



More information about the freebsd-hackers mailing list