1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-20 15:43:16 +00:00

Complete the integration of tbemd branch into head.

TARGET_BIG_ENDIAN is now completely dead, except where it was
originally supposed to be used (internally in the toolchain building).

TARGET_ARCH has changed in three cases:
(1) Little endian mips has changed to mipsel.
(2) Big endian mips has changed to mipseb.
(3) Big endian arm has changed to armeb.

Some additional changes are needed to make 'make universe' work on arm
and mips after this change, so those are commented out for now.

UPDATING information will be forthcoming.  Any remaining rough edges
will be hammered out in -current.
This commit is contained in:
Warner Losh 2010-11-10 06:39:49 +00:00
parent fe5c39573b
commit e8dce5b9b3
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=215082
18 changed files with 89 additions and 96 deletions

View File

@ -281,7 +281,7 @@ tinderbox:
# existing system is. # existing system is.
# #
.if make(universe) || make(universe_kernels) || make(tinderbox) .if make(universe) || make(universe_kernels) || make(tinderbox)
TARGETS?=amd64 arm i386 ia64 mips pc98 powerpc sparc64 sun4v TARGETS?=amd64 i386 ia64 pc98 powerpc sparc64 sun4v
.if defined(DOING_TINDERBOX) .if defined(DOING_TINDERBOX)
FAILFILE=tinderbox.failed FAILFILE=tinderbox.failed

View File

@ -27,7 +27,7 @@ CFLAGS+= -DIN_GCC -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED \
LDFLAGS+= -nodefaultlibs LDFLAGS+= -nodefaultlibs
LDADD+= -lc LDADD+= -lc
OBJS= # added to below in various ways depending on TARGET_ARCH OBJS= # added to below in various ways depending on TARGET_CPUARCH
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# #
@ -100,7 +100,7 @@ LIB2_DIVMOD_FUNCS = _divdi3 _moddi3 _udivdi3 _umoddi3 _udiv_w_sdiv _udivmoddi4
# Platform specific bits. # Platform specific bits.
# When upgrading GCC, get the following definitions from config/<cpu>/t-* # When upgrading GCC, get the following definitions from config/<cpu>/t-*
# #
.if ${TARGET_ARCH} == "arm" .if ${TARGET_CPUARCH} == "arm"
# from config/arm/t-strongarm-elf # from config/arm/t-strongarm-elf
CFLAGS+= -Dinhibit_libc -fno-inline CFLAGS+= -Dinhibit_libc -fno-inline
LIB1ASMSRC = lib1funcs.asm LIB1ASMSRC = lib1funcs.asm
@ -116,7 +116,7 @@ LIB2FUNCS_EXTRA = floatunsidf.c floatunsisf.c
# _fixsfsi _fixunssfsi _floatdidf _floatdisf # _fixsfsi _fixunssfsi _floatdidf _floatdisf
.endif .endif
.if ${TARGET_ARCH} == "mips" .if ${TARGET_CPUARCH} == "mips"
LIB2FUNCS_EXTRA = floatunsidf.c floatunsisf.c LIB2FUNCS_EXTRA = floatunsidf.c floatunsisf.c
.if defined(TARGET_ABI) && ${TARGET_ABI} != "o32" .if defined(TARGET_ABI) && ${TARGET_ABI} != "o32"
LIB2FUNCS_EXTRA+= floatdidf.c fixunsdfsi.c LIB2FUNCS_EXTRA+= floatdidf.c fixunsdfsi.c
@ -126,7 +126,7 @@ LIB2FUNCS_EXTRA+= fixdfdi.c fixunssfsi.c
.endif .endif
.endif .endif
.if ${TARGET_ARCH} == "ia64" .if ${TARGET_CPUARCH} == "ia64"
# from config/ia64/t-ia64 # from config/ia64/t-ia64
LIB1ASMSRC = lib1funcs.asm LIB1ASMSRC = lib1funcs.asm
LIB1ASMFUNCS = __divxf3 __divdf3 __divsf3 \ LIB1ASMFUNCS = __divxf3 __divdf3 __divsf3 \
@ -137,18 +137,18 @@ LIB1ASMFUNCS = __divxf3 __divdf3 __divsf3 \
LIB2ADDEH = unwind-ia64.c unwind-sjlj.c unwind-c.c LIB2ADDEH = unwind-ia64.c unwind-sjlj.c unwind-c.c
.endif .endif
.if ${TARGET_ARCH} == "powerpc" .if ${TARGET_CPUARCH} == "powerpc"
# from config/rs6000/t-ppccomm # from config/rs6000/t-ppccomm
LIB2FUNCS_EXTRA = tramp.asm LIB2FUNCS_EXTRA = tramp.asm
LIB2FUNCS_STATIC_EXTRA = eabi.asm LIB2FUNCS_STATIC_EXTRA = eabi.asm
.endif .endif
.if ${TARGET_ARCH} == "powerpc64" .if ${TARGET_CPUARCH} == "powerpc64"
# from config/rs6000/t-ppccomm # from config/rs6000/t-ppccomm
LIB2FUNCS_EXTRA = tramp.asm LIB2FUNCS_EXTRA = tramp.asm
.endif .endif
.if ${TARGET_ARCH} == "sparc64" .if ${TARGET_CPUARCH} == "sparc64"
# from config/sparc/t-elf # from config/sparc/t-elf
LIB1ASMSRC = lb1spc.asm LIB1ASMSRC = lb1spc.asm
LIB1ASMFUNCS = _mulsi3 _divsi3 _modsi3 LIB1ASMFUNCS = _mulsi3 _divsi3 _modsi3
@ -195,8 +195,8 @@ OBJ_GRPS = STD DIV
# #
# Floating point emulation functions # Floating point emulation functions
# #
.if ${TARGET_ARCH} == "armNOT_YET" || \ .if ${TARGET_CPUARCH} == "armNOT_YET" || \
${TARGET_ARCH} == "powerpc" || ${TARGET_ARCH} == "sparc64" ${TARGET_CPUARCH} == "powerpc" || ${TARGET_CPUARCH} == "sparc64"
FPBIT_CFLAGS = -DFINE_GRAINED_LIBRARIES -DFLOAT FPBIT_CFLAGS = -DFINE_GRAINED_LIBRARIES -DFLOAT
DPBIT_CFLAGS = -DFINE_GRAINED_LIBRARIES DPBIT_CFLAGS = -DFINE_GRAINED_LIBRARIES

