Add support for powerpc64le

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>
This commit is contained in:
Jeff Bailey 2014-05-24 23:59:22 -07:00 committed by Peter Korsgaard
parent 696668b09b
commit a426a91973
9 changed files with 79 additions and 17 deletions

View File

@ -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/)

View 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

View 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

View 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.

View File

@ -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"
;;

View 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

View 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"

View File

@ -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)

View 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