2012-05-03 21:57:54

by Greg Kroah-Hartman

[permalink] [raw]
Subject: perf build failure on Linus's tree

Linus's tree right now (3.4.rc5.67.gac001.dirty) gives me the following
build error when I try to build perf:
CC util/parse-events-flex.o
<stdout>: In function ‘yy_get_next_buffer’:
<stdout>:1510:3: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
util/parse-events.l: In function ‘parse_events_lex’:
util/parse-events.l:122:1: error: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result [-Werror=unused-result]
cc1: all warnings being treated as errors

Do you really want to ensure that flex's build warnings fail the build?

thanks,

greg k-h


2012-05-04 01:38:28

by Namhyung Kim

[permalink] [raw]
Subject: Re: perf build failure on Linus's tree

Hi,

On Thu, 3 May 2012 14:57:48 -0700, Greg KH wrote:
> Linus's tree right now (3.4.rc5.67.gac001.dirty) gives me the following
> build error when I try to build perf:
> CC util/parse-events-flex.o
> <stdout>: In function ‘yy_get_next_buffer’:
> <stdout>:1510:3: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
> util/parse-events.l: In function ‘parse_events_lex’:
> util/parse-events.l:122:1: error: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result [-Werror=unused-result]
> cc1: all warnings being treated as errors
>
> Do you really want to ensure that flex's build warnings fail the build?
>
> thanks,
>
> greg k-h

Can't reproduce it on my Fedora 17 box:

namhyung@sejong:perf$ make
PERF_VERSION = 3.4.rc5.67.gac001
GEN common-cmds.h
* new build flags or prefix
CC perf.o
CC builtin-annotate.o
CC builtin-bench.o
CC bench/sched-messaging.o
CC bench/sched-pipe.o
[SNIP]
CC util/trace-event-parse.o
CC util/parse-events-flex.o
CC util/parse-events-bison.o
CC util/pmu-flex.o
CC util/pmu-bison.o
[SNIP]
CC util/scripting-engines/trace-event-python.o
CC scripts/python/Perf-Trace-Util/Context.o
AR libperf.a
LINK perf
GEN perf-archive
GEN python/perf.so


What are versions of tools you are using?

Thanks,
Namhyung

2012-05-04 01:41:24

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: perf build failure on Linus's tree

On Fri, May 04, 2012 at 10:37:24AM +0900, Namhyung Kim wrote:
> Hi,
>
> On Thu, 3 May 2012 14:57:48 -0700, Greg KH wrote:
> > Linus's tree right now (3.4.rc5.67.gac001.dirty) gives me the following
> > build error when I try to build perf:
> > CC util/parse-events-flex.o
> > <stdout>: In function ‘yy_get_next_buffer’:
> > <stdout>:1510:3: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
> > util/parse-events.l: In function ‘parse_events_lex’:
> > util/parse-events.l:122:1: error: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result [-Werror=unused-result]
> > cc1: all warnings being treated as errors
> >
> > Do you really want to ensure that flex's build warnings fail the build?
> >
> > thanks,
> >
> > greg k-h
>
> Can't reproduce it on my Fedora 17 box:
>
> namhyung@sejong:perf$ make
> PERF_VERSION = 3.4.rc5.67.gac001
> GEN common-cmds.h
> * new build flags or prefix
> CC perf.o
> CC builtin-annotate.o
> CC builtin-bench.o
> CC bench/sched-messaging.o
> CC bench/sched-pipe.o
> [SNIP]
> CC util/trace-event-parse.o
> CC util/parse-events-flex.o
> CC util/parse-events-bison.o
> CC util/pmu-flex.o
> CC util/pmu-bison.o
> [SNIP]
> CC util/scripting-engines/trace-event-python.o
> CC scripts/python/Perf-Trace-Util/Context.o
> AR libperf.a
> LINK perf
> GEN perf-archive
> GEN python/perf.so
>
>
> What are versions of tools you are using?

gcc 4.6.2 from openSUSE 12.1.
Any other tools you want to know the version of?

2012-05-04 01:46:10

by Namhyung Kim

[permalink] [raw]
Subject: Re: perf build failure on Linus's tree

Hi,

On Thu, 3 May 2012 18:41:20 -0700, Greg KH wrote:
> On Fri, May 04, 2012 at 10:37:24AM +0900, Namhyung Kim wrote:
>> What are versions of tools you are using?
>
> gcc 4.6.2 from openSUSE 12.1.
> Any other tools you want to know the version of?

flex and bison versions might be helpful.

Thanks,
Namhyung

2012-05-04 01:50:39

by David Miller

[permalink] [raw]
Subject: Re: perf build failure on Linus's tree

From: Namhyung Kim <[email protected]>
Date: Fri, 04 May 2012 10:37:24 +0900

> Hi,
>
> On Thu, 3 May 2012 14:57:48 -0700, Greg KH wrote:
>> Linus's tree right now (3.4.rc5.67.gac001.dirty) gives me the following
>> build error when I try to build perf:
>> CC util/parse-events-flex.o
>> <stdout>: In function ?yy_get_next_buffer?:
>> <stdout>:1510:3: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
>> util/parse-events.l: In function ?parse_events_lex?:
>> util/parse-events.l:122:1: error: ignoring return value of ?fwrite?, declared with attribute warn_unused_result [-Werror=unused-result]
>> cc1: all warnings being treated as errors
>>
>> Do you really want to ensure that flex's build warnings fail the build?
>>
>> thanks,
>>
>> greg k-h
>
> Can't reproduce it on my Fedora 17 box:

Because your glibc headers probably don't have the warn_unused_result attribute
in the extern declaration of fwrite() like Greg's do.
????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m???? ????????I?

2012-05-04 02:14:07

by Arnaud Lacombe

