1 From 7d512d6a92ec8c10479e04c452f5d119a739fe89 Mon Sep 17 00:00:00 2001 2 From: Logan Chien <loganchien (a] google.com> 3 Date: Tue, 28 Aug 2012 13:28:47 +0800 4 Subject: [PATCH] Fix MIPS link error when using Clang. 5 6 --- 7 llvm-3.1/tools/clang/lib/Driver/Tools.cpp | 9 ++++++--- 8 1 files changed, 6 insertions(+), 3 deletions(-) 9 10 diff --git a/llvm-3.1/tools/clang/lib/Driver/Tools.cpp b/llvm-3.1/tools/clang/lib/Driver/Tools.cpp 11 index 859023f..cdbd1ff 100644 12 --- a/llvm-3.1/tools/clang/lib/Driver/Tools.cpp 13 +++ b/llvm-3.1/tools/clang/lib/Driver/Tools.cpp 14 @@ -5127,12 +5127,12 @@ void linuxtools::Assemble::ConstructJob(Compilation &C, const JobAction &JA, 15 static void AddLibgcc(llvm::Triple Triple, const Driver &D, 16 ArgStringList &CmdArgs, const ArgList &Args) { 17 bool isAndroid = Triple.getEnvironment() == llvm::Triple::ANDROID; 18 - bool StaticLibgcc = isAndroid || Args.hasArg(options::OPT_static) || 19 - Args.hasArg(options::OPT_static_libgcc); 20 + bool StaticLibgcc = Args.hasArg(options::OPT_static) || 21 + Args.hasArg(options::OPT_static_libgcc); 22 if (!D.CCCIsCXX) 23 CmdArgs.push_back("-lgcc"); 24 25 - if (StaticLibgcc) { 26 + if (StaticLibgcc || isAndroid) { 27 if (D.CCCIsCXX) 28 CmdArgs.push_back("-lgcc"); 29 } else { 30 @@ -5147,6 +5147,9 @@ static void AddLibgcc(llvm::Triple Triple, const Driver &D, 31 CmdArgs.push_back("-lgcc_eh"); 32 else if (!Args.hasArg(options::OPT_shared) && D.CCCIsCXX) 33 CmdArgs.push_back("-lgcc"); 34 + 35 + if (!StaticLibgcc && isAndroid) 36 + CmdArgs.push_back("-ldl"); 37 } 38 39 void linuxtools::Link::ConstructJob(Compilation &C, const JobAction &JA, 40 -- 41 1.7.7.3 42 43