[ARC] Add multilib support for linux targets
authorAlexey Brodkin <abrodkin@synopsys.com>
Mon, 21 May 2018 09:56:57 +0000 (09:56 +0000)
committerClaudiu Zissulescu <claziss@gcc.gnu.org>
Mon, 21 May 2018 09:56:57 +0000 (11:56 +0200)
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

gcc/ChangeLog
gcc/config.gcc
gcc/config/arc/t-multilib-linux [new file with mode: 0644]

index 1389dd0b88ac9ded8286c0d7029814a18d48ba29..157a899b9f6c121c3ea7f752f8cf44d3a8a27001 100644 (file)
@@ -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.
index 96ae6a88a0db4c55341c094b73e2b23574d647a2..d73e2cbc99a1ec9ce082036faca73c86161e313a 100644 (file)
@@ -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 (file)
index 0000000..f357cfc
--- /dev/null
@@ -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