View File

@ -6,13 +6,17 @@
VERSION= "2.15 [FreeBSD] 2004-05-23" VERSION= "2.15 [FreeBSD] 2004-05-23"
TARGET_ARCH?= ${MACHINE_ARCH} .if defined(TARGET_ARCH)
.if ${TARGET_ARCH} == "amd64" TARGET_CPUARCH=${TARGET_ARCH:C/mipse[bl]/mips/:C/armeb/arm/}
BINUTILS_ARCH=x86_64
.else .else
BINUTILS_ARCH=${TARGET_ARCH} TARGET_CPUARCH=${MACHINE_CPUARCH}
.endif .endif
TARGET_ARCH?= ${MACHINE_ARCH}
BINUTILS_ARCH=${TARGET_ARCH:C/amd64/x86_64/}
TARGET_TUPLE?= ${BINUTILS_ARCH}-obrien-freebsd TARGET_TUPLE?= ${BINUTILS_ARCH}-obrien-freebsd
.if ${TARGET_ARCH} == "armeb" || ${TARGET_ARCH} == "mipseb"
TARGET_BIG_ENDIAN=t
.endif
# RELTOP is the relative path to this point in the source or object # RELTOP is the relative path to this point in the source or object
# tree, from any subdirectory of same. It gets extra "../" prefixes # tree, from any subdirectory of same. It gets extra "../" prefixes
@ -22,28 +26,29 @@ RELTOP:= ..
RELSRC= ${RELTOP}/../../../contrib/binutils RELSRC= ${RELTOP}/../../../contrib/binutils
SRCDIR= ${.CURDIR}/${RELSRC} SRCDIR= ${.CURDIR}/${RELSRC}
.if ${TARGET_ARCH} == "arm" || ${TARGET_ARCH} == "i386" || \ .if ${TARGET_CPUARCH} == "arm" || ${TARGET_CPUARCH} == "i386" || \
${TARGET_ARCH} == "powerpc" || \ ${TARGET_CPUARCH} == "powerpc" || \
(${TARGET_ARCH} == "mips" && (!defined(TARGET_ABI) || ${TARGET_ABI} != "n64")) (${TARGET_CPUARCH} == "mips" && \
(!defined(TARGET_ABI) || ${TARGET_ABI} != "n64"))
CFLAGS+= -DBFD_DEFAULT_TARGET_SIZE=32 CFLAGS+= -DBFD_DEFAULT_TARGET_SIZE=32
.else .else
CFLAGS+= -DBFD_DEFAULT_TARGET_SIZE=64 CFLAGS+= -DBFD_DEFAULT_TARGET_SIZE=64
.endif .endif
CFLAGS+= -I. CFLAGS+= -I.
.if exists(${.CURDIR}/${TARGET_ARCH}) .if exists(${.CURDIR}/${TARGET_CPUARCH})
CFLAGS+= -I${.CURDIR}/${TARGET_ARCH} CFLAGS+= -I${.CURDIR}/${TARGET_CPUARCH}
.endif .endif
CFLAGS+= -I${.CURDIR} CFLAGS+= -I${.CURDIR}
CFLAGS+= -I${.CURDIR}/${RELTOP}/libbfd CFLAGS+= -I${.CURDIR}/${RELTOP}/libbfd
CFLAGS+= -I${.OBJDIR}/${RELTOP}/libbfd CFLAGS+= -I${.OBJDIR}/${RELTOP}/libbfd
CFLAGS+= -I${SRCDIR}/include CFLAGS+= -I${SRCDIR}/include
.if exists(${.CURDIR}/${TARGET_ARCH}) .if exists(${.CURDIR}/${TARGET_CPUARCH})
.PATH: ${.CURDIR}/${TARGET_ARCH} .PATH: ${.CURDIR}/${TARGET_CPUARCH}
.endif .endif
ARCHS= ${TARGET_ARCH} ARCHS= ${TARGET_CPUARCH}
.for _arch in ${CROSS_ARCH} .for _arch in ${CROSS_ARCH}
.if (${ARCHS:R:M${_arch:R}} == "") .if (${ARCHS:R:M${_arch:R}} == "")

