[cfe-commits] r146051 - /cfe/trunk/runtime/compiler-rt/Makefile

Nico Weber thakis at chromium.org
Wed Dec 7 15:49:10 CST 2011


Hi,

I'm trying to use ASan on linux. I checked out compiler-rt into
llvm/projects, ran `make`, and now I'm trying to compile a test file:

$ Release+Asserts/bin/clang -faddress-sanitizer ~/test/test.c
/usr/bin/ld: /usr/local/google/chrome/src/third_party/llvm-build/Release+Asserts/lib/clang/linux/x86_64/libclang_rt.asan.a:
No such file: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)

That library does exist, but at a slightly different path:
$ ls Release+Asserts/lib/clang/3.1/lib/linux/libclang_rt.asan-x86_64.a
third_party/llvm-build/Release+Asserts/lib/clang/3.1/lib/linux/libclang_rt.asan-x86_64.a

Is that user error, or are not all paths quite right yet?

Thanks,
Nico

On Wed, Dec 7, 2011 at 1:30 PM, Daniel Dunbar <daniel at zuster.org> wrote:
> On Wed, Dec 7, 2011 at 1:16 PM, Kostya Serebryany <kcc at google.com> wrote:
>>
>>
>> On Wed, Dec 7, 2011 at 1:07 PM, Daniel Dunbar <daniel at zuster.org> wrote:
>>>
>>> On Wed, Dec 7, 2011 at 1:01 PM, Kostya Serebryany <kcc at google.com> wrote:
>>> > Thanks!
>>> >
>>> > Question:
>>> > There seem to be no way to build 32- and 64-bit linux libraries with a
>>> > single make command.
>>> > Am I right?
>>>
>>> Yes.
>>>
>>> > Do you plan to change this?
>>>
>>> I would like to, but it's a tad tricky with the current level of build
>>> support we have. This is also a cumbersome area to test because it
>>> really varies quite a lot based on the host Linux system, and there is
>>> so much diversity amongst distributions. I really wish we had a good
>>> farm of different common Linux distros available.
>>
>>
>> Can we build the secondary arch using a separate make command inside
>> compiler-rt (so that we don't need to re-build the hole llvm/clang)?
>
> Yes, that is no problem. The difficulty is in knowing whether or not
> we will successfully be able to build the alternate arch (-m64 on i386
> or -m32 on x86_64), i.e. does the user have whatever multi arch
> support is required installed. I'll see what I can do...
>
>  - Daniel
>
>>>
>>>
>>> > This change requires to fix the asan driver
>>> > in tools/clang/lib/Driver/Tools.cpp, I'll prepare a patch unless you
>>> > have it
>>> > ready.
>>>
>>> I'll fix it, I'm in the area.
>>
>>
>> Thanks!
>>
>>>
>>>
>>> > Evgeniy, could you please prepare a similar patch for linux/arm (take
>>> > r146051 and r145950 as an example)
>>>
>>> This is going to be hard. Unless I am mistaken, there is little to no
>>> standard for how to find the ARM toolchain to use to cross compile. Am
>>> I mistaken?
>>>
>>> My long term plan for fixing this is to make it blocked on good cross
>>> compilation support in Clang, but I understand that is not ideal if
>>> you want ASAN/ARM available in Clang ASAP.
>>
>>
>> Let's see what Evgeniy has to say (he has been porting asan to ARM).
>>
>> --kcc
>>
>>>
>>>
>>>  - Daniel
>>>
>>> >
>>> > --kcc
>>> >
>>> >
>>> >
>>> > On Wed, Dec 7, 2011 at 11:35 AM, Daniel Dunbar <daniel at zuster.org>
>>> > wrote:
>>> >>
>>> >> Author: ddunbar
>>> >> Date: Wed Dec  7 13:35:10 2011
>>> >> New Revision: 146051
>>> >>
>>> >> URL: http://llvm.org/viewvc/llvm-project?rev=146051&view=rev
>>> >> Log:
>>> >> runtime/Linux: Include the profile and ASAN libs on x86.
>>> >>
>>> >> Modified:
>>> >>    cfe/trunk/runtime/compiler-rt/Makefile
>>> >>
>>> >> Modified: cfe/trunk/runtime/compiler-rt/Makefile
>>> >> URL:
>>> >>
>>> >> http://llvm.org/viewvc/llvm-project/cfe/trunk/runtime/compiler-rt/Makefile?rev=146051&r1=146050&r2=146051&view=diff
>>> >>
>>> >>
>>> >> ==============================================================================
>>> >> --- cfe/trunk/runtime/compiler-rt/Makefile (original)
>>> >> +++ cfe/trunk/runtime/compiler-rt/Makefile Wed Dec  7 13:35:10 2011
>>> >> @@ -93,10 +93,12 @@
>>> >>
>>> >>  # We currently only try to generate runtime libraries on x86.
>>> >>  ifeq ($(ARCH),x86)
>>> >> -RuntimeLibrary.linux.Configs += full-i386
>>> >> +RuntimeLibrary.linux.Configs += \
>>> >> +       full-i386 profile-i386 asan-i386
>>> >>  endif
>>> >>  ifeq ($(ARCH),x86_64)
>>> >> -RuntimeLibrary.linux.Configs += full-x86_64
>>> >> +RuntimeLibrary.linux.Configs += \
>>> >> +       full-x86_64 profile-x86_64 asan-x86_64
>>> >>  endif
>>> >>
>>> >>  endif
>>> >>
>>> >>
>>> >> _______________________________________________
>>> >> cfe-commits mailing list
>>> >> cfe-commits at cs.uiuc.edu
>>> >> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>> >
>>> >
>>
>>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits



More information about the cfe-commits mailing list