diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2016-06-14 12:47:24 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2016-06-14 12:47:24 +0000 |
| commit | 164fe34e98812138b72275c4dab2c7c1db394f79 (patch) | |
| tree | 454c88b727a8c8645811aab13131b69d9cdb8f2f /clang | |
| parent | 66a9d07a86765596835e23b309e099689f8e685d (diff) | |
| download | bcm5719-llvm-164fe34e98812138b72275c4dab2c7c1db394f79.tar.gz bcm5719-llvm-164fe34e98812138b72275c4dab2c7c1db394f79.zip | |
Start adding support for Musl.
The two patches together enable clang to support targets like
"x86_64-pc-linux-musl" and build binaries against musl-libc instead of
glibc. This make it easy for clang to work on some musl-based systems
like Alpine Linux and certain flavors of Gentoo.
Patch by Lei Zhang.
llvm-svn: 272662
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/Driver/ToolChains.cpp | 2 | ||||
| -rw-r--r-- | clang/test/Driver/linux-ld.c | 10 |
2 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp index eec4174d753..fcc6dfe35d5 100644 --- a/clang/lib/Driver/ToolChains.cpp +++ b/clang/lib/Driver/ToolChains.cpp @@ -4152,6 +4152,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { if (Triple.isAndroid()) return Triple.isArch64Bit() ? "/system/bin/linker64" : "/system/bin/linker"; + else if (Triple.getEnvironment() == llvm::Triple::Musl) + return "/lib/ld-musl-" + Triple.getArchName().str() + ".so.1"; std::string LibDir; std::string Loader; diff --git a/clang/test/Driver/linux-ld.c b/clang/test/Driver/linux-ld.c index 15e500a3aea..871065517ab 100644 --- a/clang/test/Driver/linux-ld.c +++ b/clang/test/Driver/linux-ld.c @@ -1571,3 +1571,13 @@ // CHECK-ARMV7EB: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" // CHECK-ARMV7EB: "--be8" // CHECK-ARMV7EB: "-m" "armelfb_linux_eabi" + +// Check dynamic-linker for musl-libc +// RUN: %clang %s -### -o %t.o 2>&1 \ +// RUN: --target=i386-pc-linux-musl \ +// RUN: | FileCheck --check-prefix=CHECK-MUSL32 %s +// RUN: %clang %s -### -o %t.o 2>&1 \ +// RUN: --target=x86_64-pc-linux-musl \ +// RUN: | FileCheck --check-prefix=CHECK-MUSL64 %s +// CHECK-MUSL32: "-dynamic-linker" "/lib/ld-musl-i386.so.1" +// CHECK-MUSL64: "-dynamic-linker" "/lib/ld-musl-x86_64.so.1" |

