* [PATCH 1/3] selftests/futex: don't redefine .PHONY targets (all, clean)
2024-05-03 4:18 [PATCH 0/3] selftests/futex: clang-inspired fixes John Hubbard
@ 2024-05-03 4:18 ` John Hubbard
2024-05-03 4:18 ` [PATCH 2/3] selftests/futex: don't pass a const char* to asprintf(3) John Hubbard
` (2 subsequent siblings)
3 siblings, 0 replies; 8+ messages in thread
From: John Hubbard @ 2024-05-03 4:18 UTC (permalink / raw)
To: Shuah Khan
Cc: Thomas Gleixner, Ingo Molnar, Peter Zijlstra, Darren Hart,
Davidlohr Bueso, André Almeida, Nysal Jan K . A, Mark Brown,
Valentin Obst, linux-kselftest, LKML, llvm, John Hubbard
The .PHONY targets "all" and "clean" are both defined in the file that
is included in the very next line: ../lib.mk.
Signed-off-by: John Hubbard <jhubbard@nvidia.com>
---
tools/testing/selftests/futex/Makefile | 2 --
1 file changed, 2 deletions(-)
diff --git a/tools/testing/selftests/futex/Makefile b/tools/testing/selftests/futex/Makefile
index 11e157d7533b..78ab2cd111f6 100644
--- a/tools/testing/selftests/futex/Makefile
+++ b/tools/testing/selftests/futex/Makefile
@@ -3,8 +3,6 @@ SUBDIRS := functional
TEST_PROGS := run.sh
-.PHONY: all clean
-
include ../lib.mk
all:
--
2.45.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH 2/3] selftests/futex: don't pass a const char* to asprintf(3)
2024-05-03 4:18 [PATCH 0/3] selftests/futex: clang-inspired fixes John Hubbard
2024-05-03 4:18 ` [PATCH 1/3] selftests/futex: don't redefine .PHONY targets (all, clean) John Hubbard
@ 2024-05-03 4:18 ` John Hubbard
2024-05-03 4:18 ` [PATCH 3/3] selftests/futex: pass _GNU_SOURCE without a value to the compiler John Hubbard
2024-05-06 16:13 ` [PATCH 0/3] selftests/futex: clang-inspired fixes Davidlohr Bueso
3 siblings, 0 replies; 8+ messages in thread
From: John Hubbard @ 2024-05-03 4:18 UTC (permalink / raw)
To: Shuah Khan
Cc: Thomas Gleixner, Ingo Molnar, Peter Zijlstra, Darren Hart,
Davidlohr Bueso, André Almeida, Nysal Jan K . A, Mark Brown,
Valentin Obst, linux-kselftest, LKML, llvm, John Hubbard
First of all, in order to build with clang at all, one must first apply
Valentin Obst's build fix for LLVM [1]. Once that is done, then when
building with clang, via:
make LLVM=1 -C tools/testing/selftests
...clang issues a warning, because test_name is passed into asprintf(3),
which then changes it.
Fix this by simply removing the const qualifier. This is a local
automatic variable in a very short function, so there is not much need
to use the compiler to enforce const-ness at this scope.
[1] https://lore.kernel.org/all/20240329-selftests-libmk-llvm-rfc-v1-1-2f9ed7d1c49f@valentinobst.de/
Fixes: f17d8a87ecb5 ("selftests: fuxex: Report a unique test name per run of futex_requeue_pi")
Signed-off-by: John Hubbard <jhubbard@nvidia.com>
---
tools/testing/selftests/futex/functional/futex_requeue_pi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/futex/functional/futex_requeue_pi.c b/tools/testing/selftests/futex/functional/futex_requeue_pi.c
index 7f3ca5c78df1..215c6cb539b4 100644
--- a/tools/testing/selftests/futex/functional/futex_requeue_pi.c
+++ b/tools/testing/selftests/futex/functional/futex_requeue_pi.c
@@ -360,7 +360,7 @@ int unit_test(int broadcast, long lock, int third_party_owner, long timeout_ns)
int main(int argc, char *argv[])
{
- const char *test_name;
+ char *test_name;
int c, ret;
while ((c = getopt(argc, argv, "bchlot:v:")) != -1) {
--
2.45.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH 3/3] selftests/futex: pass _GNU_SOURCE without a value to the compiler
2024-05-03 4:18 [PATCH 0/3] selftests/futex: clang-inspired fixes John Hubbard
2024-05-03 4:18 ` [PATCH 1/3] selftests/futex: don't redefine .PHONY targets (all, clean) John Hubbard
2024-05-03 4:18 ` [PATCH 2/3] selftests/futex: don't pass a const char* to asprintf(3) John Hubbard
@ 2024-05-03 4:18 ` John Hubbard
2024-05-08 21:05 ` John Hubbard
2024-05-06 16:13 ` [PATCH 0/3] selftests/futex: clang-inspired fixes Davidlohr Bueso
3 siblings, 1 reply; 8+ messages in thread
From: John Hubbard @ 2024-05-03 4:18 UTC (permalink / raw)
To: Shuah Khan
Cc: Thomas Gleixner, Ingo Molnar, Peter Zijlstra, Darren Hart,
Davidlohr Bueso, André Almeida, Nysal Jan K . A, Mark Brown,
Valentin Obst, linux-kselftest, LKML, llvm, John Hubbard
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:
$(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 := \
--
2.45.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH 3/3] selftests/futex: pass _GNU_SOURCE without a value to the compiler
2024-05-03 4:18 ` [PATCH 3/3] selftests/futex: pass _GNU_SOURCE without a value to the compiler John Hubbard
@ 2024-05-08 21:05 ` John Hubbard
2024-05-28 22:24 ` Edward Liaw
0 siblings, 1 reply; 8+ messages in thread
From: John Hubbard @ 2024-05-08 21:05 UTC (permalink / raw)
To: Shuah Khan
Cc: Thomas Gleixner, Ingo Molnar, Peter Zijlstra, Darren Hart,
Davidlohr Bueso, André Almeida, Nysal Jan K . A, Mark Brown,
Valentin Obst, linux-kselftest, LKML, llvm, Edward Liaw
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 := \
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 3/3] selftests/futex: pass _GNU_SOURCE without a value to the compiler
2024-05-08 21:05 ` John Hubbard
@ 2024-05-28 22:24 ` Edward Liaw
2024-05-28 22:43 ` John Hubbard
0 siblings, 1 reply; 8+ messages in thread
From: Edward Liaw @ 2024-05-28 22:24 UTC (permalink / raw)
To: John Hubbard
Cc: Shuah Khan, Thomas Gleixner, Ingo Molnar, Peter Zijlstra,
Darren Hart, Davidlohr Bueso, André Almeida, Nysal Jan K . A,
Mark Brown, Valentin Obst, linux-kselftest, LKML, llvm
On Wed, May 8, 2024 at 2:05 PM John Hubbard <jhubbard@nvidia.com> wrote:
>
> 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
Since we're dropping that patch, would we be able to merge this one?
This should resolve the futex_requeue_pi compiler warnings with Clang.
Reviewed-by: Edward Liaw <edliaw@google.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 3/3] selftests/futex: pass _GNU_SOURCE without a value to the compiler
2024-05-28 22:24 ` Edward Liaw
@ 2024-05-28 22:43 ` John Hubbard
0 siblings, 0 replies; 8+ messages in thread
From: John Hubbard @ 2024-05-28 22:43 UTC (permalink / raw)
To: Edward Liaw
Cc: Shuah Khan, Thomas Gleixner, Ingo Molnar, Peter Zijlstra,
Darren Hart, Davidlohr Bueso, André Almeida, Nysal Jan K . A,
Mark Brown, Valentin Obst, linux-kselftest, LKML, llvm
On 5/28/24 3:24 PM, Edward Liaw wrote:
> On Wed, May 8, 2024 at 2:05 PM John Hubbard <jhubbard@nvidia.com> wrote:
>>
>> 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
>
> Since we're dropping that patch, would we be able to merge this one?
> This should resolve the futex_requeue_pi compiler warnings with Clang.
>
> Reviewed-by: Edward Liaw <edliaw@google.com>
Thanks for the review! I can post a v2 of this tiny series that has only
patches 1 and 3, rebased on -rc1, so that it's clear what to merge.
thanks,
--
John Hubbard
NVIDIA
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/3] selftests/futex: clang-inspired fixes
2024-05-03 4:18 [PATCH 0/3] selftests/futex: clang-inspired fixes John Hubbard
` (2 preceding siblings ...)
2024-05-03 4:18 ` [PATCH 3/3] selftests/futex: pass _GNU_SOURCE without a value to the compiler John Hubbard
@ 2024-05-06 16:13 ` Davidlohr Bueso
3 siblings, 0 replies; 8+ messages in thread
From: Davidlohr Bueso @ 2024-05-06 16:13 UTC (permalink / raw)
To: John Hubbard
Cc: Shuah Khan, Thomas Gleixner, Ingo Molnar, Peter Zijlstra,
Darren Hart, Andr� Almeida, Nysal Jan K . A,
Mark Brown, Valentin Obst, linux-kselftest, LKML, llvm
On Thu, 02 May 2024, John Hubbard wrote:
>Hi,
>
>Here's a few fixes that are part of my effort to get all selftests
>building cleanly under clang. Plus one that I noticed by inspection.
>
lgtm - feel free to add:
Reviewed-by: Davidlohr Bueso <dave@stgolabs.net>
^ permalink raw reply [flat|nested] 8+ messages in thread