View File

@ -20,7 +20,7 @@ SRCS+= app.c as.c atof-generic.c atof-ieee.c bignum-copy.c \
# DEO: why not used? # DEO: why not used?
#SRCS+= itbl-ops.c #SRCS+= itbl-ops.c
.if ${TARGET_ARCH} == "mips" .if ${TARGET_CPUARCH} == "mips"
SRCS+= itbl-ops.c itbl-parse.y itbl-lex.l SRCS+= itbl-ops.c itbl-parse.y itbl-lex.l
.endif .endif
@ -32,7 +32,7 @@ SRCS+= tc-ppc.c
# change back to tc-sparc.c when new binutils is imported # change back to tc-sparc.c when new binutils is imported
SRCS+= tc-sparc-fixed.c SRCS+= tc-sparc-fixed.c
.else .else
SRCS+= tc-${TARGET_ARCH}.c SRCS+= tc-${TARGET_CPUARCH}.c
.endif .endif
.if ${TARGET_ARCH} == "sparc64" .if ${TARGET_ARCH} == "sparc64"
@ -49,7 +49,7 @@ CFLAGS+= -DTARGET_ALIAS=\"${TARGET_TUPLE}\"
CFLAGS+= -DVERSION=\"${VERSION}\" CFLAGS+= -DVERSION=\"${VERSION}\"
CFLAGS+= -D_GNU_SOURCE CFLAGS+= -D_GNU_SOURCE
CFLAGS+= -I${SRCDIR}/gas -I${SRCDIR}/gas/config -I${SRCDIR} CFLAGS+= -I${SRCDIR}/gas -I${SRCDIR}/gas/config -I${SRCDIR}
CFLAGS+= -I${.CURDIR} -I${.CURDIR}/${TARGET_ARCH}-freebsd CFLAGS+= -I${.CURDIR} -I${.CURDIR}/${TARGET_CPUARCH}-freebsd
NO_SHARED?= yes NO_SHARED?= yes

