From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Sedat Dilek <sedat.dilek@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Namhyung Kim <namhyung@kernel.org>,
Ian Rogers <irogers@google.com>,
linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org,
Nathan Chancellor <nathan@kernel.org>
Subject: Re: [Linux-6.11-rc4] perf BROKEN with LLVM/Clang 19.1.0-rc3
Date: Thu, 22 Aug 2024 15:17:29 -0300 [thread overview]
Message-ID: <ZseAuZelNHgcchGj@x1> (raw)
In-Reply-To: <CA+icZUXGV9dMGcRwJiP7WLcYUaY5CRCcDw1HLFr+9Sn7CrRGDw@mail.gmail.com>
On Thu, Aug 22, 2024 at 07:59:13PM +0200, Sedat Dilek wrote:
> On Thu, Aug 22, 2024 at 7:40 PM Arnaldo Carvalho de Melo
> <acme@kernel.org> wrote:
> >
> > On Thu, Aug 22, 2024 at 07:31:55PM +0200, Sedat Dilek wrote:
> > > On Thu, Aug 22, 2024 at 7:19 PM Arnaldo Carvalho de Melo
> > > <acme@kernel.org> wrote:
> > > >
> > > > On Thu, Aug 22, 2024 at 02:12:46PM -0300, Arnaldo Carvalho de Melo wrote:
> > > > > On Thu, Aug 22, 2024 at 07:02:52PM +0200, Sedat Dilek wrote:
> > > > > > On Thu, Aug 22, 2024 at 5:10 PM Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> > > > > > > +++ b/tools/perf/util/setup.py
> > > > > > > @@ -17,7 +17,7 @@ src_feature_tests = getenv('srctree') + '/tools/build/feature'
> > > > >
> > > > > > > def clang_has_option(option):
> > > > > > > cc_output = Popen([cc, cc_options + option, path.join(src_feature_tests, "test-hello.c") ], stderr=PIPE).stderr.readlines()
> > > > > > > - return [o for o in cc_output if ((b"unknown argument" in o) or (b"is not supported" in o))] == [ ]
> > > > > > > + return [o for o in cc_output if ((b"unknown argument" in o) or (b"is not supported" in o) or (b"unknown warning option" in o))] == [ ]
> > > > > > > if cc_is_clang:
> > > > > > > from sysconfig import get_config_vars
> > > > > > > @@ -63,6 +63,8 @@ cflags = getenv('CFLAGS', '').split()
> > > > > > > cflags += ['-fno-strict-aliasing', '-Wno-write-strings', '-Wno-unused-parameter', '-Wno-redundant-decls' ]
> > > > > > > if cc_is_clang:
> > > > > > > cflags += ["-Wno-unused-command-line-argument" ]
> > > > > > > + if clang_has_option("-Wno-cast-function-type-mismatch"):
> > > > > > > + cflags += ["-Wno-cast-function-type-mismatch" ]
> > > > > > > else:
> > > > > > > cflags += ['-Wno-cast-function-type' ]
> > > > >
> > > > > > I tried with your diff with SLIM LLVM toolchains 18 and 19.
> > > > >
> > > > > > Both work - see attached build-logs.
> > > > >
> > > > > > Yes, are right that LLVM/Clang v19 was first introducing:
> > > > >
> > > > > > -Wcast-function-type-mismatch / -Wno-cast-function-type-mismatch
> > > > >
> > > > > > [4] says for LLVM 18.1.8:
> > > > >
> > > > > > -Wcast-function-type
> > > > > > -Wcast-function-type-strict
> > > > >
> > > > > > Feel free to add my Reported-by/Tested-by credentials if you sent a full patch.
> > > > >
> > > > > Thanks for the report and test of the fix, I'll add both tags,
> > > >
> > > > So below is the part that deals with disabling the warning if present,
> > > > the other patch supporting checking warning options I merged as a prep
> > > > patch.
> > > >
> > > > Thanks!
> > > >
> > > > - Arnaldo
> > > >
> > > > From 155212c965b5b23a90b8558449dbfd1c60dad934 Mon Sep 17 00:00:00 2001
> > > > From: Arnaldo Carvalho de Melo <acme@redhat.com>
> > > > Date: Thu, 22 Aug 2024 14:13:49 -0300
> > > > Subject: [PATCH 1/1] perf python: Disable -Wno-cast-function-type-mismatch if
> > > > present on clang
> > > >
> > > > The -Wcast-function-type-mismatch option was introduced in clang 19 and
> > > > its enabled by default, since we use -Werror, and python bindings do
> > > > casts that are valid but trips this warning, disable it if present.
> > > >
> > > > Reported-by: Sedat Dilek <sedat.dilek@gmail.com>
> > > > Tested-by: Sedat Dilek <sedat.dilek@gmail.com>
> > > > Cc: Ian Rogers <irogers@google.com>
> > > > Cc: Ingo Molnar <mingo@redhat.com>
> > > > Cc: Namhyung Kim <namhyung@kernel.org>
> > > > Cc: Nathan Chancellor <nathan@kernel.org>
> > > > Cc: Peter Zijlstra <peterz@infradead.org>
> > > > Link: https://lore.kernel.org/lkml/CA+icZUVtHn8X1Tb_Y__c-WswsO0K8U9uy3r2MzKXwTA5THtL7w@mail.gmail.com
> > > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> > > > ---
> > > > tools/perf/util/setup.py | 2 ++
> > > > 1 file changed, 2 insertions(+)
> > > >
> > > > diff --git a/tools/perf/util/setup.py b/tools/perf/util/setup.py
> > > > index 26c0f2614fe92eb6..649550e9b7aa8c8f 100644
> > > > --- a/tools/perf/util/setup.py
> > > > +++ b/tools/perf/util/setup.py
> > > > @@ -63,6 +63,8 @@ cflags = getenv('CFLAGS', '').split()
> > > > cflags += ['-fno-strict-aliasing', '-Wno-write-strings', '-Wno-unused-parameter', '-Wno-redundant-decls' ]
> > > > if cc_is_clang:
> > > > cflags += ["-Wno-unused-command-line-argument" ]
> > > > + if clang_has_option("-Wno-cast-function-type-mismatch"):
> > > > + cflags += ["-Wno-cast-function-type-mismatch" ]
> > > > else:
> > > > cflags += ['-Wno-cast-function-type' ]
> > > >
> > > > --
> > > > 2.46.0
> > > >
> > >
> > > Thanks for the patch, Arnanldo.
> > >
> > > @Nathan Chancellor
> > > What was the b4 magic to retrieve a patch included in a ML thread?
> > >
> > > I tried:
> > >
> > > link="https://lore.kernel.org/all/CA+icZUXoJ6BS3GMhJHV3aZWyb5Cz2haFneX0C5pUMUUhG-UVKQ@mail.gmail.com/"
> > >
> > > b4 am $link
> > > Grabbing thread from
> > > lore.kernel.org/all/CA%2BicZUXoJ6BS3GMhJHV3aZWyb5Cz2haFneX0C5pUMUUhG-UVKQ@mail.gmail.com/t.mbox.gz
> > > Analyzing 9 messages in the thread
> > > No patches found.
> >
> > I use:
> >
> > ⬢[acme@toolbox perf-tools-next]$ b4 am -ctsl --cc-trailers CA+icZUURwYd8nJSdMU7KW6nFjubi-VD2f-a5+zQNQGUxK7+2aw@mail.gmail.com
> > Grabbing thread from lore.kernel.org/all/CA%2BicZUURwYd8nJSdMU7KW6nFjubi-VD2f-a5%2BzQNQGUxK7%2B2aw@mail.gmail.com/t.mbox.gz
> > Analyzing 10 messages in the thread
> > No patches found.
> > ⬢[acme@toolbox perf-tools-next]$
> >
> > Using the Message-ID for your message, which normally is enough, but I
> > think I didn't separate the patch from the rest of the message with ---.
> >
> > Lemme try...
> >
> > ---
> >
> > From 155212c965b5b23a90b8558449dbfd1c60dad934 Mon Sep 17 00:00:00 2001
> > From: Arnaldo Carvalho de Melo <acme@redhat.com>
> > Date: Thu, 22 Aug 2024 14:13:49 -0300
> > Subject: [PATCH 1/1] perf python: Disable -Wno-cast-function-type-mismatch if
> > present on clang
> >
> > The -Wcast-function-type-mismatch option was introduced in clang 19 and
> > its enabled by default, since we use -Werror, and python bindings do
> > casts that are valid but trips this warning, disable it if present.
> >
> > Reported-by: Sedat Dilek <sedat.dilek@gmail.com>
> > Tested-by: Sedat Dilek <sedat.dilek@gmail.com>
> > Cc: Ian Rogers <irogers@google.com>
> > Cc: Ingo Molnar <mingo@redhat.com>
> > Cc: Namhyung Kim <namhyung@kernel.org>
> > Cc: Nathan Chancellor <nathan@kernel.org>
> > Cc: Peter Zijlstra <peterz@infradead.org>
> > Link: https://lore.kernel.org/lkml/CA+icZUVtHn8X1Tb_Y__c-WswsO0K8U9uy3r2MzKXwTA5THtL7w@mail.gmail.com
> > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> > ---
> > tools/perf/util/setup.py | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/tools/perf/util/setup.py b/tools/perf/util/setup.py
> > index 26c0f2614fe92eb6..649550e9b7aa8c8f 100644
> > --- a/tools/perf/util/setup.py
> > +++ b/tools/perf/util/setup.py
> > @@ -63,6 +63,8 @@ cflags = getenv('CFLAGS', '').split()
> > cflags += ['-fno-strict-aliasing', '-Wno-write-strings', '-Wno-unused-parameter', '-Wno-redundant-decls' ]
> > if cc_is_clang:
> > cflags += ["-Wno-unused-command-line-argument" ]
> > + if clang_has_option("-Wno-cast-function-type-mismatch"):
> > + cflags += ["-Wno-cast-function-type-mismatch" ]
> > else:
> > cflags += ['-Wno-cast-function-type' ]
> >
> > --
> > 2.46.0
> >
>
> Hmm, OK.
>
> My first posting:
> https://lore.kernel.org/all/CA+icZUXoJ6BS3GMhJHV3aZWyb5Cz2haFneX0C5pUMUUhG-UVKQ@mail.gmail.com/
>
> $ b4 am -ctsl --cc-trailers
> CA+icZUURwYd8nJSdMU7KW6nFjubi-VD2f-a5+zQNQGUxK7+2aw@mail.gmail.com
> Grabbing thread from
> lore.kernel.org/all/CA%2BicZUURwYd8nJSdMU7KW6nFjubi-VD2f-a5%2BzQNQGUxK7%2B2aw@mail.gmail.com/t.mbox.gz
> Checking for newer revisions
> Grabbing search results from lore.kernel.org
> Analyzing 11 messages in the thread
> No patches found.
>
> Did you drop that part by accident or intentionally from the patch?
I mentioned that:
> > > > the other patch supporting checking warning options I merged as a prep
> > > > patch.
Please take a look at tmp.perf-tools-next at:
https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git
⬢[acme@toolbox perf-tools-next]$ git log perf-tools-next/tmp.perf-tools-next -2 --oneline
155212c965b5b23a (perf-tools-next/tmp.perf-tools-next, perf-tools-next.korg/tmp.perf-tools-next, acme.korg/tmp.perf-tools-next) perf python: Disable -Wno-cast-function-type-mismatch if present on clang
b81162302001f411 perf python: Allow checking for the existence of warning options in clang
⬢[acme@toolbox perf-tools-next]$
One patch introduces a mechanism, the other uses it.
- Arnaldo
next prev parent reply other threads:[~2024-08-22 18:17 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-21 19:23 [Linux-6.11-rc4] perf BROKEN with LLVM/Clang 19.1.0-rc3 Sedat Dilek
2024-08-21 19:37 ` Sedat Dilek
2024-08-21 20:37 ` Namhyung Kim
2024-08-22 15:34 ` Arnaldo Carvalho de Melo
2024-08-22 14:26 ` Arnaldo Carvalho de Melo
2024-08-22 15:09 ` Arnaldo Carvalho de Melo
2024-08-22 17:02 ` Sedat Dilek
2024-08-22 17:12 ` Arnaldo Carvalho de Melo
2024-08-22 17:19 ` Arnaldo Carvalho de Melo
2024-08-22 17:31 ` Sedat Dilek
2024-08-22 17:40 ` Arnaldo Carvalho de Melo
2024-08-22 17:59 ` Sedat Dilek
2024-08-22 18:17 ` Namhyung Kim
2024-08-22 18:20 ` Arnaldo Carvalho de Melo
2024-08-22 18:29 ` Sedat Dilek
2024-08-22 20:11 ` Namhyung Kim
2024-08-22 20:26 ` Arnaldo Carvalho de Melo
2024-08-22 20:30 ` Namhyung Kim
2024-08-23 13:58 ` Sedat Dilek
2024-08-23 15:03 ` Namhyung Kim
2024-08-22 18:17 ` Arnaldo Carvalho de Melo [this message]
2024-08-22 18:19 ` Sedat Dilek
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=ZseAuZelNHgcchGj@x1 \
--to=acme@kernel.org \
--cc=irogers@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=nathan@kernel.org \
--cc=peterz@infradead.org \
--cc=sedat.dilek@gmail.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.