From: Jeff Bailey <jeffbailey@google.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 1/1] Add support for powerpc64le.
Date: Sat, 24 May 2014 23:59:22 -0700 [thread overview]
Message-ID: <1401001162-8868-1-git-send-email-jeffbailey@google.com> (raw)
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>
---
Makefile | 2 +-
arch/Config.in | 10 +++++++-
arch/Config.in.powerpc | 9 ++++---
package/binutils/Config.in.host | 2 +-
package/fakeroot/01-powerpc64le-support.patch | 29 ++++++++++++++++++++++
package/gcc/Config.in.host | 2 +-
package/glibc/Config.in | 11 ++++----
...c-provide-default-bmod-to-mod-threshold-1.patch | 22 ++++++++++++++++
toolchain/toolchain-buildroot/Config.in | 10 ++++----
9 files changed, 80 insertions(+), 17 deletions(-)
create mode 100644 package/fakeroot/01-powerpc64le-support.patch
create mode 100644 package/gmp/gmp-03-powerpc-provide-default-bmod-to-mod-threshold-1.patch
diff --git a/Makefile b/Makefile
index b7a0721..201ed15 100644
--- a/Makefile
+++ b/Makefile
@@ -309,7 +309,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/)
diff --git a/arch/Config.in b/arch/Config.in
index bc81dac..2114dd8 100644
--- a/arch/Config.in
+++ b/arch/Config.in
@@ -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
diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
index ae70a8a..3d3faf9 100644
--- a/arch/Config.in.powerpc
+++ b/arch/Config.in.powerpc
@@ -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
diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host
index 15def13..0f7321e 100644
--- a/package/binutils/Config.in.host
+++ b/package/binutils/Config.in.host
@@ -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
index 0000000..c26d9a5
--- /dev/null
+++ b/package/fakeroot/01-powerpc64le-support.patch
@@ -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"
+ ;;
diff --git a/package/gcc/Config.in.host b/package/gcc/Config.in.host
index d0aa699..503a138 100644
--- a/package/gcc/Config.in.host
+++ b/package/gcc/Config.in.host
@@ -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
diff --git a/package/glibc/Config.in b/package/glibc/Config.in
index 693a33e..b690565 100644
--- a/package/glibc/Config.in
+++ b/package/glibc/Config.in
@@ -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
index 0000000..76aa72f
--- /dev/null
+++ b/package/gmp/gmp-03-powerpc-provide-default-bmod-to-mod-threshold-1.patch
@@ -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)
+
+
diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in
index 216f9db..e19de4c 100644
--- a/toolchain/toolchain-buildroot/Config.in
+++ b/toolchain/toolchain-buildroot/Config.in
@@ -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
--
1.9.1
next reply other threads:[~2014-05-25 6:59 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-25 6:59 Jeff Bailey [this message]
2014-05-25 21:44 ` [Buildroot] [PATCH 1/1] Add support for powerpc64le Peter Korsgaard
2014-05-26 9:29 ` Thomas Petazzoni
2014-05-26 9:42 ` Peter Korsgaard
2014-05-28 11:08 ` Arnout Vandecappelle
2014-05-28 12:16 ` Peter Korsgaard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1401001162-8868-1-git-send-email-jeffbailey@google.com \
--to=jeffbailey@google.com \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.