summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Driver.cpp
diff options
context:
space:
mode:
authorEd Schouten <ed@nuxi.nl>2015-03-26 11:13:44 +0000
committerEd Schouten <ed@nuxi.nl>2015-03-26 11:13:44 +0000
commit3c3e58c42d6db9edf99f4aaf1a78234af9793f74 (patch)
tree25ae383dfb7560cf5dc163d670f8a224a2baef20 /clang/lib/Driver/Driver.cpp
parent4fdbf557304c553e714c72972f2703e83e65fe2a (diff)
downloadbcm5719-llvm-3c3e58c42d6db9edf99f4aaf1a78234af9793f74.tar.gz
bcm5719-llvm-3c3e58c42d6db9edf99f4aaf1a78234af9793f74.zip
Let Clang invoke CloudABI's linker.
Now that CloudABI's target information and header search logic for Clang has been submitted, the only thing that remains to be done is adding support for CloudABI's linker. CloudABI uses Binutils ld, although there is some work to use lld instead. This means that this code is largely based on what we use on FreeBSD. There are some exceptions, however: - Only static linking is performed. CloudABI does not support any dynamically linked executables. - CloudABI uses compiler-rt, libc++ and libc++abi unconditionally. Link in these libraries instead of using libgcc_s, libstdc++, etc. - We must ensure that the .eh_frame_hdr is present to make C++ exceptions work properly. Differential Revision: http://reviews.llvm.org/D8250 llvm-svn: 233269
Diffstat (limited to 'clang/lib/Driver/Driver.cpp')
-rw-r--r--clang/lib/Driver/Driver.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index c619c8caa99..0e99c5882a4 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -2030,6 +2030,9 @@ const ToolChain &Driver::getToolChain(const ArgList &Args,
ToolChain *&TC = ToolChains[Target.str()];
if (!TC) {
switch (Target.getOS()) {
+ case llvm::Triple::CloudABI:
+ TC = new toolchains::CloudABI(*this, Target, Args);
+ break;
case llvm::Triple::Darwin:
case llvm::Triple::MacOSX:
case llvm::Triple::IOS:
OpenPOWER on IntegriCloud