[permalink] [raw]
Subject: Re: perf build failure on Linus's tree

Hi,

On Thu, May 3, 2012 at 9:50 PM, David Miller <[email protected]> wrote:
> From: Namhyung Kim <[email protected]>
> Date: Fri, 04 May 2012 10:37:24 +0900
>
>> Hi,
>>
>> On Thu, 3 May 2012 14:57:48 -0700, Greg KH wrote:
>>> Linus's tree right now (3.4.rc5.67.gac001.dirty) gives me the following
>>> build error when I try to build perf:
>>> ? ? CC util/parse-events-flex.o
>>> <stdout>: In function ?yy_get_next_buffer?:
>>> <stdout>:1510:3: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
>>> util/parse-events.l: In function ?parse_events_lex?:
>>> util/parse-events.l:122:1: error: ignoring return value of ?fwrite?, declared with attribute warn_unused_result [-Werror=unused-result]
>>> cc1: all warnings being treated as errors
>>>
>>> Do you really want to ensure that flex's build warnings fail the build?
>>>
>>> thanks,
>>>
>>> greg k-h
>>
>> Can't reproduce it on my Fedora 17 box:
>
> Because your glibc headers probably don't have the warn_unused_result attribute
> in the extern declaration of fwrite() like Greg's do.
>
`tools/perf/Makefile' adds -D_FORTIFY_SOURCE=2 on the compiler's
command line, which in turn adds `__attribute__
((__warn_unused_result__))' to fwrite(3)'s prototypes, via `__wur'. I
double checked by pre-processing `util/parse-events-flex.c' with the
same arguments used by perf. fwrite(3) ends up being declared as:

extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __s) __attribute__
((__warn_unused_result__));

So it is definitively enabled, and used, on Fedora.

Above tests were done on Fedora 15/x86_64 and Fedora 16/x86_64, `perf'
build without any issue there too.

my 0.2c,
- Arnaud

2012-05-04 02:25:20

by Namhyung Kim

[permalink] [raw]
Subject: Re: perf build failure on Linus's tree

Hi,

On Thu, 3 May 2012 22:14:03 -0400, Arnaud Lacombe wrote:
> Hi,
>
> On Thu, May 3, 2012 at 9:50 PM, David Miller <[email protected]> wrote:
>> From: Namhyung Kim <[email protected]>
>> Date: Fri, 04 May 2012 10:37:24 +0900
>>
>>> Hi,
>>>
>>> On Thu, 3 May 2012 14:57:48 -0700, Greg KH wrote:
>>>> Linus's tree right now (3.4.rc5.67.gac001.dirty) gives me the following
>>>> build error when I try to build perf:
>>>>     CC util/parse-events-flex.o
>>>> <stdout>: In function ‘yy_get_next_buffer’:
>>>> <stdout>:1510:3: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
>>>> util/parse-events.l: In function ‘parse_events_lex’:
>>>> util/parse-events.l:122:1: error: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result [-Werror=unused-result]
>>>> cc1: all warnings being treated as errors
>>>>
>>>> Do you really want to ensure that flex's build warnings fail the build?
>>>>
>>>> thanks,
>>>>
>>>> greg k-h
>>>
>>> Can't reproduce it on my Fedora 17 box:
>>
>> Because your glibc headers probably don't have the warn_unused_result attribute
>> in the extern declaration of fwrite() like Greg's do.
>>
> `tools/perf/Makefile' adds -D_FORTIFY_SOURCE=2 on the compiler's
> command line, which in turn adds `__attribute__
> ((__warn_unused_result__))' to fwrite(3)'s prototypes, via `__wur'. I
> double checked by pre-processing `util/parse-events-flex.c' with the
> same arguments used by perf. fwrite(3) ends up being declared as:
>
> extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
> size_t __n, FILE *__restrict __s) __attribute__
> ((__warn_unused_result__));
>
> So it is definitively enabled, and used, on Fedora.
>
> Above tests were done on Fedora 15/x86_64 and Fedora 16/x86_64, `perf'
> build without any issue there too.
>
> my 0.2c,
> - Arnaud

On my desktop:

$ make util/parse-events-flex.i
CC util/parse-events-flex.i

$ grep -A1 'size_t fwrite' util/parse-events-flex.i
extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __s) __attribute__ ((__warn_unused_result__));
--
extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));


Thanks,
Namhyung

2012-05-04 02:29:07

by Arnaud Lacombe

[permalink] [raw]
Subject: Re: perf build failure on Linus's tree

Hi,

On Thu, May 3, 2012 at 10:14 PM, Arnaud Lacombe <[email protected]> wrote:
> Hi,
>
> On Thu, May 3, 2012 at 9:50 PM, David Miller <[email protected]> wrote:
>> From: Namhyung Kim <[email protected]>
>> Date: Fri, 04 May 2012 10:37:24 +0900
>>
>>> Hi,
>>>
>>> On Thu, 3 May 2012 14:57:48 -0700, Greg KH wrote:
>>>> Linus's tree right now (3.4.rc5.67.gac001.dirty) gives me the following
>>>> build error when I try to build perf:
>>>> ? ? CC util/parse-events-flex.o
>>>> <stdout>: In function ?yy_get_next_buffer?:
>>>> <stdout>:1510:3: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
>>>> util/parse-events.l: In function ?parse_events_lex?:
>>>> util/parse-events.l:122:1: error: ignoring return value of ?fwrite?, declared with attribute warn_unused_result [-Werror=unused-result]
>>>> cc1: all warnings being treated as errors
>>>>
>>>> Do you really want to ensure that flex's build warnings fail the build?
>>>>
>>>> thanks,
>>>>
>>>> greg k-h
>>>
>>> Can't reproduce it on my Fedora 17 box:
>>
>> Because your glibc headers probably don't have the warn_unused_result attribute
>> in the extern declaration of fwrite() like Greg's do.
>>
> `tools/perf/Makefile' adds -D_FORTIFY_SOURCE=2 on the compiler's
> command line, which in turn adds `__attribute__
> ((__warn_unused_result__))' to fwrite(3)'s prototypes, via `__wur'. I
> double checked by pre-processing `util/parse-events-flex.c' with the
> same arguments used by perf. fwrite(3) ends up being declared as:
>
> extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
> ? ? ? ?size_t __n, FILE *__restrict __s) __attribute__
> ((__warn_unused_result__));
>
> So it is definitively enabled, and used, on Fedora.
>
> Above tests were done on Fedora 15/x86_64 and Fedora 16/x86_64, `perf'
> build without any issue there too.
>
it would seem that OpenSuse 12.1 and Fedora ship the same `flex'
package, upstream version 2.5.35. However, Fedora specifically harden
flex(1) wrt. lacks of fwrite(3)'s return value check, see [0] for the
exact patch.

