r322769 - [RISCV] Propagate -mabi and -march values to GNU assembler.

Rafael Avila de Espindola via cfe-commits cfe-commits at lists.llvm.org
Wed Jan 17 16:38:42 PST 2018


With this I am getting a test failure on linux:

******************** TEST 'Clang :: Driver/riscv-gnutools.c' FAILED ********************
Script:
--
/home/admin/llvm/build/bin/clang -target riscv32-linux-unknown-elf -fno-integrated-as  --gcc-toolchain=/home/admin/llvm/llvm-project/clang/test/Driver/Inputs/multilib_riscv_linux_sdk  --sysroot=/home/admin/llvm/llvm-project/clang/test/Driver/Inputs/multilib_riscv_linux_sdk/sysroot /home/admin/llvm/llvm-project/clang/test/Driver/riscv-gnutools.c -###  2>&1 | /home/admin/llvm/build/bin/FileCheck -check-prefix=MABI-ILP32 /home/admin/llvm/llvm-project/clang/test/Driver/riscv-gnutools.c
/home/admin/llvm/build/bin/clang -target riscv32-linux-unknown-elf -fno-integrated-as  -march=rv32g --gcc-toolchain=/home/admin/llvm/llvm-project/clang/test/Driver/Inputs/multilib_riscv_linux_sdk  --sysroot=/home/admin/llvm/llvm-project/clang/test/Driver/Inputs/multilib_riscv_linux_sdk/sysroot /home/admin/llvm/llvm-project/clang/test/Driver/riscv-gnutools.c -###  2>&1 | /home/admin/llvm/build/bin/FileCheck -check-prefix=MABI-ILP32-MARCH-G /home/admin/llvm/llvm-project/clang/test/Driver/riscv-gnutools.c
--
Exit Code: 1

Command Output (stderr):
--
/home/admin/llvm/llvm-project/clang/test/Driver/riscv-gnutools.c:12:16: error: expected string not found in input
// MABI-ILP32: "{{.*}}/Inputs/multilib_riscv_linux_sdk/lib/gcc/riscv64-unknown-linux-gnu/7.2.0/../../../../riscv64-unknown-linux-gnu/bin{{/|\\\\}}as" "-mabi" "ilp32"
               ^
<stdin>:1:1: note: scanning from here
clang version 7.0.0
^
<stdin>:7:42: note: possible intended match here
 "/home/admin/llvm/llvm-project/clang/test/Driver/Inputs/multilib_riscv_linux_sdk/lib/gcc/riscv64-unknown-linux-gnu/7.2.0/../../../../riscv64-unknown-linux-gnu/bin/ld" "--sysroot=/home/admin/llvm/llvm-project/clang/test/Driver/Inputs/multilib_riscv_linux_sdk/sysroot" "--hash-style=both" "--eh-frame-hdr" "-m" "elf32lriscv" "-dynamic-linker" "/lib/ld-linux-riscv32-ilp32.so.1" "-o" "a.out" "crt1.o" "crti.o" "/home/admin/llvm/llvm-project/clang/test/Driver/Inputs/multilib_riscv_linux_sdk/lib/gcc/riscv64-unknown-linux-gnu/7.2.0/lib32/ilp32/crtbegin.o" "-L/home/admin/llvm/llvm-project/clang/test/Driver/Inputs/multilib_riscv_linux_sdk/lib/gcc/riscv64-unknown-linux-gnu/7.2.0/lib32/ilp32" "-L/home/admin/llvm/llvm-project/clang/test/Driver/Inputs/multilib_riscv_linux_sdk/sysroot/lib/../lib32" "-L/home/admin/llvm/llvm-project/clang/test/Driver/Inputs/multilib_riscv_linux_sdk/sysroot/lib32/ilp32" "-L/home/admin/llvm/llvm-project/clang/test/Driver/Inputs/multilib_riscv_linux_sdk/sysroot/usr/lib32/ilp32" "-L/home/admin/llvm/llvm-project/clang/test/Driver/Inputs/multilib_riscv_linux_sdk/sysroot/lib" "/tmp/lit_tmp_9u9TOy/riscv-gnutools-ebce8c.o" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "crtend.o" "crtn.o"
                                         ^

--

Cheers,
Rafael




Ana Pazos via cfe-commits <cfe-commits at lists.llvm.org> writes:

> Author: apazos
> Date: Wed Jan 17 14:09:58 2018
> New Revision: 322769
>
> URL: http://llvm.org/viewvc/llvm-project?rev=322769&view=rev
> Log:
> [RISCV] Propagate -mabi and -march values to GNU assembler.
>
> When using -fno-integrated-as flag, the gnu assembler produces code
> with some default march/mabi which later causes linker failure due
> to incompatible mabi/march.
>
> In this patch we explicitly propagate -mabi and -march flags to the
> GNU assembler.
>
> In this patch we explicitly propagate -mabi and -march flags to the GNU assembler.
>
> Differential Revision: https://reviews.llvm.org/D41271
>
> Added:
>     cfe/trunk/test/Driver/Inputs/multilib_riscv_linux_sdk/riscv64-unknown-linux-gnu/bin/as
>     cfe/trunk/test/Driver/riscv-gnutools.c
> Modified:
>     cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
>
> Modified: cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Gnu.cpp?rev=322769&r1=322768&r2=322769&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Driver/ToolChains/Gnu.cpp (original)
> +++ cfe/trunk/lib/Driver/ToolChains/Gnu.cpp Wed Jan 17 14:09:58 2018
> @@ -629,6 +629,18 @@ void tools::gnutools::Assembler::Constru
>        ppc::getPPCAsmModeForCPU(getCPUName(Args, getToolChain().getTriple())));
>      break;
>    }
> +  case llvm::Triple::riscv32:
> +  case llvm::Triple::riscv64: {
> +    StringRef ABIName = riscv::getRISCVABI(Args, getToolChain().getTriple());
> +    CmdArgs.push_back("-mabi");
> +    CmdArgs.push_back(ABIName.data());
> +    if (const Arg *A = Args.getLastArg(options::OPT_march_EQ)) {
> +      StringRef MArch = A->getValue();
> +      CmdArgs.push_back("-march");
> +      CmdArgs.push_back(MArch.data());
> +    }
> +    break;
> +  }
>    case llvm::Triple::sparc:
>    case llvm::Triple::sparcel: {
>      CmdArgs.push_back("-32");
>
> Added: cfe/trunk/test/Driver/Inputs/multilib_riscv_linux_sdk/riscv64-unknown-linux-gnu/bin/as
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/multilib_riscv_linux_sdk/riscv64-unknown-linux-gnu/bin/as?rev=322769&view=auto
> ==============================================================================
> --- cfe/trunk/test/Driver/Inputs/multilib_riscv_linux_sdk/riscv64-unknown-linux-gnu/bin/as (added)
> +++ cfe/trunk/test/Driver/Inputs/multilib_riscv_linux_sdk/riscv64-unknown-linux-gnu/bin/as Wed Jan 17 14:09:58 2018
> @@ -0,0 +1 @@
> +#!/bin/true
>
> Added: cfe/trunk/test/Driver/riscv-gnutools.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/riscv-gnutools.c?rev=322769&view=auto
> ==============================================================================
> --- cfe/trunk/test/Driver/riscv-gnutools.c (added)
> +++ cfe/trunk/test/Driver/riscv-gnutools.c Wed Jan 17 14:09:58 2018
> @@ -0,0 +1,14 @@
> +// Check gnutools are invoked with propagated values for -mabi and -march.
> +
> +// RUN: %clang -target riscv32-linux-unknown-elf -fno-integrated-as \
> +// RUN: --gcc-toolchain=%S/Inputs/multilib_riscv_linux_sdk \
> +// RUN: --sysroot=%S/Inputs/multilib_riscv_linux_sdk/sysroot %s -### \
> +// RUN: 2>&1 | FileCheck -check-prefix=MABI-ILP32 %s
> +// RUN: %clang -target riscv32-linux-unknown-elf -fno-integrated-as \
> +// RUN: -march=rv32g --gcc-toolchain=%S/Inputs/multilib_riscv_linux_sdk \
> +// RUN: --sysroot=%S/Inputs/multilib_riscv_linux_sdk/sysroot %s -### \
> +// RUN: 2>&1 | FileCheck -check-prefix=MABI-ILP32-MARCH-G %s
> +
> +// MABI-ILP32: "{{.*}}/Inputs/multilib_riscv_linux_sdk/lib/gcc/riscv64-unknown-linux-gnu/7.2.0/../../../../riscv64-unknown-linux-gnu/bin{{/|\\\\}}as" "-mabi" "ilp32"
> +// MABI-ILP32-MARCH-G: "{{.*}}/Inputs/multilib_riscv_linux_sdk/lib/gcc/riscv64-unknown-linux-gnu/7.2.0/../../../../riscv64-unknown-linux-gnu/bin{{/|\\\\}}as" "-mabi" "ilp32" "-march" "rv32g"
> +
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


More information about the cfe-commits mailing list