All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/2] uClibc: bump 0.9.32.x version to 0.9.32.1
@ 2011-12-30 20:10 Gustavo Zacarias
  2011-12-30 20:10 ` [Buildroot] [PATCH 2/2] toolchain: add powerpc SPE ABI support Gustavo Zacarias
  2012-01-02 14:55 ` [Buildroot] [PATCH 1/2] uClibc: bump 0.9.32.x version to 0.9.32.1 Peter Korsgaard
  0 siblings, 2 replies; 3+ messages in thread
From: Gustavo Zacarias @ 2011-12-30 20:10 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
 toolchain/uClibc/Config.in                         |    2 +-
 .../uClibc-0.9.32-Fix-e500-fpu-libm-build.patch    |   31 -----------------
 ...-0.9.32-fix-daylight-saving-time-handling.patch |   36 --------------------
 ...ibc-0.9.32-honor-UCLIBC_HAS_FENV-for-e500.patch |   28 ---------------
 ..._libc_epoll_pwait-compile-failure-on-x86.patch} |    0
 ...-e500-__fe_nomask_env-use-of-__set_errno.patch} |    0
 ...> uClibc-0.9.32.1-linuxthreads-errno-fix.patch} |    0
 ...patch => uClibc-0.9.32.1-sparc-errno-fix.patch} |    0
 ...unshare.patch => uClibc-0.9.32.1-unshare.patch} |    0
 9 files changed, 1 insertions(+), 96 deletions(-)
 delete mode 100644 toolchain/uClibc/uClibc-0.9.32-Fix-e500-fpu-libm-build.patch
 delete mode 100644 toolchain/uClibc/uClibc-0.9.32-fix-daylight-saving-time-handling.patch
 delete mode 100644 toolchain/uClibc/uClibc-0.9.32-honor-UCLIBC_HAS_FENV-for-e500.patch
 rename toolchain/uClibc/{uClibc-0.9.32-Fix-__libc_epoll_pwait-compile-failure-on-x86.patch => uClibc-0.9.32.1-Fix-__libc_epoll_pwait-compile-failure-on-x86.patch} (100%)
 rename toolchain/uClibc/{uClibc-0.9.32-Fix-e500-__fe_nomask_env-use-of-__set_errno.patch => uClibc-0.9.32.1-Fix-e500-__fe_nomask_env-use-of-__set_errno.patch} (100%)
 rename toolchain/uClibc/{uClibc-0.9.32-linuxthreads-errno-fix.patch => uClibc-0.9.32.1-linuxthreads-errno-fix.patch} (100%)
 rename toolchain/uClibc/{uClibc-0.9.32-sparc-errno-fix.patch => uClibc-0.9.32.1-sparc-errno-fix.patch} (100%)
 rename toolchain/uClibc/{uClibc-0.9.32-unshare.patch => uClibc-0.9.32.1-unshare.patch} (100%)

diff --git a/toolchain/uClibc/Config.in b/toolchain/uClibc/Config.in
index 4b480fd..19c71e0 100644
--- a/toolchain/uClibc/Config.in
+++ b/toolchain/uClibc/Config.in
@@ -32,7 +32,7 @@ config BR2_USE_UCLIBC_SNAPSHOT
 config BR2_UCLIBC_VERSION_STRING
 	string
 	default 0.9.31.1	if BR2_UCLIBC_VERSION_0_9_31
-	default 0.9.32		if BR2_UCLIBC_VERSION_0_9_32
+	default 0.9.32.1	if BR2_UCLIBC_VERSION_0_9_32
 	default $BR2_USE_UCLIBC_SNAPSHOT	if BR2_UCLIBC_VERSION_SNAPSHOT
 
 config BR2_UCLIBC_CONFIG
