summaryrefslogtreecommitdiffstats
path: root/gnu/usr.bin/cc/cc_tools
diff options
context:
space:
mode:
authornwhitehorn <nwhitehorn@FreeBSD.org>2010-07-10 02:29:22 +0000
committernwhitehorn <nwhitehorn@FreeBSD.org>2010-07-10 02:29:22 +0000
commit5d21d768b2c9f3601cbb00aa36a5ec22bacf93df (patch)
tree9f6c3a9c7f6dc298b58f5ddb2655b080c986678d /gnu/usr.bin/cc/cc_tools
parentc497cd3792b4bca40349c51f22dfd4c77c77ec9f (diff)
downloadFreeBSD-src-5d21d768b2c9f3601cbb00aa36a5ec22bacf93df.zip
FreeBSD-src-5d21d768b2c9f3601cbb00aa36a5ec22bacf93df.tar.gz
Teach our toolchain how to generate 64-bit PowerPC binaries. This fixes
a variety of bugs in binutils related to handling of 64-bit PPC ELF, provides a GCC configuration for 64-bit PowerPC on FreeBSD, and associated build systems tweaks. Obtained from: projects/ppc64
Diffstat (limited to 'gnu/usr.bin/cc/cc_tools')
-rw-r--r--gnu/usr.bin/cc/cc_tools/Makefile18
1 files changed, 16 insertions, 2 deletions
diff --git a/gnu/usr.bin/cc/cc_tools/Makefile b/gnu/usr.bin/cc/cc_tools/Makefile
index f248313..87ad642 100644
--- a/gnu/usr.bin/cc/cc_tools/Makefile
+++ b/gnu/usr.bin/cc/cc_tools/Makefile
@@ -52,6 +52,10 @@ TARGET_INC+= ${GCC_CPU}/elf.h
.if ${TARGET_ARCH} == "arm"
TARGET_INC+= ${GCC_CPU}/aout.h
.endif
+.if ${TARGET_ARCH} == "powerpc64"
+TARGET_INC+= ${GCC_CPU}/biarch64.h
+TARGET_INC+= ${GCC_CPU}/default64.h
+.endif
TARGET_INC+= ${GCC_CPU}/freebsd.h
.if ${TARGET_ARCH} == "amd64"
TARGET_INC+= ${GCC_CPU}/freebsd64.h
@@ -171,7 +175,7 @@ OPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.opt
OPT_FILES+= ${.CURDIR}/${GCC_CPU}-freebsd.opt
.endif
-.if ${TARGET_ARCH} == "powerpc"
+.if ${TARGET_ARCH} == "powerpc" || ${TARGET_ARCH} == "powerpc64"
OPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/sysv4.opt
.endif
@@ -303,12 +307,22 @@ GENSRCS+= gcov-iov.h
# Multilib config file
multilib.h:
+.if ${TARGET_ARCH} == "powerpc64"
+ echo 'static const char *const multilib_raw[] = { \
+ ". !m64 !m32;", \
+ "64:../lib m64 !m32;", \
+ "32:../lib32 !m64 m32;", NULL };' > ${.TARGET}
+ echo 'static const char *multilib_options = "m64/m32";' >> ${.TARGET}
+ echo 'static const char *const multilib_matches_raw[] = { \
+ "m64 m64;", "m32 m32;", NULL };' >> ${.TARGET}
+.else
echo 'static const char *const multilib_raw[] = { \
". ;", NULL };' > ${.TARGET}
+ echo 'static const char *multilib_options = "";' >> ${.TARGET}
echo 'static const char *const multilib_matches_raw[] = { \
NULL };' >> ${.TARGET}
+.endif
echo 'static const char *multilib_extra = "";' >> ${.TARGET}
- echo 'static const char *multilib_options = "";' >> ${.TARGET}
echo 'static const char *const multilib_exclusions_raw[] = { \
NULL };' >> ${.TARGET}
OpenPOWER on IntegriCloud