Re: [PATCH 3/3] selftests/futex: pass _GNU_SOURCE without a value to the compiler

John Hubbard
2024-05-08T21:05:43Z

On 5/2/24 9:18 PM, John Hubbard wrote:
> It's slightly better to set _GNU_SOURCE in the source code, but if one
> must do it via the compiler invocation, then the best way to do so is
> this:

Hi Shuah, Edward and all,

This patch now seems to be obsolete, due to Edward Liaw's comprehensive
fix, "[PATCH v2 0/5] Define _GNU_SOURCE for sources using" [1].

[1] https://lore.kernel.org/20240507214254.2787305-1-edliaw@google.com

A process question for Shuah: shall I gather up the selftest patches
that have reviews and acks, and post them with the versions incremented?

I'm new to this list, and I'm not sure of your exact workflow. And there
are admittedly a flurry of patches involved.

[1] https://lore.kernel.org/20240507214254.2787305-1-edliaw@google.com

thanks,
--
John Hubbard
NVIDIA

>
> $(CC) -D_GNU_SOURCE=
>
> ...because otherwise, if this form is used:
>
> $(CC) -D_GNU_SOURCE
>
> ...then that leads the compiler to set a value, as if you had passed in:
>
> $(CC) -D_GNU_SOURCE=1
>
> That, in turn, leads to warnings under both gcc and clang, like this:
>
> futex_requeue_pi.c:20: warning: "_GNU_SOURCE" redefined
>
> Fix this by using the "-D_GNU_SOURCE=" form.
>
> Signed-off-by: John Hubbard <jhubbard@nvidia.com>
> ---
> tools/testing/selftests/futex/functional/Makefile | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/futex/functional/Makefile b/tools/testing/selftests/futex/functional/Makefile
> index a392d0917b4e..994fa3468f17 100644
> --- a/tools/testing/selftests/futex/functional/Makefile
> +++ b/tools/testing/selftests/futex/functional/Makefile
> @@ -1,6 +1,6 @@
> # SPDX-License-Identifier: GPL-2.0
> INCLUDES := -I../include -I../../ $(KHDR_INCLUDES)
> -CFLAGS := $(CFLAGS) -g -O2 -Wall -D_GNU_SOURCE -pthread $(INCLUDES) $(KHDR_INCLUDES)
> +CFLAGS := $(CFLAGS) -g -O2 -Wall -D_GNU_SOURCE= -pthread $(INCLUDES) $(KHDR_INCLUDES)
> LDLIBS := -lpthread -lrt
>
> LOCAL_HDRS := \