diff --git a/toolchain/uClibc/uClibc-0.9.32-Fix-e500-fpu-libm-build.patch b/toolchain/uClibc/uClibc-0.9.32-Fix-e500-fpu-libm-build.patch
deleted file mode 100644
index a228bc1..0000000
--- a/toolchain/uClibc/uClibc-0.9.32-Fix-e500-fpu-libm-build.patch
+++ /dev/null
@@ -1,31 +0,0 @@
->From 826984dee547b41238dc9572a1c756506a3c9148 Mon Sep 17 00:00:00 2001
-From: Jason Woodward <jason.woodward@timesys.com>
-Date: Sat, 11 Jun 2011 19:09:53 -0400
-Subject: [PATCH] Fix e500 fpu libm build
-
-Define libm_ARCH_fpu_OUT in libm/powerpc/e500/Makefile.arch as it is used
-in libm/powerpc/e500/fpu/Makefile.arch
-
- libm_ARCH_OBJ:=$(patsubst $(libm_ARCH_fpu_DIR)/%.c,$(libm_ARCH_fpu_OUT)/%.o,$(libm_ARCH_SRC))
-
-This appears to have been broken since cd3a494e99fa4bcad1c2a621b71361005528bead
-
-Signed-off-by: Jason Woodward <jason.woodward@timesys.com>
----
- libm/powerpc/e500/Makefile.arch |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/libm/powerpc/e500/Makefile.arch b/libm/powerpc/e500/Makefile.arch
-index 912ce7f..febde67 100644
---- a/libm/powerpc/e500/Makefile.arch
-+++ b/libm/powerpc/e500/Makefile.arch
-@@ -6,5 +6,6 @@
- #
- 
- libm_ARCH_fpu_DIR := $(libm_SUBARCH_DIR)/fpu
-+libm_ARCH_fpu_OUT := $(libm_SUBARCH_OUT)/fpu
- -include $(libm_ARCH_fpu_DIR)/Makefile.arch
- 
--- 
-1.7.0.4
-
diff --git a/toolchain/uClibc/uClibc-0.9.32-fix-daylight-saving-time-handling.patch b/toolchain/uClibc/uClibc-0.9.32-fix-daylight-saving-time-handling.patch
deleted file mode 100644
index 5a96113..0000000
--- a/toolchain/uClibc/uClibc-0.9.32-fix-daylight-saving-time-handling.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 47f3da1cf49377c25772bb54d07db55225bbb142 Mon Sep 17 00:00:00 2001
-From: Guillaume Bourcier <guillaumebourcier@free.fr>
-Date: Tue, 11 Oct 2011 13:45:33 +0200
-Subject: [PATCH] libc: fix daylight saving time handling
-
-The algorithm computing daylight saving time incorrectly adds a day for
-each month after January for leap years. The clock shift from/to DST can
-be delayed if the last Sunday of a transition month is exactly seven
-days before the first of the following month.
-
-This change adds a day for the February month only.
-
-Signed-off-by: Guillaume Bourcier <guillaumebourcier@free.fr>
-Signed-off-by: Richard Braun <rbraun@sceen.net>
-Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
----
- libc/misc/time/time.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/libc/misc/time/time.c b/libc/misc/time/time.c
-index 19d68e1..8e2ebf1 100644
---- a/libc/misc/time/time.c
-+++ b/libc/misc/time/time.c
-@@ -689,7 +689,7 @@ static int tm_isdst(register const struct tm *__restrict ptm,
- 					++day;
- 				}
- 				monlen = 31 + day_cor[r->month -1] - day_cor[r->month];
--				if (isleap && (r->month > 1)) {
-+				if (isleap && (r->month == 2)) {
- 					++monlen;
- 				}
- 				/* Wweekday (0 is Sunday) of 1st of the month
--- 
-1.7.3.4
-
diff --git a/toolchain/uClibc/uClibc-0.9.32-honor-UCLIBC_HAS_FENV-for-e500.patch b/toolchain/uClibc/uClibc-0.9.32-honor-UCLIBC_HAS_FENV-for-e500.patch
deleted file mode 100644
index c90c34c..0000000
--- a/toolchain/uClibc/uClibc-0.9.32-honor-UCLIBC_HAS_FENV-for-e500.patch
+++ /dev/null
@@ -1,28 +0,0 @@
->From 69d9cf20955d0222a5a2631021bc10854ea98128 Mon Sep 17 00:00:00 2001
-From: Jason Woodward <jason.woodward@timesys.com>
-Date: Sat, 11 Jun 2011 20:39:33 -0400
-Subject: [PATCH] honor UCLIBC_HAS_FENV for e500
-
-Signed-off-by: Jason Woodward <jason.woodward@timesys.com>
----
- libm/powerpc/e500/fpu/Makefile.arch |    2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/libm/powerpc/e500/fpu/Makefile.arch b/libm/powerpc/e500/fpu/Makefile.arch
-index 8f00e09..904561e 100644
---- a/libm/powerpc/e500/fpu/Makefile.arch
-+++ b/libm/powerpc/e500/fpu/Makefile.arch
-@@ -6,8 +6,10 @@
- #
- 
- 
-+ifeq ($(UCLIBC_HAS_FENV),y)
- libm_ARCH_SRC:=$(wildcard $(libm_ARCH_fpu_DIR)/*.c)
- libm_ARCH_OBJ:=$(patsubst $(libm_ARCH_fpu_DIR)/%.c,$(libm_ARCH_fpu_OUT)/%.o,$(libm_ARCH_SRC))
-+endif
- 
- libm_ARCH_OBJS:=$(libm_ARCH_OBJ)
- 
--- 
-1.7.0.4
-
diff --git a/toolchain/uClibc/uClibc-0.9.32-Fix-__libc_epoll_pwait-compile-failure-on-x86.patch b/toolchain/uClibc/uClibc-0.9.32.1-Fix-__libc_epoll_pwait-compile-failure-on-x86.patch
similarity index 100%
rename from toolchain/uClibc/uClibc-0.9.32-Fix-__libc_epoll_pwait-compile-failure-on-x86.patch
rename to toolchain/uClibc/uClibc-0.9.32.1-Fix-__libc_epoll_pwait-compile-failure-on-x86.patch
diff --git a/toolchain/uClibc/uClibc-0.9.32-Fix-e500-__fe_nomask_env-use-of-__set_errno.patch b/toolchain/uClibc/uClibc-0.9.32.1-Fix-e500-__fe_nomask_env-use-of-__set_errno.patch
similarity index 100%
rename from toolchain/uClibc/uClibc-0.9.32-Fix-e500-__fe_nomask_env-use-of-__set_errno.patch
rename to toolchain/uClibc/uClibc-0.9.32.1-Fix-e500-__fe_nomask_env-use-of-__set_errno.patch
diff --git a/toolchain/uClibc/uClibc-0.9.32-linuxthreads-errno-fix.patch b/toolchain/uClibc/uClibc-0.9.32.1-linuxthreads-errno-fix.patch
similarity index 100%
rename from toolchain/uClibc/uClibc-0.9.32-linuxthreads-errno-fix.patch
rename to toolchain/uClibc/uClibc-0.9.32.1-linuxthreads-errno-fix.patch
diff --git a/toolchain/uClibc/uClibc-0.9.32-sparc-errno-fix.patch b/toolchain/uClibc/uClibc-0.9.32.1-sparc-errno-fix.patch
similarity index 100%
rename from toolchain/uClibc/uClibc-0.9.32-sparc-errno-fix.patch
rename to toolchain/uClibc/uClibc-0.9.32.1-sparc-errno-fix.patch
diff --git a/toolchain/uClibc/uClibc-0.9.32-unshare.patch b/toolchain/uClibc/uClibc-0.9.32.1-unshare.patch
similarity index 100%
rename from toolchain/uClibc/uClibc-0.9.32-unshare.patch
rename to toolchain/uClibc/uClibc-0.9.32.1-unshare.patch
-- 
1.7.3.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [Buildroot] [PATCH 2/2] toolchain: add powerpc SPE ABI support
  2011-12-30 20:10 [Buildroot] [PATCH 1/2] uClibc: bump 0.9.32.x version to 0.9.32.1 Gustavo Zacarias
@ 2011-12-30 20:10 ` Gustavo Zacarias
  2012-01-02 14:55 ` [Buildroot] [PATCH 1/2] uClibc: bump 0.9.32.x version to 0.9.32.1 Peter Korsgaard
  1 sibling, 0 replies; 3+ messages in thread
From: Gustavo Zacarias @ 2011-12-30 20:10 UTC (permalink / raw)
  To: buildroot

Add the ability for buildroot to build an SPE ABI enabled toolchain.

This is mandatory for e500v1/v2 cores since they don't support classic
FPU mode as the e500mc does.

Useful for Freescale's PowerQUICC III and single/dual-core QorIQ
line of processors.

The new TARGET_ABI variable is used rather than TARGET_CFLAGS for
uclibc's CPU_CFLAGS to avoid breakish CFLAGS leaking in, a good example
being -mthumb for ARM.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
 package/Makefile.in        |   17 ++++++++++++++++-
 target/Config.in.arch      |   21 ++++++++++++++++++++-
 toolchain/gcc/Makefile.in  |    5 +++++
 toolchain/uClibc/uclibc.mk |    8 +++++++-
 4 files changed, 48 insertions(+), 3 deletions(-)

diff --git a/package/Makefile.in b/package/Makefile.in
index c3af5d3..dc8d038 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -31,6 +31,21 @@ ABI=eabi
 endif
 endif
 
+# For FSL PowerPC there's SPE
+ifeq ($(BR2_powerpc_SPE),y)
+ABI=spe
+# MPC8540s are e500v1 with single precision FP
+ifeq ($(BR2_powerpc_8540),y)
+TARGET_ABI+=-mabi=spe -mfloat-gprs=single -Wa,-me500
+endif
+ifeq ($(BR2_powerpc_8548),y)
+TARGET_ABI+=-mabi=spe -mfloat-gprs=double -Wa,-me500x2
+endif
+ifeq ($(BR2_powerpc_e500mc),y)
+TARGET_ABI+=-mabi=spe -mfloat-gprs=double -Wa,-me500mc
+endif
+endif
+
 REAL_GNU_TARGET_NAME=$(ARCH)-unknown-linux-$(LIBC)$(ABI)
 
 STAGING_DIR=$(HOST_DIR)/usr/$(REAL_GNU_TARGET_NAME)/sysroot
@@ -60,7 +75,7 @@ ifeq ($(BR2_DEBUG_3),y)
 TARGET_DEBUGGING=-g3
 endif
 
-TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING)
+TARGET_CFLAGS=$(TARGET_ABI) $(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING)
 
 ifneq ($(BR2_PREFER_STATIC_LIB),y)
 ifeq ($(BR2_x86_64),y)
diff --git a/target/Config.in.arch b/target/Config.in.arch
index 5e9fad4..417441d 100644
--- a/target/Config.in.arch
+++ b/target/Config.in.arch
@@ -447,7 +447,9 @@ config BR2_powerpc_860
 config BR2_powerpc_970
 	bool "970"
 config BR2_powerpc_8540
-	bool "8540"
+	bool "8540 / e500v1"
+config BR2_powerpc_8548
+	bool "8548 / e500v2"
 comment "e300c2 needs gcc >= 4.4.x"
 config BR2_powerpc_e300c2
 	bool "e300c2"
@@ -459,6 +461,22 @@ config BR2_powerpc_e500mc
 	bool "e500mc"
 endchoice
 
+choice
+	prompt "Target ABI"
+	depends on BR2_powerpc
+	default BR2_powerpc_CLASSIC if BR2_powerpc_e500mc
+	default BR2_powerpc_SPE if BR2_powerpc_8540 || BR2_powerpc_8548
+	help
+	  Application Binary Interface to use
+
+config BR2_powerpc_CLASSIC
+	bool "Classic"
+	depends on !(BR2_powerpc_8540 || BR2_powerpc_8548)
+config BR2_powerpc_SPE
+	bool "SPE"
+	depends on BR2_powerpc_8540 || BR2_powerpc_8548 || BR2_powerpc_e500mc
+endchoice
+
 config BR2_ARCH
 	string
 	default "arm"		if BR2_arm
@@ -614,6 +632,7 @@ config BR2_GCC_TARGET_TUNE
 	default 860		if BR2_powerpc_860
 	default 970		if BR2_powerpc_970
 	default 8540		if BR2_powerpc_8540
+	default	8548		if BR2_powerpc_8548
 	default e300c2		if BR2_powerpc_e300c2
 	default e300c3		if BR2_powerpc_e300c3
 	default e500mc		if BR2_powerpc_e500mc
diff --git a/toolchain/gcc/Makefile.in b/toolchain/gcc/Makefile.in
index 2e55ed0..d9efcf0 100644
--- a/toolchain/gcc/Makefile.in
+++ b/toolchain/gcc/Makefile.in
@@ -47,6 +47,11 @@ EXTRA_GCC_CONFIG_OPTIONS+=--disable-libmudflap
 SOFT_FLOAT_CONFIG_OPTION:=
 endif
 
+# Disable mudflap and enable proper double/long double for SPE ABI
+ifeq ($(BR2_powerpc_SPE),y)
+EXTRA_GCC_CONFIG_OPTIONS+=--disable-libmudflap --enable-e500_double --with-long-double-128
+endif
+
 ifeq ($(BR2_PACKAGE_GCC_TARGET),y)
 EXTRA_TARGET_GCC_CONFIG_OPTIONS:=
 
diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk
index fbfb0df..adaf545 100644
--- a/toolchain/uClibc/uclibc.mk
+++ b/toolchain/uClibc/uclibc.mk
@@ -217,7 +217,7 @@ ifeq ($(UCLIBC_TARGET_ARCH),sparc)
 	$(SED) 's/^.*$(UCLIBC_SPARC_TYPE)[^B].*/$(UCLIBC_SPARC_TYPE)=y/g' $(UCLIBC_DIR)/.oldconfig
 endif
 ifeq ($(UCLIBC_TARGET_ARCH),powerpc)
-ifeq ($(BR2_powerpc_8540)$(BR2_powerpc_e500mc),y)
+ifeq ($(BR2_powerpc_8540)$(BR2_powerpc_8548)$(BR2_powerpc_e500mc),y)
 	/bin/echo "# CONFIG_CLASSIC is not set" >> $(UCLIBC_DIR)/.oldconfig
 	/bin/echo "CONFIG_E500=y" >> $(UCLIBC_DIR)/.oldconfig
 else
@@ -385,6 +385,7 @@ $(UCLIBC_DIR)/.config: $(UCLIBC_DIR)/.oldconfig
 		DEVEL_PREFIX=/usr/ \
 		RUNTIME_PREFIX=$(TOOLCHAIN_DIR)/uClibc_dev/ \
 		CROSS_COMPILE="$(TARGET_CROSS)" \
+		CPU_CFLAGS="$(TARGET_ABI)" \
 		HOSTCC="$(HOSTCC)" \
 		oldconfig
 	touch $@
@@ -403,6 +404,7 @@ $(UCLIBC_DIR)/.configured: $(LINUX_HEADERS_DIR)/.configured $(UCLIBC_DIR)/.confi
 		DEVEL_PREFIX=/usr/ \
 		RUNTIME_PREFIX=$(TOOLCHAIN_DIR)/uClibc_dev/ \
 		CROSS_COMPILE="$(TARGET_CROSS)" \
+		CPU_CFLAGS="$(TARGET_ABI)" \
 		HOSTCC="$(HOSTCC)" headers \
 		lib/crt1.o lib/crti.o lib/crtn.o \
 		install_headers
@@ -424,6 +426,7 @@ $(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.configured $(gcc_intermediate) $(LIBFLO
 		DEVEL_PREFIX=/ \
 		RUNTIME_PREFIX=/ \
 		CROSS_COMPILE="$(TARGET_CROSS)" \
+		CPU_CFLAGS="$(TARGET_ABI)" \
 		HOSTCC="$(HOSTCC)" \
 		all
 	touch -c $@
@@ -435,6 +438,7 @@ uclibc-menuconfig: dirs $(UCLIBC_DIR)/.config
 		DEVEL_PREFIX=/usr/ \
 		RUNTIME_PREFIX=$(TOOLCHAIN_DIR)/uClibc_dev/ \
 		CROSS_COMPILE="$(TARGET_CROSS)" \
+		CPU_CFLAGS="$(TARGET_ABI)" \
 		HOSTCC="$(HOSTCC)" \
 		menuconfig && \
 	touch -c $(UCLIBC_DIR)/.config
@@ -447,6 +451,7 @@ $(STAGING_DIR)/usr/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a
 		DEVEL_PREFIX=/usr/ \
 		RUNTIME_PREFIX=/ \
 		CROSS_COMPILE="$(TARGET_CROSS)" \
+		CPU_CFLAGS="$(TARGET_ABI)" \
 		install_runtime install_dev
 	# Install the kernel headers to the staging dir if necessary
 	if [ ! -f $(STAGING_DIR)/usr/include/linux/version.h ]; then \
@@ -477,6 +482,7 @@ $(TARGET_DIR)/lib/libc.so.0: $(STAGING_DIR)/usr/lib/libc.a
 		DEVEL_PREFIX=/usr/ \
 		RUNTIME_PREFIX=/ \
 		CROSS_COMPILE="$(TARGET_CROSS)" \
+		CPU_CFLAGS="$(TARGET_ABI)" \
 		install_runtime
 	touch -c $@
 
-- 
1.7.3.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [Buildroot] [PATCH 1/2] uClibc: bump 0.9.32.x version to 0.9.32.1
  2011-12-30 20:10 [Buildroot] [PATCH 1/2] uClibc: bump 0.9.32.x version to 0.9.32.1 Gustavo Zacarias
  2011-12-30 20:10 ` [Buildroot] [PATCH 2/2] toolchain: add powerpc SPE ABI support Gustavo Zacarias
@ 2012-01-02 14:55 ` Peter Korsgaard
  1 sibling, 0 replies; 3+ messages in thread
From: Peter Korsgaard @ 2012-01-02 14:55 UTC (permalink / raw)
  To: buildroot

>>>>> "Gustavo" == Gustavo Zacarias <gustavo@zacarias.com.ar> writes:

 Gustavo> Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-01-02 14:55 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-12-30 20:10 [Buildroot] [PATCH 1/2] uClibc: bump 0.9.32.x version to 0.9.32.1 Gustavo Zacarias
2011-12-30 20:10 ` [Buildroot] [PATCH 2/2] toolchain: add powerpc SPE ABI support Gustavo Zacarias
2012-01-02 14:55 ` [Buildroot] [PATCH 1/2] uClibc: bump 0.9.32.x version to 0.9.32.1 Peter Korsgaard

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.