2023-11-02 10:36:01

by Björn Töpel

[permalink] [raw]
Subject: [PATCH bpf] selftests/bpf: Fix broken build where char is unsigned

From: Björn Töpel <[email protected]>

There are architectures where char is not signed. If so, the following
error is triggered:

| xdp_hw_metadata.c:435:42: error: result of comparison of constant -1 \
| with expression of type 'char' is always true \
| [-Werror,-Wtautological-constant-out-of-range-compare]
| 435 | while ((opt = getopt(argc, argv, "mh")) != -1) {
| | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~
| 1 error generated.

Correct by changing the char to int.

Fixes: bb6a88885fde ("selftests/bpf: Add options and frags to xdp_hw_metadata")
Signed-off-by: Björn Töpel <[email protected]>
---
tools/testing/selftests/bpf/xdp_hw_metadata.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/testing/selftests/bpf/xdp_hw_metadata.c b/tools/testing/selftests/bpf/xdp_hw_metadata.c
index 17c0f92ff160..c3ba40d0b9de 100644
--- a/tools/testing/selftests/bpf/xdp_hw_metadata.c
+++ b/tools/testing/selftests/bpf/xdp_hw_metadata.c
@@ -430,7 +430,7 @@ static void print_usage(void)

static void read_args(int argc, char *argv[])
{
- char opt;
+ int opt;

while ((opt = getopt(argc, argv, "mh")) != -1) {
switch (opt) {

base-commit: cb3c6a58be50c65014296aa3455cae0fa1e82eac
--
2.40.1


2023-11-02 10:49:41

by Larysa Zaremba

[permalink] [raw]
Subject: Re: [PATCH bpf] selftests/bpf: Fix broken build where char is unsigned

On Thu, Nov 02, 2023 at 11:35:37AM +0100, Bj?rn T?pel wrote:
> From: Bj?rn T?pel <[email protected]>
>
> There are architectures where char is not signed. If so, the following
> error is triggered:
>
> | xdp_hw_metadata.c:435:42: error: result of comparison of constant -1 \
> | with expression of type 'char' is always true \
> | [-Werror,-Wtautological-constant-out-of-range-compare]
> | 435 | while ((opt = getopt(argc, argv, "mh")) != -1) {
> | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~
> | 1 error generated.
>
> Correct by changing the char to int.
>
> Fixes: bb6a88885fde ("selftests/bpf: Add options and frags to xdp_hw_metadata")
> Signed-off-by: Bj?rn T?pel <[email protected]>

Acked-by: Larysa Zaremba <[email protected]>

> ---
> tools/testing/selftests/bpf/xdp_hw_metadata.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/bpf/xdp_hw_metadata.c b/tools/testing/selftests/bpf/xdp_hw_metadata.c
> index 17c0f92ff160..c3ba40d0b9de 100644
> --- a/tools/testing/selftests/bpf/xdp_hw_metadata.c
> +++ b/tools/testing/selftests/bpf/xdp_hw_metadata.c
> @@ -430,7 +430,7 @@ static void print_usage(void)
>
> static void read_args(int argc, char *argv[])
> {
> - char opt;
> + int opt;
>
> while ((opt = getopt(argc, argv, "mh")) != -1) {
> switch (opt) {
>
> base-commit: cb3c6a58be50c65014296aa3455cae0fa1e82eac
> --
> 2.40.1
>
>

2023-11-02 11:14:53

by Anders Roxell

[permalink] [raw]
Subject: Re: [PATCH bpf] selftests/bpf: Fix broken build where char is unsigned

On 2023-11-02 11:35, Björn Töpel wrote:
> From: Björn Töpel <[email protected]>
>
> There are architectures where char is not signed. If so, the following
> error is triggered:
>
> | xdp_hw_metadata.c:435:42: error: result of comparison of constant -1 \
> | with expression of type 'char' is always true \
> | [-Werror,-Wtautological-constant-out-of-range-compare]
> | 435 | while ((opt = getopt(argc, argv, "mh")) != -1) {
> | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~
> | 1 error generated.
>
> Correct by changing the char to int.
>
> Fixes: bb6a88885fde ("selftests/bpf: Add options and frags to xdp_hw_metadata")
> Signed-off-by: Björn Töpel <[email protected]>

Thank you for the patch.
I saw the same failure when I built selftests/bpf for arm64.

With this patch ontop of today's next-20231102, fixes that build issue.

Tested-by: Anders Roxell <[email protected]>


Cheers,
Anders

> ---
> tools/testing/selftests/bpf/xdp_hw_metadata.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/bpf/xdp_hw_metadata.c b/tools/testing/selftests/bpf/xdp_hw_metadata.c
> index 17c0f92ff160..c3ba40d0b9de 100644
> --- a/tools/testing/selftests/bpf/xdp_hw_metadata.c
> +++ b/tools/testing/selftests/bpf/xdp_hw_metadata.c
> @@ -430,7 +430,7 @@ static void print_usage(void)
>
> static void read_args(int argc, char *argv[])
> {
> - char opt;
> + int opt;
>
> while ((opt = getopt(argc, argv, "mh")) != -1) {
> switch (opt) {
>
> base-commit: cb3c6a58be50c65014296aa3455cae0fa1e82eac
> --
> 2.40.1
>

2023-11-02 15:00:59

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH bpf] selftests/bpf: Fix broken build where char is unsigned

Hello:

This patch was applied to bpf/bpf.git (master)
by Alexei Starovoitov <[email protected]>:

On Thu, 2 Nov 2023 11:35:37 +0100 you wrote:
> From: Björn Töpel <[email protected]>
>
> There are architectures where char is not signed. If so, the following
> error is triggered:
>
> | xdp_hw_metadata.c:435:42: error: result of comparison of constant -1 \
> | with expression of type 'char' is always true \
> | [-Werror,-Wtautological-constant-out-of-range-compare]
> | 435 | while ((opt = getopt(argc, argv, "mh")) != -1) {
> | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~
> | 1 error generated.
>
> [...]

Here is the summary with links:
- [bpf] selftests/bpf: Fix broken build where char is unsigned
https://git.kernel.org/bpf/bpf/c/d84b139f53e8

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html