Date: Sat, 19 Jul 2014 06:27:24 +0000 (UTC) From: Nathan Whitehorn <nwhitehorn@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: 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... Message-ID: <201407190627.s6J6ROWc054887@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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}
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201407190627.s6J6ROWc054887>