View File

@ -1,6 +1,6 @@
# $FreeBSD$ # $FreeBSD$
.if defined(TARGET_BIG_ENDIAN) .if ${TARGET_ARCH} == "armeb"
NATIVE_EMULATION= armelfb_fbsd NATIVE_EMULATION= armelfb_fbsd
.else .else
NATIVE_EMULATION= armelf_fbsd NATIVE_EMULATION= armelf_fbsd

View File

@ -1,8 +1,6 @@
# $FreeBSD$ # $FreeBSD$
#xxxIMPxxx: TARGET_BIG_ENDIAN is lame. We should use the netbsd convention .if ${TARGET_ARCH} == "mipsel"
# of mipsel and mips.
.if !defined(TARGET_BIG_ENDIAN)
_EMULATION_ENDIAN=l _EMULATION_ENDIAN=l
.else .else
_EMULATION_ENDIAN=b _EMULATION_ENDIAN=b

View File

@ -1,6 +1,6 @@
# $FreeBSD$ # $FreeBSD$
.if defined(TARGET_BIG_ENDIAN) .if ${TARGET_ARCH} == "armeb"
DEFAULT_VECTOR= bfd_elf32_bigarm_vec DEFAULT_VECTOR= bfd_elf32_bigarm_vec
.else .else
DEFAULT_VECTOR= bfd_elf32_littlearm_vec DEFAULT_VECTOR= bfd_elf32_littlearm_vec
@ -14,7 +14,7 @@ SRCS+= cpu-arm.c \
elflink.c elflink.c
VECS+= ${DEFAULT_VECTOR} VECS+= ${DEFAULT_VECTOR}
.if defined(TARGET_BIG_ENDIAN) .if ${TARGET_ARCH} == "armeb"
VECS+= bfd_elf32_littlearm_vec VECS+= bfd_elf32_littlearm_vec
.else .else
VECS+= bfd_elf32_bigarm_vec VECS+= bfd_elf32_bigarm_vec

View File

@ -1,15 +1,11 @@
# $FreeBSD$ # $FreeBSD$
#xxxIMPxxx: TARGET_BIG_ENDIAN is lame. We should use the netbsd convention .if ${TARGET_ARCH} == "mipsel"
# of mipsel and mips.
.if !defined(TARGET_BIG_ENDIAN)
_EMULATION_ENDIAN=little _EMULATION_ENDIAN=little
.else .else
_EMULATION_ENDIAN=big _EMULATION_ENDIAN=big
.endif .endif
DEFAULT_VECTOR= bfd_elf32_tradbigmips_vec
.if defined(TARGET_ABI) && ${TARGET_ABI} != "o32" .if defined(TARGET_ABI) && ${TARGET_ABI} != "o32"
.if ${TARGET_ABI} == "n32" .if ${TARGET_ABI} == "n32"
DEFAULT_VECTOR= bfd_elf32_ntrad${_EMULATION_ENDIAN}mips_vec DEFAULT_VECTOR= bfd_elf32_ntrad${_EMULATION_ENDIAN}mips_vec

View File

@ -32,9 +32,13 @@ CFLAGS+= -DLONG_TYPE_SIZE=${LONG_TYPE_SIZE}
CFLAGS+= -DCROSS_COMPILE CFLAGS+= -DCROSS_COMPILE
.endif .endif
.if ${TARGET_ARCH} == "mips" .if ${TARGET_ARCH} == "armeb"
# XXX This is backwards, MIPS should default to BE. CFLAGS += -DTARGET_ENDIAN_DEFAULT=MASK_BIG_END
.if !defined(TARGET_BIG_ENDIAN) .endif
.if ${TARGET_CPUARCH} == "mips"
.if ${TARGET_ARCH} == "mipsel"
CFLAGS += -DTARGET_ENDIAN_DEFAULT=0 CFLAGS += -DTARGET_ENDIAN_DEFAULT=0
.endif .endif

