Re: [PATCH] selftests: Add _GNU_SOURCE definition when including kselftest_harness.h

From: Andrew Morton
Date: Tue May 07 2024 - 13:07:10 EST


On Tue, 7 May 2024 14:35:34 +0800 Tao Su <tao1.su@xxxxxxxxxxxxxxx> wrote:

> asprintf() is declared in stdio.h when defining _GNU_SOURCE, but stdio.h
> is so common that many files don’t define _GNU_SOURCE before including
> stdio.h, and defining _GNU_SOURCE after including stdio.h will no longer
> take effect.
>
> Since kselftest_harness.h introduces asprintf(), it is necessary to add
> _GNU_SOURCE definition in all selftests including kselftest_harness.h,
> otherwise, there will be warnings or even errors during compilation.
> There are already many selftests that define _GNU_SOURCE or put the
> include of kselftest_harness.h at the very beginning of the .c file, just
> add the _GNU_SOURCE definition in the tests that have compilation warnings.

That asprintf() continues to cause problems. How about we just remove
it? Do the malloc(snprintf(str, 0, ...)) separately?