Patchwork ASAN merge...

login
register
mail settings
Submitter Dodji Seketeli
Date Nov. 14, 2012, 1:26 p.m.
Message ID <87obj0z567.fsf@redhat.com>
Download mbox | patch
Permalink /patch/198908/
State New
Headers show

Comments

Dodji Seketeli - Nov. 14, 2012, 1:26 p.m.
David Miller <davem@davemloft.net> writes:

> From: Diego Novillo <dnovillo@google.com>
> Date: Tue, 13 Nov 2012 11:21:59 -0500
>
>> On Tue, Nov 13, 2012 at 12:07 AM, David Miller <davem@davemloft.net> wrote:
>>>
>>> This has broken the build on every Linux target that hasn't added
>>> the necessary cpu specific code to asan_linux.cc
>> 
>> This should be fixed by Dodji's recent patch.  ASAN is not currently
>> ported to any target other than x86/linux, so it should just be
>> completely disabled until the other ports start showing up.
>> 
>> Dodji is your patch committed?
>
> So I wasted my time by writing the sparc bits necessary to fix
> the build?

I don't think you wasted your time.  The work you did is certainly
necessary.


However, it is probably not sufficient because besides the runtime
libsanitizer library, asan needs the target hook asan_shadow_offset() to
be defined for your target.  To date, that hook is only defined for x86
in config/i386/i386.c to ix86_asan_shadow_offset.  This is the 'offset'
used to compute the address of the shadow memory region for a given
address like in:

    shadow = address >> 3 + offset

That amounts to saying that for x86, the shadow memory is placed at the
bottom of the virtual memory space, as explained at
http://code.google.com/p/address-sanitizer/wiki/AddressSanitizerAlgorithm#Mapping.

I don't know if that mapping would work for sparc, though.

> Please leave enabled the platforms that do actually build.

I guess we could do that.  That would build libsanitizer, but asan will
still not be available on sparc if the asan_shadow_offset() target hook
is not provided.  Is that OK to you?

If it is, then I guess the patch below should do the trick?


Cheers.
David Miller - Nov. 14, 2012, 5:06 p.m.
From: Dodji Seketeli <dodji@redhat.com>
Date: Wed, 14 Nov 2012 14:26:40 +0100

> I guess we could do that.  That would build libsanitizer, but asan will
> still not be available on sparc if the asan_shadow_offset() target hook
> is not provided.  Is that OK to you?

Yes.

Patch

diff --git a/libsanitizer/configure.tgt b/libsanitizer/configure.tgt
index ca7ac1f..988312e 100644
--- a/libsanitizer/configure.tgt
+++ b/libsanitizer/configure.tgt
@@ -20,7 +20,7 @@ 
 
 # Filter out unsupported systems.
 case "${target}" in
-  x86_64-*-linux* | i?86-*-linux*)
+  x86_64-*-linux* | i?86-*-linux* | sparc*-*-linux*)
 	;;
   *)
 	UNSUPPORTED=1