View File

@ -1,16 +1,15 @@
# $FreeBSD$ # $FreeBSD$
TARGET_ARCH?= ${MACHINE_ARCH} # These assignments duplicate much of the functionality of
# MACHINE_CPUARCH, but there's no easy way to export make functions...
.if ${TARGET_ARCH} == "amd64" .if defined(TARGET_ARCH)
GCC_CPU= i386 TARGET_CPUARCH=${TARGET_ARCH:C/mipse[bl]/mips/:C/armeb/arm/}
.elif ${TARGET_ARCH} == "powerpc" || ${TARGET_ARCH} == "powerpc64"
GCC_CPU= rs6000
.elif ${TARGET_ARCH} == "sparc64"
GCC_CPU= sparc
.else .else
GCC_CPU= ${TARGET_ARCH} TARGET_CPUARCH=${MACHINE_CPUARCH}
.endif .endif
TARGET_ARCH?= ${MACHINE_ARCH}
GCC_CPU=${TARGET_CPUARCH:C/amd64/i386/:C/powerpc/rs6000/:C/sparc64/sparc/}
.if ${TARGET_ARCH} == "ia64" .if ${TARGET_ARCH} == "ia64"
TARGET_CPU_DEFAULT= MASK_GNU_AS|MASK_GNU_LD TARGET_CPU_DEFAULT= MASK_GNU_AS|MASK_GNU_LD
@ -18,7 +17,9 @@ TARGET_CPU_DEFAULT= MASK_GNU_AS|MASK_GNU_LD
.if ${TARGET_ARCH} == "sparc64" .if ${TARGET_ARCH} == "sparc64"
TARGET_CPU_DEFAULT= TARGET_CPU_ultrasparc TARGET_CPU_DEFAULT= TARGET_CPU_ultrasparc
.endif .endif
.if ${TARGET_ARCH} == "armeb" || ${TARGET_ARCH} == "mipseb" || ${TARGET_ARCH} == "mips64eb"
TARGET_BIG_ENDIAN=t
.endif
.if ${TARGET_ARCH} == "powerpc64" .if ${TARGET_ARCH} == "powerpc64"
TARGET_CPU_DEFAULT= \"powerpc64\" TARGET_CPU_DEFAULT= \"powerpc64\"
.endif .endif

View File

@ -75,10 +75,6 @@ OBJS-md+= ${GCC_CPU}-c.o
# Target specific, C specific object file # Target specific, C specific object file
C_TARGET_OBJS= C_TARGET_OBJS=
.if ${TARGET_ARCH} == "arm" && defined(TARGET_BIG_ENDIAN)
CFLAGS += -DTARGET_ENDIAN_DEFAULT=MASK_BIG_END
.endif
# Language-specific object files for C and Objective C. # Language-specific object files for C and Objective C.
C_AND_OBJC_OBJS = attribs.o c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o \ C_AND_OBJC_OBJS = attribs.o c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o \
c-convert.o c-aux-info.o c-common.o c-opts.o c-format.o c-semantics.o \ c-convert.o c-aux-info.o c-common.o c-opts.o c-format.o c-semantics.o \

View File

