From: James Clark <james.clark@linaro.org>
To: Ian Rogers <irogers@google.com>, Leo Yan <leo.yan@arm.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Jiri Olsa <jolsa@kernel.org>,
Adrian Hunter <adrian.hunter@intel.com>,
Kan Liang <kan.liang@linux.intel.com>,
linux-perf-users@vger.kernel.org, bpf@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v1] tools build: Fix a number of Wconversion warnings
Date: Tue, 7 Jan 2025 10:33:03 +0000 [thread overview]
Message-ID: <576a50c8-9ca2-4e2f-9bd8-7d9be4862920@linaro.org> (raw)
In-Reply-To: <20250106215443.198633-1-irogers@google.com>
On 06/01/2025 9:54 pm, Ian Rogers wrote:
> There's some expressed interest in having the compiler flag
> -Wconversion detect at build time certain kinds of potential problems:
> https://lore.kernel.org/lkml/20250103182532.GB781381@e132581.arm.com/
>
> As feature detection passes -Wconversion from CFLAGS when set, the
> feature detection compile tests need to not fail because of
> -Wconversion as the failure will be interpretted as a missing
> feature. Switch various types to avoid the -Wconversion issue, the
> exact meaning of the code is unimportant as it is typically looking
> for header file definitions.
>
> Signed-off-by: Ian Rogers <irogers@google.com>
What's the plan for errors in #includes that we can't modify? I noticed
the Perl feature test fails with -Wconversion but can be fixed by
disabling the warning:
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wsign-conversion"
#pragma GCC diagnostic ignored "-Wconversion"
#include <EXTERN.h>
#include <perl.h>
#pragma GCC diagnostic pop
Not sure why it needs both those things to be disabled when I only
enabled -Wconversion, but it does.
> ---
> tools/build/feature/test-backtrace.c | 2 +-
> tools/build/feature/test-bpf.c | 2 +-
> tools/build/feature/test-glibc.c | 2 +-
> tools/build/feature/test-libdebuginfod.c | 2 +-
> tools/build/feature/test-libdw.c | 2 +-
> tools/build/feature/test-libelf-gelf_getnote.c | 2 +-
> tools/build/feature/test-libelf.c | 2 +-
> tools/build/feature/test-lzma.c | 2 +-
> 8 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/tools/build/feature/test-backtrace.c b/tools/build/feature/test-backtrace.c
> index e9ddd27c69c3..7962fbad6401 100644
> --- a/tools/build/feature/test-backtrace.c
> +++ b/tools/build/feature/test-backtrace.c
> @@ -5,7 +5,7 @@
> int main(void)
> {
> void *backtrace_fns[10];
> - size_t entries;
> + int entries;
>
> entries = backtrace(backtrace_fns, 10);
> backtrace_symbols_fd(backtrace_fns, entries, 1);
> diff --git a/tools/build/feature/test-bpf.c b/tools/build/feature/test-bpf.c
> index 727d22e34a6e..e7a405f83af6 100644
> --- a/tools/build/feature/test-bpf.c
> +++ b/tools/build/feature/test-bpf.c
> @@ -44,5 +44,5 @@ int main(void)
> * Test existence of __NR_bpf and BPF_PROG_LOAD.
> * This call should fail if we run the testcase.
> */
> - return syscall(__NR_bpf, BPF_PROG_LOAD, &attr, sizeof(attr));
> + return syscall(__NR_bpf, BPF_PROG_LOAD, &attr, sizeof(attr)) == 0;
Seems a bit weird to invert some of the return values rather than doing
!= 0, but as you say, the actual values seem to be unimportant.
Reviewed-by: James Clark <james.clark@linaro.org>
> }
> diff --git a/tools/build/feature/test-glibc.c b/tools/build/feature/test-glibc.c
> index 9ab8e90e7b88..20a250419f31 100644
> --- a/tools/build/feature/test-glibc.c
> +++ b/tools/build/feature/test-glibc.c
> @@ -16,5 +16,5 @@ int main(void)
> const char *version = XSTR(__GLIBC__) "." XSTR(__GLIBC_MINOR__);
> #endif
>
> - return (long)version;
> + return version == NULL;
> }
> diff --git a/tools/build/feature/test-libdebuginfod.c b/tools/build/feature/test-libdebuginfod.c
> index da22548b8413..823f9fa9391d 100644
> --- a/tools/build/feature/test-libdebuginfod.c
> +++ b/tools/build/feature/test-libdebuginfod.c
> @@ -4,5 +4,5 @@
> int main(void)
> {
> debuginfod_client* c = debuginfod_begin();
> - return (long)c;
> + return !!c;
> }
> diff --git a/tools/build/feature/test-libdw.c b/tools/build/feature/test-libdw.c
> index 2fb59479ab77..aabd63ca76b4 100644
> --- a/tools/build/feature/test-libdw.c
> +++ b/tools/build/feature/test-libdw.c
> @@ -9,7 +9,7 @@ int test_libdw(void)
> {
> Dwarf *dbg = dwarf_begin(0, DWARF_C_READ);
>
> - return (long)dbg;
> + return dbg == NULL;
> }
>
> int test_libdw_unwind(void)
> diff --git a/tools/build/feature/test-libelf-gelf_getnote.c b/tools/build/feature/test-libelf-gelf_getnote.c
> index 075d062fe841..e06121161161 100644
> --- a/tools/build/feature/test-libelf-gelf_getnote.c
> +++ b/tools/build/feature/test-libelf-gelf_getnote.c
> @@ -4,5 +4,5 @@
>
> int main(void)
> {
> - return gelf_getnote(NULL, 0, NULL, NULL, NULL);
> + return gelf_getnote(NULL, 0, NULL, NULL, NULL) == 0;
> }
> diff --git a/tools/build/feature/test-libelf.c b/tools/build/feature/test-libelf.c
> index 905044127d56..2dbb6ea870f3 100644
> --- a/tools/build/feature/test-libelf.c
> +++ b/tools/build/feature/test-libelf.c
> @@ -5,5 +5,5 @@ int main(void)
> {
> Elf *elf = elf_begin(0, ELF_C_READ, 0);
>
> - return (long)elf;
> + return !!elf;
> }
> diff --git a/tools/build/feature/test-lzma.c b/tools/build/feature/test-lzma.c
> index 78682bb01d57..b57103774e8e 100644
> --- a/tools/build/feature/test-lzma.c
> +++ b/tools/build/feature/test-lzma.c
> @@ -4,7 +4,7 @@
> int main(void)
> {
> lzma_stream strm = LZMA_STREAM_INIT;
> - int ret;
> + lzma_ret ret;
>
> ret = lzma_stream_decoder(&strm, UINT64_MAX, LZMA_CONCATENATED);
> return ret ? -1 : 0;
next prev parent reply other threads:[~2025-01-07 10:33 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-06 21:54 [PATCH v1] tools build: Fix a number of Wconversion warnings Ian Rogers
2025-01-07 10:33 ` James Clark [this message]
2025-01-07 16:11 ` Ian Rogers
2025-01-07 17:06 ` James Clark
2025-02-10 18:22 ` Ian Rogers
2025-02-13 17:21 ` Namhyung Kim
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=576a50c8-9ca2-4e2f-9bd8-7d9be4862920@linaro.org \
--to=james.clark@linaro.org \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=bpf@vger.kernel.org \
--cc=irogers@google.com \
--cc=jolsa@kernel.org \
--cc=kan.liang@linux.intel.com \
--cc=leo.yan@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox