* [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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox