RFR [10] 8189800: Add support for AddressSanitizer

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Tue Oct 31 12:42:45 UTC 2017


On 2017-10-31 13:24, David Holmes wrote:
> Sounds reasonable. Anyone using older gcc simply won't/shouldn't 
> enable Asan.

Agree. We will probably not be keeping any pretense of supporting 
anything older than gcc 4.9 at some point in time anyway. I believe the 
only known user of the oldest gcc is SAP for some of their platforms.

/Magnus
>
> Thanks,
> David
>
> On 31/10/2017 8:58 PM, Artem Smotrakov wrote:
>> Hi David,
>>
>> That's a good question, I thought about it. According to [1]:
>>
>> - recommended versions of gcc is 4.9.2
>> - the minimum accepted version of gcc is 4.7 (Older versions will 
>> generate a warning by `configure` and are unlikely to work.)
>> - the minimum accepted version of clang is 3.2 (Older versions will 
>> not be accepted by `configure`)
>>
>> It looks like that clang has to be at least 3.2 which should contain 
>> AddressSanitizer. Only for gcc, there may be a chance that someone 
>> wants to use 4.7. So, we might want to check version to see if it's 
>> 4.7, although I am not sure how many people would like to use gcc 
>> 4.7. As a result, this case didn't look very common to me, so I 
>> preferred to simplify the patch, and didn't add such a check.
>>
>> Without version check, compilation is going to fail if gcc 4.7 is 
>> used, and -fsanitize=address enabled.
>>
>> [1] 
>> http://hg.openjdk.java.net/jdk10/master/file/438e0c9f2f17/doc/building.md
>>
>> Artem
>>
>> On 10/31/2017 01:37 PM, David Holmes wrote:
>>> Hi Artem,
>>>
>>> On 28/10/2017 6:02 AM, Artem Smotrakov wrote:
>>>> Hello,
>>>>
>>>> Please review the following patch which adds support for 
>>>> AddressSanitizer.
>>>>
>>>> AddressSanitizer is a runtime memory error detector which looks for 
>>>> various memory corruption issues and leaks.
>>>>
>>>> Please refer to [1] for details. AddressSanitizer is available in 
>>>> gcc 4.8+ and clang 3.1+
>>>
>>> Should we be checking the version before adding the flags?
>>>
>>> Thanks,
>>> David
>>>
>>>> The patch below introduces --enable-asan parameter for the 
>>>> configure script which enables AddressSanitizer.
>>>>
>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8189800
>>>> Webrev: http://cr.openjdk.java.net/~asmotrak/8189800/webrev.00/
>>>>
>>>> [1] https://github.com/google/sanitizers/wiki/AddressSanitizer
>>>>
>>>> Artem
>>




More information about the build-dev mailing list