Home | History | Annotate | Download | only in llvm
      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