Retire TARGET_ABI.

Implement MACHINE_ARCH=mips64e[lb] to build N64 images.  This replaces
MACHINE_ARCH=mipse[lb] TARGET_ABI=n64.

MACHINE_ARCH=mipsn32e[lb] has been added, but currently requires
WITHOUT_CDDL due to atomic issues in libzfs.  I've not investigated
this much, but implemented this to preserve as much of the TARGET_ABI
functionality that I could.  Since its presence doesn't affect the
working cases, I've kept it in for now.

Added mips64e[lb] to make universe, so more kernels build.

And I think this (finally) closes the curtain on the tbemd tree.
This commit is contained in:
Warner Losh 2011-01-07 20:26:33 +00:00
parent ede990172f
commit cd2ae2532f
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=217123
17 changed files with 39 additions and 49 deletions

View File

@ -283,7 +283,7 @@ tinderbox:
.if make(universe) || make(universe_kernels) || make(tinderbox)
TARGETS?=amd64 arm i386 ia64 mips pc98 powerpc sparc64 sun4v
TARGET_ARCHES_arm?= arm armeb
TARGET_ARCHES_mips?= mipsel mipseb
TARGET_ARCHES_mips?= mipsel mipseb mips64el mips64eb
TARGET_ARCHES_powerpc?= powerpc powerpc64
TARGET_ARCHES_pc98?= i386
TARGET_ARCHES_sun4v?= sparc64

View File

@ -121,7 +121,7 @@ VERSION+= ${OSRELDATE}
TARGET_ARCH= ${TARGET:S/pc98/i386/:S/sun4v/sparc64/:S/mips/mipsel/}
.elif !defined(TARGET) && defined(TARGET_ARCH) && \
${TARGET_ARCH} != ${MACHINE_ARCH}
TARGET= ${TARGET_ARCH:C/mipse[lb]/mips/:C/armeb/arm/}
TARGET= ${TARGET_ARCH:C/mips.*e[lb]/mips/:C/armeb/arm/}
.endif
# Legacy names, for a transition period mips:mips -> mipsel:mips
.if defined(TARGET) && defined(TARGET_ARCH) && \
@ -142,7 +142,7 @@ TARGET_ARCH=armeb
TARGET?= ${MACHINE}
TARGET_ARCH?= ${MACHINE_ARCH}
KNOWN_ARCHES?= amd64 arm armeb/arm i386 i386/pc98 ia64 mipsel/mips mipseb/mips powerpc powerpc64/powerpc sparc64 sparc64/sun4v
KNOWN_ARCHES?= amd64 arm armeb/arm i386 i386/pc98 ia64 mipsel/mips mipseb/mips mips64el/mips mips64eb/mips mipsn32el/mips mipsn32eb/mips powerpc powerpc64/powerpc sparc64 sparc64/sun4v
.if ${TARGET} == ${TARGET_ARCH}
_t= ${TARGET}
.else

View File

@ -1,5 +1,5 @@
# $FreeBSD$
.if defined(TARGET_ABI) && ${TARGET_ABI} == "n64"
.if ${MACHINE_ARCH} != "mipsel" && ${MACHINE_ARCH} != "mipseb"
MK_RESCUE=no
.endif

View File

@ -119,9 +119,10 @@ LIB2FUNCS_EXTRA = floatunsidf.c floatunsisf.c
# _fixsfsi _fixunssfsi _floatdidf _floatdisf
.endif
.if ${TARGET_CPUARCH} == "mips"
.if ${TARGET_CPUARCH} == mips
LIB2FUNCS_EXTRA = floatunsidf.c floatunsisf.c
.if defined(TARGET_ABI) && ${TARGET_ABI} != "o32"
# XXX do we need n32 here?
.if ${TARGET_ARCH:Mmips64*} != ""
LIB2FUNCS_EXTRA+= floatdidf.c fixunsdfsi.c
LIB2FUNCS_EXTRA+= floatdisf.c floatundidf.c
LIB2FUNCS_EXTRA+= fixsfdi.c floatundisf.c

View File

@ -25,8 +25,7 @@ VERSION_MAP= ${SRCDIR}/libgomp.map
# Target-specific OpenMP configuration
.if ${MACHINE_CPUARCH} == arm || ${MACHINE_CPUARCH} == i386 || \
${MACHINE_ARCH} == powerpc || \
(${MACHINE_CPUARCH} == mips && \
(!defined(TARGET_ABI) || ${TARGET_ABI} != "n64"))
${MACHINE_ARCH} == mipsel || ${MACHINE_ARCH} == mipseb
OMP_LOCK_ALIGN = 4
OMP_LOCK_KIND= 4
OMP_LOCK_SIZE= 4

View File

