Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [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