- Arnaud

[0]: http://pkgs.fedoraproject.org/gitweb/?p=flex.git;a=blob;f=flex-2.5.35-hardening.patch;h=7d608ea2371fa3295bdb8eb97c15eeb03029c02b;hb=HEAD

> my 0.2c,
> ?- Arnaud

2012-05-04 02:35:06

by Arnaud Lacombe

[permalink] [raw]
Subject: Re: perf build failure on Linus's tree

Hi,

On Thu, May 3, 2012 at 10:29 PM, Arnaud Lacombe <[email protected]> wrote:
> [...]
> [0]: http://pkgs.fedoraproject.org/gitweb/?p=flex.git;a=blob;f=flex-2.5.35-hardening.patch;h=7d608ea2371fa3295bdb8eb97c15eeb03029c02b;hb=HEAD
>
as a side note, this patch sounds more being about "silencing" than
"hardening"...

- Arnaud

2012-05-04 02:47:12

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: perf build failure on Linus's tree

On Thu, May 03, 2012 at 10:35:02PM -0400, Arnaud Lacombe wrote:
> Hi,
>
> On Thu, May 3, 2012 at 10:29 PM, Arnaud Lacombe <[email protected]> wrote:
> > [...]
> > [0]: http://pkgs.fedoraproject.org/gitweb/?p=flex.git;a=blob;f=flex-2.5.35-hardening.patch;h=7d608ea2371fa3295bdb8eb97c15eeb03029c02b;hb=HEAD
> >
> as a side note, this patch sounds more being about "silencing" than
> "hardening"...

That's nice, but I can build the perf version in 3.3 just fine, so
something broke here (hint, build regression.) Do I have to bisect it
down to find the problem?

greg

2012-05-04 03:01:56

by Arnaud Lacombe

[permalink] [raw]
Subject: Re: perf build failure on Linus's tree

Hi,

On Thu, May 3, 2012 at 10:47 PM, Greg KH <[email protected]> wrote:
> On Thu, May 03, 2012 at 10:35:02PM -0400, Arnaud Lacombe wrote:
>> Hi,
>>
>> On Thu, May 3, 2012 at 10:29 PM, Arnaud Lacombe <[email protected]> wrote:
>> > [...]
>> > [0]: http://pkgs.fedoraproject.org/gitweb/?p=flex.git;a=blob;f=flex-2.5.35-hardening.patch;h=7d608ea2371fa3295bdb8eb97c15eeb03029c02b;hb=HEAD
>> >
>> as a side note, this patch sounds more being about "silencing" than
>> "hardening"...
>
> That's nice, but I can build the perf version in 3.3 just fine, so
> something broke here (hint, build regression.) ?Do I have to bisect it
> down to find the problem?
>
there is most likely nothing to bisect, `perf' seems to have never
required any parser before 3.4. The way the rest of the tools
(especially `kconfig', `genksyms' and `dtc') manage parsers is via
pre-generated .[ch]_shipped version of the lexer/tokenizer. It's been
working well for a long time as such. `perf' will certainly have to
follow the same path.

- Arnaud

2012-05-04 03:16:20

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: perf build failure on Linus's tree

On Thu, May 03, 2012 at 11:01:54PM -0400, Arnaud Lacombe wrote:
> Hi,
>
> On Thu, May 3, 2012 at 10:47 PM, Greg KH <[email protected]> wrote:
> > On Thu, May 03, 2012 at 10:35:02PM -0400, Arnaud Lacombe wrote:
> >> Hi,
> >>
> >> On Thu, May 3, 2012 at 10:29 PM, Arnaud Lacombe <[email protected]> wrote:
> >> > [...]
> >> > [0]: http://pkgs.fedoraproject.org/gitweb/?p=flex.git;a=blob;f=flex-2.5.35-hardening.patch;h=7d608ea2371fa3295bdb8eb97c15eeb03029c02b;hb=HEAD
> >> >
> >> as a side note, this patch sounds more being about "silencing" than
> >> "hardening"...
> >
> > That's nice, but I can build the perf version in 3.3 just fine, so
> > something broke here (hint, build regression.) ?Do I have to bisect it
> > down to find the problem?
> >
> there is most likely nothing to bisect, `perf' seems to have never
> required any parser before 3.4. The way the rest of the tools
> (especially `kconfig', `genksyms' and `dtc') manage parsers is via
> pre-generated .[ch]_shipped version of the lexer/tokenizer. It's been
> working well for a long time as such. `perf' will certainly have to
> follow the same path.

Well, it can allow bison to run, but just don't break the build if the
generated code it creates happens to contain warnings.

I'm using bison 2.5 and flex 2.5.35, and my phone number is...

