svn commit: r268871 - in user/nwhitehorn/powerpcle: . contrib/binutils/bfd contrib/binutils/ld/emulparams gnu/lib/libgomp gnu/usr.bin/binutils gnu/usr.bin/binutils/as gnu/usr.bin/binutils/ld gnu/us...
Nathan Whitehorn
nwhitehorn at FreeBSD.org
Sat Jul 19 06:27:28 UTC 2014
Author: nwhitehorn
Date: Sat Jul 19 06:27:24 2014
New Revision: 268871
URL: http://svnweb.freebsd.org/changeset/base/268871
Log:
Toolchain support. This gets important things like a little-endian libc
built without issue.
Added:
user/nwhitehorn/powerpcle/contrib/binutils/ld/emulparams/elf32lppc_fbsd.sh
- copied, changed from r268870, user/nwhitehorn/powerpcle/contrib/binutils/ld/emulparams/elf32ppc_fbsd.sh
user/nwhitehorn/powerpcle/gnu/usr.bin/binutils/ld/Makefile.powerpcle
- copied, changed from r268870, user/nwhitehorn/powerpcle/gnu/usr.bin/binutils/ld/Makefile.powerpc
Modified:
user/nwhitehorn/powerpcle/Makefile
user/nwhitehorn/powerpcle/Makefile.inc1
user/nwhitehorn/powerpcle/contrib/binutils/bfd/config.bfd
user/nwhitehorn/powerpcle/gnu/lib/libgomp/Makefile
user/nwhitehorn/powerpcle/gnu/usr.bin/binutils/Makefile.inc0
user/nwhitehorn/powerpcle/gnu/usr.bin/binutils/as/Makefile
user/nwhitehorn/powerpcle/gnu/usr.bin/binutils/libbfd/Makefile.powerpc
user/nwhitehorn/powerpcle/gnu/usr.bin/cc/Makefile.tgt
user/nwhitehorn/powerpcle/gnu/usr.bin/cc/cc_tools/Makefile
user/nwhitehorn/powerpcle/gnu/usr.bin/gdb/Makefile.inc
user/nwhitehorn/powerpcle/lib/csu/powerpc64/Makefile
user/nwhitehorn/powerpcle/lib/libkvm/Makefile
user/nwhitehorn/powerpcle/share/mk/bsd.endian.mk
user/nwhitehorn/powerpcle/share/mk/sys.mk
user/nwhitehorn/powerpcle/sys/powerpc/powerpc/exec_machdep.c
user/nwhitehorn/powerpcle/sys/sys/sysent.h
user/nwhitehorn/powerpcle/usr.bin/xlint/Makefile.inc
Modified: user/nwhitehorn/powerpcle/Makefile
==============================================================================
--- user/nwhitehorn/powerpcle/Makefile Sat Jul 19 06:19:28 2014 (r268870)
+++ user/nwhitehorn/powerpcle/Makefile Sat Jul 19 06:27:24 2014 (r268871)
@@ -367,7 +367,7 @@ kernel-toolchains:
TARGETS?=amd64 arm i386 mips pc98 powerpc sparc64
TARGET_ARCHES_arm?= arm armeb armv6 armv6hf
TARGET_ARCHES_mips?= mipsel mips mips64el mips64 mipsn32
-TARGET_ARCHES_powerpc?= powerpc powerpc64
+TARGET_ARCHES_powerpc?= powerpc powerpc64 powerpcle
TARGET_ARCHES_pc98?= i386
.for target in ${TARGETS}
TARGET_ARCHES_${target}?= ${target}
Modified: user/nwhitehorn/powerpcle/Makefile.inc1
==============================================================================
--- user/nwhitehorn/powerpcle/Makefile.inc1 Sat Jul 19 06:19:28 2014 (r268870)
+++ user/nwhitehorn/powerpcle/Makefile.inc1 Sat Jul 19 06:27:24 2014 (r268871)
@@ -140,7 +140,7 @@ SRCRELDATE!= awk '/^\#define[[:space:]]*
VERSION= FreeBSD ${REVISION}-${BRANCH:C/-p[0-9]+$//} ${TARGET_ARCH} ${SRCRELDATE}
.endif
-KNOWN_ARCHES?= amd64 arm armeb/arm armv6/arm armv6hf/arm i386 i386/pc98 mips mipsel/mips mips64el/mips mips64/mips mipsn32el/mips mipsn32/mips powerpc powerpc64/powerpc sparc64
+KNOWN_ARCHES?= amd64 arm armeb/arm armv6/arm armv6hf/arm i386 i386/pc98 mips mipsel/mips mips64el/mips mips64/mips mipsn32el/mips mipsn32/mips powerpc powerpc64/powerpc powerpcle/powerpc sparc64
.if ${TARGET} == ${TARGET_ARCH}
_t= ${TARGET}
.else
Modified: user/nwhitehorn/powerpcle/contrib/binutils/bfd/config.bfd
==============================================================================
--- user/nwhitehorn/powerpcle/contrib/binutils/bfd/config.bfd Sat Jul 19 06:19:28 2014 (r268870)
+++ user/nwhitehorn/powerpcle/contrib/binutils/bfd/config.bfd Sat Jul 19 06:27:24 2014 (r268871)
@@ -1105,7 +1105,8 @@ case "${targ}" in
targ_selvecs="bfd_elf64_powerpcle_vec bfd_elf32_powerpc_vec bfd_elf32_powerpcle_vec rs6000coff_vec rs6000coff64_vec"
want64=true
;;
- powerpc64le-*-elf* | powerpcle-*-elf64*)
+ powerpc64le-*-elf* | powerpcle-*-elf64* | powerpc64le-*-linux* | \
+ powerpc64le-*-*bsd*)
targ_defvec=bfd_elf64_powerpcle_vec
targ_selvecs="bfd_elf64_powerpc_vec bfd_elf32_powerpcle_vec bfd_elf32_powerpc_vec rs6000coff_vec rs6000coff64_vec"
want64=true
@@ -1154,7 +1155,8 @@ case "${targ}" in
targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
;;
powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
- powerpcle-*-solaris2* | powerpcle-*-linux-* | powerpcle-*-vxworks*)
+ powerpcle-*-solaris2* | powerpcle-*-linux-* | powerpcle-*-vxworks* | \
+ powerpcle-*-*bsd*)
targ_defvec=bfd_elf32_powerpcle_vec
targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
Copied and modified: user/nwhitehorn/powerpcle/contrib/binutils/ld/emulparams/elf32lppc_fbsd.sh (from r268870, user/nwhitehorn/powerpcle/contrib/binutils/ld/emulparams/elf32ppc_fbsd.sh)
==============================================================================
--- user/nwhitehorn/powerpcle/contrib/binutils/ld/emulparams/elf32ppc_fbsd.sh Sat Jul 19 06:19:28 2014 (r268870, copy source)
+++ user/nwhitehorn/powerpcle/contrib/binutils/ld/emulparams/elf32lppc_fbsd.sh Sat Jul 19 06:27:24 2014 (r268871)
@@ -1,2 +1,2 @@
-. ${srcdir}/emulparams/elf32ppc.sh
+. ${srcdir}/emulparams/elf32lppc.sh
. ${srcdir}/emulparams/elf_fbsd.sh
Modified: user/nwhitehorn/powerpcle/gnu/lib/libgomp/Makefile
==============================================================================
--- user/nwhitehorn/powerpcle/gnu/lib/libgomp/Makefile Sat Jul 19 06:19:28 2014 (r268870)
+++ user/nwhitehorn/powerpcle/gnu/lib/libgomp/Makefile Sat Jul 19 06:27:24 2014 (r268871)
@@ -24,7 +24,7 @@ VERSION_MAP= ${SRCDIR}/libgomp.map
# Target-specific OpenMP configuration
.if ${MACHINE_CPUARCH} == arm || ${MACHINE_CPUARCH} == i386 || \
- ${MACHINE_ARCH} == powerpc || \
+ ${MACHINE_ARCH} == powerpc || ${MACHINE_ARCH} == powerpcle || \
(${MACHINE_CPUARCH} == mips && ${MACHINE_ARCH:Mmips64*} == "")
OMP_LOCK_ALIGN = 4
OMP_LOCK_KIND= 4
Modified: user/nwhitehorn/powerpcle/gnu/usr.bin/binutils/Makefile.inc0
==============================================================================
--- user/nwhitehorn/powerpcle/gnu/usr.bin/binutils/Makefile.inc0 Sat Jul 19 06:19:28 2014 (r268870)
+++ user/nwhitehorn/powerpcle/gnu/usr.bin/binutils/Makefile.inc0 Sat Jul 19 06:27:24 2014 (r268871)
@@ -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|hf)?/arm/:C/powerpc64/powerpc/}
+TARGET_CPUARCH=${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb|hf)?/arm/:C/powerpc(64)?(le)?/powerpc/}
.else
TARGET_CPUARCH=${MACHINE_CPUARCH}
.endif
@@ -30,7 +30,7 @@ RELSRC= ${RELTOP}/../../../contrib/binut
SRCDIR= ${.CURDIR}/${RELSRC}
.if ${TARGET_CPUARCH} == "arm" || ${TARGET_CPUARCH} == "i386" || \
- ${TARGET_ARCH} == "powerpc" || \
+ ${TARGET_ARCH} == "powerpc" || ${TARGET_ARCH} == "powerpcle" || \
(${TARGET_CPUARCH} == "mips" && ${TARGET_ARCH:Mmips64*} == "")
CFLAGS+= -DBFD_DEFAULT_TARGET_SIZE=32
.else
Modified: user/nwhitehorn/powerpcle/gnu/usr.bin/binutils/as/Makefile
==============================================================================
--- user/nwhitehorn/powerpcle/gnu/usr.bin/binutils/as/Makefile Sat Jul 19 06:19:28 2014 (r268870)
+++ user/nwhitehorn/powerpcle/gnu/usr.bin/binutils/as/Makefile Sat Jul 19 06:27:24 2014 (r268871)
@@ -76,8 +76,11 @@ CFLAGS+= -DDEFAULT_ARCH=\"v9-64\"
.else
CFLAGS+= -DDEFAULT_ARCH=\"${BINUTILS_ARCH}\"
.endif
-.if defined(TARGET_BIG_ENDIAN)
+.if ${TARGET_ARCH} == "armeb" || ${TARGET_ARCH} == "armv6eb" || \
+ (${TARGET_CPUARCH} == "mips" && ${TARGET_ARCH:Mmips*el} == "")
CFLAGS+= -DTARGET_BYTES_BIG_ENDIAN=1
+.elif ${TARGET_ARCH} == "powerpcle" || ${TARGET_ARCH} == "powerpc64le"
+CFLAGS+= -DTARGET_BYTES_BIG_ENDIAN=0
.endif
CFLAGS+= -DTARGET_CPU=\"${BINUTILS_ARCH}\"
CFLAGS+= -DTARGET_OS=\"${TARGET_OS}\"
Copied and modified: user/nwhitehorn/powerpcle/gnu/usr.bin/binutils/ld/Makefile.powerpcle (from r268870, user/nwhitehorn/powerpcle/gnu/usr.bin/binutils/ld/Makefile.powerpc)
==============================================================================
--- user/nwhitehorn/powerpcle/gnu/usr.bin/binutils/ld/Makefile.powerpc Sat Jul 19 06:19:28 2014 (r268870, copy source)
+++ user/nwhitehorn/powerpcle/gnu/usr.bin/binutils/ld/Makefile.powerpcle Sat Jul 19 06:27:24 2014 (r268871)
@@ -1,6 +1,6 @@
# $FreeBSD$
-NATIVE_EMULATION= elf32ppc_fbsd
+NATIVE_EMULATION= elf32lppc_fbsd
SRCS+= e${NATIVE_EMULATION}.c
CLEANFILES+= e${NATIVE_EMULATION}.c
Modified: user/nwhitehorn/powerpcle/gnu/usr.bin/binutils/libbfd/Makefile.powerpc
==============================================================================
--- user/nwhitehorn/powerpcle/gnu/usr.bin/binutils/libbfd/Makefile.powerpc Sat Jul 19 06:19:28 2014 (r268870)
+++ user/nwhitehorn/powerpcle/gnu/usr.bin/binutils/libbfd/Makefile.powerpc Sat Jul 19 06:27:24 2014 (r268871)
@@ -2,7 +2,11 @@
ARCHS+= rs6000
+.if ${TARGET_ARCH} == "powerpcle"
+DEFAULT_VECTOR= bfd_elf32_powerpcle_vec
+.else
DEFAULT_VECTOR= bfd_elf32_powerpc_vec
+.endif
SRCS+= cpu-powerpc.c \
cpu-rs6000.c \
@@ -14,6 +18,6 @@ SRCS+= cpu-powerpc.c \
ppcboot.c \
xcofflink.c
-VECS+= ${DEFAULT_VECTOR} \
+VECS+= bfd_elf32_powerpc_vec \
bfd_elf32_powerpcle_vec \
ppcboot_vec
Modified: user/nwhitehorn/powerpcle/gnu/usr.bin/cc/Makefile.tgt
==============================================================================
--- user/nwhitehorn/powerpcle/gnu/usr.bin/cc/Makefile.tgt Sat Jul 19 06:19:28 2014 (r268870)
+++ user/nwhitehorn/powerpcle/gnu/usr.bin/cc/Makefile.tgt Sat Jul 19 06:27:24 2014 (r268871)
@@ -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|hf)?/arm/:C/powerpc64/powerpc/}
+TARGET_CPUARCH=${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb|hf)?/arm/:C/powerpc(64)?(le)?/powerpc/}
.else
TARGET_CPUARCH=${MACHINE_CPUARCH}
.endif
Modified: user/nwhitehorn/powerpcle/gnu/usr.bin/cc/cc_tools/Makefile
==============================================================================
--- user/nwhitehorn/powerpcle/gnu/usr.bin/cc/cc_tools/Makefile Sat Jul 19 06:19:28 2014 (r268870)
+++ user/nwhitehorn/powerpcle/gnu/usr.bin/cc/cc_tools/Makefile Sat Jul 19 06:27:24 2014 (r268871)
@@ -55,6 +55,9 @@ TARGET_INC+= ${GCC_CPU}/aout.h
TARGET_INC+= ${GCC_CPU}/bpabi.h
.endif
.endif
+.if ${TARGET_ARCH} == "powerpcle" || ${TARGET_ARCH} == "powerpc64le"
+TARGET_INC+= ${GCC_CPU}/sysv4le.h
+.endif
.if ${TARGET_ARCH} == "powerpc64"
TARGET_INC+= ${GCC_CPU}/biarch64.h
TARGET_INC+= ${GCC_CPU}/default64.h
Modified: user/nwhitehorn/powerpcle/gnu/usr.bin/gdb/Makefile.inc
==============================================================================
--- user/nwhitehorn/powerpcle/gnu/usr.bin/gdb/Makefile.inc Sat Jul 19 06:19:28 2014 (r268870)
+++ user/nwhitehorn/powerpcle/gnu/usr.bin/gdb/Makefile.inc Sat Jul 19 06:27:24 2014 (r268871)
@@ -22,7 +22,7 @@ LIBREADLINE= ${OBJ_ROOT}/../lib/libreadl
# 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|hf)?/arm/:C/powerpc64/powerpc/}
+TARGET_CPUARCH=${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb|hf)?/arm/:C/powerpc(le)?(64)?/powerpc/}
.else
TARGET_CPUARCH=${MACHINE_CPUARCH}
.endif
Modified: user/nwhitehorn/powerpcle/lib/csu/powerpc64/Makefile
==============================================================================
--- user/nwhitehorn/powerpcle/lib/csu/powerpc64/Makefile Sat Jul 19 06:19:28 2014 (r268870)
+++ user/nwhitehorn/powerpcle/lib/csu/powerpc64/Makefile Sat Jul 19 06:27:24 2014 (r268871)
@@ -6,8 +6,7 @@ SRCS= crt1.c crti.S crtn.S
OBJS= ${SRCS:N*.h:R:S/$/.o/g}
OBJS+= Scrt1.o gcrt1.o
CFLAGS+= -I${.CURDIR}/../common \
- -I${.CURDIR}/../../libc/include \
- -mlongcall
+ -I${.CURDIR}/../../libc/include
all: ${OBJS}
Modified: user/nwhitehorn/powerpcle/lib/libkvm/Makefile
==============================================================================
--- user/nwhitehorn/powerpcle/lib/libkvm/Makefile Sat Jul 19 06:19:28 2014 (r268870)
+++ user/nwhitehorn/powerpcle/lib/libkvm/Makefile Sat Jul 19 06:27:24 2014 (r268871)
@@ -3,7 +3,7 @@
.if defined(TARGET_ARCH) && !defined(COMPAT_32BIT)
KVM_XARCH=${TARGET_ARCH}
-KVM_XCPUARCH=${KVM_XARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb|hf)?/arm/:C/powerpc64/powerpc/}
+KVM_XCPUARCH=${KVM_XARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb|hf)?/arm/:C/powerpc(64)?(le)?/powerpc/}
.else
KVM_XARCH=${MACHINE_ARCH}
KVM_XCPUARCH=${MACHINE_CPUARCH}
Modified: user/nwhitehorn/powerpcle/share/mk/bsd.endian.mk
==============================================================================
--- user/nwhitehorn/powerpcle/share/mk/bsd.endian.mk Sat Jul 19 06:19:28 2014 (r268870)
+++ user/nwhitehorn/powerpcle/share/mk/bsd.endian.mk Sat Jul 19 06:27:24 2014 (r268871)
@@ -5,6 +5,7 @@
${MACHINE_ARCH} == "arm" || \
${MACHINE_ARCH} == "armv6" || \
${MACHINE_ARCH} == "armv6hf" || \
+ ${MACHINE_ARCH:Mpowerpc*le} != "" || \
${MACHINE_ARCH:Mmips*el} != ""
TARGET_ENDIANNESS= 1234
.elif ${MACHINE_ARCH} == "powerpc" || \
Modified: user/nwhitehorn/powerpcle/share/mk/sys.mk
==============================================================================
--- user/nwhitehorn/powerpcle/share/mk/sys.mk Sat Jul 19 06:19:28 2014 (r268870)
+++ user/nwhitehorn/powerpcle/share/mk/sys.mk Sat Jul 19 06:27:24 2014 (r268871)
@@ -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/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb|hf)?/arm/:C/powerpc64/powerpc/}
+MACHINE_CPUARCH=${MACHINE_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb|hf)?/arm/:C/powerpc(64)?(le)?/powerpc/}
.endif
# If the special target .POSIX appears (without prerequisites or
Modified: user/nwhitehorn/powerpcle/sys/powerpc/powerpc/exec_machdep.c
==============================================================================
--- user/nwhitehorn/powerpcle/sys/powerpc/powerpc/exec_machdep.c Sat Jul 19 06:19:28 2014 (r268870)
+++ user/nwhitehorn/powerpcle/sys/powerpc/powerpc/exec_machdep.c Sat Jul 19 06:27:24 2014 (r268871)
@@ -1033,6 +1033,8 @@ cpu_set_upcall_kse(struct thread *td, vo
tf->srr1 = PSL_SF | PSL_USERSET | PSL_FE_DFLT;
#endif
}
+ if (SV_PROC_FLAG(td->td_proc, SV_LE))
+ tf->srr1 |= PSL_LE;
#ifdef __powerpc64__
if (mfmsr() & PSL_HV)
Modified: user/nwhitehorn/powerpcle/sys/sys/sysent.h
==============================================================================
--- user/nwhitehorn/powerpcle/sys/sys/sysent.h Sat Jul 19 06:19:28 2014 (r268870)
+++ user/nwhitehorn/powerpcle/sys/sys/sysent.h Sat Jul 19 06:27:24 2014 (r268871)
@@ -134,6 +134,8 @@ struct sysentvec {
#define SV_ILP32 0x000100
#define SV_LP64 0x000200
+#define SV_BE 0x000400
+#define SV_LE 0x000800
#define SV_IA32 0x004000
#define SV_AOUT 0x008000
#define SV_SHP 0x010000
Modified: user/nwhitehorn/powerpcle/usr.bin/xlint/Makefile.inc
==============================================================================
--- user/nwhitehorn/powerpcle/usr.bin/xlint/Makefile.inc Sat Jul 19 06:19:28 2014 (r268870)
+++ user/nwhitehorn/powerpcle/usr.bin/xlint/Makefile.inc Sat Jul 19 06:27:24 2014 (r268871)
@@ -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/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb|hf)?/arm/}
+TARGET_CPUARCH= ${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb|hf)?/arm/:C/powerpc(64)?(le)?/powerpc/}
.else
TARGET_CPUARCH= ${MACHINE_CPUARCH}
TARGET_ARCH= ${MACHINE_ARCH}
More information about the svn-src-user
mailing list