Skip to contentSkip to conversation

Add support for powerpc64le.

PATCH New Jeff Bailey 4 participants 6 messages May 25, 2014 – May 28, 2014 Kbuild

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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.

---
 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
Makefile +1 -1
index b7a0721..201ed15 100644
@@ -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/)
arch/Config.in +9 -1
index bc81dac..2114dd8 100644
@@ -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
 
arch/Config.in.powerpc +5 -3
index ae70a8a..3d3faf9 100644
@@ -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
package/binutils/Config.in.host +1 -1
index 15def13..0f7321e 100644
@@ -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.
package/fakeroot/01-powerpc64le-support.patch new file +29 -0
new file mode 100644
index 0000000..c26d9a5
@@ -0,0 +1,29 @@
+Description: powerpc64le-support.patch: Patch configure to support ppc64el.
+Author: Adam Conrad <[email protected]>
+
+--- 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"
+ 	    ;;
package/gcc/Config.in.host +1 -1
index d0aa699..503a138 100644
@@ -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
package/glibc/Config.in +6 -5
index 693a33e..b690565 100644
@@ -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"
package/gmp/gmp-03-powerpc-provide-default-bmod-to-mod-threshold-1.patch new file +22 -0
new file mode 100644
index 0000000..76aa72f
@@ -0,0 +1,22 @@
+
+# HG changeset patch
+# User Torbjorn Granlund <[email protected]>
+# 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)
+ 
+
toolchain/toolchain-buildroot/Config.in +5 -5
index 216f9db..e19de4c 100644
@@ -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
Signature · 1 line
1.9.1
#1 lore raw

PATCH 1/1 Add support for powerpc64le.

Quoted 26 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Jeff" == Jeff Bailey <[email protected]> writes:

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.

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

+++ b/arch/Config.in.powerpc

arch/Config.in.powerpc config BR2_POWERPC_SOFT_FLOAT · line 106

Quoted 9 lines
arch/Config.in.powerpc +3 -1
@@ -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.in should be indented with <tab>, not spaces.

Committed with that fixed to next, thanks.

Signature · 1 line
Bye, Peter Korsgaard
#2 lore raw

PATCH 1/1 Add support for powerpc64le.

Dear Peter Korsgaard,

Quoted 3 lines · Peter Korsgaard

Config.in should be indented with <tab>, not spaces.

Committed with that fixed to next, thanks.

Why the heck did you commit this patch instead of the patch series from Cody P Schafer which is more elaborate and was posted way before, and had some review on the list?

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#3 lore raw

PATCH 1/1 Add support for powerpc64le.

Quoted 5 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas Petazzoni <[email protected]> writes:

Dear Peter Korsgaard,
On Sun, 25 May 2014 23:44:13 +0200, Peter Korsgaard wrote:

Quoted 7 lines
Quoted 3 lines

Config.in should be indented with <tab>, not spaces.

Committed with that fixed to next, thanks.

Why the heck did you commit this patch instead of the patch series from Cody P Schafer which is more elaborate and was posted way before, and had some review on the list?

Sorry, seems like I got the patches mixed up. I'll apply the delta from Cody's patches.

Signature · 1 line
Bye, Peter Korsgaard
#4 lore raw

PATCH 1/1 Add support for powerpc64le.

Quoted 7 lines · Peter Korsgaard
Quoted 7 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas Petazzoni <[email protected]> writes:

Dear Peter Korsgaard,

Quoted 2 lines · Peter Korsgaard

Config.in should be indented with <tab>, not spaces.

Quoted 9 lines
Quoted 5 lines
Quoted 1 line

Committed with that fixed to next, thanks.

Why the heck did you commit this patch instead of the patch series from Cody P Schafer which is more elaborate and was posted way before, and had some review on the list?

Sorry, seems like I got the patches mixed up. I'll apply the delta from Cody's patches.

You should probably also get rid of the useless fakeroot patch (unless the
intention is to support powerpc64le hosts as well).

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#5 lore raw

PATCH 1/1 Add support for powerpc64le.

Quoted 8 lines
Quoted 5 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Arnout" == Arnout Vandecappelle <[email protected]> writes:

Sorry, seems like I got the patches mixed up. I'll apply the delta from Cody's patches.

You should probably also get rid of the useless fakeroot patch (unless the
intention is to support powerpc64le hosts as well).

True. I'll remove it.

Signature · 1 line
Bye, Peter Korsgaard