Like this really matters? This needs to work for everyone, if not, you
better put the specific version numbers you need to require in the
Documentation/Changes file.

So, how do I fix this?

greg k-h

2012-05-04 04:01:20

by Arnaud Lacombe

[permalink] [raw]
Subject: Re: perf build failure on Linus's tree

Hi,

On Thu, May 3, 2012 at 11:16 PM, Greg KH <[email protected]> wrote:
> On Thu, May 03, 2012 at 11:01:54PM -0400, Arnaud Lacombe wrote:
>> Hi,
>>
>> On Thu, May 3, 2012 at 10:47 PM, Greg KH <[email protected]> wrote:
>> > On Thu, May 03, 2012 at 10:35:02PM -0400, Arnaud Lacombe wrote:
>> >> Hi,
>> >>
>> >> On Thu, May 3, 2012 at 10:29 PM, Arnaud Lacombe <[email protected]> wrote:
>> >> > [...]
>> >> > [0]: http://pkgs.fedoraproject.org/gitweb/?p=flex.git;a=blob;f=flex-2.5.35-hardening.patch;h=7d608ea2371fa3295bdb8eb97c15eeb03029c02b;hb=HEAD
>> >> >
>> >> as a side note, this patch sounds more being about "silencing" than
>> >> "hardening"...
>> >
>> > That's nice, but I can build the perf version in 3.3 just fine, so
>> > something broke here (hint, build regression.) ?Do I have to bisect it
>> > down to find the problem?
>> >
>> there is most likely nothing to bisect, `perf' seems to have never
>> required any parser before 3.4. The way the rest of the tools
>> (especially `kconfig', `genksyms' and `dtc') manage parsers is via
>> pre-generated .[ch]_shipped version of the lexer/tokenizer. It's been
>> working well for a long time as such. `perf' will certainly have to
>> follow the same path.
>
> Well, it can allow bison to run, but just don't break the build if the
> generated code it creates happens to contain warnings.
>
> I'm using bison 2.5 and flex 2.5.35, and my phone number is...
>
> Like this really matters? ?This needs to work for everyone, if not, you
> better put the specific version numbers you need to require in the
> Documentation/Changes file.
>
This will not really help. Fedora and OpenSuse both ship flex 2.5.35,
which happens to both produce different output. It will be a real mess
to track which patch is applied by such or such distro which results
in such behavior.

Now, I agree with you. This does not *need* to work, it *must*.
Removing the dependency on bison/flex for normal users would make it
more manageable, from my point of view.

> So, how do I fix this?
>
you may either want to try the attached patch, or wait for `perf's
folks to look at this issue.

- Arnaud

ps: btw, please do not shoot at the messenger, I had nothing to do
with `util/perf' before you Cc'ed me. I'm just proposing solutions...


Attachments:
0001-perf-pre-generate-events-and-pmu-parsers.patch.gz (61.75 kB)

2012-05-04 07:09:34

by Ingo Molnar

[permalink] [raw]
Subject: [patch] perf: Fix build failure on OpenSuse userspace


* Greg KH <[email protected]> wrote:

> On Thu, May 03, 2012 at 11:01:54PM -0400, Arnaud Lacombe wrote:
> > Hi,
> >
> > On Thu, May 3, 2012 at 10:47 PM, Greg KH <[email protected]> wrote:
> > > On Thu, May 03, 2012 at 10:35:02PM -0400, Arnaud Lacombe wrote:
> > >> Hi,
> > >>
> > >> On Thu, May 3, 2012 at 10:29 PM, Arnaud Lacombe <[email protected]> wrote:
> > >> > [...]
> > >> > [0]: http://pkgs.fedoraproject.org/gitweb/?p=flex.git;a=blob;f=flex-2.5.35-hardening.patch;h=7d608ea2371fa3295bdb8eb97c15eeb03029c02b;hb=HEAD
> > >> >
> > >> as a side note, this patch sounds more being about "silencing" than
> > >> "hardening"...
> > >
> > > That's nice, but I can build the perf version in 3.3 just fine, so
> > > something broke here (hint, build regression.) ?Do I have to bisect it
> > > down to find the problem?
> > >
> > there is most likely nothing to bisect, `perf' seems to have never
> > required any parser before 3.4. The way the rest of the tools
> > (especially `kconfig', `genksyms' and `dtc') manage parsers is via
> > pre-generated .[ch]_shipped version of the lexer/tokenizer. It's been
> > working well for a long time as such. `perf' will certainly have to
> > follow the same path.
>
> Well, it can allow bison to run, but just don't break the build if the
> generated code it creates happens to contain warnings.
>
> I'm using bison 2.5 and flex 2.5.35, and my phone number is...
>
> Like this really matters? This needs to work for everyone, if not, you
> better put the specific version numbers you need to require in the
> Documentation/Changes file.
>
> So, how do I fix this?

Does the (untested) patch below help?

If not then please paste me the build failure output (it will
most likely change due to the patch), and until we fix this
build regression on OpenSuse userspace you can work it around
via:

make WERROR=0

Thanks,

Ingo

diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index 7055a00..3174e9b 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -729,10 +729,10 @@ $(OUTPUT)perf.o perf.spec \
# over the general rule for .o

$(OUTPUT)util/%-flex.o: $(OUTPUT)util/%-flex.c $(OUTPUT)PERF-CFLAGS
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function $<
+ $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function -Wno-unused-parameter $<

$(OUTPUT)util/%-bison.o: $(OUTPUT)util/%-bison.c $(OUTPUT)PERF-CFLAGS
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function $<
+ $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function -Wno-unused-parameter $<

