[llvm-commits] [PATCH] Clang fails to find correct lib path from GNU binutils for ARM supporting multi-arch folder

Chad Rosier mcrosier at apple.com
Wed Jul 11 12:10:13 PDT 2012


On Jul 10, 2012, at 6:45 PM, Jiangning Liu wrote:

> 
> 
>> -----Original Message-----
>> From: Chad Rosier [mailto:mcrosier at apple.com]
>> Sent: Wednesday, July 11, 2012 1:00 AM
>> To: Jiangning Liu
>> Cc: llvm-commits at cs.uiuc.edu
>> Subject: Re: [llvm-commits] [PATCH] Clang fails to find correct lib path
>> from GNU binutils for ARM supporting multi-arch folder
>> 
>> Jiangning,
>> LGTM.  If you have commit access please commit.  Otherwise, let me know
>> and I'll do it on your behalf.
> 
> Hi Chad,
> 
> I don't have commit access, so could you please help me to do it? Thanks a
> lot!

Committed revision 160060.

 Chad

>> Also, not a big deal, but this should have been sent to the cfe-commits
>> list.
> 
> OK, I see. I'll send this kind of patch to cfe-commits mail list next time.
> Thanks for your kindly reminding me.
> 
> -Jiangning
> 
>> 
>> Chad
>> 
>> On Jul 10, 2012, at 3:06 AM, Jiangning Liu wrote:
>> 
>>> Hi,
>>> 
>>> This patch is to fix a simple bug in Clang driver. Clang fails to find
>>> correct path prefix for libc object files from GNU binutils supporting
>>> multi-arch folder for ARM target. For example, on Ubuntu 11.10 for
>>> ARM, Clang driver doesn't find and path prefix for crt1.o, crti.o and
>>> crtn.o when passing command line options to GNU linker. The fix
>>> completely follows the implementation of other targets.
>>> 
>>> diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
>>> index 93df747..b858c3e 100644
>>> --- a/lib/Driver/ToolChains.cpp
>>> +++ b/lib/Driver/ToolChains.cpp
>>> @@ -1905,6 +1905,11 @@ static std::string getMultiarchTriple(const
>>> llvm::Triple TargetTriple,
>>>    // common linux triples that don't quite match the Clang triple
>>> for both
>>>    // 32-bit and 64-bit targets. Multiarch fixes its install triples
>>> to these
>>>    // regardless of what the actual target triple is.
>>> +  case llvm::Triple::arm:
>>> +  case llvm::Triple::thumb:
>>> +    if (llvm::sys::fs::exists(SysRoot + "/lib/arm-linux-gnueabi"))
>>> +      return "arm-linux-gnueabi";
>>> +    return TargetTriple.str();
>>>  case llvm::Triple::x86:
>>>    if (llvm::sys::fs::exists(SysRoot + "/lib/i386-linux-gnu"))
>>>      return "i386-linux-gnu";
>>> 
>>> Thanks,
>>> -Jiangning<multi_arch_1.patch>________________________________________
>>> _______
>>> llvm-commits mailing list
>>> llvm-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>> 
>> 
> 
> 
> 




More information about the llvm-commits mailing list