r338385 - [RISCV] Add driver for riscv32-unknown-elf baremetal target

Erik Pilkington via cfe-commits cfe-commits at lists.llvm.org
Wed Sep 26 14:00:54 PDT 2018


I put a patch up to fix this here: https://reviews.llvm.org/D52574

Please take these warnings more seriously next time. It's the 
committer's responsibility to fix these warnings [1], and they often 
identify legitimate issues in the patch.

Thanks,
Erik

[1]: https://llvm.org/docs/DeveloperPolicy.html#quality

On 8/17/18 8:40 AM, Nico Weber via cfe-commits wrote:
> It's two weeks later and I'm still seeing this warning. Any news?
>
> On Fri, Aug 3, 2018 at 9:29 AM Dávid Bolvanský 
> <david.bolvansky at gmail.com <mailto:david.bolvansky at gmail.com>> wrote:
>
>     Such filename fix could be part of https://reviews.llvm.org/D50246
>
>     pi 3. 8. 2018 o 15:17 Nico Weber <thakis at chromium.org
>     <mailto:thakis at chromium.org>> napísal(a):
>
>         I'm getting this warning from the mac linker after this commit:
>
>         /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool:
>         warning same member name (libclangDriver.RISCV.o) in output
>         file used for input files:
>         obj/clang/lib/Driver/ToolChains/Arch/libclangDriver.RISCV.o
>         and: obj/clang/lib/Driver/ToolChains/libclangDriver.RISCV.o
>         (due to use of basename, truncation, blank padding or
>         duplicate input files)
>
>         Could we rename the file to fix that warning?
>
>         On Tue, Jul 31, 2018 at 10:40 AM David Bolvansky via
>         cfe-commits <cfe-commits at lists.llvm.org
>         <mailto:cfe-commits at lists.llvm.org>> wrote:
>
>             Author: xbolva00
>             Date: Tue Jul 31 07:21:46 2018
>             New Revision: 338385
>
>             URL: http://llvm.org/viewvc/llvm-project?rev=338385&view=rev
>             Log:
>             [RISCV] Add driver for riscv32-unknown-elf baremetal target
>
>             Summary:
>             This patch adds a driver for the baremetal RISC-V target
>             (i.e. riscv32-unknown-elf). For reference, D39963 added
>             basic target info and added support for
>             riscv32-linux-unknown-elf.
>
>             Patch by: asb (Alex Bradbury)
>
>             Reviewers: efriedma, phosek, apazos, espindola, mgrang
>
>             Reviewed By: mgrang
>
>             Subscribers: jrtc27, rogfer01, MartinMosbeck, brucehoult,
>             the_o, rkruppe, emaste, mgorny, arichardson, rbar,
>             johnrusso, simoncook, jordy.potman.lists, sabuasal,
>             niosHD, kito-cheng, shiva0217, zzheng, edward-jones,
>             mgrang, cfe-commits
>
>             Differential Revision: https://reviews.llvm.org/D46822
>
>             Added:
>                 cfe/trunk/lib/Driver/ToolChains/RISCV.cpp
>                 cfe/trunk/lib/Driver/ToolChains/RISCV.h
>                 cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/bin/
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/bin/riscv32-unknown-elf-ld
>              (with props)
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/lib/
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/lib/gcc/
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/lib/gcc/riscv32-unknown-elf/
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/lib/gcc/riscv32-unknown-elf/8.0.1/
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/lib/gcc/riscv32-unknown-elf/8.0.1/crtbegin.o
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/lib/gcc/riscv32-unknown-elf/8.0.1/crtend.o
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/riscv32-unknown-elf/
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/riscv32-unknown-elf/include/
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/riscv32-unknown-elf/include/c++/
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/riscv32-unknown-elf/include/c++/8.0.1/
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/riscv32-unknown-elf/include/c++/8.0.1/.keep
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/riscv32-unknown-elf/lib/
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/riscv32-unknown-elf/lib/crt0.o
>             Modified:
>                 cfe/trunk/lib/Driver/CMakeLists.txt
>                 cfe/trunk/lib/Driver/Driver.cpp
>                 cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
>                 cfe/trunk/test/Driver/riscv32-toolchain.c
>
>             Modified: cfe/trunk/lib/Driver/CMakeLists.txt
>             URL:
>             http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/CMakeLists.txt?rev=338385&r1=338384&r2=338385&view=diff
>             ==============================================================================
>             --- cfe/trunk/lib/Driver/CMakeLists.txt (original)
>             +++ cfe/trunk/lib/Driver/CMakeLists.txt Tue Jul 31
>             07:21:46 2018
>             @@ -57,6 +57,7 @@ add_clang_library(clangDriver
>                ToolChains/NetBSD.cpp
>                ToolChains/OpenBSD.cpp
>                ToolChains/PS4CPU.cpp
>             +  ToolChains/RISCV.cpp
>                ToolChains/Solaris.cpp
>                ToolChains/TCE.cpp
>                ToolChains/WebAssembly.cpp
>
>             Modified: cfe/trunk/lib/Driver/Driver.cpp
>             URL:
>             http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Driver.cpp?rev=338385&r1=338384&r2=338385&view=diff
>             ==============================================================================
>             --- cfe/trunk/lib/Driver/Driver.cpp (original)
>             +++ cfe/trunk/lib/Driver/Driver.cpp Tue Jul 31 07:21:46 2018
>             @@ -37,6 +37,7 @@
>              #include "ToolChains/NetBSD.h"
>              #include "ToolChains/OpenBSD.h"
>              #include "ToolChains/PS4CPU.h"
>             +#include "ToolChains/RISCV.h"
>              #include "ToolChains/Solaris.h"
>              #include "ToolChains/TCE.h"
>              #include "ToolChains/WebAssembly.h"
>             @@ -4399,6 +4400,10 @@ const ToolChain
>             &Driver::getToolChain(co
>                    case llvm::Triple::avr:
>                      TC =
>             llvm::make_unique<toolchains::AVRToolChain>(*this, Target,
>             Args);
>                      break;
>             +      case llvm::Triple::riscv32:
>             +      case llvm::Triple::riscv64:
>             +        TC =
>             llvm::make_unique<toolchains::RISCVToolChain>(*this,
>             Target, Args);
>             +        break;
>                    default:
>                      if (Target.getVendor() == llvm::Triple::Myriad)
>                        TC =
>             llvm::make_unique<toolchains::MyriadToolChain>(*this, Target,
>
>             Modified: cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
>             URL:
>             http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Gnu.cpp?rev=338385&r1=338384&r2=338385&view=diff
>             ==============================================================================
>             --- cfe/trunk/lib/Driver/ToolChains/Gnu.cpp (original)
>             +++ cfe/trunk/lib/Driver/ToolChains/Gnu.cpp Tue Jul 31
>             07:21:46 2018
>             @@ -1877,7 +1877,8 @@ void Generic_GCC::GCCInstallationDetecto
>
>                static const char *const RISCV32LibDirs[] = {"/lib",
>             "/lib32"};
>                static const char *const RISCVTriples[] =
>             {"riscv32-unknown-linux-gnu",
>             -  "riscv64-unknown-linux-gnu"};
>             +  "riscv64-unknown-linux-gnu",
>             +  "riscv32-unknown-elf"};
>
>                static const char *const SPARCv8LibDirs[] = {"/lib32",
>             "/lib"};
>                static const char *const SPARCv8Triples[] =
>             {"sparc-linux-gnu",
>
>             Added: cfe/trunk/lib/Driver/ToolChains/RISCV.cpp
>             URL:
>             http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/RISCV.cpp?rev=338385&view=auto
>             ==============================================================================
>             --- cfe/trunk/lib/Driver/ToolChains/RISCV.cpp (added)
>             +++ cfe/trunk/lib/Driver/ToolChains/RISCV.cpp Tue Jul 31
>             07:21:46 2018
>             @@ -0,0 +1,117 @@
>             +//===--- RISCV.cpp - RISCV ToolChain Implementations
>             ------------*- C++ -*-===//
>             +//
>             +//                     The LLVM Compiler Infrastructure
>             +//
>             +// This file is distributed under the University of
>             Illinois Open Source
>             +// License. See LICENSE.TXT for details.
>             +//
>             +//===----------------------------------------------------------------------===//
>             +
>             +#include "RISCV.h"
>             +#include "CommonArgs.h"
>             +#include "InputInfo.h"
>             +#include "clang/Driver/Compilation.h"
>             +#include "clang/Driver/Options.h"
>             +#include "llvm/Option/ArgList.h"
>             +#include "llvm/Support/Path.h"
>             +#include "llvm/Support/raw_ostream.h"
>             +
>             +using namespace clang::driver;
>             +using namespace clang::driver::toolchains;
>             +using namespace clang::driver::tools;
>             +using namespace clang;
>             +using namespace llvm::opt;
>             +
>             +/// RISCV Toolchain
>             +RISCVToolChain::RISCVToolChain(const Driver &D, const
>             llvm::Triple &Triple,
>             +                               const ArgList &Args)
>             +    : Generic_ELF(D, Triple, Args) {
>             +  GCCInstallation.init(Triple, Args);
>             +  getFilePaths().push_back(D.SysRoot + "/lib");
>             +  if (GCCInstallation.isValid()) {
>             +
>             getFilePaths().push_back(GCCInstallation.getInstallPath().str());
>             +    getProgramPaths().push_back(
>             +        (GCCInstallation.getParentLibPath() +
>             "/../bin").str());
>             +  }
>             +}
>             +
>             +Tool *RISCVToolChain::buildLinker() const {
>             +  return new tools::RISCV::Linker(*this);
>             +}
>             +
>             +void RISCVToolChain::AddClangSystemIncludeArgs(const
>             ArgList &DriverArgs,
>             +  ArgStringList &CC1Args) const {
>             +  if (DriverArgs.hasArg(options::OPT_nostdinc))
>             +    return;
>             +
>             +  if (!DriverArgs.hasArg(options::OPT_nostdlibinc)) {
>             +    SmallString<128> Dir(getDriver().SysRoot);
>             +    llvm::sys::path::append(Dir, "include");
>             +    addSystemInclude(DriverArgs, CC1Args, Dir.str());
>             +  }
>             +}
>             +
>             +void RISCVToolChain::addLibStdCxxIncludePaths(
>             +    const llvm::opt::ArgList &DriverArgs,
>             +    llvm::opt::ArgStringList &CC1Args) const {
>             +  StringRef LibDir = GCCInstallation.getParentLibPath();
>             +  const GCCVersion &Version = GCCInstallation.getVersion();
>             +  StringRef TripleStr = GCCInstallation.getTriple().str();
>             +  const Multilib &Multilib = GCCInstallation.getMultilib();
>             +  addLibStdCXXIncludePaths(
>             +      LibDir.str() + "/../" + TripleStr.str() +
>             "/include/c++/" + Version.Text,
>             +      "", TripleStr, "", "", Multilib.includeSuffix(),
>             DriverArgs, CC1Args);
>             +}
>             +
>             +void RISCV::Linker::ConstructJob(Compilation &C, const
>             JobAction &JA,
>             +                                 const InputInfo &Output,
>             +                                 const InputInfoList &Inputs,
>             +                                 const ArgList &Args,
>             +                                 const char
>             *LinkingOutput) const {
>             +  const ToolChain &ToolChain = getToolChain();
>             +  const Driver &D = ToolChain.getDriver();
>             +  ArgStringList CmdArgs;
>             +
>             +  if (!D.SysRoot.empty())
>             +    CmdArgs.push_back(Args.MakeArgString("--sysroot=" +
>             D.SysRoot));
>             +
>             +  std::string Linker =
>             getToolChain().GetProgramPath(getShortName());
>             +
>             +  bool WantCRTs =
>             +      !Args.hasArg(options::OPT_nostdlib,
>             options::OPT_nostartfiles);
>             +
>             +  if (WantCRTs) {
>             +
>             CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crt0.o")));
>             +
>             CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crtbegin.o")));
>             +  }
>             +
>             +  Args.AddAllArgs(CmdArgs, options::OPT_L);
>             +  ToolChain.AddFilePathLibArgs(Args, CmdArgs);
>             +  Args.AddAllArgs(CmdArgs,
>             +                  {options::OPT_T_Group, options::OPT_e,
>             options::OPT_s,
>             +                   options::OPT_t, options::OPT_Z_Flag,
>             options::OPT_r});
>             +
>             +  AddLinkerInputs(ToolChain, Inputs, Args, CmdArgs, JA);
>             +
>             +  // TODO: add C++ includes and libs if compiling C++.
>             +
>             +  if (!Args.hasArg(options::OPT_nostdlib) &&
>             +      !Args.hasArg(options::OPT_nodefaultlibs)) {
>             +    if (ToolChain.ShouldLinkCXXStdlib(Args))
>             +      ToolChain.AddCXXStdlibLibArgs(Args, CmdArgs);
>             +    CmdArgs.push_back("--start-group");
>             +    CmdArgs.push_back("-lc");
>             +    CmdArgs.push_back("-lgloss");
>             +    CmdArgs.push_back("--end-group");
>             +    CmdArgs.push_back("-lgcc");
>             +  }
>             +
>             +  if (WantCRTs)
>             +
>             CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crtend.o")));
>             +
>             +  CmdArgs.push_back("-o");
>             +  CmdArgs.push_back(Output.getFilename());
>             +  C.addCommand(llvm::make_unique<Command>(JA, *this,
>             Args.MakeArgString(Linker),
>             +                                          CmdArgs, Inputs));
>             +}
>             +// RISCV tools end.
>
>             Added: cfe/trunk/lib/Driver/ToolChains/RISCV.h
>             URL:
>             http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/RISCV.h?rev=338385&view=auto
>             ==============================================================================
>             --- cfe/trunk/lib/Driver/ToolChains/RISCV.h (added)
>             +++ cfe/trunk/lib/Driver/ToolChains/RISCV.h Tue Jul 31
>             07:21:46 2018
>             @@ -0,0 +1,57 @@
>             +//===--- RISCV.h - RISCV ToolChain Implementations
>             --------------*- C++ -*-===//
>             +//
>             +//                     The LLVM Compiler Infrastructure
>             +//
>             +// This file is distributed under the University of
>             Illinois Open Source
>             +// License. See LICENSE.TXT for details.
>             +//
>             +//===----------------------------------------------------------------------===//
>             +
>             +#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_RISCV_H
>             +#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_RISCV_H
>             +
>             +#include "Gnu.h"
>             +#include "clang/Driver/ToolChain.h"
>             +
>             +namespace clang {
>             +namespace driver {
>             +namespace toolchains {
>             +
>             +class LLVM_LIBRARY_VISIBILITY RISCVToolChain : public
>             Generic_ELF {
>             +public:
>             +  RISCVToolChain(const Driver &D, const llvm::Triple &Triple,
>             +                 const llvm::opt::ArgList &Args);
>             +
>             +  bool IsIntegratedAssemblerDefault() const override {
>             return true; }
>             +  void
>             +  AddClangSystemIncludeArgs(const llvm::opt::ArgList
>             &DriverArgs,
>             +                            llvm::opt::ArgStringList
>             &CC1Args) const override;
>             +  void
>             +  addLibStdCxxIncludePaths(const llvm::opt::ArgList
>             &DriverArgs,
>             +                           llvm::opt::ArgStringList
>             &CC1Args) const override;
>             +
>             +protected:
>             +  Tool *buildLinker() const override;
>             +};
>             +
>             +} // end namespace toolchains
>             +
>             +namespace tools {
>             +namespace RISCV {
>             +class LLVM_LIBRARY_VISIBILITY Linker : public GnuTool {
>             +public:
>             +  Linker(const ToolChain &TC) : GnuTool("RISCV::Linker",
>             "ld", TC) {}
>             +  bool hasIntegratedCPP() const override { return false; }
>             +  bool isLinkJob() const override { return true; }
>             +  void ConstructJob(Compilation &C, const JobAction &JA,
>             +                    const InputInfo &Output, const
>             InputInfoList &Inputs,
>             +                    const llvm::opt::ArgList &TCArgs,
>             +                    const char *LinkingOutput) const
>             override;
>             +};
>             +} // end namespace RISCV
>             +} // end namespace tools
>             +
>             +} // end namespace driver
>             +} // end namespace clang
>             +
>             +#endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_RISCV_H
>
>             Added:
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/bin/riscv32-unknown-elf-ld
>             URL:
>             http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/bin/riscv32-unknown-elf-ld?rev=338385&view=auto
>             ==============================================================================
>             ---
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/bin/riscv32-unknown-elf-ld
>             (added)
>             +++
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/bin/riscv32-unknown-elf-ld
>             Tue Jul 31 07:21:46 2018
>             @@ -0,0 +1 @@
>             +#!/bin/true
>
>             Propchange:
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/bin/riscv32-unknown-elf-ld
>             ------------------------------------------------------------------------------
>                 svn:executable = *
>
>             Added:
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/lib/gcc/riscv32-unknown-elf/8.0.1/crtbegin.o
>             URL:
>             http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/lib/gcc/riscv32-unknown-elf/8.0.1/crtbegin.o?rev=338385&view=auto
>             ==============================================================================
>                 (empty)
>
>             Added:
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/lib/gcc/riscv32-unknown-elf/8.0.1/crtend.o
>             URL:
>             http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/lib/gcc/riscv32-unknown-elf/8.0.1/crtend.o?rev=338385&view=auto
>             ==============================================================================
>                 (empty)
>
>             Added:
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/riscv32-unknown-elf/include/c++/8.0.1/.keep
>             URL:
>             http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/riscv32-unknown-elf/include/c%2B%2B/8.0.1/.keep?rev=338385&view=auto
>             ==============================================================================
>                 (empty)
>
>             Added:
>             cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/riscv32-unknown-elf/lib/crt0.o
>             URL:
>             http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/basic_riscv32_tree/riscv32-unknown-elf/lib/crt0.o?rev=338385&view=auto
>             ==============================================================================
>                 (empty)
>
>             Modified: cfe/trunk/test/Driver/riscv32-toolchain.c
>             URL:
>             http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/riscv32-toolchain.c?rev=338385&r1=338384&r2=338385&view=diff
>             ==============================================================================
>             --- cfe/trunk/test/Driver/riscv32-toolchain.c (original)
>             +++ cfe/trunk/test/Driver/riscv32-toolchain.c Tue Jul 31
>             07:21:46 2018
>             @@ -3,6 +3,36 @@
>              // RUN: %clang %s -### -no-canonical-prefixes -target
>             riscv32 2>&1 | FileCheck -check-prefix=CC1 %s
>              // CC1: clang{{.*}} "-cc1" "-triple" "riscv32"
>
>             +// RUN: %clang %s -### -no-canonical-prefixes \
>             +// RUN:   -target riscv32-unknown-elf \
>             +// RUN:  --gcc-toolchain=%S/Inputs/basic_riscv32_tree \
>             +// RUN:
>              --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf
>             2>&1 \
>             +// RUN:   | FileCheck -check-prefix=C-RV32-BAREMETAL-ILP32 %s
>             +
>             +// C-RV32-BAREMETAL-ILP32:
>             "{{.*}}Inputs/basic_riscv32_tree/lib/gcc/riscv32-unknown-elf/8.0.1/../../../../bin{{/|\\\\}}riscv32-unknown-elf-ld"
>             +// C-RV32-BAREMETAL-ILP32:
>             "--sysroot={{.*}}/Inputs/basic_riscv32_tree/riscv32-unknown-elf"
>             +// C-RV32-BAREMETAL-ILP32:
>             "{{.*}}/Inputs/basic_riscv32_tree/riscv32-unknown-elf/lib{{/|\\\\}}crt0.o"
>             +// C-RV32-BAREMETAL-ILP32:
>             "{{.*}}/Inputs/basic_riscv32_tree/lib/gcc/riscv32-unknown-elf/8.0.1{{/|\\\\}}crtbegin.o"
>             +// C-RV32-BAREMETAL-ILP32:
>             "-L{{.*}}/Inputs/basic_riscv32_tree/riscv32-unknown-elf/lib"
>             +// C-RV32-BAREMETAL-ILP32:
>             "-L{{.*}}/Inputs/basic_riscv32_tree/lib/gcc/riscv32-unknown-elf/8.0.1"
>             +// C-RV32-BAREMETAL-ILP32: "--start-group" "-lc"
>             "-lgloss" "--end-group" "-lgcc"
>             +// C-RV32-BAREMETAL-ILP32:
>             "{{.*}}/Inputs/basic_riscv32_tree/lib/gcc/riscv32-unknown-elf/8.0.1{{/|\\\\}}crtend.o"
>             +
>             +// RUN: %clangxx %s -### -no-canonical-prefixes \
>             +// RUN:   -target riscv32-unknown-elf \
>             +// RUN:  --gcc-toolchain=%S/Inputs/basic_riscv32_tree \
>             +// RUN:
>              --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf
>             2>&1 \
>             +// RUN:   | FileCheck
>             -check-prefix=CXX-RV32-BAREMETAL-ILP32 %s
>             +
>             +// CXX-RV32-BAREMETAL-ILP32: "-internal-isystem"
>             "{{.*}}Inputs/basic_riscv32_tree/lib/gcc/riscv32-unknown-elf/8.0.1/../../../../riscv32-unknown-elf/include/c++{{/|\\\\}}8.0.1"
>             +// CXX-RV32-BAREMETAL-ILP32:
>             "{{.*}}Inputs/basic_riscv32_tree/lib/gcc/riscv32-unknown-elf/8.0.1/../../../../bin{{/|\\\\}}riscv32-unknown-elf-ld"
>             +// CXX-RV32-BAREMETAL-ILP32:
>             "--sysroot={{.*}}/Inputs/basic_riscv32_tree/riscv32-unknown-elf"
>             +// CXX-RV32-BAREMETAL-ILP32:
>             "{{.*}}/Inputs/basic_riscv32_tree/riscv32-unknown-elf/lib{{/|\\\\}}crt0.o"
>             +// CXX-RV32-BAREMETAL-ILP32:
>             "{{.*}}/Inputs/basic_riscv32_tree/lib/gcc/riscv32-unknown-elf/8.0.1{{/|\\\\}}crtbegin.o"
>             +// CXX-RV32-BAREMETAL-ILP32:
>             "-L{{.*}}/Inputs/basic_riscv32_tree/riscv32-unknown-elf/lib"
>             +// CXX-RV32-BAREMETAL-ILP32:
>             "-L{{.*}}/Inputs/basic_riscv32_tree/lib/gcc/riscv32-unknown-elf/8.0.1"
>             +// CXX-RV32-BAREMETAL-ILP32: "-lstdc++" "--start-group"
>             "-lc" "-lgloss" "--end-group" "-lgcc"
>             +// CXX-RV32-BAREMETAL-ILP32:
>             "{{.*}}/Inputs/basic_riscv32_tree/lib/gcc/riscv32-unknown-elf/8.0.1{{/|\\\\}}crtend.o"
>
>              // RUN: %clang %s -### -no-canonical-prefixes -fuse-ld=ld \
>              // RUN:   -target riscv32-linux-unknown-elf \
>
>
>             _______________________________________________
>             cfe-commits mailing list
>             cfe-commits at lists.llvm.org <mailto:cfe-commits at lists.llvm.org>
>             http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180926/5b12c0ef/attachment-0001.html>


More information about the cfe-commits mailing list