freebsd-skq/share/mk/bsd.endian.mk
imp de1c0e3861 Introduce MACHINE_CPUARCH.
MACHINE is the specific kernel architecture for this machine.
MACHINE_ARCH is the specific CPU type (abi, word size, etc).
MACHINE_CPUARCH is the family of CPUs that's supported.

Most of the tree conflates MACHINE_ARCH and MACHINE_CPUARCH since
historically they have been identical.  However, there's now a reason
to to split the two concepts.  NetBSD calls this MACHINE_CPU, but
that's already used for something else in FreeBSD, so MACHINE_CPUARCH
was selected instead.

However, the sources in the tree have had a KLUDGE in the tree called
TARGET_BIG_ENDIAN to select which endian to compile the code for.
However, this is a cumbersome and awkward solution.  MACHINE_ARCH
really does need to be different for different endian because users
use it for things like their path.  Yet, the source tree also used
MACHINE_ARCH to figure out the MD code to use.  This source often
supports multiple MACHINE_ARCHs.  'mips' supports 32 (and soon 64) bit
word sizes as well as big and little endian.  'arm' support both
endians.  powerpc will soon support both 32-bit and 64-bit.

These patches start to unwind this confusion.  It implements
MACHINE_ARCH of mipsel, mipseb for the two endians of MIPS, as well as
arm and armeb for ARM.  The names for ARM are historical accidents
(ARM was primarily little endian until relatively recently).  These
names follow the NetBSD convetions.

With these changes, "make buildworld TARGET=mips TARGET_ARCH=mipsel"
finishes.  armeb and mipseb should work, but haven't been tested yet.

Committed as one big chunk so that people can comment on the patches
as a whole and suggest improvements.
2010-02-03 21:29:06 +00:00

15 lines
387 B
Makefile

# $FreeBSD$
.if ${MACHINE_ARCH} == "amd64" || \
${MACHINE_ARCH} == "i386" || \
${MACHINE_ARCH} == "ia64" || \
${MACHINE_ARCH} == "arm" || \
${MACHINE_ARCH} == "mipsel"
TARGET_ENDIANNESS= 1234
.elif ${MACHINE_ARCH} == "powerpc" || \
${MACHINE_ARCH} == "sparc64" || \
${MACHINE_ARCH} == "armeb" || \
${MACHINE_ARCH} == "mipseb"
TARGET_ENDIANNESS= 4321
.endif