gcc: allow the selection of upstream GCC 7.x for ARC
authorAlexey Brodkin <Alexey.Brodkin@synopsys.com>
Thu, 9 Nov 2017 21:56:48 +0000 (00:56 +0300)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Wed, 29 Nov 2017 22:20:53 +0000 (23:20 +0100)
Upstream gcc now has support for ARC, as of 7.x, with 7.2 being
usable, so let's allow its selection.

GCC from Synopsys GitHub still has a lot of fixes and improvements
most of which will be a part of the next upstream release but let's
see how it goes and if we see vanilla GCC doesn't require way too many
back-ported patches we'll be able to get rid of Synopsys GitHub here
at all.

As of today the only really required back-port is the one for non-uClibc
libc.

Back-ported from upstream master with help of:
-------------------->8--------------------
git format-patch 927c0132251f -1 -- . ':!gcc/ChangeLog' ':!libgcc/ChangeLog'
-------------------->8--------------------

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/gcc/7.2.0/0893-ARC-Configure-script-to-allow-non-uclibc-based-tripl.patch [new file with mode: 0644]
package/gcc/Config.in.host
package/gcc/gcc.mk

diff --git a/package/gcc/7.2.0/0893-ARC-Configure-script-to-allow-non-uclibc-based-tripl.patch b/package/gcc/7.2.0/0893-ARC-Configure-script-to-allow-non-uclibc-based-tripl.patch
new file mode 100644 (file)
index 0000000..4f97c2f
--- /dev/null
@@ -0,0 +1,51 @@
+From 927c0132251f1cd3452b96ebd75f1b06bc53e4ec Mon Sep 17 00:00:00 2001
+From: claziss <claziss@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Mon, 10 Jul 2017 13:55:26 +0000
+Subject: [PATCH] [ARC] Configure script to allow non uclibc based triplets
+
+gcc/
+2017-07-10  Vineet Gupta <vgupta@synopsys.com>
+
+        * config.gcc: Remove uclibc from arc target spec.
+
+libgcc/
+2017-07-10  Vineet Gupta <vgupta@synopsys.com>
+
+        * config.host: Remove uclibc from arc target spec.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250097 138bc75d-0d04-0410-961f-82ee72b054a4
+Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
+---
+ gcc/config.gcc     | 2 +-
+ libgcc/config.host | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/gcc/config.gcc b/gcc/config.gcc
+index 1b47457..933a451 100644
+--- a/gcc/config.gcc
++++ b/gcc/config.gcc
+@@ -1044,7 +1044,7 @@ arc*-*-elf*)
+       big*)   tm_file="arc/big.h ${tm_file}"
+       esac
+       ;;
+-arc*-*-linux-uclibc*)
++arc*-*-linux*)
+       tm_file="arc/arc-arch.h dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arc/linux.h ${tm_file}"
+       tmake_file="${tmake_file} arc/t-arc"
+       extra_gcc_objs="driver-arc.o"
+diff --git a/libgcc/config.host b/libgcc/config.host
+index 989ac71..a5ab453 100644
+--- a/libgcc/config.host
++++ b/libgcc/config.host
+@@ -383,7 +383,7 @@ arc*-*-elf*)
+       extra_parts="crti.o crtn.o crtend.o crtbegin.o crtendS.o crtbeginS.o"
+       extra_parts="$extra_parts crttls.o"
+       ;;
+-arc*-*-linux-uclibc*)
++arc*-*-linux*)
+       tmake_file="${tmake_file} t-slibgcc-libgcc t-slibgcc-nolc-override arc/t-arc-uClibc arc/t-arc"
+       extra_parts="$extra_parts crti.o crtn.o"
+       extra_parts="$extra_parts crttls.o"
+-- 
+2.10.2
+
index 74c1b2f4e20510ee565e02b0b1088b8024acdfb3..70cce0a5c5edbe4007be96a9d4f47c22bf1876e2 100644 (file)
@@ -58,7 +58,6 @@ config BR2_GCC_VERSION_6_X
 config BR2_GCC_VERSION_7_X
        bool "gcc 7.x"
        # Broken or unsupported architectures
-       depends on !BR2_arc
        depends on !BR2_or1k
        select BR2_TOOLCHAIN_GCC_AT_LEAST_7
 
index 1112003df4852efb5f8a38534f6374f914cb0a32..27fc1e987c1c81d485c046e1611a017c14613e8b 100644 (file)
@@ -10,7 +10,7 @@
 
 GCC_VERSION = $(call qstrip,$(BR2_GCC_VERSION))
 
-ifeq ($(BR2_arc),y)
+ifeq ($(BR2_GCC_VERSION_ARC),y)
 GCC_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,gcc,$(GCC_VERSION))
 GCC_SOURCE = gcc-$(GCC_VERSION).tar.gz
 else ifeq ($(BR2_or1k),y)