]> granicus.if.org Git - clang/commit
Let Clang invoke CloudABI's linker.
authorEd Schouten <ed@nuxi.nl>
Thu, 26 Mar 2015 11:13:44 +0000 (11:13 +0000)
committerEd Schouten <ed@nuxi.nl>
Thu, 26 Mar 2015 11:13:44 +0000 (11:13 +0000)
commit1900e229c00d5626eb0a65cd932cf4231b6061b4
treefae147073eb0fd22bb7626798acb7d0c73378cb5
parent2baeab1242a4c166c56eb5f08f5eaddfeffad2b9
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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@233269 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Driver/Driver.cpp
lib/Driver/ToolChains.cpp
lib/Driver/ToolChains.h
lib/Driver/Tools.cpp
lib/Driver/Tools.h
test/Driver/cloudabi.c [new file with mode: 0644]
test/Driver/cloudabi.cpp [new file with mode: 0644]