diff options
author | nwhitehorn <nwhitehorn@FreeBSD.org> | 2010-07-10 02:29:22 +0000 |
---|---|---|
committer | nwhitehorn <nwhitehorn@FreeBSD.org> | 2010-07-10 02:29:22 +0000 |
commit | 5d21d768b2c9f3601cbb00aa36a5ec22bacf93df (patch) | |
tree | 9f6c3a9c7f6dc298b58f5ddb2655b080c986678d /gnu/usr.bin/cc/cc_tools | |
parent | c497cd3792b4bca40349c51f22dfd4c77c77ec9f (diff) | |
download | FreeBSD-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/Makefile | 18 |
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} |