Add support for powerpc64le
authorJeff Bailey <jeffbailey@google.com>
Sun, 25 May 2014 06:59:22 +0000 (23:59 -0700)
committerPeter Korsgaard <peter@korsgaard.com>
Sun, 25 May 2014 21:24:09 +0000 (23:24 +0200)
This patch adds support for powerpc64le-linux-gnu.  This includes
needed patches to fakeroot and gmp.

gmp patch is from upstream HG tree.
fakeroot patch is from Ubuntu written by Adam Conrad.

Signed-off-by: Jeff Bailey <jeffbailey@google.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Makefile
arch/Config.in
arch/Config.in.powerpc
package/binutils/Config.in.host
package/fakeroot/01-powerpc64le-support.patch [new file with mode: 0644]
package/gcc/Config.in.host
package/glibc/Config.in
package/gmp/gmp-03-powerpc-provide-default-bmod-to-mod-threshold-1.patch [new file with mode: 0644]
toolchain/toolchain-buildroot/Config.in

index 6d972620dd0f5833b2ad4ad034666e15e5a8ff27..7363ee538f5d44ea9094c8a6a5a8d1469f6f1ad2 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -310,7 +310,7 @@ KERNEL_ARCH := $(shell echo "$(ARCH)" | sed -e "s/-.*//" \
        -e s/aarch64/arm64/ \
        -e s/bfin/blackfin/ \
        -e s/parisc64/parisc/ \
-       -e s/powerpc64/powerpc/ \
+       -e s/powerpc64.*/powerpc/ \
        -e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
        -e s/sh.*/sh/ \
        -e s/microblazeel/microblaze/)
index bc81dac7a9e1b92bbf82959c515e3365f4434e92..2114dd84236fa7c934c98aee6fa09e3a79425765 100644 (file)
@@ -143,6 +143,14 @@ config BR2_powerpc
          http://www.power.org/
          http://en.wikipedia.org/wiki/Powerpc
 
+config BR2_powerpc64le
+       bool "PowerPC64 (little endian)"
+       select BR2_ARCH_IS_64
+       help
+         PowerPC is a RISC architecture created by Apple-IBM-Motorola alliance.
+         http://www.power.org/
+         http://en.wikipedia.org/wiki/Powerpc
+
 config BR2_sh
        bool "SuperH"
        help
@@ -321,7 +329,7 @@ if BR2_nios2
 source "arch/Config.in.nios2"
 endif
 
-if BR2_powerpc
+if BR2_powerpc || BR2_powerpc64le
 source "arch/Config.in.powerpc"
 endif
 
index ae70a8aa8025c9a79729706396a092a5a01bacb7..5f9f473e4f52f53024ca956db536fc3a7e6d4450 100644 (file)
@@ -1,6 +1,6 @@
 choice
        prompt "Target Architecture Variant"
-       depends on BR2_powerpc
+       depends on BR2_powerpc || BR2_powerpc64le
        default BR2_generic_powerpc
        help
          Specific CPU variant to use
@@ -74,7 +74,7 @@ endchoice
 
 choice
        prompt "Target ABI"
-       depends on BR2_powerpc
+       depends on BR2_powerpc || BR2_powerpc64le
        default BR2_powerpc_SPE if BR2_powerpc_8540 || BR2_powerpc_8548
        default BR2_powerpc_CLASSIC
        help
@@ -99,9 +99,11 @@ config BR2_POWERPC_SOFT_FLOAT
 
 config BR2_ARCH
        default "powerpc"       if BR2_powerpc
+       default "powerpc64le"   if BR2_powerpc64le
 
 config BR2_ENDIAN
-       default "BIG"
+       default "BIG"    if BR2_powerpc
+       default "LITTLE" if BR2_powerpc64le
 
 config BR2_GCC_TARGET_TUNE
        default "401"           if BR2_powerpc_401
index 15def1308124377fb5db91cb42ad10633b2fdc39..0f7321e7a080a774706c4325d2ab4b28052c4e82 100644 (file)
@@ -4,7 +4,7 @@ choice
        prompt "Binutils Version"
        depends on !BR2_arc
        default BR2_BINUTILS_VERSION_2_21 if (BR2_mips || BR2_mipsel || BR2_sh)
-       default BR2_BINUTILS_VERSION_2_24 if BR2_microblaze
+       default BR2_BINUTILS_VERSION_2_24 if BR2_microblaze || BR2_powerpc64le
        default BR2_BINUTILS_VERSION_2_22
        help
          Select the version of binutils you wish to use.
