summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2012-12-24 21:01:22 +0100
committerAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2012-12-24 21:14:10 +0100
commit78c2bd1f96d78e6d14ad5fd307050811d8f47933 (patch)
tree91185ff12fb03f23801195f03725c6361480685b
parentade67ee4fcb3d14c87d117639c504fe9a7a55027 (diff)
downloadclang-78c2bd1f96d78e6d14ad5fd307050811d8f47933.tar.gz
clang-78c2bd1f96d78e6d14ad5fd307050811d8f47933.tar.bz2
clang-78c2bd1f96d78e6d14ad5fd307050811d8f47933.tar.xz
[Embtk] ARM: correctly set the -dynamic-linker for musleabi and uclibceabi triples
Signed-off-by: Abdoulaye Walsimou Gaye <awg@embtoolkit.org>
-rw-r--r--lib/Driver/Tools.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
index 72bff7e7ec..112c61fcbc 100644
--- a/lib/Driver/Tools.cpp
+++ b/lib/Driver/Tools.cpp
@@ -5982,10 +5982,16 @@ void linuxtools::Link::ConstructJob(Compilation &C, const JobAction &JA,
CmdArgs.push_back("/lib/ld-linux.so.2");
else if (ToolChain.getArch() == llvm::Triple::arm ||
ToolChain.getArch() == llvm::Triple::thumb) {
- if (ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUEABIHF)
- CmdArgs.push_back("/lib/ld-linux-armhf.so.3");
- else
- CmdArgs.push_back("/lib/ld-linux.so.3");
+ if (ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUEABIHF &&
+ ToolChain.getTriple().getEnvironmentName() != "musleabi" &&
+ ToolChain.getTriple().getEnvironmentName() != "uclibceabi")
+ CmdArgs.push_back("/lib/ld-linux-armhf.so.3");
+ else if (ToolChain.getTriple().getEnvironmentName() == "musleabi")
+ CmdArgs.push_back("/lib/ld-musl-arm.so.1");
+ else if (ToolChain.getTriple().getEnvironmentName() == "uclibceabi")
+ CmdArgs.push_back("/lib/ld-uClibc.so.0");
+ else
+ CmdArgs.push_back("/lib/ld-linux.so.3");
}
else if (ToolChain.getArch() == llvm::Triple::mips ||
ToolChain.getArch() == llvm::Triple::mipsel)