aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Brodkin <abrodkin@synopsys.com>2018-05-21 09:56:57 +0000
committerClaudiu Zissulescu <claziss@gcc.gnu.org>2018-05-21 11:56:57 +0200
commit825f9d0b756aa3103bb15ed4cab5f8691b79c419 (patch)
treefeeed7e270d1ada4324e21b3a69e5ff533b7e77f
parent67e9518e20b8b836bbaa9dc783bd6a4db56c2bcb (diff)
downloadgcc-825f9d0b756aa3103bb15ed4cab5f8691b79c419.zip
gcc-825f9d0b756aa3103bb15ed4cab5f8691b79c419.tar.gz
gcc-825f9d0b756aa3103bb15ed4cab5f8691b79c419.tar.bz2
[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 From-SVN: r260434
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config.gcc2
-rw-r--r--gcc/config/arc/t-multilib-linux25
3 files changed, 33 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1389dd0..157a899 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2018-05-21 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
+
2018-05-20 Chung-Ju Wu <jasonwucj@gmail.com>
* config/nds32/constraints.md (S): New constraint.
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 96ae6a8..d73e2cb 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 0000000..f357cfc
--- /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