Skip site navigation (1)Skip section navigation (2)
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>