* [Buildroot] [Review] Add gcc 4.5.1
@ 2010-09-20 22:03 Martin Banky
2010-09-20 22:03 ` [Buildroot] [PATCH 1/3] dbus: bump to 1.4.0 Martin Banky
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Martin Banky @ 2010-09-20 22:03 UTC (permalink / raw)
To: buildroot
This is the first pass at adding gcc 4.5.1 to buildroot. It builds fine for the
host and the target. The question I have, is the implementation the correct
way to change the toolchain? I couldn't find a lot of documentation regarding
the toolchain (as far as changing or updating it). Also, can the toolchain mk
files be updated to the new format or are their builds too complex?
[PATCH 1/3] dbus: bump to 1.4.0
[PATCH 2/3] m4: bump to 1.4.15
[PATCH 3/3] Added gcc 4.5.1 to buildroot
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH 1/3] dbus: bump to 1.4.0
2010-09-20 22:03 [Buildroot] [Review] Add gcc 4.5.1 Martin Banky
@ 2010-09-20 22:03 ` Martin Banky
2010-09-20 22:03 ` [Buildroot] [PATCH 2/3] m4: bump to 1.4.15 Martin Banky
` (2 subsequent siblings)
3 siblings, 0 replies; 8+ messages in thread
From: Martin Banky @ 2010-09-20 22:03 UTC (permalink / raw)
To: buildroot
Signed-off-by: Martin Banky <Martin.Banky@gmail.com>
---
.../dbus/dbus-1.2.12-launch-helper-xml-fix.patch | 33 --------------------
package/dbus/dbus.mk | 2 +-
2 files changed, 1 insertions(+), 34 deletions(-)
delete mode 100644 package/dbus/dbus-1.2.12-launch-helper-xml-fix.patch
diff --git a/package/dbus/dbus-1.2.12-launch-helper-xml-fix.patch b/package/dbus/dbus-1.2.12-launch-helper-xml-fix.patch
deleted file mode 100644
index bf6b4ae..0000000
--- a/package/dbus/dbus-1.2.12-launch-helper-xml-fix.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-dbus-daemon-launch-helper: fix build with libxml
-
-dbus-daemon-launch-helper links with the trival config parser, which
-doesn't provide bus_config_parser_check_doctype(), like the big parser does.
-The libxml loader unfortunately wants to call it, so this breaks the build.
-
-Fix it by including a dummy bus_config_parser_check_doctype() in the trivial
-config parser.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- bus/config-parser-trivial.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-Index: dbus-1.2.12/bus/config-parser-trivial.c
-===================================================================
---- dbus-1.2.12.orig/bus/config-parser-trivial.c
-+++ dbus-1.2.12/bus/config-parser-trivial.c
-@@ -310,6 +310,14 @@
- return &parser->service_dirs;
- }
-
-+dbus_bool_t
-+bus_config_parser_check_doctype (BusConfigParser *parser,
-+ const char *doctype,
-+ DBusError *error)
-+{
-+ return TRUE;
-+}
-+
- #ifdef DBUS_BUILD_TESTS
- #include <stdio.h>
- #include "test.h"
diff --git a/package/dbus/dbus.mk b/package/dbus/dbus.mk
index 141cf69..925977a 100644
--- a/package/dbus/dbus.mk
+++ b/package/dbus/dbus.mk
@@ -3,7 +3,7 @@
# dbus
#
#############################################################
-DBUS_VERSION = 1.2.16
+DBUS_VERSION = 1.4.0
DBUS_SOURCE = dbus-$(DBUS_VERSION).tar.gz
DBUS_SITE = http://dbus.freedesktop.org/releases/dbus/
DBUS_LIBTOOL_PATCH = NO
--
1.7.2.3
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH 2/3] m4: bump to 1.4.15
2010-09-20 22:03 [Buildroot] [Review] Add gcc 4.5.1 Martin Banky
2010-09-20 22:03 ` [Buildroot] [PATCH 1/3] dbus: bump to 1.4.0 Martin Banky
@ 2010-09-20 22:03 ` Martin Banky
2010-09-20 22:03 ` [Buildroot] [PATCH 3/3] Added gcc 4.5.1 to buildroot Martin Banky
2010-11-03 19:23 ` [Buildroot] [Review] Add gcc 4.5.1 Gustavo Zacarias
3 siblings, 0 replies; 8+ messages in thread
From: Martin Banky @ 2010-09-20 22:03 UTC (permalink / raw)
To: buildroot
Signed-off-by: Martin Banky <Martin.Banky@gmail.com>
---
package/m4/m4-1.4.15-00-MB_CUR_MAX.patch | 13 ++++++++++++
package/m4/m4-1.4.15-01-spawn-sched_param.patch | 20 +++++++++++++++++++
package/m4/m4-1.4.8-001-MB_CUR_MAX.patch | 13 ------------
package/m4/m4-1.4.9-002-no-wchar.patch | 24 -----------------------
package/m4/m4.mk | 6 +----
5 files changed, 34 insertions(+), 42 deletions(-)
create mode 100644 package/m4/m4-1.4.15-00-MB_CUR_MAX.patch
create mode 100644 package/m4/m4-1.4.15-01-spawn-sched_param.patch
delete mode 100644 package/m4/m4-1.4.8-001-MB_CUR_MAX.patch
delete mode 100644 package/m4/m4-1.4.9-002-no-wchar.patch
diff --git a/package/m4/m4-1.4.15-00-MB_CUR_MAX.patch b/package/m4/m4-1.4.15-00-MB_CUR_MAX.patch
new file mode 100644
index 0000000..fce3673
--- /dev/null
+++ b/package/m4/m4-1.4.15-00-MB_CUR_MAX.patch
@@ -0,0 +1,13 @@
+--- m4-1.4.8.orig/lib/regcomp.c 2006-09-24 06:28:37.000000000 +0200
++++ m4-1.4.8/lib/regcomp.c 2007-01-06 20:53:10.000000000 +0100
+@@ -871,6 +871,10 @@ init_dfa (re_dfa_t *dfa, size_t pat_len)
+ dfa->state_table = calloc (sizeof (struct re_state_table_entry), table_size);
+ dfa->state_hash_mask = table_size - 1;
+
++#ifndef MB_CUR_MAX
++#define MB_CUR_MAX (0)
++#endif
++
+ dfa->mb_cur_max = MB_CUR_MAX;
+ #ifdef _LIBC
+ if (dfa->mb_cur_max == 6
diff --git a/package/m4/m4-1.4.15-01-spawn-sched_param.patch b/package/m4/m4-1.4.15-01-spawn-sched_param.patch
new file mode 100644
index 0000000..d43db9f
--- /dev/null
+++ b/package/m4/m4-1.4.15-01-spawn-sched_param.patch
@@ -0,0 +1,20 @@
+"Apparently, glibc's headers expose the full definition of "struct
+sched_param" in cases not required by the standard, and gnulib attempts to
+optimize based on this. uClibc does not share glibc's behavior in this one
+case, but since it defines __GLIBC__, gnulib sees no need for caution."
+
+Per Michael Deutschmann
+
+See http://lists.busybox.net/pipermail/uclibc/2010-March/043721.html
+
+--- bison-2.4.3-orig/lib/spawn.in.h 2010-04-11 11:31:37.000000000 -0700
++++ bison-2.4.3/lib/spawn.in.h 2010-09-18 15:42:05.000000000 -0700
+@@ -31,7 +31,7 @@
+
+ /* Get definitions of 'struct sched_param' and 'sigset_t'.
+ But avoid namespace pollution on glibc systems. */
+-#ifndef __GLIBC__
++#if defined __UCLIBC__ || !defined __GLIBC__
+ # include <sched.h>
+ # include <signal.h>
+ #endif
diff --git a/package/m4/m4-1.4.8-001-MB_CUR_MAX.patch b/package/m4/m4-1.4.8-001-MB_CUR_MAX.patch
deleted file mode 100644
index fce3673..0000000
--- a/package/m4/m4-1.4.8-001-MB_CUR_MAX.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- m4-1.4.8.orig/lib/regcomp.c 2006-09-24 06:28:37.000000000 +0200
-+++ m4-1.4.8/lib/regcomp.c 2007-01-06 20:53:10.000000000 +0100
-@@ -871,6 +871,10 @@ init_dfa (re_dfa_t *dfa, size_t pat_len)
- dfa->state_table = calloc (sizeof (struct re_state_table_entry), table_size);
- dfa->state_hash_mask = table_size - 1;
-
-+#ifndef MB_CUR_MAX
-+#define MB_CUR_MAX (0)
-+#endif
-+
- dfa->mb_cur_max = MB_CUR_MAX;
- #ifdef _LIBC
- if (dfa->mb_cur_max == 6
diff --git a/package/m4/m4-1.4.9-002-no-wchar.patch b/package/m4/m4-1.4.9-002-no-wchar.patch
deleted file mode 100644
index 7b67295..0000000
--- a/package/m4/m4-1.4.9-002-no-wchar.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- m4-1.4.9/lib/printf-args-orig.h 2007-03-23 05:50:53.000000000 -0700
-+++ m4-1.4.9/lib/printf-args.h 2010-09-18 19:09:21.000000000 -0700
-@@ -29,6 +29,9 @@
- /* Get wint_t. */
- #if HAVE_WINT_T
- # include <wchar.h>
-+# ifndef __UCLIBC_HAS_WCHAR__
-+typedef int wint_t;
-+# endif
- #endif
-
- /* Get va_list. */
---- m4-1.4.9/lib/wctype_-orig.h 2010-09-18 19:13:07.000000000 -0700
-+++ m4-1.4.9/lib/wctype_.h 2010-09-18 19:09:21.000000000 -0700
-@@ -39,6 +39,9 @@
- # include <stdio.h>
- # include <time.h>
- # include <wchar.h>
-+# ifndef __UCLIBC_HAS_WCHAR__
-+typedef int wint_t;
-+# endif
- typedef wint_t __wctype_wint_t;
- #else
- typedef int __wctype_wint_t;
diff --git a/package/m4/m4.mk b/package/m4/m4.mk
index a0b56c4..da38ce4 100644
--- a/package/m4/m4.mk
+++ b/package/m4/m4.mk
@@ -3,7 +3,7 @@
# m4
#
#############################################################
-M4_VERSION = 1.4.9
+M4_VERSION = 1.4.15
M4_SOURCE = m4-$(M4_VERSION).tar.bz2
M4_SITE = $(BR2_GNU_MIRROR)/m4
@@ -13,10 +13,6 @@ endif
M4_CONF_ENV = gl_cv_func_gettimeofday_clobber=no
-ifneq ($(BR2_USE_WCHAR),y)
-M4_CONF_ENV += gt_cv_c_wchar_t=no gl_cv_absolute_wchar_h=__fpending.h
-endif
-
HOST_M4_CONF_OPT = --disable-static
$(eval $(call AUTOTARGETS,package,m4))
--
1.7.2.3
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH 3/3] Added gcc 4.5.1 to buildroot
2010-09-20 22:03 [Buildroot] [Review] Add gcc 4.5.1 Martin Banky
2010-09-20 22:03 ` [Buildroot] [PATCH 1/3] dbus: bump to 1.4.0 Martin Banky
2010-09-20 22:03 ` [Buildroot] [PATCH 2/3] m4: bump to 1.4.15 Martin Banky
@ 2010-09-20 22:03 ` Martin Banky
2010-11-03 19:23 ` [Buildroot] [Review] Add gcc 4.5.1 Gustavo Zacarias
3 siblings, 0 replies; 8+ messages in thread
From: Martin Banky @ 2010-09-20 22:03 UTC (permalink / raw)
To: buildroot
mpc: gcc 4.5.1 requires this now.
gcc: The patches from gcc 4.4.4 are still needed
Signed-off-by: Martin Banky <Martin.Banky@gmail.com>
---
package/Config.in | 1 +
package/mpc/Config.in | 20 +++
package/mpc/mpc.mk | 111 ++++++++++++++++
toolchain/binutils/binutils.mk | 16 +++
toolchain/gcc/4.5.1/100-uclibc-conf.patch | 33 +++++
toolchain/gcc/4.5.1/301-missing-execinfo_h.patch | 11 ++
toolchain/gcc/4.5.1/302-c99-snprintf.patch | 13 ++
.../gcc/4.5.1/305-libmudflap-susv3-legacy.patch | 49 +++++++
toolchain/gcc/4.5.1/810-arm-softfloat-libgcc.patch | 38 ++++++
.../powerpc-link-with-math-lib.patch.conditional | 137 ++++++++++++++++++++
toolchain/gcc/Config.in | 5 +
toolchain/gcc/gcc-uclibc-4.x.mk | 14 ++-
12 files changed, 447 insertions(+), 1 deletions(-)
create mode 100644 package/mpc/Config.in
create mode 100644 package/mpc/mpc.mk
create mode 100644 toolchain/gcc/4.5.1/100-uclibc-conf.patch
create mode 100644 toolchain/gcc/4.5.1/301-missing-execinfo_h.patch
create mode 100644 toolchain/gcc/4.5.1/302-c99-snprintf.patch
create mode 100644 toolchain/gcc/4.5.1/305-libmudflap-susv3-legacy.patch
create mode 100644 toolchain/gcc/4.5.1/810-arm-softfloat-libgcc.patch
create mode 100644 toolchain/gcc/4.5.1/powerpc-link-with-math-lib.patch.conditional
diff --git a/package/Config.in b/package/Config.in
index ce6057b..7a38e7d 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -61,6 +61,7 @@ source "package/grep/Config.in"
endif
source "package/intltool/Config.in"
source "package/make/Config.in"
+source "package/mpc/Config.in"
source "package/mpfr/Config.in"
source "package/libtool/Config.in"
source "package/m4/Config.in"
diff --git a/package/mpc/Config.in b/package/mpc/Config.in
new file mode 100644
index 0000000..d7cd4cc
--- /dev/null
+++ b/package/mpc/Config.in
@@ -0,0 +1,20 @@
+config BR2_PACKAGE_LIBMPC
+ bool "mpc"
+ select BR2_PACKAGE_LIBMPFR
+ select BR2_PACKAGE_LIBGMP
+ help
+ Mpc is a C library for the arithmetic of complex numbers with
+ arbitrarily high precision and correct rounding of the result.
+ It is built upon and follows the same principles as Mpfr.
+
+ http://www.multiprecision.org/
+
+
+config BR2_PACKAGE_LIBMPC_HEADERS
+ bool "mpc headers for target"
+ depends on BR2_PACKAGE_LIBMPC
+ select BR2_PACKAGE_LIBMPFR_HEADERS
+ select BR2_PACKAGE_LIBGMP_HEADERS
+ help
+ Install the mpc headers for the target.
+
diff --git a/package/mpc/mpc.mk b/package/mpc/mpc.mk
new file mode 100644
index 0000000..9fd2ba7
--- /dev/null
+++ b/package/mpc/mpc.mk
@@ -0,0 +1,111 @@
+#libmpc: libgmp libmpfr $(TARGET_DIR)/usr/lib/libmpc$(LIBTGTEXT)
+
+#############################################################
+#
+# mpc
+#
+#############################################################
+MPC_VERSION:=0.8.2
+MPC_SOURCE:=mpc-$(MPC_VERSION).tar.gz
+MPC_SITE:=http://www.multiprecision.org/mpc/download/$(MPC_SOURCE)
+MPC_CAT:=$(ZCAT)
+MPC_DIR:=$(TOOLCHAIN_DIR)/mpc-$(MPC_VERSION)
+MPC_TARGET_DIR:=$(BUILD_DIR)/mpc-$(MPC_VERSION)
+MPC_BINARY:=libmpc$(LIBTGTEXT)
+MPC_HOST_BINARY:=libmpc$(HOST_LIBEXT)
+MPC_LIBVERSION:=1.0.0
+
+$(DL_DIR)/$(MPC_SOURCE):
+ $(call DOWNLOAD,$(MPC_SITE),$(MPC_SOURCE))
+
+libmpc-source: $(DL_DIR)/$(MPC_SOURCE)
+
+$(MPC_DIR)/.unpacked: $(DL_DIR)/$(MPC_SOURCE)
+ $(MPC_CAT) $(DL_DIR)/$(MPC_SOURCE) | tar -C $(TOOLCHAIN_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(MPC_DIR) package/mpc/ \*.patch
+ $(CONFIG_UPDATE) $(@D)
+ touch $@
+
+$(MPC_TARGET_DIR)/.configured: $(MPC_DIR)/.unpacked
+ mkdir -p $(MPC_TARGET_DIR)
+ (cd $(MPC_TARGET_DIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ $(MPC_DIR)/configure $(QUIET) \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ $(PREFERRED_LIB_FLAGS) \
+ --with-mpfr-lib=$(TARGET_DIR)/usr/lib/ \
+ --with-gmp-lib=$(TARGET_DIR)/usr/lib/ \
+ --with-mpfr-include=$(STAGING_DIR)/usr/include/ \
+ --with-gmp-include=$(STAGING_DIR)/usr/include/ \
+ $(DISABLE_NLS) \
+ )
+ touch $@
+
+$(MPC_TARGET_DIR)/.libs/$(MPC_BINARY): $(MPC_TARGET_DIR)/.configured
+ #$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(MPC_TARGET_DIR)
+ $(MAKE) -C $(MPC_TARGET_DIR)
+
+$(STAGING_DIR)/usr/lib/$(MPC_BINARY): $(MPC_TARGET_DIR)/.libs/$(MPC_BINARY)
+ $(MAKE) DESTDIR=$(STAGING_DIR) -C $(MPC_TARGET_DIR) install
+ $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(STAGING_DIR)/usr/lib/libmpc$(LIBTGTEXT)*
+
+$(TARGET_DIR)/usr/lib/libmpc.so $(TARGET_DIR)/usr/lib/libmpc.so.$(MPC_LIBVERSION) $(TARGET_DIR)/usr/lib/libmpc.a: $(STAGING_DIR)/usr/lib/$(MPC_BINARY)
+ cp -dpf $(STAGING_DIR)/usr/lib/libmpc$(LIBTGTEXT)* $(TARGET_DIR)/usr/lib/
+ifeq ($(BR2_PACKAGE_LIBMPC_HEADERS),y)
+ test -d $(TARGET_DIR)/usr/include || mkdir -p $(TARGET_DIR)/usr/include
+ cp -dpf $(STAGING_DIR)/usr/include/mpc.h $(TARGET_DIR)/usr/include/
+endif
+
+libmpc: $(TARGET_DIR)/usr/lib/libmpc$(LIBTGTEXT)
+stage-libmpc: $(STAGING_DIR)/usr/lib/$(MPC_BINARY)
+
+libmpc-clean:
+ rm -f $(TARGET_DIR)/usr/lib/libmpc.* $(TARGET_DIR)/usr/include/mpc.h \
+ $(STAGING_DIR)/usr/lib/libmpc* $(STAGING_DIR)/usr/include/mpc.h
+ -$(MAKE) -C $(MPC_TARGET_DIR) clean
+
+libmpc-dirclean:
+ rm -rf $(MPC_TARGET_DIR) $(MPC_DIR)
+
+MPC_DIR2:=$(TOOLCHAIN_DIR)/mpc-$(MPC_VERSION)-host
+MPC_HOST_DIR:=$(TOOLCHAIN_DIR)/mpc
+$(MPC_DIR2)/.configured: $(MPC_DIR)/.unpacked
+ mkdir -p $(MPC_DIR2)
+ (cd $(MPC_DIR2); rm -rf config.cache; \
+ $(HOST_CONFIGURE_OPTS) \
+ $(MPC_CPP_FLAGS) \
+ $(MPC_DIR)/configure $(QUIET) \
+ --prefix="$(MPC_HOST_DIR)" \
+ --build=$(GNU_HOST_NAME) \
+ --host=$(GNU_HOST_NAME) \
+ --disable-shared \
+ --enable-static \
+ --with-mpfr=$(MPFR_HOST_DIR) \
+ --with-gmp=$(GMP_HOST_DIR) \
+ $(DISABLE_NLS) \
+ )
+ touch $@
+
+$(MPC_HOST_DIR)/lib/libmpc$(HOST_LIBEXT): $(MPC_DIR2)/.configured
+ $(MAKE) -C $(MPC_DIR2) install
+
+host-libmpc: $(MPC_HOST_DIR)/lib/$(MPC_HOST_BINARY)
+host-libmpc-source: libmpc-source
+host-libmpc-clean:
+ rm -rf $(MPC_HOST_DIR)
+ -$(MAKE) -C $(MPC_DIR2) clean
+host-libmpc-dirclean:
+ rm -rf $(MPC_HOST_DIR) $(MPC_DIR2)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(BR2_PACKAGE_LIBMPC),y)
+TARGETS+=libmpc
+endif
diff --git a/toolchain/binutils/binutils.mk b/toolchain/binutils/binutils.mk
index 85b605e..ef9f644 100644
--- a/toolchain/binutils/binutils.mk
+++ b/toolchain/binutils/binutils.mk
@@ -29,6 +29,22 @@ EXTRA_BINUTILS_CONFIG_OPTIONS+=--with-mpfr="$(MPFR_HOST_DIR)"
BINUTILS_TARGET_CONFIG_OPTIONS=--with-gmp="$(GMP_TARGET_DIR)"
BINUTILS_TARGET_CONFIG_OPTIONS+=--with-mpfr="$(MPFR_TARGET_DIR)"
+ifeq ($(BR2_PACKAGE_LIBMPC),y)
+BINUTILS_ADD_MPC = y
+endif
+
+ifeq ($(findstring x4.5.,x$(GCC_VERSION)),x4.5.)
+BINUTILS_ADD_MPC = y
+endif
+
+ifeq ($(BINUTILS_ADD_MPC),y)
+BINUTILS_HOST_PREREQ += $(TOOLCHAIN_DIR)/mpc/lib/libmpc$(HOST_LIBEXT)
+HOST_SOURCE += host-libmpc-source
+BINUTILS_TARGET_PREREQ += $(TARGET_DIR)/usr/lib/libmpc$(LIBTGTEXT)
+EXTRA_BINUTILS_CONFIG_OPTIONS += --with-mpc="$(MPC_HOST_DIR)"
+BINUTILS_TARGET_CONFIG_OPTIONS += --with-mpc="$(MPC_TARGET_DIR)"
+endif
+
BINUTILS_PATCH_DIR:=toolchain/binutils/$(BINUTILS_VERSION)
ifneq ($(filter xtensa%,$(ARCH)),)
diff --git a/toolchain/gcc/4.5.1/100-uclibc-conf.patch b/toolchain/gcc/4.5.1/100-uclibc-conf.patch
new file mode 100644
index 0000000..cca8c82
--- /dev/null
+++ b/toolchain/gcc/4.5.1/100-uclibc-conf.patch
@@ -0,0 +1,33 @@
+--- gcc/gcc/config/--- gcc/contrib/regression/objs-gcc.sh
++++ gcc/contrib/regression/objs-gcc.sh
+@@ -105,6 +105,10 @@
+ then
+ make all-gdb all-dejagnu all-ld || exit 1
+ make install-gdb install-dejagnu install-ld || exit 1
++elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
++ then
++ make all-gdb all-dejagnu all-ld || exit 1
++ make install-gdb install-dejagnu install-ld || exit 1
+ elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
+ make bootstrap || exit 1
+ make install || exit 1
+--- gcc/libjava/classpath/ltconfig
++++ gcc/libjava/classpath/ltconfig
+@@ -603,7 +603,7 @@
+
+ # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
+ case $host_os in
+-linux-gnu*) ;;
++linux-gnu*|linux-uclibc*) ;;
+ linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
+ esac
+
+@@ -1251,7 +1251,7 @@
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
diff --git a/toolchain/gcc/4.5.1/301-missing-execinfo_h.patch b/toolchain/gcc/4.5.1/301-missing-execinfo_h.patch
new file mode 100644
index 0000000..0e2092f
--- /dev/null
+++ b/toolchain/gcc/4.5.1/301-missing-execinfo_h.patch
@@ -0,0 +1,11 @@
+--- gcc-4.0.0/boehm-gc/include/gc.h-orig 2005-04-28 22:28:57.000000000 -0500
++++ gcc-4.0.0/boehm-gc/include/gc.h 2005-04-28 22:30:38.000000000 -0500
+@@ -500,7 +500,7 @@
+ #ifdef __linux__
+ # include <features.h>
+ # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
+- && !defined(__ia64__)
++ && !defined(__ia64__) && !defined(__UCLIBC__)
+ # ifndef GC_HAVE_BUILTIN_BACKTRACE
+ # define GC_HAVE_BUILTIN_BACKTRACE
+ # endif
diff --git a/toolchain/gcc/4.5.1/302-c99-snprintf.patch b/toolchain/gcc/4.5.1/302-c99-snprintf.patch
new file mode 100644
index 0000000..ba51a0e
--- /dev/null
+++ b/toolchain/gcc/4.5.1/302-c99-snprintf.patch
@@ -0,0 +1,13 @@
+Index: gcc-4.3.0/libstdc++-v3/include/c_global/cstdio
+===================================================================
+--- gcc-4.3.0/libstdc++-v3/include/c_global/cstdio (revision 129202)
++++ gcc-4.3.0/libstdc++-v3/include/c_global/cstdio (working copy)
+@@ -144,7 +144,7 @@
+
+ _GLIBCXX_END_NAMESPACE
+
+-#if _GLIBCXX_USE_C99
++#if _GLIBCXX_USE_C99 || defined __UCLIBC__
+
+ #undef snprintf
+ #undef vfscanf
diff --git a/toolchain/gcc/4.5.1/305-libmudflap-susv3-legacy.patch b/toolchain/gcc/4.5.1/305-libmudflap-susv3-legacy.patch
new file mode 100644
index 0000000..374b1f8
--- /dev/null
+++ b/toolchain/gcc/4.5.1/305-libmudflap-susv3-legacy.patch
@@ -0,0 +1,49 @@
+Index: gcc-4.2/libmudflap/mf-hooks2.c
+===================================================================
+--- gcc-4.2/libmudflap/mf-hooks2.c (revision 119834)
++++ gcc-4.2/libmudflap/mf-hooks2.c (working copy)
+@@ -427,7 +427,7 @@
+ {
+ TRACE ("%s\n", __PRETTY_FUNCTION__);
+ MF_VALIDATE_EXTENT(s, n, __MF_CHECK_WRITE, "bzero region");
+- bzero (s, n);
++ memset (s, 0, n);
+ }
+
+
+@@ -437,7 +437,7 @@
+ TRACE ("%s\n", __PRETTY_FUNCTION__);
+ MF_VALIDATE_EXTENT(src, n, __MF_CHECK_READ, "bcopy src");
+ MF_VALIDATE_EXTENT(dest, n, __MF_CHECK_WRITE, "bcopy dest");
+- bcopy (src, dest, n);
++ memmove (dest, src, n);
+ }
+
+
+@@ -447,7 +447,7 @@
+ TRACE ("%s\n", __PRETTY_FUNCTION__);
+ MF_VALIDATE_EXTENT(s1, n, __MF_CHECK_READ, "bcmp 1st arg");
+ MF_VALIDATE_EXTENT(s2, n, __MF_CHECK_READ, "bcmp 2nd arg");
+- return bcmp (s1, s2, n);
++ return n == 0 ? 0 : memcmp (s1, s2, n);
+ }
+
+
+@@ -456,7 +456,7 @@
+ size_t n = strlen (s);
+ TRACE ("%s\n", __PRETTY_FUNCTION__);
+ MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "index region");
+- return index (s, c);
++ return strchr (s, c);
+ }
+
+
+@@ -465,7 +465,7 @@
+ size_t n = strlen (s);
+ TRACE ("%s\n", __PRETTY_FUNCTION__);
+ MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "rindex region");
+- return rindex (s, c);
++ return strrchr (s, c);
+ }
+
+ /* XXX: stpcpy, memccpy */
diff --git a/toolchain/gcc/4.5.1/810-arm-softfloat-libgcc.patch b/toolchain/gcc/4.5.1/810-arm-softfloat-libgcc.patch
new file mode 100644
index 0000000..e6a30a3
--- /dev/null
+++ b/toolchain/gcc/4.5.1/810-arm-softfloat-libgcc.patch
@@ -0,0 +1,38 @@
+[PATCH] add the correct symbols to libgcc for uclibc arm softfloat
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ gcc/config/arm/linux-elf.h | 2 +-
+ gcc/config/arm/t-linux | 6 +++++-
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+Index: gcc-4.4.0/gcc/config/arm/t-linux
+===================================================================
+--- gcc-4.4.0.orig/gcc/config/arm/t-linux
++++ gcc-4.4.0/gcc/config/arm/t-linux
+@@ -4,7 +4,11 @@
+
+ LIB1ASMSRC = arm/lib1funcs.asm
+ LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \
+- _arm_addsubdf3 _arm_addsubsf3
++ _arm_addsubdf3 _arm_addsubsf3 \
++ _arm_negdf2 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \
++ _arm_fixdfsi _arm_fixunsdfsi _arm_truncdfsf2 \
++ _arm_negsf2 _arm_muldivsf3 _arm_cmpsf2 _arm_unordsf2 \
++ _arm_fixsfsi _arm_fixunssfsi
+
+ # MULTILIB_OPTIONS = mhard-float/msoft-float
+ # MULTILIB_DIRNAMES = hard-float soft-float
+Index: gcc-4.4.0/gcc/config/arm/linux-elf.h
+===================================================================
+--- gcc-4.4.0.orig/gcc/config/arm/linux-elf.h
++++ gcc-4.4.0/gcc/config/arm/linux-elf.h
+@@ -60,7 +60,7 @@
+ %{shared:-lc} \
+ %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
+
+-#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
++#define LIBGCC_SPEC "-lgcc"
+
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+
diff --git a/toolchain/gcc/4.5.1/powerpc-link-with-math-lib.patch.conditional b/toolchain/gcc/4.5.1/powerpc-link-with-math-lib.patch.conditional
new file mode 100644
index 0000000..3fe8757
--- /dev/null
+++ b/toolchain/gcc/4.5.1/powerpc-link-with-math-lib.patch.conditional
@@ -0,0 +1,137 @@
+http://gcc.gnu.org/ml/gcc-patches/2008-10/msg00269.html
+
+On glibc the libc.so carries a copy of the math function copysignl() but
+on uClibc math functions like copysignl() live in libm. Since libgcc_s
+contains unresolved symbols, any attempt to link against libgcc_s
+without explicitely specifying -lm fails, resulting in a broken
+bootstrap of the compiler.
+
+
+diff -rdup gcc-4.4.0.old/gcc/config/t-slibgcc-elf-ver gcc-4.4.0/gcc/config/t-slibgcc-elf-ver
+
+diff -durN gcc-4.4.4.orig/gcc/config/t-slibgcc-elf-ver gcc-4.4.4/gcc/config/t-slibgcc-elf-ver
+--- gcc-4.4.4.orig/gcc/config/t-slibgcc-elf-ver 2010-01-04 16:13:08.000000000 +0100
++++ gcc-4.4.4/gcc/config/t-slibgcc-elf-ver 2010-05-16 19:38:36.000000000 +0200
+@@ -9,7 +9,7 @@
+ SHLIB_OBJS = @shlib_objs@
+ SHLIB_DIR = @multilib_dir@
+ SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
+-SHLIB_LC = -lc
++SHLIB_LC = @libgcc_libm@ -lc
+ SHLIB_MAKE_SOLINK = $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
+ SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_SONAME) \
+ $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
+diff -durN gcc-4.4.4.orig/libgcc/Makefile.in gcc-4.4.4/libgcc/Makefile.in
+--- gcc-4.4.4.orig/libgcc/Makefile.in 2009-04-10 01:23:07.000000000 +0200
++++ gcc-4.4.4/libgcc/Makefile.in 2010-05-16 19:38:36.000000000 +0200
+@@ -39,6 +39,7 @@
+ decimal_float = @decimal_float@
+ enable_decimal_float = @enable_decimal_float@
+ fixed_point = @fixed_point@
++LIBGCC_LIBM = @LIBGCC_LIBM@
+
+ host_noncanonical = @host_noncanonical@
+
+@@ -787,9 +788,10 @@
+ @multilib_dir@,$(MULTIDIR),$(subst \
+ @shlib_objs@,$(objects),$(subst \
+ @shlib_base_name@,libgcc_s,$(subst \
++ @libgcc_libm@,$(LIBGCC_LIBM),$(subst \
+ @shlib_map_file@,$(mapfile),$(subst \
+ @shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(subst \
+- @shlib_slibdir@,$(shlib_slibdir),$(SHLIB_LINK))))))))
++ @shlib_slibdir@,$(shlib_slibdir),$(SHLIB_LINK)))))))))
+
+ libunwind$(SHLIB_EXT): $(libunwind-s-objects) $(extra-parts)
+ # @multilib_flags@ is still needed because this may use
+diff -durN gcc-4.4.4.orig/libgcc/configure gcc-4.4.4/libgcc/configure
+--- gcc-4.4.4.orig/libgcc/configure 2008-11-20 18:13:01.000000000 +0100
++++ gcc-4.4.4/libgcc/configure 2010-05-16 19:38:36.000000000 +0200
+@@ -272,7 +272,7 @@
+ PACKAGE_BUGREPORT=''
+
+ ac_unique_file="static-object.mk"
+-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libgcc_topdir enable_shared slibdir INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AWK build build_cpu build_vendor build_os host host_cpu host_vendor host_os host_noncanonical build_libsubdir build_subdir host_subdir target_subdir AR ac_ct_AR LIPO ac_ct_LIPO NM ac_ct_NM RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP decimal_float enable_decimal_float fixed_point vis_hide set_have_cc_tls tmake_file extra_parts asm_hidden_op LIBOBJS LTLIBOBJS'
++ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libgcc_topdir enable_shared slibdir INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AWK build build_cpu build_vendor build_os host host_cpu host_vendor host_os host_noncanonical build_libsubdir build_subdir host_subdir target_subdir AR ac_ct_AR LIPO ac_ct_LIPO NM ac_ct_NM RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP decimal_float enable_decimal_float fixed_point vis_hide set_have_cc_tls LIBGCC_LIBM tmake_file extra_parts asm_hidden_op LIBOBJS LTLIBOBJS'
+ ac_subst_files=''
+ ac_pwd=`pwd`
+
+@@ -3547,6 +3547,39 @@
+ fi
+
+
++# On powerpc libgcc_s references copysignl which is a libm function but
++# glibc apparently also provides it via libc as opposed to uClibc where
++# it lives in libm.
++echo "$as_me:$LINENO: checking for library containing copysignl" >&5
++echo $ECHO_N "checking for library containing copysignl... $ECHO_C" >&6
++if test "${libgcc_cv_copysignl_lib+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++ echo '#include <features.h>' > conftest.c
++ echo 'int the_libc = __UCLIBC__ + __powerpc__;' >> conftest.c
++ libgcc_cv_copysignl_lib="-lc"
++ if { ac_try='${CC-cc} -S conftest.c -o conftest.s 1>&5'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; }
++ then
++ libgcc_cv_copysignl_lib="-lm"
++ fi
++ rm -f conftest.*
++
++fi
++echo "$as_me:$LINENO: result: $libgcc_cv_copysignl_lib" >&5
++echo "${ECHO_T}$libgcc_cv_copysignl_lib" >&6
++
++case /${libgcc_cv_copysignl_lib}/ in
++ /-lm/) LIBGCC_LIBM="$LIBGCC_LIBM -lm" ;;
++ *) LIBGCC_LIBM= ;;
++esac
++
++
+ # Conditionalize the makefile for this target machine.
+ tmake_file_=
+ for f in ${tmake_file}
+@@ -4267,6 +4300,7 @@
+ s, at fixed_point@,$fixed_point,;t t
+ s, at vis_hide@,$vis_hide,;t t
+ s, at set_have_cc_tls@,$set_have_cc_tls,;t t
++s, at LIBGCC_LIBM@,$LIBGCC_LIBM,;t t
+ s, at tmake_file@,$tmake_file,;t t
+ s, at extra_parts@,$extra_parts,;t t
+ s, at asm_hidden_op@,$asm_hidden_op,;t t
+diff -durN gcc-4.4.4.orig/libgcc/configure.ac gcc-4.4.4/libgcc/configure.ac
+--- gcc-4.4.4.orig/libgcc/configure.ac 2008-11-20 18:13:01.000000000 +0100
++++ gcc-4.4.4/libgcc/configure.ac 2010-05-16 19:38:36.000000000 +0200
+@@ -223,6 +223,27 @@
+ fi
+ AC_SUBST(set_have_cc_tls)
+
++# On powerpc libgcc_s references copysignl which is a libm function but
++# glibc apparently also provides it via libc as opposed to uClibc where
++# it lives in libm.
++AC_CACHE_CHECK
++ libgcc_cv_copysignl_lib,
++ echo '#include <features.h>' > conftest.c
++ echo 'int the_libc = __UCLIBC__ + __powerpc__;' >> conftest.c
++ libgcc_cv_copysignl_lib="-lc"
++ if AC_TRY_COMMAND(${CC-cc} -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD)
++ then
++ libgcc_cv_copysignl_lib="-lm"
++ fi
++ rm -f conftest.*
++ ])
++
++case /${libgcc_cv_copysignl_lib}/ in
++ /-lm/) LIBGCC_LIBM="$LIBGCC_LIBM -lm" ;;
++ *) LIBGCC_LIBM= ;;
++esac
++AC_SUBST(LIBGCC_LIBM)
++
+ # Conditionalize the makefile for this target machine.
+ tmake_file_=
+ for f in ${tmake_file}
diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in
index 70d8de9..2d10dda 100644
--- a/toolchain/gcc/Config.in
+++ b/toolchain/gcc/Config.in
@@ -25,6 +25,10 @@ choice
depends on !BR2_avr32
bool "gcc 4.4.x"
+ config BR2_GCC_VERSION_4_5_X
+ depends on !BR2_avr32
+ bool "gcc 4.5.x"
+
config BR2_GCC_VERSION_SNAP
depends on !BR2_avr32
bool "gcc snapshot"
@@ -48,6 +52,7 @@ config BR2_GCC_VERSION
default "4.2.4" if BR2_GCC_VERSION_4_2_4
default "4.3.5" if BR2_GCC_VERSION_4_3_X
default "4.4.4" if BR2_GCC_VERSION_4_4_X
+ default "4.5.1" if BR2_GCC_VERSION_4_5_X
default $BR2_GCC_SNAP_DATE if BR2_GCC_VERSION_SNAP
config BR2_EXTRA_GCC_CONFIG_OPTIONS
diff --git a/toolchain/gcc/gcc-uclibc-4.x.mk b/toolchain/gcc/gcc-uclibc-4.x.mk
index f17b73f..bc9928a 100644
--- a/toolchain/gcc/gcc-uclibc-4.x.mk
+++ b/toolchain/gcc/gcc-uclibc-4.x.mk
@@ -101,12 +101,20 @@ GCC_WITH_HOST_GMP=--with-gmp=$(GMP_HOST_DIR)
GCC_WITH_HOST_MPFR=--with-mpfr=$(MPFR_HOST_DIR)
HOST_SOURCE += host-libgmp-source host-libmpfr-source
+ifeq ($(findstring x4.5.,x$(GCC_VERSION)),x4.5.)
+GCC_WITH_HOST_MPC=--with-mpc=$(MPC_HOST_DIR)
+HOST_SOURCE += host-libmpc-source
+endif
+
ifeq ($(BR2_INSTALL_FORTRAN),y)
GCC_TARGET_LANGUAGES:=$(GCC_TARGET_LANGUAGES),fortran
#GCC_TARGET_PREREQ+=$(TARGET_DIR)/usr/lib/libmpfr.so $(TARGET_DIR)/usr/lib/libgmp.so
#GCC_STAGING_PREREQ+=$(TOOLCHAIN_DIR)/mpfr/lib/libmpfr.so
GCC_WITH_TARGET_GMP=--with-gmp="$(GMP_TARGET_DIR)"
GCC_WITH_TARGET_MPFR=--with-mpfr="$(MPFR_TARGET_DIR)"
+ifeq ($(findstring x4.5.,x$(GCC_VERSION)),x4.5.)
+GCC_WITH_TARGET_MPC=--with-mpc="$(MPC_TARGET_DIR)"
+endif
endif
ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
@@ -207,6 +215,7 @@ $(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.patched
$(GCC_TLS) \
$(GCC_WITH_HOST_GMP) \
$(GCC_WITH_HOST_MPFR) \
+ $(GCC_WITH_HOST_MPC) \
$(DISABLE_NLS) \
$(THREADS) \
$(GCC_DECIMAL_FLOAT) \
@@ -282,6 +291,7 @@ $(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched
$(GCC_TLS) \
$(GCC_WITH_HOST_GMP) \
$(GCC_WITH_HOST_MPFR) \
+ $(GCC_WITH_HOST_MPC) \
$(DISABLE_NLS) \
$(THREADS) \
$(MULTILIB) \
@@ -358,6 +368,7 @@ $(GCC_BUILD_DIR3)/.configured: $(GCC_SRC_DIR)/.patched $(GCC_STAGING_PREREQ)
$(GCC_SHARED_LIBGCC) \
$(GCC_WITH_HOST_GMP) \
$(GCC_WITH_HOST_MPFR) \
+ $(GCC_WITH_HOST_MPC) \
$(DISABLE_NLS) \
$(THREADS) \
$(GCC_DECIMAL_FLOAT) \
@@ -462,7 +473,7 @@ gcc-dirclean: gcc_initial-dirclean
GCC_BUILD_DIR4:=$(BUILD_DIR)/gcc-$(GCC_VERSION)-target
$(GCC_BUILD_DIR4)/.prepared: $(STAMP_DIR)/gcc_libs_target_installed $(GCC_TARGET_PREREQ)
- mkdir -p $(GCC_BUILD_DIR3)
+ mkdir -p $(GCC_BUILD_DIR4)
touch $@
$(GCC_BUILD_DIR4)/.configured: $(GCC_BUILD_DIR4)/.prepared
@@ -491,6 +502,7 @@ $(GCC_BUILD_DIR4)/.configured: $(GCC_BUILD_DIR4)/.prepared
$(GCC_SHARED_LIBGCC) \
$(GCC_WITH_TARGET_GMP) \
$(GCC_WITH_TARGET_MPFR) \
+ $(GCC_WITH_TARGET_MPC) \
$(DISABLE_NLS) \
$(THREADS) \
$(GCC_DECIMAL_FLOAT) \
--
1.7.2.3
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Buildroot] [Review] Add gcc 4.5.1
2010-09-20 22:03 [Buildroot] [Review] Add gcc 4.5.1 Martin Banky
` (2 preceding siblings ...)
2010-09-20 22:03 ` [Buildroot] [PATCH 3/3] Added gcc 4.5.1 to buildroot Martin Banky
@ 2010-11-03 19:23 ` Gustavo Zacarias
2010-11-03 22:52 ` Yann E. MORIN
2010-11-04 23:05 ` Peter Korsgaard
3 siblings, 2 replies; 8+ messages in thread
From: Gustavo Zacarias @ 2010-11-03 19:23 UTC (permalink / raw)
To: buildroot
On 09/20/10 19:03, Martin Banky wrote:
> This is the first pass at adding gcc 4.5.1 to buildroot. It builds fine for the
> host and the target. The question I have, is the implementation the correct
> way to change the toolchain? I couldn't find a lot of documentation regarding
> the toolchain (as far as changing or updating it). Also, can the toolchain mk
> files be updated to the new format or are their builds too complex?
>
> [PATCH 1/3] dbus: bump to 1.4.0
> [PATCH 2/3] m4: bump to 1.4.15
> [PATCH 3/3] Added gcc 4.5.1 to buildroot
Hi.
I've been testing this and stuck in a few fixes.
My changes are at git://repo.or.cz/buildroot-gz.git
Fixes are various:
* Fix mpc download site
* Forward-port the powerpc softfloat patch (you probably didn't hit the
problem because it's conditional)
* Disable targetopts for powerpc and gcc 4.5.x
* Fix a ton of ARM issues
Word of caution, gcc 4.5 isn't able to build good ARM kernels that can
load modules for versions <2.6.36 unless a patch is applied, see
https://bugzilla.kernel.org/show_bug.cgi?id=16310
Tested for arm softfloat (hardware), arm hardfloat (qemu), mips32
(qemu), powerpc hardfloat (e300c3) and powerpc softfloat (qemu).
Thanks for your work on this.
Regards.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [Review] Add gcc 4.5.1
2010-11-03 19:23 ` [Buildroot] [Review] Add gcc 4.5.1 Gustavo Zacarias
@ 2010-11-03 22:52 ` Yann E. MORIN
2010-11-04 1:25 ` Gustavo Zacarias
2010-11-04 23:05 ` Peter Korsgaard
1 sibling, 1 reply; 8+ messages in thread
From: Yann E. MORIN @ 2010-11-03 22:52 UTC (permalink / raw)
To: buildroot
Gustavo, All,
On Wednesday 03 November 2010 20:23:08 Gustavo Zacarias wrote:
> Word of caution, gcc 4.5 isn't able to build good ARM kernels that can
> load modules for versions <2.6.36 unless a patch is applied, see
> https://bugzilla.kernel.org/show_bug.cgi?id=16310
From what I understand:
- bug was introduced between 2.6.35-rc1 and -rc2: use the gcc option
only for powerpc
- the mentioned gcc option was previously applied to all architectures
- the bug has not been fixed on the 2.6.35.y tree
- it was fixed during the 2.6.36 devel cycle
Which leads to the conclusion that:
- 2.6.34 and prior : not impacted
- 2.6.35 and dot-releases : impacted
- 2.6.36 ( and above ;-) ) : not impacted
Sounds reasonable?
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [Review] Add gcc 4.5.1
2010-11-03 22:52 ` Yann E. MORIN
@ 2010-11-04 1:25 ` Gustavo Zacarias
0 siblings, 0 replies; 8+ messages in thread
From: Gustavo Zacarias @ 2010-11-04 1:25 UTC (permalink / raw)
To: buildroot
On 11/03/2010 07:52 PM, Yann E. MORIN wrote:
> Gustavo, All,
>
> On Wednesday 03 November 2010 20:23:08 Gustavo Zacarias wrote:
>> Word of caution, gcc 4.5 isn't able to build good ARM kernels that can
>> load modules for versions <2.6.36 unless a patch is applied, see
>> https://bugzilla.kernel.org/show_bug.cgi?id=16310
>
> From what I understand:
> - bug was introduced between 2.6.35-rc1 and -rc2: use the gcc option
> only for powerpc
> - the mentioned gcc option was previously applied to all architectures
> - the bug has not been fixed on the 2.6.35.y tree
> - it was fixed during the 2.6.36 devel cycle
>
> Which leads to the conclusion that:
> - 2.6.34 and prior : not impacted
> - 2.6.35 and dot-releases : impacted
> - 2.6.36 ( and above ;-) ) : not impacted
>
> Sounds reasonable?
>
> Regards,
> Yann E. MORIN.
See also... http://forums.arm.com/index.php?showtopic=8122
It seems gcc 4.5.x emits R_ARM_REL32 relocations by default unless
-fno-dwarf2-cfi-asm is passed as a build option and the ARM kernel
doesn't handle it (see arch/arm/include/asm/elf.h and
arch/arm/kernel/module.c).
I've Considered patching gcc to disable it by default in buildroot but
since it's the kernel at fault i don't see the value in it yet, we'd
just be punishing userland in the process too.
I didn't try with <2.6.35 myself, i'll give it a shot tomorrow to see
how extended this problem might be (bug report talks about 4.4.x rather
than 4.5.x and i've never hit the issue it with 4.4.x).
Regards.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [Review] Add gcc 4.5.1
2010-11-03 19:23 ` [Buildroot] [Review] Add gcc 4.5.1 Gustavo Zacarias
2010-11-03 22:52 ` Yann E. MORIN
@ 2010-11-04 23:05 ` Peter Korsgaard
1 sibling, 0 replies; 8+ messages in thread
From: Peter Korsgaard @ 2010-11-04 23:05 UTC (permalink / raw)
To: buildroot
>>>>> "Gustavo" == Gustavo Zacarias <gustavo@zacarias.com.ar> writes:
Gustavo> I've been testing this and stuck in a few fixes.
Gustavo> My changes are at git://repo.or.cz/buildroot-gz.git
Gustavo> Fixes are various:
Gustavo> * Fix mpc download site
Gustavo> * Forward-port the powerpc softfloat patch (you probably didn't hit the
Gustavo> problem because it's conditional)
Gustavo> * Disable targetopts for powerpc and gcc 4.5.x
Gustavo> * Fix a ton of ARM issues
Thanks, pulled and pushed.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2010-11-04 23:05 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-20 22:03 [Buildroot] [Review] Add gcc 4.5.1 Martin Banky
2010-09-20 22:03 ` [Buildroot] [PATCH 1/3] dbus: bump to 1.4.0 Martin Banky
2010-09-20 22:03 ` [Buildroot] [PATCH 2/3] m4: bump to 1.4.15 Martin Banky
2010-09-20 22:03 ` [Buildroot] [PATCH 3/3] Added gcc 4.5.1 to buildroot Martin Banky
2010-11-03 19:23 ` [Buildroot] [Review] Add gcc 4.5.1 Gustavo Zacarias
2010-11-03 22:52 ` Yann E. MORIN
2010-11-04 1:25 ` Gustavo Zacarias
2010-11-04 23:05 ` Peter Korsgaard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox