This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Porting libsanitizer to aarch64
- From: Konstantin Serebryany <konstantin dot s dot serebryany at gmail dot com>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: Christophe Lyon <christophe dot lyon at linaro dot org>, GCC Development <gcc at gcc dot gnu dot org>
- Date: Wed, 22 May 2013 11:26:32 +0400
- Subject: Re: Porting libsanitizer to aarch64
- References: <CAKdteOa-UDeo5zDwCeYSydu0K-WqmTjPgj3sYUpKrc0YPoncCg at mail dot gmail dot com> <20130521154426 dot GA1377 at tucnak dot redhat dot com> <CAGQ9bdyXCWDt0FF4+F5_4LbW7XcZACczKfHhr28nnwk96rf5Mw at mail dot gmail dot com>
[resending in plain text mode; arghh]
On Wed, May 22, 2013 at 11:25 AM, Konstantin Serebryany
<konstantin.s.serebryany@gmail.com> wrote:
> Hi Christophe,
>
> We would love to see the aarch64-specific changes in upstream repo
> (see https://code.google.com/p/address-sanitizer/wiki/HowToBuild).
> Once the changes are in the upstream svn, one of us will merge them to the
> gcc trunk.
>
> If you have some non-trivial concerns, please reach us at
> address-sanitizer@googlegroups.com
> My question to you would be: will it be possible to have a public build bot
> for aarch64?
> (W/o regular automated testing we will be breaking aarch64 every second day)
>
>
> On Tue, May 21, 2013 at 7:44 PM, Jakub Jelinek <jakub@redhat.com> wrote:
>>
>> On Tue, May 21, 2013 at 05:35:45PM +0200, Christophe Lyon wrote:
>> > I have been looking at enabling libsanitizer for aarch64 GCC compilers.
>> >
>> > To make the build succeed, I had to modify libsanitizer code:
>> > - some syscalls are not available on aarch64 (libsanitizer uses some
>> > legacy ones such as open, readlink, stat, ...)
>> > - unwinding code needs to be added.
>> >
>> > What's the way of discussing such patches? On GCC lists or elsewhere?
>>
>> libsanitizer/ changes for code imported from upstream repo needs to be
>> discussed with the asan maintainers and done first in the upstream repo,
>> then imported.
>>
>> > Then arises a runtime problem: aarch64's frame grows upward which is
>> > not supported: how long would it take to develop this support if at
>> > all possible?
>>
>> Better do what all other targets that want to support -fstack-protector*
>> or -fsanitize=address, use frame grows downward if flag_stack_protector
>> || flag_asan. You wouldn't have -fstack-protector* support otherwise
>> either.
>
>
> I would second that.
> Supporting upward-growing stack will introduce quite a bit of disruption in
> the run-time library and
> in both compiler modules (GCC and LLVM).
>
>
>>
>>
>> > I have not looked at tsan in detail yet, it currently does not build
>> > for aarch64 either.
>>
>> tsan is right now x86_64 only, but that decision is pretty much the
>> runtime
>> library decision on what will be supported.
>
>
> indeed, today tsan is x86_64-only. (it even has a small x86_64 assembly
> blob).
> this tool heavily depends on 64-bit atomic loads/stores, so we are unlikely
> to ever implement
> it on 32-bit architectures (ARM, i386, etc).
> But on aarch64 (or, e.g. PowerPC) it should be doable.
> For tsan-related discussions you are welcome to
> thread-sanitizer@googlegroups.com
>
> --kcc
>
>
>>
>>
>> Jakub
>
>