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

Nico Weber via cfe-commits cfe-commits at lists.llvm.org
Fri Aug 17 08:40:48 PDT 2018


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>
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> 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> 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
>>> 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/20180817/f4dac3f3/attachment-0001.html>


More information about the cfe-commits mailing list