summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/gcc/8.1.0/0019-ARC-Add-multilib-support-for-linux-targets.patch76
-rw-r--r--samples/arc-arc700-linux-uclibc/crosstool.config2
-rw-r--r--samples/arc-arc700-linux-uclibc/reported.by2
-rw-r--r--samples/arc-multilib-linux-uclibc/crosstool.config (renamed from samples/arc-archs-linux-uclibc/crosstool.config)4
-rw-r--r--samples/arc-multilib-linux-uclibc/reported.by (renamed from samples/arc-archs-linux-uclibc/reported.by)2
-rw-r--r--scripts/build/arch/arc.sh2
6 files changed, 82 insertions, 6 deletions
diff --git a/packages/gcc/8.1.0/0019-ARC-Add-multilib-support-for-linux-targets.patch b/packages/gcc/8.1.0/0019-ARC-Add-multilib-support-for-linux-targets.patch
new file mode 100644
index 0000000..6151067
--- /dev/null
+++ b/packages/gcc/8.1.0/0019-ARC-Add-multilib-support-for-linux-targets.patch
@@ -0,0 +1,76 @@
+From 0eacfbcb2bf1834294f468a2bb41fe5d5e8d3883 Mon Sep 17 00:00:00 2001
+From: claziss <claziss@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Mon, 21 May 2018 09:56:57 +0000
+Subject: [PATCH] [ARC] Add multilib support for linux targets
+
+We used to build baremetal (AKA Elf32) multilibbed toolchains for years
+now but never made that for Linux targets since there were problems with
+uClibc n multilib setup. Now with help of Crosstool-NG it is finally
+possible to create uClibc-based multilibbed toolchains and so we add
+relevant CPUs for multilib in case of configuration for "arc*-*-linux*".
+
+This will be essentially useful for glibc-based multilibbbed toolchains
+in the future.
+
+gcc/
+2018-05-16 Alexey Brodkin <abrodkin@synopsys.com>
+
+ * config.gcc: Add arc/t-multilib-linux to tmake_file for
+ arc*-*-linux*.
+ * config/arc/t-multilib-linux: Specify MULTILIB_OPTIONS and
+ MULTILIB_DIRNAMES
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260434 138bc75d-0d04-0410-961f-82ee72b054a4
+---
+ gcc/config.gcc | 2 +-
+ gcc/config/arc/t-multilib-linux | 25 +++++++++++++++++++++++++
+ 2 files changed, 26 insertions(+), 1 deletion(-)
+ create mode 100644 gcc/config/arc/t-multilib-linux
+
+diff --git a/gcc/config.gcc b/gcc/config.gcc
+index 96ae6a88a0db..d73e2cbc99a1 100644
+--- a/gcc/config.gcc
++++ b/gcc/config.gcc
+@@ -1061,7 +1061,7 @@ arc*-*-elf*)
+ ;;
+ 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"
++ tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
+ extra_gcc_objs="driver-arc.o"
+ if test "x$with_cpu" != x; then
+ tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
+diff --git a/gcc/config/arc/t-multilib-linux b/gcc/config/arc/t-multilib-linux
+new file mode 100644
+index 000000000000..f357cfc3f926
+--- /dev/null
++++ b/gcc/config/arc/t-multilib-linux
+@@ -0,0 +1,25 @@
++# Copyright (C) 2018 Free Software Foundation, Inc.
++#
++# This file is part of GCC.
++#
++# GCC is free software; you can redistribute it and/or modify it under
++# the terms of the GNU General Public License as published by the Free
++# Software Foundation; either version 3, or (at your option) any later
++# version.
++#
++# GCC is distributed in the hope that it will be useful, but WITHOUT ANY
++# WARRANTY; without even the implied warranty of MERCHANTABILITY or
++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++# for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with GCC; see the file COPYING3. If not see
++# <http://www.gnu.org/licenses/>.
++
++MULTILIB_OPTIONS = mcpu=hs/mcpu=archs/mcpu=hs38/mcpu=hs38_linux/mcpu=arc700/mcpu=nps400
++
++MULTILIB_DIRNAMES = hs archs hs38 hs38_linux arc700 nps400
++
++# Aliases:
++MULTILIB_MATCHES += mcpu?arc700=mA7
++MULTILIB_MATCHES += mcpu?arc700=mARC700
+--
+2.17.0
+
diff --git a/samples/arc-arc700-linux-uclibc/crosstool.config b/samples/arc-arc700-linux-uclibc/crosstool.config
index e7b298b..66a0b52 100644
--- a/samples/arc-arc700-linux-uclibc/crosstool.config
+++ b/samples/arc-arc700-linux-uclibc/crosstool.config
@@ -1,6 +1,6 @@
CT_ARCH_ARC=y
CT_TARGET_ALIAS="arc-linux"
-CT_TARGET_CFLAGS="-matomic"
+CT_TARGET_CFLAGS="-mno-atomic"
CT_TARGET_VENDOR="snps"
CT_KERNEL_LINUX=y
CT_LIBC_UCLIBC=y
diff --git a/samples/arc-arc700-linux-uclibc/reported.by b/samples/arc-arc700-linux-uclibc/reported.by
index 9019567..a493696 100644
--- a/samples/arc-arc700-linux-uclibc/reported.by
+++ b/samples/arc-arc700-linux-uclibc/reported.by
@@ -1,3 +1,3 @@
reporter_name="Alexey Brodkin"
reporter_url="http://embarc.org"
-reporter_comment="ARCompact default Linux toolchain"
+reporter_comment="ARCompact uClibc Linux toolchain without atomics"
diff --git a/samples/arc-archs-linux-uclibc/crosstool.config b/samples/arc-multilib-linux-uclibc/crosstool.config
index b1792e1..b56c8a8 100644
--- a/samples/arc-archs-linux-uclibc/crosstool.config
+++ b/samples/arc-multilib-linux-uclibc/crosstool.config
@@ -1,7 +1,7 @@
CT_ARCH_ARC=y
CT_TARGET_ALIAS="arc-linux"
CT_TARGET_CFLAGS="-matomic"
-CT_TARGET_VENDOR="snps"
+CT_TARGET_VENDOR="multilib"
CT_KERNEL_LINUX=y
CT_LIBC_UCLIBC=y
-CT_ARCH_CPU="hs38"
+CT_MULTILIB=y
diff --git a/samples/arc-archs-linux-uclibc/reported.by b/samples/arc-multilib-linux-uclibc/reported.by
index 59f194c..59fc53a 100644
--- a/samples/arc-archs-linux-uclibc/reported.by
+++ b/samples/arc-multilib-linux-uclibc/reported.by
@@ -1,3 +1,3 @@
reporter_name="Alexey Brodkin"
reporter_url="http://embarc.org"
-reporter_comment="ARCv2 default Linux toolchain"
+reporter_comment="ARC multilib uClibc Linux toolchain"
diff --git a/scripts/build/arch/arc.sh b/scripts/build/arch/arc.sh
index fb9d93b..2b48e4b 100644
--- a/scripts/build/arch/arc.sh
+++ b/scripts/build/arch/arc.sh
@@ -22,7 +22,7 @@ CT_DoArchUClibcCflags() {
local cflags="${2}"
local f
- CT_KconfigDeleteOption "CONFIG_ARC_HAS_ATOMICS" "${cfg}"
+ CT_KconfigDisableOption "CONFIG_ARC_HAS_ATOMICS" "${cfg}"
for f in ${cflags}; do
case "${f}" in