Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Feb 2015 17:20:03 -0700
From:      Warner Losh <imp@bsdimp.com>
To:        Ed Maste <emaste@FreeBSD.org>
Cc:        "freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org>
Subject:   Re: FreeBSD/arm64 MACHINE/MACHINE_ARCH identification
Message-ID:  <607BF592-A09B-4DB4-9872-C9E63066AB57@bsdimp.com>
In-Reply-To: <CAPyFy2A=Ev5gdYPKgEE0LS3-1sY%2BXmkZA7VCe71E6Fmbb=vMRw@mail.gmail.com>
References:  <CAPyFy2A=Ev5gdYPKgEE0LS3-1sY%2BXmkZA7VCe71E6Fmbb=vMRw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

> On Feb 11, 2015, at 10:41 AM, Ed Maste <emaste@FreeBSD.org> wrote:
>=20
> The FreeBSD/arm64 work in progress currently reports "arm64" for the
> machine and processor type - i.e., uname -m and uname -p.

Linux used the original aarch64, but later changed to arm64. I suggest
that we follow this carefully. We botched the naming of amd64 and have
dozens of warts in our build system because of it.

> It seems that the official, awkward name aarch64 is broadly used
> elsewhere - for example, in toolchain triples and autoconf tests.  To
> save us grief in the future I think it is worth following suit:
>=20
> diff --git a/sys/arm64/include/param.h b/sys/arm64/include/param.h
> index 5cd0445..525a0e7 100644
> --- a/sys/arm64/include/param.h
> +++ b/sys/arm64/include/param.h
> @@ -43,10 +43,10 @@
> #define STACKALIGN(p)  ((uint64_t)(p) & ~STACKALIGNBYTES)
>=20
> #ifndef MACHINE
> -#define        MACHINE         "arm64"
> +#define        MACHINE         "aarch64"
> #endif

This defines the kernel architecture. History with amd64 suggests that =
we should have had machine amd64 an machine_arch x86_64. We have modo =
places in the tree, and in external files, that do a s/amd64/x86_64/ =
that=E2=80=99s only done for amd64.

> #ifndef MACHINE_ARCH
> -#define        MACHINE_ARCH    "arm64"
> +#define        MACHINE_ARCH    "aarch64"
> #endif
>=20
> I'm not proposing that we rename any of the source files.  I believe
> this approach is consistent with the Debian project - they call it the
> "arm64" port, but report aarch64 from uname.

You can=E2=80=99t propose this change and *NOT* be proposing we rename =
the system files.
$MACHINE *IS* the directories that we keep the kernel files in, by =
definition.

> I believe it will be much easier for us to carry around any
> special-case s/aarch64/arm64/ in the base system (if necessary) than
> trying to teach third-party software that the FreeBSD 64-bit ARM
> architecture is called arm64 instead of aarch64.
>=20
> Any objections or concerns?

I strongly object to the MACHINE change for reasons stated above, but =
the MACHINE_ARCH
is likely a very good change since it aligns with the expected values =
for configuring things like
clang, gcc, bintuils, etc.

We should also change Makefile.inc to set MACHINE_ARCH to aarch64 when =
MACHINE is arm64.

Warner




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?607BF592-A09B-4DB4-9872-C9E63066AB57>