@ -7,14 +7,14 @@
VERSION= "2.15 [FreeBSD] 2004-05-23"
.if defined(TARGET_ARCH)
TARGET_CPUARCH=${TARGET_ARCH:C/mipse[bl]/mips/:C/armeb/arm/:C/powerpc64/powerpc/}
TARGET_CPUARCH=${TARGET_ARCH:C/mips.*e[bl]/mips/:C/armeb/arm/:C/powerpc64/powerpc/}
.else
TARGET_CPUARCH=${MACHINE_CPUARCH}
.endif
TARGET_ARCH?= ${MACHINE_ARCH}
BINUTILS_ARCH=${TARGET_ARCH:C/amd64/x86_64/}
TARGET_TUPLE?= ${BINUTILS_ARCH}-obrien-freebsd
.if ${TARGET_ARCH} == "armeb" || ${TARGET_ARCH} == "mipseb"
.if ${TARGET_ARCH} == "armeb" || ${TARGET_ARCH:Mmips*eb} != ""
TARGET_BIG_ENDIAN=t
.endif
@ -28,8 +28,7 @@ SRCDIR= ${.CURDIR}/${RELSRC}
.if ${TARGET_CPUARCH} == "arm" || ${TARGET_CPUARCH} == "i386" || \
${TARGET_ARCH} == "powerpc" || \
(${TARGET_CPUARCH} == "mips" && \
(!defined(TARGET_ABI) || ${TARGET_ABI} != "n64"))
${TARGET_ARCH} == "mipsel" || ${TARGET_ARCH} == "mipseb"
CFLAGS+= -DBFD_DEFAULT_TARGET_SIZE=32
.else
CFLAGS+= -DBFD_DEFAULT_TARGET_SIZE=64

View File

@ -1,19 +1,18 @@
# $FreeBSD$
.if ${TARGET_ARCH} == "mipsel"
.if ${TARGET_ARCH:Mmips*el} != ""
_EMULATION_ENDIAN=l
.else
_EMULATION_ENDIAN=b
.endif
.if defined(TARGET_ABI) && ${TARGET_ABI} != "o32"
.if ${TARGET_ABI} == "n32"
NATIVE_EMULATION=elf32${_EMULATION_ENDIAN}tsmipn32_fbsd
.elif ${TARGET_ABI} == "n64"
.if ${TARGET_ARCH:Mmips64*} != ""
NATIVE_EMULATION=elf64${_EMULATION_ENDIAN}tsmip_fbsd
.endif
.endif
.elif ${TARGET_ARCH:Mmipsn32*} != ""
NATIVE_EMULATION=elf32${_EMULATION_ENDIAN}tsmipn32_fbsd
.else
NATIVE_EMULATION?=elf32${_EMULATION_ENDIAN}tsmip_fbsd
.endif
MIPS_ABIS=elf32btsmip_fbsd elf32ltsmip_fbsd elf64btsmip_fbsd elf64ltsmip_fbsd \
elf32btsmipn32_fbsd elf32ltsmipn32_fbsd

View File

@ -1,19 +1,18 @@
# $FreeBSD$
.if ${TARGET_ARCH} == "mipsel"
.if ${TARGET_ARCH:Mmips*el} != ""
_EMULATION_ENDIAN=little
.else
_EMULATION_ENDIAN=big
.endif
.if defined(TARGET_ABI) && ${TARGET_ABI} != "o32"
.if ${TARGET_ABI} == "n32"
DEFAULT_VECTOR= bfd_elf32_ntrad${_EMULATION_ENDIAN}mips_vec
.elif ${TARGET_ABI} == "n64"
.if ${TARGET_ARCH:Mmips64*} != ""
DEFAULT_VECTOR= bfd_elf64_trad${_EMULATION_ENDIAN}mips_vec
.elif ${TARGET_ARCH:Mmipsn32*} != ""
DEFAULT_VECTOR= bfd_elf32_ntrad${_EMULATION_ENDIAN}mips_vec
.else
DEFAULT_VECTOR=bfd_elf32_trad${_EMULATION_ENDIAN}mips_vec
.endif
.endif
DEFAULT_VECTOR?=bfd_elf32_trad${_EMULATION_ENDIAN}mips_vec
SRCS+= coff-mips.c \
cpu-mips.c \

View File

@ -36,21 +36,18 @@ CFLAGS+= -DCROSS_COMPILE
CFLAGS += -DTARGET_ENDIAN_DEFAULT=MASK_BIG_END
.endif
.if ${TARGET_CPUARCH} == "mips"
.if ${TARGET_ARCH} == "mipsel"
.if ${TARGET_ARCH:Mmips*el} != ""
CFLAGS += -DTARGET_ENDIAN_DEFAULT=0
.endif
.if defined(TARGET_ABI) && ${TARGET_ABI} != "o32"
.if ${TARGET_ABI} == "n32"
MIPS_ABI_DEFAULT=ABI_N32
.elif ${TARGET_ABI} == "n64"
.if ${TARGET_ARCH:Mmips64*} != ""
MIPS_ABI_DEFAULT=ABI_64
.elif ${TARGET_ARCH:Mmipsn32*} != ""
MIPS_ABI_DEFAULT=ABI_N32
.else
MIPS_ABI_DEFAULT=ABI_32
.endif
.endif
MIPS_ABI_DEFAULT?=ABI_32
CFLAGS += -DMIPS_ABI_DEFAULT=${MIPS_ABI_DEFAULT}
# If we are compiling for the O32 ABI, we need to default to MIPS-III rather