diff --git a/package/fakeroot/01-powerpc64le-support.patch b/package/fakeroot/01-powerpc64le-support.patch
new file mode 100644 (file)
index 0000000..c26d9a5
--- /dev/null
@@ -0,0 +1,29 @@
+Description: powerpc64le-support.patch: Patch configure to support ppc64el.
+Author: Adam Conrad <adconrad@ubuntu.com>
+
+--- fakeroot-1.20.orig/configure
++++ fakeroot-1.20/configure
+@@ -6509,6 +6509,9 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*
+         ppc64-*linux*|powerpc64-*linux*)
+           LD="${LD-ld} -m elf32ppclinux"
+           ;;
++        powerpc64le-*linux*)
++          LD="${LD-ld} -m elf32lppclinux"
++          ;;
+         s390x-*linux*)
+           LD="${LD-ld} -m elf_s390"
+           ;;
+@@ -6525,9 +6528,12 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*
+         x86_64-*linux*)
+           LD="${LD-ld} -m elf_x86_64"
+           ;;
+-        ppc*-*linux*|powerpc*-*linux*)
++        ppc-*linux*|powerpc-*linux*)
+           LD="${LD-ld} -m elf64ppc"
+           ;;
++        powerpcle-*linux*)
++          LD="${LD-ld} -m elf64lppc"
++          ;;
+         s390*-*linux*|s390*-*tpf*)
+           LD="${LD-ld} -m elf64_s390"
+           ;;
index 9feb45242ccb45e260238a68c7f9099f0fd6eb37..ff2524809555738b01a0a83e48c10b6a7d281a01 100644 (file)
@@ -9,7 +9,7 @@ choice
        default BR2_GCC_VERSION_4_2_2_AVR32_2_1_5 if BR2_avr32
        default BR2_GCC_VERSION_4_8_X if BR2_aarch64
        default BR2_GCC_VERSION_4_8_ARC if BR2_arc
-       default BR2_GCC_VERSION_4_9_X if BR2_microblaze
+       default BR2_GCC_VERSION_4_9_X if BR2_microblaze || BR2_powerpc64le
        default BR2_GCC_VERSION_4_5_X if BR2_bfin
        default BR2_GCC_VERSION_4_7_X
        help
index 693a33ee592cd8373429d71ecc7410d904570592..b69056576614b14b21cb86bb63527862b8954c66 100644 (file)
@@ -2,13 +2,14 @@ if BR2_TOOLCHAIN_BUILDROOT_GLIBC
 
 choice
        prompt "glibc version"
+       default BR2_GLIBC_VERSION_2_19 if BR2_powerpc64le
        default BR2_GLIBC_VERSION_2_18
        # Architectures supported in mainline glibc
-       depends on BR2_arm    || BR2_armeb    || BR2_aarch64 || \
-                  BR2_i386   || BR2_mips     || BR2_mipsel  || \
-                  BR2_mips64 || BR2_mips64el || BR2_powerpc || \
-                  BR2_sh     || BR2_sh64     || BR2_sparc   || \
-                  BR2_x86_64 || BR2_microblaze
+       depends on BR2_arm         || BR2_armeb    || BR2_aarch64 || \
+                  BR2_i386        || BR2_mips     || BR2_mipsel  || \
+                  BR2_mips64      || BR2_mips64el || BR2_powerpc || \
+                  BR2_powerpc64le || BR2_sh       || BR2_sh64    || \
+                  BR2_sparc       || BR2_x86_64   || BR2_microblaze
 
 config BR2_GLIBC_VERSION_2_18
        bool "2.18"
diff --git a/package/gmp/gmp-03-powerpc-provide-default-bmod-to-mod-threshold-1.patch b/package/gmp/gmp-03-powerpc-provide-default-bmod-to-mod-threshold-1.patch
new file mode 100644 (file)
index 0000000..76aa72f
--- /dev/null
@@ -0,0 +1,22 @@
+
+# HG changeset patch
+# User Torbjorn Granlund <tege@gmplib.org>
+# Date 1395835068 -3600
+# Node ID 4a6d258b467f661da0894cc60ecd060f2e3c67c7
+# Parent  301ce2788826a2d4d2725bd5cf01e998638db37a
+Provide default for BMOD_1_TO_MOD_1_THRESHOLD.
+
+diff -r 301ce2788826 -r 4a6d258b467f mpn/powerpc64/mode64/gcd_1.asm
+--- a/mpn/powerpc64/mode64/gcd_1.asm   Tue Mar 25 15:34:52 2014 +0100
++++ b/mpn/powerpc64/mode64/gcd_1.asm   Wed Mar 26 12:57:48 2014 +0100
+@@ -43,6 +43,9 @@
+ define(`n',     `r4')
+ define(`v0',    `r5')
++ifdef(`BMOD_1_TO_MOD_1_THRESHOLD',,
++  `define(`BMOD_1_TO_MOD_1_THRESHOLD',30)')
++
+ EXTERN_FUNC(mpn_mod_1)
+ EXTERN_FUNC(mpn_modexact_1c_odd)
+
index 216f9db7a71ce9de5abe1fd837f96984998dba3e..e19de4c331f49354d8f1ed91e4030f68fd708f9b 100644 (file)
@@ -59,11 +59,11 @@ config BR2_TOOLCHAIN_BUILDROOT_EGLIBC
 
 config BR2_TOOLCHAIN_BUILDROOT_GLIBC
        bool "glibc"
-       depends on BR2_arm    || BR2_armeb    || BR2_aarch64 || \
-                  BR2_i386   || BR2_mips     || BR2_mipsel  || \
-                  BR2_mips64 || BR2_mips64el || BR2_powerpc || \
-                  BR2_sh     || BR2_sh64     || BR2_sparc   || \
-                  BR2_x86_64 || BR2_microblaze
+       depends on BR2_arm         || BR2_armeb    || BR2_aarch64 || \
+                  BR2_i386        || BR2_mips     || BR2_mipsel  || \
+                  BR2_mips64      || BR2_mips64el || BR2_powerpc || \
+                  BR2_powerpc64le || BR2_sh       || BR2_sh64    || \
+                  BR2_sparc       || BR2_x86_64   || BR2_microblaze
        depends on BR2_USE_MMU
        depends on !BR2_PREFER_STATIC_LIB
        select BR2_TOOLCHAIN_USES_GLIBC