@ -22,13 +22,13 @@ LIBIBERTY= libiberty.a
# The list of headers to go into tm.h # The list of headers to go into tm.h
# #
TARGET_INC+= options.h TARGET_INC+= options.h
.if ${TARGET_ARCH} == "amd64" .if ${TARGET_CPUARCH} == "amd64"
TARGET_INC+= i386/biarch64.h TARGET_INC+= i386/biarch64.h
.endif .endif
.if ${TARGET_ARCH} != "arm" .if ${TARGET_CPUARCH} != "arm"
TARGET_INC+= ${GCC_CPU}/${GCC_CPU}.h TARGET_INC+= ${GCC_CPU}/${GCC_CPU}.h
.endif .endif
.if ${TARGET_ARCH} == "i386" || ${TARGET_ARCH} == "amd64" .if ${TARGET_CPUARCH} == "i386" || ${TARGET_CPUARCH} == "amd64"
TARGET_INC+= ${GCC_CPU}/unix.h TARGET_INC+= ${GCC_CPU}/unix.h
TARGET_INC+= ${GCC_CPU}/att.h TARGET_INC+= ${GCC_CPU}/att.h
.endif .endif
@ -38,18 +38,18 @@ TARGET_INC+= elfos.h
TARGET_INC+= freebsd-native.h TARGET_INC+= freebsd-native.h
TARGET_INC+= freebsd-spec.h TARGET_INC+= freebsd-spec.h
TARGET_INC+= freebsd.h TARGET_INC+= freebsd.h
.if ${TARGET_ARCH} != "i386" && ${TARGET_ARCH} != "amd64" .if ${TARGET_CPUARCH} != "i386" && ${TARGET_CPUARCH} != "amd64"
. if exists(${GCCDIR}/config/${GCC_CPU}/sysv4.h) . if exists(${GCCDIR}/config/${GCC_CPU}/sysv4.h)
TARGET_INC+= ${GCC_CPU}/sysv4.h TARGET_INC+= ${GCC_CPU}/sysv4.h
. endif . endif
.endif .endif
.if ${TARGET_ARCH} == "amd64" .if ${TARGET_CPUARCH} == "amd64"
TARGET_INC+= ${GCC_CPU}/x86-64.h TARGET_INC+= ${GCC_CPU}/x86-64.h
.endif .endif
.if ${TARGET_ARCH} == "arm" || ${TARGET_ARCH} == "mips" .if ${TARGET_CPUARCH} == "arm" || ${TARGET_CPUARCH} == "mips"
TARGET_INC+= ${GCC_CPU}/elf.h TARGET_INC+= ${GCC_CPU}/elf.h
.endif .endif
.if ${TARGET_ARCH} == "arm" .if ${TARGET_CPUARCH} == "arm"
TARGET_INC+= ${GCC_CPU}/aout.h TARGET_INC+= ${GCC_CPU}/aout.h
.endif .endif
.if ${TARGET_ARCH} == "powerpc64" .if ${TARGET_ARCH} == "powerpc64"
@ -57,10 +57,10 @@ TARGET_INC+= ${GCC_CPU}/biarch64.h
TARGET_INC+= ${GCC_CPU}/default64.h TARGET_INC+= ${GCC_CPU}/default64.h
.endif .endif
TARGET_INC+= ${GCC_CPU}/freebsd.h TARGET_INC+= ${GCC_CPU}/freebsd.h
.if ${TARGET_ARCH} == "amd64" .if ${TARGET_CPUARCH} == "amd64"
TARGET_INC+= ${GCC_CPU}/freebsd64.h TARGET_INC+= ${GCC_CPU}/freebsd64.h
.endif .endif
.if ${TARGET_ARCH} == "arm" .if ${TARGET_CPUARCH} == "arm"
TARGET_INC+= ${GCC_CPU}/arm.h TARGET_INC+= ${GCC_CPU}/arm.h
.endif .endif
TARGET_INC+= defaults.h TARGET_INC+= defaults.h
@ -175,11 +175,11 @@ OPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.opt
OPT_FILES+= ${.CURDIR}/${GCC_CPU}-freebsd.opt OPT_FILES+= ${.CURDIR}/${GCC_CPU}-freebsd.opt
.endif .endif
.if ${TARGET_ARCH} == "powerpc" || ${TARGET_ARCH} == "powerpc64" .if ${TARGET_CPUARCH} == "powerpc"
OPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/sysv4.opt OPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/sysv4.opt
.endif .endif
.if ${TARGET_ARCH} == "sparc64" .if ${TARGET_CPUARCH} == "sparc64"
OPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/long-double-switch.opt OPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/long-double-switch.opt
.endif .endif

View File