View File

@ -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/mipse[bl]/mips/:C/armeb/arm/:C/powerpc64/powerpc/}
TARGET_CPUARCH=${TARGET_ARCH:C/mips.*e[bl]/mips/:C/armeb/arm/:C/powerpc64/powerpc/}
.else
TARGET_CPUARCH=${MACHINE_CPUARCH}
.endif
@ -17,7 +17,7 @@ TARGET_CPU_DEFAULT= MASK_GNU_AS|MASK_GNU_LD
.if ${TARGET_ARCH} == "sparc64"
TARGET_CPU_DEFAULT= TARGET_CPU_ultrasparc
.endif
.if ${TARGET_ARCH} == "armeb" || ${TARGET_ARCH} == "mipseb" || ${TARGET_ARCH} == "mips64eb"
.if ${TARGET_ARCH} == "armeb" || ${TARGET_ARCH:Mmips*eb} != ""
TARGET_BIG_ENDIAN=t
.endif
.if ${TARGET_ARCH} == "powerpc64"

View File

@ -20,7 +20,7 @@ OBJ_GDB= ${OBJ_ROOT}/gdb
# MACHINE_CPUARCH, but there's no easy way to export make functions...
.if defined(TARGET_ARCH)
TARGET_CPUARCH=${TARGET_ARCH:C/mipse[bl]/mips/:C/armeb/arm/:C/powerpc64/powerpc/}
TARGET_CPUARCH=${TARGET_ARCH:C/mips.*e[bl]/mips/:C/armeb/arm/:C/powerpc64/powerpc/}
.else
TARGET_CPUARCH=${MACHINE_CPUARCH}
.endif

View File

@ -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/mipse[bl]/mips/:C/armeb/arm/:C/powerpc64/powerpc/}
TARGET_CPUARCH=${TARGET_ARCH:C/mips.*e[bl]/mips/:C/armeb/arm/:C/powerpc64/powerpc/}
.else
TARGET_CPUARCH=${MACHINE_CPUARCH}
.endif

View File

@ -68,11 +68,7 @@ NOASM=
${LIBC_ARCH} != "ia64" && \
${LIBC_ARCH} != "powerpc64" && \
${LIBC_ARCH} != "sparc64" && \
${LIBC_ARCH} != "mips"
.include "${.CURDIR}/quad/Makefile.inc"
.endif
.if ${LIBC_ARCH} == "mips" && \
(!defined(TARGET_ABI) || ${TARGET_ABI} == "o32")
${MACHINE_ARCH:Mmips64*} == ""
.include "${.CURDIR}/quad/Makefile.inc"
.endif
.include "${.CURDIR}/regex/Makefile.inc"

View File

@ -4,12 +4,12 @@
${MACHINE_ARCH} == "i386" || \
${MACHINE_ARCH} == "ia64" || \
${MACHINE_ARCH} == "arm" || \
${MACHINE_ARCH} == "mipsel"
${MACHINE_ARCH:Mmips*el} != ""
TARGET_ENDIANNESS= 1234
.elif ${MACHINE_ARCH} == "powerpc" || \
${MACHINE_ARCH} == "powerpc64" || \
${MACHINE_ARCH} == "sparc64" || \
${MACHINE_ARCH} == "armeb" || \
${MACHINE_ARCH} == "mipseb"
${MACHINE_ARCH:Mmips*eb} != ""
TARGET_ENDIANNESS= 4321
.endif

View File

@ -13,7 +13,7 @@ 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/mipse[lb]/mips/:C/armeb/arm/:C/powerpc64/powerpc/}
MACHINE_CPUARCH=${MACHINE_ARCH:C/mips.*e[lb]/mips/:C/armeb/arm/:C/powerpc64/powerpc/}
.endif
# If the special target .POSIX appears (without prerequisites or

View File

@ -8,7 +8,7 @@ WARNS?= 0
# These assignments duplicate much of the functionality of
# MACHINE_CPUARCH, but there's no easy way to export make functions...
.if defined(TARGET_ARCH)
TARGET_CPUARCH= ${TARGET_ARCH:C/mipse[bl]/mips/:C/armeb/arm/}
TARGET_CPUARCH= ${TARGET_ARCH:C/mips.*e[bl]/mips/:C/armeb/arm/}
.else
TARGET_CPUARCH= ${MACHINE_CPUARCH}
TARGET_ARCH= ${MACHINE_ARCH}

View File

@ -1,6 +1,6 @@
# $FreeBSD$
SUBDIR:= ${SUBDIR:Nsysinstall}
.if defined(TARGET_ABI) && ${TARGET_ABI} == "n64"
.if ${MACHINE_ARCH:Mmips64*} != ""
SUBDIR:= ${SUBDIR:Nuathload}
.endif