r338385 - [RISCV] Add driver for riscv32-unknown-elf baremetal target
Dávid Bolvanský via cfe-commits
cfe-commits at lists.llvm.org
Fri Aug 3 06:29:30 PDT 2018
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/20180803/1eeab012/attachment-0001.html>
More information about the cfe-commits
mailing list