@ -16,8 +16,16 @@ OBJ_ROOT= ${.OBJDIR}/../..
OBJ_BU= ${OBJ_ROOT}/binutils OBJ_BU= ${OBJ_ROOT}/binutils
OBJ_GDB= ${OBJ_ROOT}/gdb OBJ_GDB= ${OBJ_ROOT}/gdb
TARGET_ARCH?= ${MACHINE_ARCH} # These assignments duplicate much of the functionality of
TARGET_SUBDIR= ${BMAKE_GDB}/arch/${TARGET_ARCH} # 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/}
.else
TARGET_CPUARCH=${MACHINE_CPUARCH}
.endif
TARGET_ARCH?= ${MACHINE_ARCH}
TARGET_SUBDIR= ${BMAKE_GDB}/arch/${TARGET_CPUARCH}
.if ${TARGET_ARCH} != ${MACHINE_ARCH} .if ${TARGET_ARCH} != ${MACHINE_ARCH}
GDB_CROSS_DEBUGGER= GDB_CROSS_DEBUGGER=
@ -31,7 +39,7 @@ GDB_CROSS_DEBUGGER=
CFLAGS+= -DHAVE_CONFIG_H -DRL_NO_COMPAT -DMI_OUT=1 -DTUI=1 CFLAGS+= -DHAVE_CONFIG_H -DRL_NO_COMPAT -DMI_OUT=1 -DTUI=1
CFLAGS+= -I. CFLAGS+= -I.
CFLAGS+= -I${TARGET_SUBDIR} CFLAGS+= -I${TARGET_SUBDIR}
CFLAGS+= -I${BMAKE_BU}/libbfd -I${BMAKE_BU}/libbfd/${TARGET_ARCH} CFLAGS+= -I${BMAKE_BU}/libbfd -I${BMAKE_BU}/libbfd/${TARGET_CPUARCH}
CFLAGS+= -I${CNTRB_GDB}/gdb CFLAGS+= -I${CNTRB_GDB}/gdb
CFLAGS+= -I${CNTRB_GDB}/gdb/config CFLAGS+= -I${CNTRB_GDB}/gdb/config
CFLAGS+= -I${CNTRB_GDB}/include CFLAGS+= -I${CNTRB_GDB}/include

View File

@ -1,7 +1,7 @@
# $FreeBSD$ # $FreeBSD$
PROG= kgdb${GDB_SUFFIX} PROG= kgdb${GDB_SUFFIX}
SRCS= main.c kld.c kthr.c trgt.c trgt_${TARGET_ARCH}.c SRCS= main.c kld.c kthr.c trgt.c trgt_${TARGET_CPUARCH}.c
WARNS?= 2 WARNS?= 2
BULIBS= ${OBJ_BU}/libbfd/libbfd.a ${OBJ_BU}/libopcodes/libopcodes.a \ BULIBS= ${OBJ_BU}/libbfd/libbfd.a ${OBJ_BU}/libopcodes/libopcodes.a \

View File

@ -1,6 +1,14 @@
# $FreeBSD$ # $FreeBSD$
TARGET_ARCH?= ${MACHINE_ARCH} # 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/}
.else
TARGET_CPUARCH=${MACHINE_CPUARCH}
.endif
TARGET_ARCH?= ${MACHINE_ARCH}
LIB= gdb LIB= gdb
INTERNALLIB= INTERNALLIB=

View File

@ -114,7 +114,7 @@ _CPUCFLAGS = -march=armv5te -D__XSCALE__
. else . else
_CPUCFLAGS = -mcpu=${CPUTYPE} _CPUCFLAGS = -mcpu=${CPUTYPE}
. endif . endif
. elif ${MACHINE_ARCH} == "powerpc" . elif ${MACHINE_CPUARCH} == "powerpc"
. if ${CPUTYPE} == "e500" . if ${CPUTYPE} == "e500"
MACHINE_CPU = booke MACHINE_CPU = booke
_CPUCFLAGS = -Wa,-me500 -msoft-float _CPUCFLAGS = -Wa,-me500 -msoft-float
@ -196,12 +196,6 @@ MACHINE_CPU = itanium
. endif . endif
.endif .endif
.if ${MACHINE_CPUARCH} == "arm" && defined(TARGET_BIG_ENDIAN)
CFLAGS += -mbig-endian
LDFLAGS += -mbig-endian
LD += -EB
.endif
.if ${MACHINE_CPUARCH} == "mips" .if ${MACHINE_CPUARCH} == "mips"
CFLAGS += -G0 CFLAGS += -G0
.endif .endif

