* [Buildroot] [PATCH 0/3] Upgrade ARC port to new toolchain
@ 2013-07-18 18:32 Mischa Jonker
2013-07-18 18:32 ` [Buildroot] [PATCH 1/3] uclibc, eglibc: remove REALLY_NOSTDLIB references Mischa Jonker
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Mischa Jonker @ 2013-07-18 18:32 UTC (permalink / raw)
To: buildroot
These three patches upgrade the ARC toolchain to GCC 4.8 and
Binutils 2.23.2. This fixes multiple issues (including most
autobuilder failures from the past couple of weeks).
Mischa Jonker (3):
uclibc, eglibc: remove REALLY_NOSTDLIB references
arc: binutils: Go from 2.19-arc to 2.23.2-arc
arc: gcc: Go from 4.4.7 to 4.8 for ARC
.../binutils/2.19-arc/add-empty-info-files.patch | 72 ----------
package/binutils/Config.in.host | 2 +-
package/eglibc/eglibc.mk | 2 +-
package/gcc/4.8-arc/100-uclibc-conf.patch | 15 ++
package/gcc/4.8-arc/301-missing-execinfo_h.patch | 13 ++
package/gcc/4.8-arc/302-c99-snprintf.patch | 13 ++
.../gcc/4.8-arc/305-libmudflap-susv3-legacy.patch | 49 +++++++
package/gcc/4.8-arc/disable_gc_sections.patch | 145 ++++++++++++++++++++
package/gcc/4.8-arc/fix_branch_out_of_range.patch | 30 ++++
package/gcc/Config.in.host | 13 +-
package/uclibc/uclibc.mk | 11 +-
11 files changed, 276 insertions(+), 89 deletions(-)
delete mode 100644 package/binutils/2.19-arc/add-empty-info-files.patch
create mode 100644 package/gcc/4.8-arc/100-uclibc-conf.patch
create mode 100644 package/gcc/4.8-arc/301-missing-execinfo_h.patch
create mode 100644 package/gcc/4.8-arc/302-c99-snprintf.patch
create mode 100644 package/gcc/4.8-arc/305-libmudflap-susv3-legacy.patch
create mode 100644 package/gcc/4.8-arc/disable_gc_sections.patch
create mode 100644 package/gcc/4.8-arc/fix_branch_out_of_range.patch
--
1.7.9.5
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 1/3] uclibc, eglibc: remove REALLY_NOSTDLIB references
2013-07-18 18:32 [Buildroot] [PATCH 0/3] Upgrade ARC port to new toolchain Mischa Jonker
@ 2013-07-18 18:32 ` Mischa Jonker
2013-07-18 18:32 ` [Buildroot] [PATCH 2/3] arc: binutils: Go from 2.19-arc to 2.23.2-arc Mischa Jonker
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: Mischa Jonker @ 2013-07-18 18:32 UTC (permalink / raw)
To: buildroot
These were required with ARC gcc 4.4.7; ARC gcc 4.8 has been changed
to behave the same as other architectures with -nostdlib, making this
option obsolete.
Signed-off-by: Mischa Jonker <mjonker@synopsys.com>
---
package/eglibc/eglibc.mk | 2 +-
package/uclibc/uclibc.mk | 11 ++---------
2 files changed, 3 insertions(+), 10 deletions(-)
diff --git a/package/eglibc/eglibc.mk b/package/eglibc/eglibc.mk
index ccdc210..5431ac5 100644
--- a/package/eglibc/eglibc.mk
+++ b/package/eglibc/eglibc.mk
@@ -61,7 +61,7 @@ define EGLIBC_CONFIGURE_CMDS
cp $(@D)/build/csu/crt1.o $(STAGING_DIR)/usr/lib/
cp $(@D)/build/csu/crti.o $(STAGING_DIR)/usr/lib/
cp $(@D)/build/csu/crtn.o $(STAGING_DIR)/usr/lib/
- $(TARGET_CROSS)gcc -nostdlib $(REALLY_NOSTDLIB) \
+ $(TARGET_CROSS)gcc -nostdlib \
-nostartfiles -shared -x c /dev/null -o $(STAGING_DIR)/usr/lib/libc.so
endef
diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk
index f775b15..d5ea7a4 100644
--- a/package/uclibc/uclibc.mk
+++ b/package/uclibc/uclibc.mk
@@ -163,13 +163,6 @@ endef
endif
#
-# ARC definitions
-#
-ifeq ($(UCLIBC_TARGET_ARCH),arc)
-REALLY_NOSTDLIB = -really-nostdlib
-endif
-
-#
# Endianess
#
@@ -407,9 +400,9 @@ define UCLIBC_CONFIGURE_CMDS
RUNTIME_PREFIX=$(STAGING_DIR) \
headers lib/crt1.o lib/crti.o lib/crtn.o \
install_headers
- $(TARGET_CROSS)gcc -nostdlib $(REALLY_NOSTDLIB) \
+ $(TARGET_CROSS)gcc -nostdlib \
-nostartfiles -shared -x c /dev/null -o $(STAGING_DIR)/usr/lib/libc.so
- $(TARGET_CROSS)gcc -nostdlib $(REALLY_NOSTDLIB) \
+ $(TARGET_CROSS)gcc -nostdlib \
-nostartfiles -shared -x c /dev/null -o $(STAGING_DIR)/usr/lib/libm.so
cp -pLR $(UCLIBC_DIR)/lib/crt[1in].o $(STAGING_DIR)/usr/lib/
endef
--
1.7.9.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 2/3] arc: binutils: Go from 2.19-arc to 2.23.2-arc
2013-07-18 18:32 [Buildroot] [PATCH 0/3] Upgrade ARC port to new toolchain Mischa Jonker
2013-07-18 18:32 ` [Buildroot] [PATCH 1/3] uclibc, eglibc: remove REALLY_NOSTDLIB references Mischa Jonker
@ 2013-07-18 18:32 ` Mischa Jonker
2013-07-18 18:32 ` [Buildroot] [PATCH 3/3] arc: gcc: Go from 4.4.7 to 4.8 for ARC Mischa Jonker
2013-07-18 19:57 ` [Buildroot] [PATCH 0/3] Upgrade ARC port to new toolchain Thomas Petazzoni
3 siblings, 0 replies; 6+ messages in thread
From: Mischa Jonker @ 2013-07-18 18:32 UTC (permalink / raw)
To: buildroot
Signed-off-by: Mischa Jonker <mjonker@synopsys.com>
---
.../binutils/2.19-arc/add-empty-info-files.patch | 72 --------------------
package/binutils/Config.in.host | 2 +-
2 files changed, 1 insertion(+), 73 deletions(-)
delete mode 100644 package/binutils/2.19-arc/add-empty-info-files.patch
diff --git a/package/binutils/2.19-arc/add-empty-info-files.patch b/package/binutils/2.19-arc/add-empty-info-files.patch
deleted file mode 100644
index 90de429..0000000
--- a/package/binutils/2.19-arc/add-empty-info-files.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-binutils: add empty info files to remove makeinfo dependency
-
-Signed-off-by: Mischa jonker <mjonker@synopsys.com>
----
- bfd/doc/bfd.info | 1 +
- binutils/doc/binutils.info | 1 +
- etc/configure.info | 1 +
- etc/standards.info | 1 +
- gas/doc/as.info | 1 +
- gprof/gprof.info | 1 +
- ld/ld.info | 1 +
- 7 files changed, 7 insertions(+), 0 deletions(-)
- create mode 100644 bfd/doc/bfd.info
- create mode 100644 binutils/doc/binutils.info
- create mode 100644 etc/configure.info
- create mode 100644 etc/standards.info
- create mode 100644 gas/doc/as.info
- create mode 100644 gprof/gprof.info
- create mode 100644 ld/ld.info
-
-diff --git a/bfd/doc/bfd.info b/bfd/doc/bfd.info
-new file mode 100644
-index 0000000..8b13789
---- /dev/null
-+++ b/bfd/doc/bfd.info
-@@ -0,0 +1 @@
-+
-diff --git a/binutils/doc/binutils.info b/binutils/doc/binutils.info
-new file mode 100644
-index 0000000..8b13789
---- /dev/null
-+++ b/binutils/doc/binutils.info
-@@ -0,0 +1 @@
-+
-diff --git a/etc/configure.info b/etc/configure.info
-new file mode 100644
-index 0000000..8b13789
---- /dev/null
-+++ b/etc/configure.info
-@@ -0,0 +1 @@
-+
-diff --git a/etc/standards.info b/etc/standards.info
-new file mode 100644
-index 0000000..8b13789
---- /dev/null
-+++ b/etc/standards.info
-@@ -0,0 +1 @@
-+
-diff --git a/gas/doc/as.info b/gas/doc/as.info
-new file mode 100644
-index 0000000..8b13789
---- /dev/null
-+++ b/gas/doc/as.info
-@@ -0,0 +1 @@
-+
-diff --git a/gprof/gprof.info b/gprof/gprof.info
-new file mode 100644
-index 0000000..8b13789
---- /dev/null
-+++ b/gprof/gprof.info
-@@ -0,0 +1 @@
-+
-diff --git a/ld/ld.info b/ld/ld.info
-new file mode 100644
-index 0000000..8b13789
---- /dev/null
-+++ b/ld/ld.info
-@@ -0,0 +1 @@
-+
---
-1.7.0.4
-
diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host
index 9ddaed7..c2d2495 100644
--- a/package/binutils/Config.in.host
+++ b/package/binutils/Config.in.host
@@ -44,7 +44,7 @@ endchoice
config BR2_BINUTILS_VERSION
string
default "2.18-avr32-1.0.1" if BR2_BINUTILS_VERSION_2_18_AVR32_1_0_1
- default "2.19-arc" if BR2_arc
+ default "2.23.2-arc" if BR2_arc
default "2.20.1" if BR2_BINUTILS_VERSION_2_20_1
default "2.21" if BR2_BINUTILS_VERSION_2_21
default "2.21.1" if BR2_BINUTILS_VERSION_2_21_1
--
1.7.9.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 3/3] arc: gcc: Go from 4.4.7 to 4.8 for ARC
2013-07-18 18:32 [Buildroot] [PATCH 0/3] Upgrade ARC port to new toolchain Mischa Jonker
2013-07-18 18:32 ` [Buildroot] [PATCH 1/3] uclibc, eglibc: remove REALLY_NOSTDLIB references Mischa Jonker
2013-07-18 18:32 ` [Buildroot] [PATCH 2/3] arc: binutils: Go from 2.19-arc to 2.23.2-arc Mischa Jonker
@ 2013-07-18 18:32 ` Mischa Jonker
2013-07-18 19:57 ` [Buildroot] [PATCH 0/3] Upgrade ARC port to new toolchain Thomas Petazzoni
3 siblings, 0 replies; 6+ messages in thread
From: Mischa Jonker @ 2013-07-18 18:32 UTC (permalink / raw)
To: buildroot
This fixes multiple issues, including:
- 'operand out of range' errors (due to defaulting to
medium calls instead of short calls)
- library dependencies that were not being found
Signed-off-by: Mischa Jonker <mjonker@synopsys.com>
---
package/gcc/4.8-arc/100-uclibc-conf.patch | 15 ++
package/gcc/4.8-arc/301-missing-execinfo_h.patch | 13 ++
package/gcc/4.8-arc/302-c99-snprintf.patch | 13 ++
.../gcc/4.8-arc/305-libmudflap-susv3-legacy.patch | 49 +++++++
package/gcc/4.8-arc/disable_gc_sections.patch | 145 ++++++++++++++++++++
package/gcc/4.8-arc/fix_branch_out_of_range.patch | 30 ++++
package/gcc/Config.in.host | 13 +-
7 files changed, 272 insertions(+), 6 deletions(-)
create mode 100644 package/gcc/4.8-arc/100-uclibc-conf.patch
create mode 100644 package/gcc/4.8-arc/301-missing-execinfo_h.patch
create mode 100644 package/gcc/4.8-arc/302-c99-snprintf.patch
create mode 100644 package/gcc/4.8-arc/305-libmudflap-susv3-legacy.patch
create mode 100644 package/gcc/4.8-arc/disable_gc_sections.patch
create mode 100644 package/gcc/4.8-arc/fix_branch_out_of_range.patch
diff --git a/package/gcc/4.8-arc/100-uclibc-conf.patch b/package/gcc/4.8-arc/100-uclibc-conf.patch
new file mode 100644
index 0000000..d56bf0a
--- /dev/null
+++ b/package/gcc/4.8-arc/100-uclibc-conf.patch
@@ -0,0 +1,15 @@
+Index: gcc-4.8.0/contrib/regression/objs-gcc.sh
+===================================================================
+--- gcc-4.8.0.orig/contrib/regression/objs-gcc.sh 2009-04-09 17:00:19.000000000 +0200
++++ gcc-4.8.0/contrib/regression/objs-gcc.sh 2013-03-23 17:39:04.000000000 +0100
+@@ -106,6 +106,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
diff --git a/package/gcc/4.8-arc/301-missing-execinfo_h.patch b/package/gcc/4.8-arc/301-missing-execinfo_h.patch
new file mode 100644
index 0000000..00efda2
--- /dev/null
+++ b/package/gcc/4.8-arc/301-missing-execinfo_h.patch
@@ -0,0 +1,13 @@
+Index: gcc-4.8.0/boehm-gc/include/gc.h
+===================================================================
+--- gcc-4.8.0.orig/boehm-gc/include/gc.h 2007-04-23 23:10:09.000000000 +0200
++++ gcc-4.8.0/boehm-gc/include/gc.h 2013-03-23 17:39:20.000000000 +0100
+@@ -503,7 +503,7 @@
+ #if defined(__linux__) || defined(__GLIBC__)
+ # 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/package/gcc/4.8-arc/302-c99-snprintf.patch b/package/gcc/4.8-arc/302-c99-snprintf.patch
new file mode 100644
index 0000000..cd4d2cc
--- /dev/null
+++ b/package/gcc/4.8-arc/302-c99-snprintf.patch
@@ -0,0 +1,13 @@
+Index: gcc-4.8.0/libstdc++-v3/include/c_global/cstdio
+===================================================================
+--- gcc-4.8.0.orig/libstdc++-v3/include/c_global/cstdio 2013-02-03 18:54:05.000000000 +0100
++++ gcc-4.8.0/libstdc++-v3/include/c_global/cstdio 2013-03-23 17:39:32.000000000 +0100
+@@ -138,7 +138,7 @@
+ using ::vsprintf;
+ } // namespace
+
+-#if _GLIBCXX_USE_C99
++#if _GLIBCXX_USE_C99 || defined __UCLIBC__
+
+ #undef snprintf
+ #undef vfscanf
diff --git a/package/gcc/4.8-arc/305-libmudflap-susv3-legacy.patch b/package/gcc/4.8-arc/305-libmudflap-susv3-legacy.patch
new file mode 100644
index 0000000..35d5f50
--- /dev/null
+++ b/package/gcc/4.8-arc/305-libmudflap-susv3-legacy.patch
@@ -0,0 +1,49 @@
+Index: gcc-4.8.0/libmudflap/mf-hooks2.c
+===================================================================
+--- gcc-4.8.0.orig/libmudflap/mf-hooks2.c 2013-02-03 18:48:05.000000000 +0100
++++ gcc-4.8.0/libmudflap/mf-hooks2.c 2013-03-23 17:39:43.000000000 +0100
+@@ -424,7 +424,7 @@
+ {
+ TRACE ("%s\n", __PRETTY_FUNCTION__);
+ MF_VALIDATE_EXTENT(s, n, __MF_CHECK_WRITE, "bzero region");
+- bzero (s, n);
++ memset (s, 0, n);
+ }
+
+
+@@ -434,7 +434,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);
+ }
+
+
+@@ -444,7 +444,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);
+ }
+
+
+@@ -453,7 +453,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);
+ }
+
+
+@@ -462,7 +462,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/package/gcc/4.8-arc/disable_gc_sections.patch b/package/gcc/4.8-arc/disable_gc_sections.patch
new file mode 100644
index 0000000..46a3a26
--- /dev/null
+++ b/package/gcc/4.8-arc/disable_gc_sections.patch
@@ -0,0 +1,145 @@
+From be904b178fc0858ad41a3c2fbc13b388bd1ff465 Mon Sep 17 00:00:00 2001
+From: Mischa Jonker <mjonker@synopsys.com>
+Date: Mon, 15 Jul 2013 11:50:20 +0200
+Subject: [PATCH] libstdc++: Disable gc-sections to work around binutils bug
+
+This is to work around the following error message:
+BFD (GNU Binutils) 2.23.2 assertion fail elf32-arc.c:2140
+
+Signed-off-by: Mischa Jonker <mjonker@synopsys.com>
+---
+ libstdc++-v3/acinclude.m4 | 3 ---
+ libstdc++-v3/configure | 33 ---------------------------------
+ 2 files changed, 36 deletions(-)
+
+diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
+index e131214..aa2e375 100644
+--- a/libstdc++-v3/acinclude.m4
++++ b/libstdc++-v3/acinclude.m4
+@@ -296,9 +296,6 @@ AC_DEFUN([GLIBCXX_CHECK_LINKER_FEATURES], [
+ fi
+ rm -f conftest.c conftest.o conftest
+ fi
+- if test "$ac_gcsections" = "yes"; then
+- SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
+- fi
+ AC_MSG_RESULT($ac_gcsections)
+
+ if test "$ac_test_CFLAGS" = set; then
+diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
+index ed049cf..d325e3e 100755
+--- a/libstdc++-v3/configure
++++ b/libstdc++-v3/configure
+@@ -20653,9 +20653,6 @@ rm -f core conftest.err conftest.$ac_objext \
+ fi
+ rm -f conftest.c conftest.o conftest
+ fi
+- if test "$ac_gcsections" = "yes"; then
+- SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
+- fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_gcsections" >&5
+ $as_echo "$ac_gcsections" >&6; }
+
+@@ -27688,9 +27685,6 @@ rm -f core conftest.err conftest.$ac_objext \
+ fi
+ rm -f conftest.c conftest.o conftest
+ fi
+- if test "$ac_gcsections" = "yes"; then
+- SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
+- fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_gcsections" >&5
+ $as_echo "$ac_gcsections" >&6; }
+
+@@ -33619,9 +33613,6 @@ rm -f core conftest.err conftest.$ac_objext \
+ fi
+ rm -f conftest.c conftest.o conftest
+ fi
+- if test "$ac_gcsections" = "yes"; then
+- SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
+- fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_gcsections" >&5
+ $as_echo "$ac_gcsections" >&6; }
+
+@@ -45496,9 +45487,6 @@ rm -f core conftest.err conftest.$ac_objext \
+ fi
+ rm -f conftest.c conftest.o conftest
+ fi
+- if test "$ac_gcsections" = "yes"; then
+- SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
+- fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_gcsections" >&5
+ $as_echo "$ac_gcsections" >&6; }
+
+@@ -45710,9 +45698,6 @@ rm -f core conftest.err conftest.$ac_objext \
+ fi
+ rm -f conftest.c conftest.o conftest
+ fi
+- if test "$ac_gcsections" = "yes"; then
+- SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
+- fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_gcsections" >&5
+ $as_echo "$ac_gcsections" >&6; }
+
+@@ -46185,9 +46170,6 @@ rm -f core conftest.err conftest.$ac_objext \
+ fi
+ rm -f conftest.c conftest.o conftest
+ fi
+- if test "$ac_gcsections" = "yes"; then
+- SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
+- fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_gcsections" >&5
+ $as_echo "$ac_gcsections" >&6; }
+
+@@ -52470,9 +52452,6 @@ rm -f core conftest.err conftest.$ac_objext \
+ fi
+ rm -f conftest.c conftest.o conftest
+ fi
+- if test "$ac_gcsections" = "yes"; then
+- SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
+- fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_gcsections" >&5
+ $as_echo "$ac_gcsections" >&6; }
+
+@@ -58386,9 +58365,6 @@ rm -f core conftest.err conftest.$ac_objext \
+ fi
+ rm -f conftest.c conftest.o conftest
+ fi
+- if test "$ac_gcsections" = "yes"; then
+- SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
+- fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_gcsections" >&5
+ $as_echo "$ac_gcsections" >&6; }
+
+@@ -58553,9 +58529,6 @@ rm -f core conftest.err conftest.$ac_objext \
+ fi
+ rm -f conftest.c conftest.o conftest
+ fi
+- if test "$ac_gcsections" = "yes"; then
+- SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
+- fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_gcsections" >&5
+ $as_echo "$ac_gcsections" >&6; }
+
+@@ -58781,9 +58754,6 @@ rm -f core conftest.err conftest.$ac_objext \
+ fi
+ rm -f conftest.c conftest.o conftest
+ fi
+- if test "$ac_gcsections" = "yes"; then
+- SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
+- fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_gcsections" >&5
+ $as_echo "$ac_gcsections" >&6; }
+
+@@ -64697,9 +64667,6 @@ rm -f core conftest.err conftest.$ac_objext \
+ fi
+ rm -f conftest.c conftest.o conftest
+ fi
+- if test "$ac_gcsections" = "yes"; then
+- SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
+- fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_gcsections" >&5
+ $as_echo "$ac_gcsections" >&6; }
+
+--
+1.7.9.5
+
diff --git a/package/gcc/4.8-arc/fix_branch_out_of_range.patch b/package/gcc/4.8-arc/fix_branch_out_of_range.patch
new file mode 100644
index 0000000..5340a3b
--- /dev/null
+++ b/package/gcc/4.8-arc/fix_branch_out_of_range.patch
@@ -0,0 +1,30 @@
+arc: Fix operand-out-of-range errors
+
+brcc_s instructions can generate operand-out-of-range errors. While a
+better solution is being discussed by the compiler team, this workaround
+ensures that the chances of running into this issue are low.
+
+Signed-off-by: Mischa Jonker <mjonker@synopsys.com>
+
+diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
+index ff602c0..b3ca4c4 100644
+--- a/gcc/config/arc/arc.c
++++ b/gcc/config/arc/arc.c
+@@ -6565,7 +6565,7 @@ estimate required size increase).
+ rtx *ccp = &XEXP (XVECEXP (pat, 0, 1), 0);
+
+ offset = branch_dest (insn) - INSN_ADDRESSES (INSN_UID (insn));
+- if ((offset >= -140 && offset < 140)
++ if ((offset >= -120 && offset < 120)
+ && rtx_equal_p (XEXP (op, 1), const0_rtx)
+ && compact_register_operand (XEXP (op, 0), VOIDmode)
+ && equality_comparison_operator (op, VOIDmode))
+@@ -6687,7 +6687,7 @@ estimate required size increase).
+
+ if (op0 != cmp0)
+ cc_clob_rtx = gen_rtx_REG (CC_ZNmode, CC_REG);
+- else if ((offset >= -140 && offset < 140)
++ else if ((offset >= -120 && offset < 120)
+ && rtx_equal_p (op1, const0_rtx)
+ && compact_register_operand (op0, VOIDmode)
+ && (GET_CODE (op) == EQ
diff --git a/package/gcc/Config.in.host b/package/gcc/Config.in.host
index 972f81f..c49b8ed 100644
--- a/package/gcc/Config.in.host
+++ b/package/gcc/Config.in.host
@@ -7,15 +7,11 @@ choice
prompt "GCC compiler Version"
default BR2_GCC_VERSION_4_4_X if BR2_sparc_sparchfleon || BR2_sparc_sparchfleonv8 || BR2_sparc_sparcsfleon || BR2_sparc_sparcsfleonv8
default BR2_GCC_VERSION_4_2_2_AVR32_2_1_5 if BR2_avr32
- default BR2_GCC_VERSION_4_4_7_ARC if BR2_arc
+ default BR2_GCC_VERSION_4_8_ARC if BR2_arc
default BR2_GCC_VERSION_4_7_X
help
Select the version of gcc you wish to use.
- config BR2_GCC_VERSION_4_4_7_ARC
- depends on BR2_arc
- bool "gcc 4.4.7-arc"
-
config BR2_GCC_VERSION_4_2_2_AVR32_2_1_5
depends on BR2_avr32
bool "gcc 4.2.2-avr32-2.1.5"
@@ -55,6 +51,11 @@ choice
select BR2_GCC_NEEDS_MPC
bool "gcc 4.8.x"
+ config BR2_GCC_VERSION_4_8_ARC
+ depends on BR2_arc
+ select BR2_GCC_NEEDS_MPC
+ bool "gcc 4.8-arc"
+
config BR2_GCC_VERSION_SNAP
depends on !BR2_arc && !BR2_avr32 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8
select BR2_GCC_NEEDS_MPC
@@ -84,11 +85,11 @@ config BR2_GCC_VERSION
default "4.2.2-avr32-2.1.5" if BR2_GCC_VERSION_4_2_2_AVR32_2_1_5
default "4.3.6" if BR2_GCC_VERSION_4_3_X
default "4.4.7" if BR2_GCC_VERSION_4_4_X
- default "4.4.7-arc" if BR2_GCC_VERSION_4_4_7_ARC
default "4.5.4" if BR2_GCC_VERSION_4_5_X
default "4.6.4" if BR2_GCC_VERSION_4_6_X
default "4.7.3" if BR2_GCC_VERSION_4_7_X
default "4.8.1" if BR2_GCC_VERSION_4_8_X
+ default "4.8-arc" if BR2_GCC_VERSION_4_8_ARC
default $BR2_GCC_SNAP_DATE if BR2_GCC_VERSION_SNAP
config BR2_EXTRA_GCC_CONFIG_OPTIONS
--
1.7.9.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 0/3] Upgrade ARC port to new toolchain
2013-07-18 18:32 [Buildroot] [PATCH 0/3] Upgrade ARC port to new toolchain Mischa Jonker
` (2 preceding siblings ...)
2013-07-18 18:32 ` [Buildroot] [PATCH 3/3] arc: gcc: Go from 4.4.7 to 4.8 for ARC Mischa Jonker
@ 2013-07-18 19:57 ` Thomas Petazzoni
2013-07-18 21:43 ` Mischa Jonker
3 siblings, 1 reply; 6+ messages in thread
From: Thomas Petazzoni @ 2013-07-18 19:57 UTC (permalink / raw)
To: buildroot
Dear Mischa Jonker,
On Thu, 18 Jul 2013 20:32:31 +0200, Mischa Jonker wrote:
> These three patches upgrade the ARC toolchain to GCC 4.8 and
> Binutils 2.23.2. This fixes multiple issues (including most
> autobuilder failures from the past couple of weeks).
Nice!
Can you send a followup patch to remove:
ifeq ($(BR2_GCC_VERSION_4_4_7_ARC),y)
HOST_GCC_COMMON_DEPENDENCIES += host-flex host-bison
endif
from package/gcc/gcc.mk
and
ifeq ($(BINUTILS_VERSION),2.19-arc)
HOST_BINUTILS_DEPENDENCIES = host-flex host-bison
else
HOST_BINUTILS_DEPENDENCIES =
endif
from binutils.mk ?
Thanks!
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 0/3] Upgrade ARC port to new toolchain
2013-07-18 19:57 ` [Buildroot] [PATCH 0/3] Upgrade ARC port to new toolchain Thomas Petazzoni
@ 2013-07-18 21:43 ` Mischa Jonker
0 siblings, 0 replies; 6+ messages in thread
From: Mischa Jonker @ 2013-07-18 21:43 UTC (permalink / raw)
To: buildroot
Hi Thomas,
Thomas wrote:
> Can you send a followup patch to remove:
>
> ifeq ($(BR2_GCC_VERSION_4_4_7_ARC),y)
> HOST_GCC_COMMON_DEPENDENCIES += host-flex host-bison endif
>
> from package/gcc/gcc.mk
>
> and
>
> ifeq ($(BINUTILS_VERSION),2.19-arc)
> HOST_BINUTILS_DEPENDENCIES = host-flex host-bison else
> HOST_BINUTILS_DEPENDENCIES = endif
>
> from binutils.mk ?
Ouch... thanks for reminding me about this one! I have uninstalled flex/bison on my system and figured out that these packages are indeed still required. Only for gcc fortunately, so we can at least clean it up partially. v2 patch set on its way with these fixes, and two more clean-ups.
Thanks,
Mischa
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2013-07-18 21:43 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-18 18:32 [Buildroot] [PATCH 0/3] Upgrade ARC port to new toolchain Mischa Jonker
2013-07-18 18:32 ` [Buildroot] [PATCH 1/3] uclibc, eglibc: remove REALLY_NOSTDLIB references Mischa Jonker
2013-07-18 18:32 ` [Buildroot] [PATCH 2/3] arc: binutils: Go from 2.19-arc to 2.23.2-arc Mischa Jonker
2013-07-18 18:32 ` [Buildroot] [PATCH 3/3] arc: gcc: Go from 4.4.7 to 4.8 for ARC Mischa Jonker
2013-07-18 19:57 ` [Buildroot] [PATCH 0/3] Upgrade ARC port to new toolchain Thomas Petazzoni
2013-07-18 21:43 ` Mischa Jonker
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox