Date: Sun, 29 Jan 2017 10:19:09 -0700 From: Warner Losh <imp@bsdimp.com> To: Andrew Turner <andrew@fubar.geek.nz> Cc: Ngie Cooper <ngie@freebsd.org>, src-committers <src-committers@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "svn-src-head@freebsd.org" <svn-src-head@freebsd.org> Subject: Re: svn commit: r312938 - head/share/man/man7 Message-ID: <CANCZdfpweww=uSGQ%2BaqhsqoV3jsy9BDcDGGcjNH4SHZ8dEU6QQ@mail.gmail.com> In-Reply-To: <20170129111117.209bd639@zapp> References: <201701282358.v0SNwHo6055555@repo.freebsd.org> <20170129111117.209bd639@zapp>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Jan 29, 2017 at 4:11 AM, Andrew Turner <andrew@fubar.geek.nz> wrote: > On Sat, 28 Jan 2017 23:58:17 +0000 (UTC) > Ngie Cooper <ngie@FreeBSD.org> wrote: > >> Author: ngie >> Date: Sat Jan 28 23:58:17 2017 >> New Revision: 312938 >> URL: https://svnweb.freebsd.org/changeset/base/312938 >> >> Log: >> Update TARGET/TARGET_ARCH examples to use arm64/aarch64 instead of >> i386/pc98 >> pc98 support was removed in r312910 >> >> Modified: >> head/share/man/man7/build.7 >> head/share/man/man7/release.7 >> >> Modified: head/share/man/man7/build.7 >> ============================================================================== >> --- head/share/man/man7/build.7 Sat Jan 28 23:51:03 >> 2017 (r312937) +++ head/share/man/man7/build.7 Sat Jan >> 28 23:58:17 2017 (r312938) @@ -24,7 +24,7 @@ >> .\" >> .\" $FreeBSD$ >> .\" >> -.Dd July 20, 2016 >> +.Dd January 28, 2017 >> .Dt BUILD 7 >> .Os >> .Sh NAME >> @@ -517,10 +517,10 @@ This is analogous to the >> .Dq Nm uname Fl m >> output. >> This is necessary to cross-build some target architectures. >> -For example, cross-building for PC98 machines requires >> -.Va TARGET_ARCH Ns = Ns Li i386 >> +For example, cross-building for ARM64 machines requires >> +.Va TARGET_ARCH Ns = Ns Li aarch64 >> and >> -.Va TARGET Ns = Ns Li pc98 . >> +.Va TARGET Ns = Ns Li arm64 . > > That's not quite correct. > > Now pc98 has been removed TARGET_ARCH is enough to specify the hardware > to support. TARGET can be used on many hardware platforms as it will > have a default TARGET_ARCH to use, e.g. on arm64 TARGET=arm64 is enough > as it implies TARGET_ARCH=aarch64, however to build armv6 you would > need to set TARGET_ARCH=armv6 as TARGET=arm implies TARGET_ARCH=arm. Correct. We no longer have any architectures where we have two kernel KPIs like we did on i386 with the radically different machines. This approach, however, has been a bit of a hassle. We inherited it from NetBSD when the pc98 port came in (NetBSD didn't have a pc98 port integrated into their tree, but had a boatload of m68k machines with different kernels). For a while we almost supported 3 different i386 architectures as there were efforts made to port to Sun's i386 roadrunner that never finished. It's unlikely, though not impossible, that we'll repeat this though. NetBSD did it to allow every MACHINE to have a GENERIC that will boot everywhere. Now that we've kinda swallowed that up into boot options and a tertiary loader that's different for different boot environments, it's less of a clear-cut case to have a separate MACHINE, especially since we've been moving to LINT and/or GENERIC on the MACHINE types that have multiple kernels. I'd recommend telling people to always set TARGET_ARCH with an aside saying its safer to set both TARGET and TARGET_ARCH to allow us the flexibility in the future to repeat this sort of situation should unforeseen circumstances warrant it. Since TARGET_ARCH is unique, for the moment and likely near term, that will be flexible enough for the developers and simple enough for the users. The safer advice will mean that the script writers will set them both. Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfpweww=uSGQ%2BaqhsqoV3jsy9BDcDGGcjNH4SHZ8dEU6QQ>