View File

@ -3,13 +3,13 @@
.if ${MACHINE_ARCH} == "amd64" || \ .if ${MACHINE_ARCH} == "amd64" || \
${MACHINE_ARCH} == "i386" || \ ${MACHINE_ARCH} == "i386" || \
${MACHINE_ARCH} == "ia64" || \ ${MACHINE_ARCH} == "ia64" || \
(${MACHINE_ARCH} == "arm" && !defined(TARGET_BIG_ENDIAN)) || \ ${MACHINE_ARCH} == "arm" || \
(${MACHINE_ARCH} == "mips" && !defined(TARGET_BIG_ENDIAN)) ${MACHINE_ARCH} == "mipsel"
TARGET_ENDIANNESS= 1234 TARGET_ENDIANNESS= 1234
.elif ${MACHINE_ARCH} == "powerpc" || \ .elif ${MACHINE_ARCH} == "powerpc" || \
${MACHINE_ARCH} == "powerpc64" || \ ${MACHINE_ARCH} == "powerpc64" || \
${MACHINE_ARCH} == "sparc64" || \ ${MACHINE_ARCH} == "sparc64" || \
${MACHINE_ARCH} == "arm" || \ ${MACHINE_ARCH} == "armeb" || \
${MACHINE_ARCH} == "mips" ${MACHINE_ARCH} == "mipseb"
TARGET_ENDIANNESS= 4321 TARGET_ENDIANNESS= 4321
.endif .endif

View File

@ -32,9 +32,6 @@ LDSCRIPT_NAME?=ldscript.$M
SYSTEM_LD:= ${SYSTEM_LD:$S/conf/${LDSCRIPT_NAME}=${LDSCRIPT_NAME}} SYSTEM_LD:= ${SYSTEM_LD:$S/conf/${LDSCRIPT_NAME}=${LDSCRIPT_NAME}}
SYSTEM_DEP:= ${SYSTEM_DEP:$S/conf/${LDSCRIPT_NAME}=${LDSCRIPT_NAME}} SYSTEM_DEP:= ${SYSTEM_DEP:$S/conf/${LDSCRIPT_NAME}=${LDSCRIPT_NAME}}
# XXX: Such sweeping assumptions...
MACHINE=mips
MACHINE_ARCH=mips
KERNLOADADDR?=0x80001000 KERNLOADADDR?=0x80001000
# This obscure value is defined by CFE for WR160N # This obscure value is defined by CFE for WR160N
# To be changed later # To be changed later
@ -48,20 +45,6 @@ ARCH_FLAGS?=-march=mips32
EXTRA_FLAGS=-fno-pic -mno-abicalls -G0 EXTRA_FLAGS=-fno-pic -mno-abicalls -G0
HACK_EXTRA_FLAGS=-shared HACK_EXTRA_FLAGS=-shared
.if defined(TARGET_BIG_ENDIAN)
CFLAGS+=-EB
SYSTEM_LD+=-EB
EXTRA_FLAGS+=-EB
TRAMP_LDFLAGS+=-Wl,-EB
HACK_EXTRA_FLAGS+=-EB -Wl,-EB
.else
CFLAGS+=-EL
SYSTEM_LD+=-EL
EXTRA_FLAGS+=-EL
TRAMP_LDFLAGS+=-Wl,-EL
HACK_EXTRA_FLAGS+=-EL -Wl,-EL
.endif
# We add the -fno-pic flag to kernels because otherwise performance # We add the -fno-pic flag to kernels because otherwise performance
# is extremely poor, as well as -mno-abicalls to force no ABI usage. # is extremely poor, as well as -mno-abicalls to force no ABI usage.