On 7/12/2016 11:57 AM, Bryan Drewery wrote: > Author: bdrewery > Date: Tue Jul 12 18:57:25 2016 > New Revision: 302670 > URL: https://svnweb.freebsd.org/changeset/base/302670 > > Log: > Create one list of replacements for MACHINE_CPUARCH as MACHINE_CPUARCH_SUB. > > This also adds missing s/aarch64/arm64 to the sys.mk version and also
This breaks the arm64 build, but I think it's correct. Let's first start with what even is MACHINE_CPUARCH? It's unclear. Looking at r209024 we get: > Introduce MACHINE_CPUARCH. Many different MACHINE_ARCHs will be built > from one MACHINE_CPUARCH. This will allow us to move to a more > standard MACHINE_ARCH for mips and arm which exist in many different > endian variants, and for powerpc where both 32 and 64 bit binaries are > generated from the same sources. If we look at the current targets list we have: > # make targets > Supported TARGET/TARGET_ARCH pairs for world and kernel targets > amd64/amd64 > arm/arm > arm/armeb > arm/armv6 > arm64/aarch64 > i386/i386 > mips/mipsel > mips/mips > mips/mips64el > mips/mips64 > mips/mipsn32 > pc98/i386 > powerpc/powerpc > powerpc/powerpc64 > sparc64/sparc64 So one TARGET can have multiple TARGET_ARCH. So MACHINE_CPUARCH sounds like TARGET. In all but the arm64 cases it seems that MACHINE_CPUARCH == MACHINE (meaning TARGET_CPUARCH == TARGET). So 1. I think MACHINE_CPUARCH is really just MACHINE. and 2. I think the proper MACHINE_CPUARCH for AArch64 is arm64 since that is what the TARGET is. There's a lot of code using MACHINE_CPUARCH == aarc64 instead of MACHINE_CPUARCH == arm64 (and directories named "aarch64" rather than "arm64", so I am willing to revert or modify this but it seems to be inconsistent. For now I am just reverting this, but I think the commit is worth having in here if we are going to keep MACHINE_CPUARCH as it keeps the replacement list in 1 place. > adds back armv6hf for universe since it was added to the sys.mk version > in r300438. > > MFC after: 3 days > Sponsored by: EMC / Isilon Storage Division > Differential Revision: https://reviews.freebsd.org/D7159 > > Modified: > head/Makefile > head/gnu/usr.bin/binutils/Makefile.inc0 > head/gnu/usr.bin/cc/Makefile.tgt > head/gnu/usr.bin/gdb/Makefile.inc > head/gnu/usr.bin/gdb/libgdb/Makefile > head/share/mk/sys.mk > > Modified: head/Makefile > ============================================================================== > --- head/Makefile Tue Jul 12 17:58:58 2016 (r302669) > +++ head/Makefile Tue Jul 12 18:57:25 2016 (r302670) > @@ -235,7 +235,7 @@ _MAKE+= MK_META_MODE=no > _TARGET_ARCH= ${TARGET:S/pc98/i386/:S/arm64/aarch64/} > .elif !defined(TARGET) && defined(TARGET_ARCH) && \ > ${TARGET_ARCH} != ${MACHINE_ARCH} > -_TARGET= > ${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb)?/arm/:C/aarch64/arm64/:C/powerpc64/powerpc/:C/riscv64/riscv/} > +_TARGET= ${TARGET_ARCH:${MACHINE_CPUARCH_SUB:ts:}} > .endif > .if defined(TARGET) && !defined(_TARGET) > _TARGET=${TARGET} > > Modified: head/gnu/usr.bin/binutils/Makefile.inc0 > ============================================================================== > --- head/gnu/usr.bin/binutils/Makefile.inc0 Tue Jul 12 17:58:58 2016 > (r302669) > +++ head/gnu/usr.bin/binutils/Makefile.inc0 Tue Jul 12 18:57:25 2016 > (r302670) > @@ -7,7 +7,7 @@ > VERSION= "2.17.50 [FreeBSD] 2007-07-03" > > .if defined(TARGET_ARCH) > -TARGET_CPUARCH=${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb)?/arm/:C/powerpc64/powerpc/} > +TARGET_CPUARCH=${TARGET_ARCH:${MACHINE_CPUARCH_SUB:ts:}} > .else > TARGET_CPUARCH=${MACHINE_CPUARCH} > .endif > > Modified: head/gnu/usr.bin/cc/Makefile.tgt > ============================================================================== > --- head/gnu/usr.bin/cc/Makefile.tgt Tue Jul 12 17:58:58 2016 > (r302669) > +++ head/gnu/usr.bin/cc/Makefile.tgt Tue Jul 12 18:57:25 2016 > (r302670) > @@ -4,7 +4,7 @@ > # MACHINE_CPUARCH, but there's no easy way to export make functions... > > .if defined(TARGET_ARCH) > -TARGET_CPUARCH=${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb)?/arm/:C/powerpc64/powerpc/} > +TARGET_CPUARCH=${TARGET_ARCH:${MACHINE_CPUARCH_SUB:ts:}} > .else > TARGET_CPUARCH=${MACHINE_CPUARCH} > .endif > > Modified: head/gnu/usr.bin/gdb/Makefile.inc > ============================================================================== > --- head/gnu/usr.bin/gdb/Makefile.inc Tue Jul 12 17:58:58 2016 > (r302669) > +++ head/gnu/usr.bin/gdb/Makefile.inc Tue Jul 12 18:57:25 2016 > (r302670) > @@ -23,7 +23,7 @@ OBJ_RL= ${OBJ_ROOT}/../lib/libreadline/r > # MACHINE_CPUARCH, but there's no easy way to export make functions... > > .if defined(TARGET_ARCH) > -TARGET_CPUARCH=${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb)?/arm/:C/powerpc64/powerpc/} > +TARGET_CPUARCH=${TARGET_ARCH:${MACHINE_CPUARCH_SUB:ts:}} > .else > TARGET_CPUARCH=${MACHINE_CPUARCH} > .endif > > Modified: head/gnu/usr.bin/gdb/libgdb/Makefile > ============================================================================== > --- head/gnu/usr.bin/gdb/libgdb/Makefile Tue Jul 12 17:58:58 2016 > (r302669) > +++ head/gnu/usr.bin/gdb/libgdb/Makefile Tue Jul 12 18:57:25 2016 > (r302670) > @@ -4,7 +4,7 @@ > # MACHINE_CPUARCH, but there's no easy way to export make functions... > > .if defined(TARGET_ARCH) > -TARGET_CPUARCH=${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb)?/arm/:C/powerpc64/powerpc/} > +TARGET_CPUARCH=${TARGET_ARCH:${MACHINE_CPUARCH_SUB:ts:}} > .else > TARGET_CPUARCH=${MACHINE_CPUARCH} > .endif > > Modified: head/share/mk/sys.mk > ============================================================================== > --- head/share/mk/sys.mk Tue Jul 12 17:58:58 2016 (r302669) > +++ head/share/mk/sys.mk Tue Jul 12 18:57:25 2016 (r302670) > @@ -13,7 +13,13 @@ unix ?= We run FreeBSD, not UNIX. > # and/or endian. This is called MACHINE_CPU in NetBSD, but that's used > # for something different in FreeBSD. > # > -MACHINE_CPUARCH=${MACHINE_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb|hf)?/arm/:C/powerpc64/powerpc/:C/riscv64/riscv/} > +MACHINE_CPUARCH_SUB= \ > + C/mips(n32|64)?(el)?/mips/ \ > + C/arm(v6)?(eb|hf)?/arm/ \ > + C/aarch64/arm64/ \ > + C/powerpc64/powerpc/ \ > + C/riscv64/riscv/ > +MACHINE_CPUARCH=${MACHINE_ARCH:${MACHINE_CPUARCH_SUB:ts:}} > .endif > > > -- Regards, Bryan Drewery
signature.asc
Description: OpenPGP digital signature