Re: [PATCH] kasan: turn off asan-stack for clang-8 and earlier

From: Andrey Ryabinin
Date: Thu Feb 21 2019 - 11:14:19 EST




On 2/21/19 6:19 PM, Arnd Bergmann wrote:
> On Thu, Feb 21, 2019 at 11:06 AM Andrey Ryabinin
> <aryabinin@xxxxxxxxxxxxx> wrote:
>> On 2/20/19 8:35 PM, Arnd Bergmann wrote:
>>> On Wed, Feb 20, 2019 at 6:00 PM Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx> wrote:
>>>> On 2/20/19 5:51 PM, Arnd Bergmann wrote:
>
>>> Maybe bringing it back would be a compromise? That way it's hidden from
>>> all the build testing bots (because of the !CONFIG_COMPILE_TEST dependency),
>>> but anyone who really wants it can still have the option, and set
>>> CONFIG_FRAME_WARN
>>> to whichever value they like.
>>>
>>
>>
>> I think there is much simpler solution:
>>
>> ---
>> lib/Kconfig.kasan | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/lib/Kconfig.kasan b/lib/Kconfig.kasan
>> index 219cddc913ac..6cd035f06cee 100644
>> --- a/lib/Kconfig.kasan
>> +++ b/lib/Kconfig.kasan
>> @@ -105,6 +105,8 @@ endchoice
>>
>> config KASAN_STACK
>> int
>> + range 0 1
>> + prompt "Enable stack instrumentation (unsafe)" if CC_IS_CLANG && (CLANG_VERSION < 90000)
>> default 0 if CC_IS_CLANG && (CLANG_VERSION < 90000)
>> default 1
>> help
>> --
>>
>>
>> AFAIK, randconfig is not able to randomize int config options, so it will be disabled for build robots,
>> but users still will be able to enable it.
>
> Right, this will work, but I find it a bit awkward to require users to
> enter 0 or 1.
>
> My assumption is that build bots turn on CONFIG_COMPILE_TEST, so
> having a bool option that depends on COMPILE_TEST would be more
> conventional. We can debate whether it should also depend on
> CONFIG_EXPERT or not. Something like
>
> config KASAN_STACK
> bool "Enable stack instrumentation (unsafe)" if CC_IS_CLANG
> && !COMPILE_TEST
> default CC_IS_GCC || (CLANG_VERSION >= 90000)
>
> And then a simpler Makefile logic (could also be done in Kconfig) to turn
> that bool symbol into an integer argument for asan-stack=
>

Sounds good.