$(OUTPUT)%.o: %.c $(OUTPUT)PERF-CFLAGS
$(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $<

2012-05-04 14:44:31

by Arnaud Lacombe

[permalink] [raw]
Subject: Re: [patch] perf: Fix build failure on OpenSuse userspace

Hi,

On Fri, May 4, 2012 at 3:09 AM, Ingo Molnar <[email protected]> wrote:
>
> * Greg KH <[email protected]> wrote:
>
>> On Thu, May 03, 2012 at 11:01:54PM -0400, Arnaud Lacombe wrote:
>> > Hi,
>> >
>> > On Thu, May 3, 2012 at 10:47 PM, Greg KH <[email protected]> wrote:
>> > > On Thu, May 03, 2012 at 10:35:02PM -0400, Arnaud Lacombe wrote:
>> > >> Hi,
>> > >>
>> > >> On Thu, May 3, 2012 at 10:29 PM, Arnaud Lacombe <[email protected]> wrote:
>> > >> > [...]
>> > >> > [0]: http://pkgs.fedoraproject.org/gitweb/?p=flex.git;a=blob;f=flex-2.5.35-hardening.patch;h=7d608ea2371fa3295bdb8eb97c15eeb03029c02b;hb=HEAD
>> > >> >
>> > >> as a side note, this patch sounds more being about "silencing" than
>> > >> "hardening"...
>> > >
>> > > That's nice, but I can build the perf version in 3.3 just fine, so
>> > > something broke here (hint, build regression.) ?Do I have to bisect it
>> > > down to find the problem?
>> > >
>> > there is most likely nothing to bisect, `perf' seems to have never
>> > required any parser before 3.4. The way the rest of the tools
>> > (especially `kconfig', `genksyms' and `dtc') manage parsers is via
>> > pre-generated .[ch]_shipped version of the lexer/tokenizer. It's been
>> > working well for a long time as such. `perf' will certainly have to
>> > follow the same path.
>>
>> Well, it can allow bison to run, but just don't break the build if the
>> generated code it creates happens to contain warnings.
>>
>> I'm using bison 2.5 and flex 2.5.35, and my phone number is...
>>
>> Like this really matters? ?This needs to work for everyone, if not, you
>> better put the specific version numbers you need to require in the
>> Documentation/Changes file.
>>
>> So, how do I fix this?
>
> Does the (untested) patch below help?
>
> If not then please paste me the build failure output (it will
> most likely change due to the patch), and until we fix this
> build regression on OpenSuse userspace you can work it around
> via:
>
> ?make WERROR=0
>
> Thanks,
>
> ? ? ? ?Ingo
>
> diff --git a/tools/perf/Makefile b/tools/perf/Makefile
> index 7055a00..3174e9b 100644
> --- a/tools/perf/Makefile
> +++ b/tools/perf/Makefile
> @@ -729,10 +729,10 @@ $(OUTPUT)perf.o perf.spec \
> ?# over the general rule for .o
>
> ?$(OUTPUT)util/%-flex.o: $(OUTPUT)util/%-flex.c $(OUTPUT)PERF-CFLAGS
> - ? ? ? $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function $<
> + ? ? ? $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function -Wno-unused-parameter $<
>
> ?$(OUTPUT)util/%-bison.o: $(OUTPUT)util/%-bison.c $(OUTPUT)PERF-CFLAGS
> - ? ? ? $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function $<
> + ? ? ? $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function -Wno-unused-parameter $<
>
> ?$(OUTPUT)%.o: %.c $(OUTPUT)PERF-CFLAGS
> ? ? ? ?$(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $<
>
You can find the build failure log in
<[email protected]>, pasted here for reference:

CC util/parse-events-flex.o
<stdout>: In function ‘yy_get_next_buffer’:
<stdout>:1510:3: error: comparison between signed and unsigned integer
expressions [-Werror=sign-compare]
util/parse-events.l: In function ‘parse_events_lex’:
util/parse-events.l:122:1: error: ignoring return value of
‘fwrite’, declared with attribute warn_unused_result
[-Werror=unused-result]
cc1: all warnings being treated as errors

So I doubt -Wno-unused-parameter will do any good here.

How about my solution, pre-generating the lexer/tokenizer ? It has
been used without trouble in other place of the tree for years. I
don't really see the point of micro-managing flex/bison issue here.

- Arnaud

2012-05-04 14:52:51

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [patch] perf: Fix build failure on OpenSuse userspace

On Fri, May 04, 2012 at 09:09:28AM +0200, Ingo Molnar wrote:
> Does the (untested) patch below help?

No :(

> If not then please paste me the build failure output (it will
> most likely change due to the patch), and until we fix this
> build regression on OpenSuse userspace you can work it around
> via:

Here's the error, it looks identical to what I previously had:

CC perf.o
CC util/parse-events-flex.o
<stdout>: In function ‘yy_get_next_buffer’:
<stdout>:1510:3: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
util/parse-events.l: In function ‘parse_events_lex’:
util/parse-events.l:122:1: error: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result [-Werror=unused-result]
cc1: all warnings being treated as errors

> make WERROR=0

Thanks, that works for me for now, but obviously, not a real solution :)

greg k-h

2012-05-04 14:55:55

by Namhyung Kim

[permalink] [raw]
Subject: Re: [patch] perf: Fix build failure on OpenSuse userspace

Hi,

On Fri, 4 May 2012 10:44:28 -0400, Arnaud Lacombe wrote:
> How about my solution, pre-generating the lexer/tokenizer ? It has
> been used without trouble in other place of the tree for years. I
> don't really see the point of micro-managing flex/bison issue here.
>

There was a discussion:

https://lkml.org/lkml/2012/3/27/263


Thanks,
Namhyung

2012-05-04 15:09:14

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [patch] perf: Fix build failure on OpenSuse userspace

On Fri, May 04, 2012 at 11:55:44PM +0900, Namhyung Kim wrote:
> Hi,
>
> On Fri, 4 May 2012 10:44:28 -0400, Arnaud Lacombe wrote:
> > How about my solution, pre-generating the lexer/tokenizer ? It has
> > been used without trouble in other place of the tree for years. I
> > don't really see the point of micro-managing flex/bison issue here.
> >
>
> There was a discussion:
>
> https://lkml.org/lkml/2012/3/27/263

Yes, and I agree with Ingo on this, you can require flex and bison to
build this code, I have no problem with that.

It's the "you must build with this specific version that is not possible
for your distro otherwise the build will break" side affect of this that
I do have a problem with :)

Why can't we turn off "build error on warning" for just these generated
files?

thanks,

greg k-h

2012-05-04 15:09:29

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [patch] perf: Fix build failure on OpenSuse userspace

Em Fri, May 04, 2012 at 10:44:28AM -0400, Arnaud Lacombe escreveu:
> CC util/parse-events-flex.o
> <stdout>: In function ‘yy_get_next_buffer’:
> <stdout>:1510:3: error: comparison between signed and unsigned integer
> expressions [-Werror=sign-compare]
> util/parse-events.l: In function ‘parse_events_lex’:
> util/parse-events.l:122:1: error: ignoring return value of
> ‘fwrite’, declared with attribute warn_unused_result
> [-Werror=unused-result]
> cc1: all warnings being treated as errors
>
> So I doubt -Wno-unused-parameter will do any good here.
>
> How about my solution, pre-generating the lexer/tokenizer ? It has
> been used without trouble in other place of the tree for years. I
> don't really see the point of micro-managing flex/bison issue here.

This was what we did in the first place:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=89812fc81f8d62d70433a8ff63d26819f372e8ec

Then we asked Linus about it and he said:

https://lkml.org/lkml/2012/3/28/417

So we:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=65f3e56e0c81d1f581c4bdef7646ae5a8d51f494

- Arnaldo

2012-05-04 15:17:55

by Lucas De Marchi

[permalink] [raw]
Subject: Re: [patch] perf: Fix build failure on OpenSuse userspace

On Fri, May 4, 2012 at 4:09 AM, Ingo Molnar <[email protected]> wrote:
>
> * Greg KH <[email protected]> wrote:
>
>> On Thu, May 03, 2012 at 11:01:54PM -0400, Arnaud Lacombe wrote:
>> > Hi,
>> >
>> > On Thu, May 3, 2012 at 10:47 PM, Greg KH <[email protected]> wrote:
>> > > On Thu, May 03, 2012 at 10:35:02PM -0400, Arnaud Lacombe wrote:
>> > >> Hi,
>> > >>
>> > >> On Thu, May 3, 2012 at 10:29 PM, Arnaud Lacombe <[email protected]> wrote:
>> > >> > [...]
>> > >> > [0]: http://pkgs.fedoraproject.org/gitweb/?p=flex.git;a=blob;f=flex-2.5.35-hardening.patch;h=7d608ea2371fa3295bdb8eb97c15eeb03029c02b;hb=HEAD
>> > >> >
>> > >> as a side note, this patch sounds more being about "silencing" than
>> > >> "hardening"...
>> > >
>> > > That's nice, but I can build the perf version in 3.3 just fine, so
>> > > something broke here (hint, build regression.)  Do I have to bisect it
>> > > down to find the problem?
>> > >
>> > there is most likely nothing to bisect, `perf' seems to have never
>> > required any parser before 3.4. The way the rest of the tools
>> > (especially `kconfig', `genksyms' and `dtc') manage parsers is via
>> > pre-generated .[ch]_shipped version of the lexer/tokenizer. It's been
>> > working well for a long time as such. `perf' will certainly have to
>> > follow the same path.
>>
>> Well, it can allow bison to run, but just don't break the build if the
>> generated code it creates happens to contain warnings.
>>
>> I'm using bison 2.5 and flex 2.5.35, and my phone number is...
>>
>> Like this really matters?  This needs to work for everyone, if not, you
>> better put the specific version numbers you need to require in the
>> Documentation/Changes file.
>>
>> So, how do I fix this?
>
> Does the (untested) patch below help?
>
> If not then please paste me the build failure output (it will
> most likely change due to the patch), and until we fix this
> build regression on OpenSuse userspace you can work it around
> via:
>
>  make WERROR=0
>
> Thanks,
>
>        Ingo
>
> diff --git a/tools/perf/Makefile b/tools/perf/Makefile
> index 7055a00..3174e9b 100644
> --- a/tools/perf/Makefile
> +++ b/tools/perf/Makefile
> @@ -729,10 +729,10 @@ $(OUTPUT)perf.o perf.spec \
>  # over the general rule for .o
>
>  $(OUTPUT)util/%-flex.o: $(OUTPUT)util/%-flex.c $(OUTPUT)PERF-CFLAGS
> -       $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function $<
> +       $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function -Wno-unused-parameter $<

Nah. What you need is -Wno-sign-compare.

But you are better off overriding the CFLAGS for these generated
files. Just put -Wno-error as the last one (untested, but should work)



Lucas De Marchi

2012-05-04 15:21:06

by Jiri Olsa

[permalink] [raw]
Subject: Re: [patch] perf: Fix build failure on OpenSuse userspace

On Fri, May 04, 2012 at 10:44:28AM -0400, Arnaud Lacombe wrote:
> Hi,
>
> On Fri, May 4, 2012 at 3:09 AM, Ingo Molnar <[email protected]> wrote:
> >
> > * Greg KH <[email protected]> wrote:
> >

SNIP

> > diff --git a/tools/perf/Makefile b/tools/perf/Makefile
> > index 7055a00..3174e9b 100644
> > --- a/tools/perf/Makefile
> > +++ b/tools/perf/Makefile
> > @@ -729,10 +729,10 @@ $(OUTPUT)perf.o perf.spec \
> >  # over the general rule for .o
> >
> >  $(OUTPUT)util/%-flex.o: $(OUTPUT)util/%-flex.c $(OUTPUT)PERF-CFLAGS
> > -       $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function $<
> > +       $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function -Wno-unused-parameter $<
> >
> >  $(OUTPUT)util/%-bison.o: $(OUTPUT)util/%-bison.c $(OUTPUT)PERF-CFLAGS
> > -       $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function $<
> > +       $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function -Wno-unused-parameter $<
> >
> >  $(OUTPUT)%.o: %.c $(OUTPUT)PERF-CFLAGS
> >        $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $<
> >
> You can find the build failure log in
> <[email protected]>, pasted here for reference:
>
> CC util/parse-events-flex.o
> <stdout>: In function ‘yy_get_next_buffer’:
> <stdout>:1510:3: error: comparison between signed and unsigned integer
> expressions [-Werror=sign-compare]
> util/parse-events.l: In function ‘parse_events_lex’:
> util/parse-events.l:122:1: error: ignoring return value of
> ‘fwrite’, declared with attribute warn_unused_result
> [-Werror=unused-result]
> cc1: all warnings being treated as errors
>
> So I doubt -Wno-unused-parameter will do any good here.
I think we need also -Wno-sign-compare, please check the attached patch

jirka


---
diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index 7055a00..8f7b6cf 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -729,10 +729,10 @@ $(OUTPUT)perf.o perf.spec \
# over the general rule for .o

$(OUTPUT)util/%-flex.o: $(OUTPUT)util/%-flex.c $(OUTPUT)PERF-CFLAGS
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function $<
+ $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function -Wno-unused-parameter -Wno-sign-compare $<

$(OUTPUT)util/%-bison.o: $(OUTPUT)util/%-bison.c $(OUTPUT)PERF-CFLAGS
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function $<
+ $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function -Wno-unused-parameter -Wno-sign-compare $<

$(OUTPUT)%.o: %.c $(OUTPUT)PERF-CFLAGS
$(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $<

2012-05-04 15:26:28

by Jiri Olsa

[permalink] [raw]
Subject: Re: [patch] perf: Fix build failure on OpenSuse userspace

On Fri, May 04, 2012 at 12:10:55PM -0300, Lucas De Marchi wrote:
> On Fri, May 4, 2012 at 4:09 AM, Ingo Molnar <[email protected]> wrote:
> >
> > * Greg KH <[email protected]> wrote:
> >
> >> On Thu, May 03, 2012 at 11:01:54PM -0400, Arnaud Lacombe wrote:
> >> > Hi,
> >> >
> >> > On Thu, May 3, 2012 at 10:47 PM, Greg KH <[email protected]> wrote:
> >> > > On Thu, May 03, 2012 at 10:35:02PM -0400, Arnaud Lacombe wrote:
> >> > >> Hi,
> >> > >>
> >> > >> On Thu, May 3, 2012 at 10:29 PM, Arnaud Lacombe <[email protected]> wrote:
> >> > >> > [...]
> >> > >> > [0]: http://pkgs.fedoraproject.org/gitweb/?p=flex.git;a=blob;f=flex-2.5.35-hardening.patch;h=7d608ea2371fa3295bdb8eb97c15eeb03029c02b;hb=HEAD
> >> > >> >
> >> > >> as a side note, this patch sounds more being about "silencing" than
> >> > >> "hardening"...
> >> > >
> >> > > That's nice, but I can build the perf version in 3.3 just fine, so
> >> > > something broke here (hint, build regression.) ?Do I have to bisect it
> >> > > down to find the problem?
> >> > >
> >> > there is most likely nothing to bisect, `perf' seems to have never
> >> > required any parser before 3.4. The way the rest of the tools
> >> > (especially `kconfig', `genksyms' and `dtc') manage parsers is via
> >> > pre-generated .[ch]_shipped version of the lexer/tokenizer. It's been
> >> > working well for a long time as such. `perf' will certainly have to
> >> > follow the same path.
> >>
> >> Well, it can allow bison to run, but just don't break the build if the
> >> generated code it creates happens to contain warnings.
> >>
> >> I'm using bison 2.5 and flex 2.5.35, and my phone number is...
> >>
> >> Like this really matters? ?This needs to work for everyone, if not, you
> >> better put the specific version numbers you need to require in the
> >> Documentation/Changes file.
> >>
> >> So, how do I fix this?
> >
> > Does the (untested) patch below help?
> >
> > If not then please paste me the build failure output (it will
> > most likely change due to the patch), and until we fix this
> > build regression on OpenSuse userspace you can work it around
> > via:
> >
> > ?make WERROR=0
> >
> > Thanks,
> >
> > ? ? ? ?Ingo
> >
> > diff --git a/tools/perf/Makefile b/tools/perf/Makefile
> > index 7055a00..3174e9b 100644
> > --- a/tools/perf/Makefile
> > +++ b/tools/perf/Makefile
> > @@ -729,10 +729,10 @@ $(OUTPUT)perf.o perf.spec \
> > ?# over the general rule for .o
> >
> > ?$(OUTPUT)util/%-flex.o: $(OUTPUT)util/%-flex.c $(OUTPUT)PERF-CFLAGS
> > - ? ? ? $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function $<
> > + ? ? ? $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function -Wno-unused-parameter $<
>
> Nah. What you need is -Wno-sign-compare.
>
> But you are better off overriding the CFLAGS for these generated
> files. Just put -Wno-error as the last one (untested, but should work)

yep, I think it's good idea.. and plus '-w' to suppres warnings not to
polute the build log

jirka


---
diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index 7055a00..9c734a2 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -729,10 +729,10 @@ $(OUTPUT)perf.o perf.spec \
# over the general rule for .o

$(OUTPUT)util/%-flex.o: $(OUTPUT)util/%-flex.c $(OUTPUT)PERF-CFLAGS
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function $<
+ $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Iutil/ -Wno-error -w $<

$(OUTPUT)util/%-bison.o: $(OUTPUT)util/%-bison.c $(OUTPUT)PERF-CFLAGS
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function $<
+ $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -Iutil/ -Wno-error -w $<

$(OUTPUT)%.o: %.c $(OUTPUT)PERF-CFLAGS
$(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $<

2012-05-04 15:26:37

by Namhyung Kim

[permalink] [raw]
Subject: Re: [patch] perf: Fix build failure on OpenSuse userspace

Hi,

On Fri, 4 May 2012 17:02:11 +0200, Jiri Olsa wrote:
>> So I doubt -Wno-unused-parameter will do any good here.
> I think we need also -Wno-sign-compare, please check the attached patch
>
>
> ---
> diff --git a/tools/perf/Makefile b/tools/perf/Makefile
> index 7055a00..8f7b6cf 100644
> --- a/tools/perf/Makefile
> +++ b/tools/perf/Makefile
> @@ -729,10 +729,10 @@ $(OUTPUT)perf.o perf.spec \
> # over the general rule for .o
>
> $(OUTPUT)util/%-flex.o: $(OUTPUT)util/%-flex.c $(OUTPUT)PERF-CFLAGS
> - $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function $<
> + $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function -Wno-unused-parameter -Wno-sign-compare $<
>

s/unused-parameter/unused-result/ ?

Thanks,
Namhyung


> $(OUTPUT)util/%-bison.o: $(OUTPUT)util/%-bison.c $(OUTPUT)PERF-CFLAGS
> - $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function $<
> + $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function -Wno-unused-parameter -Wno-sign-compare $<
>
> $(OUTPUT)%.o: %.c $(OUTPUT)PERF-CFLAGS
> $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $<

2012-05-04 15:39:09

by Namhyung Kim

[permalink] [raw]
Subject: Re: [patch] perf: Fix build failure on OpenSuse userspace

Hi,

On Fri, 4 May 2012 17:26:13 +0200, Jiri Olsa wrote:
> On Fri, May 04, 2012 at 12:10:55PM -0300, Lucas De Marchi wrote:
>> Nah. What you need is -Wno-sign-compare.
>>
>> But you are better off overriding the CFLAGS for these generated
>> files. Just put -Wno-error as the last one (untested, but should work)
>
> yep, I think it's good idea.. and plus '-w' to suppres warnings not to
> polute the build log
>
> jirka

Works well for me. But I guess -Wno-error turns into a nop if we use
'-w', right?


Thank,
Namhyung


>
>
> ---
> diff --git a/tools/perf/Makefile b/tools/perf/Makefile
> index 7055a00..9c734a2 100644
> --- a/tools/perf/Makefile
> +++ b/tools/perf/Makefile
> @@ -729,10 +729,10 @@ $(OUTPUT)perf.o perf.spec \
> # over the general rule for .o
>
> $(OUTPUT)util/%-flex.o: $(OUTPUT)util/%-flex.c $(OUTPUT)PERF-CFLAGS
> - $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function $<
> + $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Iutil/ -Wno-error -w $<
>
> $(OUTPUT)util/%-bison.o: $(OUTPUT)util/%-bison.c $(OUTPUT)PERF-CFLAGS
> - $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function $<
> + $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -Iutil/ -Wno-error -w $<
>
> $(OUTPUT)%.o: %.c $(OUTPUT)PERF-CFLAGS
> $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $<

2012-05-04 16:41:36

by Jiri Olsa

[permalink] [raw]
Subject: Re: [patch] perf: Fix build failure on OpenSuse userspace

On Sat, May 05, 2012 at 12:38:48AM +0900, Namhyung Kim wrote:
> Hi,
>
> On Fri, 4 May 2012 17:26:13 +0200, Jiri Olsa wrote:
> > On Fri, May 04, 2012 at 12:10:55PM -0300, Lucas De Marchi wrote:
> >> Nah. What you need is -Wno-sign-compare.
> >>
> >> But you are better off overriding the CFLAGS for these generated
> >> files. Just put -Wno-error as the last one (untested, but should work)
> >
> > yep, I think it's good idea.. and plus '-w' to suppres warnings not to
> > polute the build log
> >
> > jirka
>
> Works well for me. But I guess -Wno-error turns into a nop if we use
> '-w', right?

argghh.. right ;) misread the man page.. I tested -w is enough

thanks,
jirka

>
>
> Thank,
> Namhyung
>
>
> >
> >
> > ---
> > diff --git a/tools/perf/Makefile b/tools/perf/Makefile
> > index 7055a00..9c734a2 100644
> > --- a/tools/perf/Makefile
> > +++ b/tools/perf/Makefile
> > @@ -729,10 +729,10 @@ $(OUTPUT)perf.o perf.spec \
> > # over the general rule for .o
> >
> > $(OUTPUT)util/%-flex.o: $(OUTPUT)util/%-flex.c $(OUTPUT)PERF-CFLAGS
> > - $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function $<
> > + $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Iutil/ -Wno-error -w $<
> >
> > $(OUTPUT)util/%-bison.o: $(OUTPUT)util/%-bison.c $(OUTPUT)PERF-CFLAGS
> > - $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -Iutil/ -Wno-redundant-decls -Wno-switch-default -Wno-unused-function $<
> > + $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -Iutil/ -Wno-error -w $<
> >
> > $(OUTPUT)%.o: %.c $(OUTPUT)PERF-CFLAGS
> > $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $<