LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH] perf: perl: force to use stdbool.
@ 2015-01-15 5:55 Wang Nan
2015-01-19 10:42 ` Wang Nan
0 siblings, 1 reply; 10+ messages in thread
From: Wang Nan @ 2015-01-15 5:55 UTC (permalink / raw)
To: paulus, mingo, acme, jolsa, namhyung; +Cc: lizefan, linux-kernel
When building perf for arm64 I hit a warning (and be treated as an
error) like below:
aarch64-oe-linux-gcc -o .../util/scripting-engines/trace-event-python.o -c -Wbad-function-cast \
... util/scripting-engines/trace-event-python.c
In file included from .../usr/lib64/perl/5.14.3/CORE/perl.h:2464:0,
from Context.xs:23:
/.../usr/lib64/perl/5.14.3/CORE/handy.h:108:0: error: "bool" redefined [-Werror]
# define bool char
^
In file included from /.../usr/src/kernel/tools/include/linux/types.h:4:0,
from /.../usr/src/kernel/arch/arm64/include/uapi/asm/sigcontext.h:19,
from /.../usr/include/bits/sigcontext.h:27,
from /.../usr/include/signal.h:340,
from /.../usr/include/sys/param.h:28,
from /.../usr/lib64/perl/5.14.3/CORE/perl.h:678,
from Context.xs:23:
/.../usr/lib/aarch64-oe-linux/gcc/aarch64-oe-linux/4.9.2/include/stdbool.h:33:0: note: this is the location of the previous definition
#define bool _Bool
Looks like the failure is caused by arm64 uapi/asm/sigcontext.h, which
includes linux/types.h while other archs not.
This patch includes stdbool.h before Context.xs and define HAS_BOOL to
prevent perl'e headers define its own 'bool'.
Signed-off-by: Wang Nan <wangnan0@huawei.com>
---
tools/perf/scripts/perl/Perf-Trace-Util/Context.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
index 790ceba..69c3572 100644
--- a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
+++ b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
@@ -5,7 +5,8 @@
* ANY CHANGES MADE HERE WILL BE LOST!
*
*/
-
+#include <stdbool.h>
+#define HAS_BOOL 1
#line 1 "Context.xs"
/*
* Context.xs. XS interfaces for perf script.
--
1.8.4
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] perf: perl: force to use stdbool.
2015-01-15 5:55 [PATCH] perf: perl: force to use stdbool Wang Nan
@ 2015-01-19 10:42 ` Wang Nan
2015-01-19 11:23 ` Jiri Olsa
0 siblings, 1 reply; 10+ messages in thread
From: Wang Nan @ 2015-01-19 10:42 UTC (permalink / raw)
To: acme, jolsa; +Cc: paulus, mingo, namhyung, lizefan, linux-kernel, Jiri Olsa
Add Jiri Olsa jolsa@kernel.org to CC list. I think jolsa@kernel.org should be the main
email address he uses.
On 2015/1/15 13:55, Wang Nan wrote:
> When building perf for arm64 I hit a warning (and be treated as an
> error) like below:
>
> aarch64-oe-linux-gcc -o .../util/scripting-engines/trace-event-python.o -c -Wbad-function-cast \
> ... util/scripting-engines/trace-event-python.c
>
> In file included from .../usr/lib64/perl/5.14.3/CORE/perl.h:2464:0,
> from Context.xs:23:
> /.../usr/lib64/perl/5.14.3/CORE/handy.h:108:0: error: "bool" redefined [-Werror]
> # define bool char
> ^
> In file included from /.../usr/src/kernel/tools/include/linux/types.h:4:0,
> from /.../usr/src/kernel/arch/arm64/include/uapi/asm/sigcontext.h:19,
> from /.../usr/include/bits/sigcontext.h:27,
> from /.../usr/include/signal.h:340,
> from /.../usr/include/sys/param.h:28,
> from /.../usr/lib64/perl/5.14.3/CORE/perl.h:678,
> from Context.xs:23:
> /.../usr/lib/aarch64-oe-linux/gcc/aarch64-oe-linux/4.9.2/include/stdbool.h:33:0: note: this is the location of the previous definition
> #define bool _Bool
>
> Looks like the failure is caused by arm64 uapi/asm/sigcontext.h, which
> includes linux/types.h while other archs not.
>
> This patch includes stdbool.h before Context.xs and define HAS_BOOL to
> prevent perl'e headers define its own 'bool'.
>
> Signed-off-by: Wang Nan <wangnan0@huawei.com>
> ---
> tools/perf/scripts/perl/Perf-Trace-Util/Context.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
> index 790ceba..69c3572 100644
> --- a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
> +++ b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
> @@ -5,7 +5,8 @@
> * ANY CHANGES MADE HERE WILL BE LOST!
> *
> */
> -
> +#include <stdbool.h>
> +#define HAS_BOOL 1
> #line 1 "Context.xs"
> /*
> * Context.xs. XS interfaces for perf script.
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] perf: perl: force to use stdbool.
2015-01-19 10:42 ` Wang Nan
@ 2015-01-19 11:23 ` Jiri Olsa
2015-01-19 11:51 ` Wang Nan
0 siblings, 1 reply; 10+ messages in thread
From: Jiri Olsa @ 2015-01-19 11:23 UTC (permalink / raw)
To: Wang Nan; +Cc: acme, paulus, mingo, namhyung, lizefan, linux-kernel, Jiri Olsa
On Mon, Jan 19, 2015 at 06:42:17PM +0800, Wang Nan wrote:
> Add Jiri Olsa jolsa@kernel.org to CC list. I think jolsa@kernel.org should be the main
> email address he uses.
ack ;-)
jirka
>
> On 2015/1/15 13:55, Wang Nan wrote:
> > When building perf for arm64 I hit a warning (and be treated as an
> > error) like below:
> >
> > aarch64-oe-linux-gcc -o .../util/scripting-engines/trace-event-python.o -c -Wbad-function-cast \
> > ... util/scripting-engines/trace-event-python.c
> >
> > In file included from .../usr/lib64/perl/5.14.3/CORE/perl.h:2464:0,
> > from Context.xs:23:
> > /.../usr/lib64/perl/5.14.3/CORE/handy.h:108:0: error: "bool" redefined [-Werror]
> > # define bool char
> > ^
> > In file included from /.../usr/src/kernel/tools/include/linux/types.h:4:0,
> > from /.../usr/src/kernel/arch/arm64/include/uapi/asm/sigcontext.h:19,
> > from /.../usr/include/bits/sigcontext.h:27,
> > from /.../usr/include/signal.h:340,
> > from /.../usr/include/sys/param.h:28,
> > from /.../usr/lib64/perl/5.14.3/CORE/perl.h:678,
> > from Context.xs:23:
> > /.../usr/lib/aarch64-oe-linux/gcc/aarch64-oe-linux/4.9.2/include/stdbool.h:33:0: note: this is the location of the previous definition
> > #define bool _Bool
> >
> > Looks like the failure is caused by arm64 uapi/asm/sigcontext.h, which
> > includes linux/types.h while other archs not.
> >
> > This patch includes stdbool.h before Context.xs and define HAS_BOOL to
> > prevent perl'e headers define its own 'bool'.
> >
> > Signed-off-by: Wang Nan <wangnan0@huawei.com>
> > ---
> > tools/perf/scripts/perl/Perf-Trace-Util/Context.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
> > index 790ceba..69c3572 100644
> > --- a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
> > +++ b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
> > @@ -5,7 +5,8 @@
> > * ANY CHANGES MADE HERE WILL BE LOST!
> > *
> > */
> > -
> > +#include <stdbool.h>
> > +#define HAS_BOOL 1
I saw this patch before.. but I had no idea ;-)
seems hacky to me? Is there any doc saying 'this is how you handle this with perl' ? ;-)
I couldn't find any.. or more detailed explanation why we should
define HAS_BOOL and not perl headers..
thanks,
jirka
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] perf: perl: force to use stdbool.
2015-01-19 11:23 ` Jiri Olsa
@ 2015-01-19 11:51 ` Wang Nan
2015-01-19 12:38 ` Jiri Olsa
0 siblings, 1 reply; 10+ messages in thread
From: Wang Nan @ 2015-01-19 11:51 UTC (permalink / raw)
To: Jiri Olsa; +Cc: acme, paulus, mingo, namhyung, lizefan, linux-kernel, Jiri Olsa
On 2015/1/19 19:23, Jiri Olsa wrote:
> On Mon, Jan 19, 2015 at 06:42:17PM +0800, Wang Nan wrote:
>> Add Jiri Olsa jolsa@kernel.org to CC list. I think jolsa@kernel.org should be the main
>> email address he uses.
>
> ack ;-)
>
> jirka
>
>>
>> On 2015/1/15 13:55, Wang Nan wrote:
>>> When building perf for arm64 I hit a warning (and be treated as an
>>> error) like below:
>>>
>>> aarch64-oe-linux-gcc -o .../util/scripting-engines/trace-event-python.o -c -Wbad-function-cast \
>>> ... util/scripting-engines/trace-event-python.c
>>>
>>> In file included from .../usr/lib64/perl/5.14.3/CORE/perl.h:2464:0,
>>> from Context.xs:23:
>>> /.../usr/lib64/perl/5.14.3/CORE/handy.h:108:0: error: "bool" redefined [-Werror]
>>> # define bool char
>>> ^
>>> In file included from /.../usr/src/kernel/tools/include/linux/types.h:4:0,
>>> from /.../usr/src/kernel/arch/arm64/include/uapi/asm/sigcontext.h:19,
>>> from /.../usr/include/bits/sigcontext.h:27,
>>> from /.../usr/include/signal.h:340,
>>> from /.../usr/include/sys/param.h:28,
>>> from /.../usr/lib64/perl/5.14.3/CORE/perl.h:678,
>>> from Context.xs:23:
>>> /.../usr/lib/aarch64-oe-linux/gcc/aarch64-oe-linux/4.9.2/include/stdbool.h:33:0: note: this is the location of the previous definition
>>> #define bool _Bool
>>>
>>> Looks like the failure is caused by arm64 uapi/asm/sigcontext.h, which
>>> includes linux/types.h while other archs not.
>>>
>>> This patch includes stdbool.h before Context.xs and define HAS_BOOL to
>>> prevent perl'e headers define its own 'bool'.
>>>
>>> Signed-off-by: Wang Nan <wangnan0@huawei.com>
>>> ---
>>> tools/perf/scripts/perl/Perf-Trace-Util/Context.c | 3 ++-
>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
>>> index 790ceba..69c3572 100644
>>> --- a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
>>> +++ b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
>>> @@ -5,7 +5,8 @@
>>> * ANY CHANGES MADE HERE WILL BE LOST!
>>> *
>>> */
>>> -
>>> +#include <stdbool.h>
>>> +#define HAS_BOOL 1
>
> I saw this patch before.. but I had no idea ;-)
>
> seems hacky to me? Is there any doc saying 'this is how you handle this with perl' ? ;-)
>
It is hacky. I'm not very familiar with perl, I just try to build it.
I checked perl's repository and found that newest perl does consider this problem:
http://perl5.git.perl.org/perl.git/commit/bd31be4baa3ee68abdb92c0db3200efe0fad903b
So the root cause is in my perl version.
What's your policy then? Do you think we should provid a workaround or just force
users update their perl?
Thank you.
> I couldn't find any.. or more detailed explanation why we should
> define HAS_BOOL and not perl headers..
>
> thanks,
> jirka
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] perf: perl: force to use stdbool.
2015-01-19 11:51 ` Wang Nan
@ 2015-01-19 12:38 ` Jiri Olsa
2015-01-19 12:43 ` [PATCH v2] " Wang Nan
0 siblings, 1 reply; 10+ messages in thread
From: Jiri Olsa @ 2015-01-19 12:38 UTC (permalink / raw)
To: Wang Nan; +Cc: acme, paulus, mingo, namhyung, lizefan, linux-kernel, Jiri Olsa
On Mon, Jan 19, 2015 at 07:51:54PM +0800, Wang Nan wrote:
> On 2015/1/19 19:23, Jiri Olsa wrote:
> > On Mon, Jan 19, 2015 at 06:42:17PM +0800, Wang Nan wrote:
> >> Add Jiri Olsa jolsa@kernel.org to CC list. I think jolsa@kernel.org should be the main
> >> email address he uses.
> >
> > ack ;-)
> >
> > jirka
> >
> >>
> >> On 2015/1/15 13:55, Wang Nan wrote:
> >>> When building perf for arm64 I hit a warning (and be treated as an
> >>> error) like below:
> >>>
> >>> aarch64-oe-linux-gcc -o .../util/scripting-engines/trace-event-python.o -c -Wbad-function-cast \
> >>> ... util/scripting-engines/trace-event-python.c
> >>>
> >>> In file included from .../usr/lib64/perl/5.14.3/CORE/perl.h:2464:0,
> >>> from Context.xs:23:
> >>> /.../usr/lib64/perl/5.14.3/CORE/handy.h:108:0: error: "bool" redefined [-Werror]
> >>> # define bool char
> >>> ^
> >>> In file included from /.../usr/src/kernel/tools/include/linux/types.h:4:0,
> >>> from /.../usr/src/kernel/arch/arm64/include/uapi/asm/sigcontext.h:19,
> >>> from /.../usr/include/bits/sigcontext.h:27,
> >>> from /.../usr/include/signal.h:340,
> >>> from /.../usr/include/sys/param.h:28,
> >>> from /.../usr/lib64/perl/5.14.3/CORE/perl.h:678,
> >>> from Context.xs:23:
> >>> /.../usr/lib/aarch64-oe-linux/gcc/aarch64-oe-linux/4.9.2/include/stdbool.h:33:0: note: this is the location of the previous definition
> >>> #define bool _Bool
> >>>
> >>> Looks like the failure is caused by arm64 uapi/asm/sigcontext.h, which
> >>> includes linux/types.h while other archs not.
> >>>
> >>> This patch includes stdbool.h before Context.xs and define HAS_BOOL to
> >>> prevent perl'e headers define its own 'bool'.
> >>>
> >>> Signed-off-by: Wang Nan <wangnan0@huawei.com>
> >>> ---
> >>> tools/perf/scripts/perl/Perf-Trace-Util/Context.c | 3 ++-
> >>> 1 file changed, 2 insertions(+), 1 deletion(-)
> >>>
> >>> diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
> >>> index 790ceba..69c3572 100644
> >>> --- a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
> >>> +++ b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
> >>> @@ -5,7 +5,8 @@
> >>> * ANY CHANGES MADE HERE WILL BE LOST!
> >>> *
> >>> */
> >>> -
> >>> +#include <stdbool.h>
> >>> +#define HAS_BOOL 1
> >
> > I saw this patch before.. but I had no idea ;-)
> >
> > seems hacky to me? Is there any doc saying 'this is how you handle this with perl' ? ;-)
> >
>
> It is hacky. I'm not very familiar with perl, I just try to build it.
>
> I checked perl's repository and found that newest perl does consider this problem:
>
> http://perl5.git.perl.org/perl.git/commit/bd31be4baa3ee68abdb92c0db3200efe0fad903b
>
> So the root cause is in my perl version.
>
> What's your policy then? Do you think we should provid a workaround or just force
> users update their perl?
I guess thats ok then.. maybe use it the way they did:
#include <stdbool.h>
#ifndef HAS_BOOL
# define HAS_BOOL 1
#endif
not sure if the better fix would be regenerating Context.c somehow,
as it indicates it's been generated ;-)
but if nobody screams, I'm ok with this..
jirka
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2] perf: perl: force to use stdbool.
2015-01-19 12:38 ` Jiri Olsa
@ 2015-01-19 12:43 ` Wang Nan
2015-01-19 14:26 ` Namhyung Kim
2015-01-28 15:00 ` [tip:perf/core] perf scripting perl: Force " tip-bot for Wang Nan
0 siblings, 2 replies; 10+ messages in thread
From: Wang Nan @ 2015-01-19 12:43 UTC (permalink / raw)
To: jolsa; +Cc: linux-kernel, lizefan, namhyung, acme
When building perf for arm64 I hit a warning (and be treated as an
error) like below:
aarch64-oe-linux-gcc -o .../util/scripting-engines/trace-event-python.o -c -Wbad-function-cast \
... util/scripting-engines/trace-event-python.c
In file included from .../usr/lib64/perl/5.14.3/CORE/perl.h:2464:0,
from Context.xs:23:
/.../usr/lib64/perl/5.14.3/CORE/handy.h:108:0: error: "bool" redefined [-Werror]
# define bool char
^
In file included from /.../usr/src/kernel/tools/include/linux/types.h:4:0,
from /.../usr/src/kernel/arch/arm64/include/uapi/asm/sigcontext.h:19,
from /.../usr/include/bits/sigcontext.h:27,
from /.../usr/include/signal.h:340,
from /.../usr/include/sys/param.h:28,
from /.../usr/lib64/perl/5.14.3/CORE/perl.h:678,
from Context.xs:23:
/.../usr/lib/aarch64-oe-linux/gcc/aarch64-oe-linux/4.9.2/include/stdbool.h:33:0: note: this is the location of the previous definition
#define bool _Bool
Looks like the failure is caused by arm64 uapi/asm/sigcontext.h, which
includes linux/types.h while other archs not.
Current perl consider this problem:
http://perl5.git.perl.org/perl.git/commit/bd31be4baa3ee68abdb92c0db3200efe0fad903b
However there are users which use old version of perl.
This patch includes stdbool.h before Context.xs and define HAS_BOOL to
prevent perl'e headers define its own 'bool'. Code is learn from perl's
git tree.
Signed-off-by: Wang Nan <wangnan0@huawei.com>
---
tools/perf/scripts/perl/Perf-Trace-Util/Context.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
index 790ceba..28431d1 100644
--- a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
+++ b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
@@ -5,7 +5,10 @@
* ANY CHANGES MADE HERE WILL BE LOST!
*
*/
-
+#include <stdbool.h>
+#ifndef HAS_BOOL
+# define HAS_BOOL 1
+#endif
#line 1 "Context.xs"
/*
* Context.xs. XS interfaces for perf script.
--
1.8.4
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] perf: perl: force to use stdbool.
2015-01-19 12:43 ` [PATCH v2] " Wang Nan
@ 2015-01-19 14:26 ` Namhyung Kim
2015-01-20 1:59 ` [PATCH v3] " Wang Nan
2015-01-20 2:07 ` [PATCH v2] " Wang Nan
2015-01-28 15:00 ` [tip:perf/core] perf scripting perl: Force " tip-bot for Wang Nan
1 sibling, 2 replies; 10+ messages in thread
From: Namhyung Kim @ 2015-01-19 14:26 UTC (permalink / raw)
To: Wang Nan; +Cc: jolsa, linux-kernel, lizefan, acme
On Mon, Jan 19, 2015 at 08:43:17PM +0800, Wang Nan wrote:
> When building perf for arm64 I hit a warning (and be treated as an
> error) like below:
>
> aarch64-oe-linux-gcc -o .../util/scripting-engines/trace-event-python.o -c -Wbad-function-cast \
> ... util/scripting-engines/trace-event-python.c
s/python/perl/g ?
>
> In file included from .../usr/lib64/perl/5.14.3/CORE/perl.h:2464:0,
> from Context.xs:23:
> /.../usr/lib64/perl/5.14.3/CORE/handy.h:108:0: error: "bool" redefined [-Werror]
> # define bool char
> ^
> In file included from /.../usr/src/kernel/tools/include/linux/types.h:4:0,
> from /.../usr/src/kernel/arch/arm64/include/uapi/asm/sigcontext.h:19,
> from /.../usr/include/bits/sigcontext.h:27,
> from /.../usr/include/signal.h:340,
> from /.../usr/include/sys/param.h:28,
> from /.../usr/lib64/perl/5.14.3/CORE/perl.h:678,
> from Context.xs:23:
> /.../usr/lib/aarch64-oe-linux/gcc/aarch64-oe-linux/4.9.2/include/stdbool.h:33:0: note: this is the location of the previous definition
> #define bool _Bool
>
> Looks like the failure is caused by arm64 uapi/asm/sigcontext.h, which
> includes linux/types.h while other archs not.
>
> Current perl consider this problem:
>
> http://perl5.git.perl.org/perl.git/commit/bd31be4baa3ee68abdb92c0db3200efe0fad903b
>
> However there are users which use old version of perl.
>
> This patch includes stdbool.h before Context.xs and define HAS_BOOL to
> prevent perl'e headers define its own 'bool'. Code is learn from perl's
> git tree.
>
> Signed-off-by: Wang Nan <wangnan0@huawei.com>
Other than that, looks good to me.
Acked-by: Namhyung Kim <namhyung@kernel.org>
Thanks,
Namhyung
> ---
> tools/perf/scripts/perl/Perf-Trace-Util/Context.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
> index 790ceba..28431d1 100644
> --- a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
> +++ b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
> @@ -5,7 +5,10 @@
> * ANY CHANGES MADE HERE WILL BE LOST!
> *
> */
> -
> +#include <stdbool.h>
> +#ifndef HAS_BOOL
> +# define HAS_BOOL 1
> +#endif
> #line 1 "Context.xs"
> /*
> * Context.xs. XS interfaces for perf script.
> --
> 1.8.4
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3] perf: perl: force to use stdbool.
2015-01-19 14:26 ` Namhyung Kim
@ 2015-01-20 1:59 ` Wang Nan
2015-01-20 2:07 ` [PATCH v2] " Wang Nan
1 sibling, 0 replies; 10+ messages in thread
From: Wang Nan @ 2015-01-20 1:59 UTC (permalink / raw)
To: namhyung; +Cc: jolsa, linux-kernel, lizefan, acme
When building perf for arm64 I hit a warning (and be treated as an
error) like below:
aarch64-oe-linux-gcc -o .../scripts/perl/Perf-Trace-Util/Context.o -c -Wbad-function-cast \
... scripts/perl/Perf-Trace-Util/Context.c
In file included from .../usr/lib64/perl/5.14.3/CORE/perl.h:2464:0,
from Context.xs:23:
/.../usr/lib64/perl/5.14.3/CORE/handy.h:108:0: error: "bool" redefined [-Werror]
# define bool char
^
In file included from /.../usr/src/kernel/tools/include/linux/types.h:4:0,
from /.../usr/src/kernel/arch/arm64/include/uapi/asm/sigcontext.h:19,
from /.../usr/include/bits/sigcontext.h:27,
from /.../usr/include/signal.h:340,
from /.../usr/include/sys/param.h:28,
from /.../usr/lib64/perl/5.14.3/CORE/perl.h:678,
from Context.xs:23:
/.../usr/lib/aarch64-oe-linux/gcc/aarch64-oe-linux/4.9.2/include/stdbool.h:33:0: note: this is the location of the previous definition
#define bool _Bool
Looks like the failure is caused by arm64 uapi/asm/sigcontext.h, which
includes linux/types.h while other archs not.
Current perl consider this problem:
http://perl5.git.perl.org/perl.git/commit/bd31be4baa3ee68abdb92c0db3200efe0fad903b
So systems with perl later than v5.15.3 will be free of this bug.
However, old perl still exists in many main distributions.
This patch includes stdbool.h before Context.xs and define HAS_BOOL to
prevent perl'e headers define its own 'bool'. Code is learn from perl's
git tree.
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
---
tools/perf/scripts/perl/Perf-Trace-Util/Context.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
index 790ceba..28431d1 100644
--- a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
+++ b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
@@ -5,7 +5,10 @@
* ANY CHANGES MADE HERE WILL BE LOST!
*
*/
-
+#include <stdbool.h>
+#ifndef HAS_BOOL
+# define HAS_BOOL 1
+#endif
#line 1 "Context.xs"
/*
* Context.xs. XS interfaces for perf script.
--
1.8.4
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] perf: perl: force to use stdbool.
2015-01-19 14:26 ` Namhyung Kim
2015-01-20 1:59 ` [PATCH v3] " Wang Nan
@ 2015-01-20 2:07 ` Wang Nan
1 sibling, 0 replies; 10+ messages in thread
From: Wang Nan @ 2015-01-20 2:07 UTC (permalink / raw)
To: Namhyung Kim; +Cc: jolsa, linux-kernel, lizefan, acme
On 2015/1/19 22:26, Namhyung Kim wrote:
> On Mon, Jan 19, 2015 at 08:43:17PM +0800, Wang Nan wrote:
>> When building perf for arm64 I hit a warning (and be treated as an
>> error) like below:
>>
>> aarch64-oe-linux-gcc -o .../util/scripting-engines/trace-event-python.o -c -Wbad-function-cast \
>> ... util/scripting-engines/trace-event-python.c
>
> s/python/perl/g ?
>
I forgot I was using parallel building and simply pasted the previous line of the
error message here. The failed file should be 'scripts/perl/Perf-Trace-Util/Context.c'.
I posted a v3 patch with improved commit message.
>
>>
>> In file included from .../usr/lib64/perl/5.14.3/CORE/perl.h:2464:0,
>> from Context.xs:23:
>> /.../usr/lib64/perl/5.14.3/CORE/handy.h:108:0: error: "bool" redefined [-Werror]
>> # define bool char
>> ^
>> In file included from /.../usr/src/kernel/tools/include/linux/types.h:4:0,
>> from /.../usr/src/kernel/arch/arm64/include/uapi/asm/sigcontext.h:19,
>> from /.../usr/include/bits/sigcontext.h:27,
>> from /.../usr/include/signal.h:340,
>> from /.../usr/include/sys/param.h:28,
>> from /.../usr/lib64/perl/5.14.3/CORE/perl.h:678,
>> from Context.xs:23:
>> /.../usr/lib/aarch64-oe-linux/gcc/aarch64-oe-linux/4.9.2/include/stdbool.h:33:0: note: this is the location of the previous definition
>> #define bool _Bool
>>
>> Looks like the failure is caused by arm64 uapi/asm/sigcontext.h, which
>> includes linux/types.h while other archs not.
>>
>> Current perl consider this problem:
>>
>> http://perl5.git.perl.org/perl.git/commit/bd31be4baa3ee68abdb92c0db3200efe0fad903b
>>
>> However there are users which use old version of perl.
>>
>> This patch includes stdbool.h before Context.xs and define HAS_BOOL to
>> prevent perl'e headers define its own 'bool'. Code is learn from perl's
>> git tree.
>>
>> Signed-off-by: Wang Nan <wangnan0@huawei.com>
>
> Other than that, looks good to me.
>
> Acked-by: Namhyung Kim <namhyung@kernel.org>
>
> Thanks,
> Namhyung
>
>
>> ---
>> tools/perf/scripts/perl/Perf-Trace-Util/Context.c | 5 ++++-
>> 1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
>> index 790ceba..28431d1 100644
>> --- a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
>> +++ b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
>> @@ -5,7 +5,10 @@
>> * ANY CHANGES MADE HERE WILL BE LOST!
>> *
>> */
>> -
>> +#include <stdbool.h>
>> +#ifndef HAS_BOOL
>> +# define HAS_BOOL 1
>> +#endif
>> #line 1 "Context.xs"
>> /*
>> * Context.xs. XS interfaces for perf script.
>> --
>> 1.8.4
>>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [tip:perf/core] perf scripting perl: Force to use stdbool
2015-01-19 12:43 ` [PATCH v2] " Wang Nan
2015-01-19 14:26 ` Namhyung Kim
@ 2015-01-28 15:00 ` tip-bot for Wang Nan
1 sibling, 0 replies; 10+ messages in thread
From: tip-bot for Wang Nan @ 2015-01-28 15:00 UTC (permalink / raw)
To: linux-tip-commits
Cc: wangnan0, tglx, acme, namhyung, lizefan, jolsa, hpa, linux-kernel, mingo
Commit-ID: 75e0b5f010837f29b5773653a248852a7317562b
Gitweb: http://git.kernel.org/tip/75e0b5f010837f29b5773653a248852a7317562b
Author: Wang Nan <wangnan0@huawei.com>
AuthorDate: Mon, 19 Jan 2015 20:43:17 +0800
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 21 Jan 2015 10:05:00 -0300
perf scripting perl: Force to use stdbool
When building perf for arm64 I hit a warning (and be treated as an
error) like below:
aarch64-oe-linux-gcc -o .../scripts/perl/Perf-Trace-Util/Context.o -c -Wbad-function-cast \
... scripts/perl/Perf-Trace-Util/Context.c
In file included from .../usr/lib64/perl/5.14.3/CORE/perl.h:2464:0,
from Context.xs:23:
/.../usr/lib64/perl/5.14.3/CORE/handy.h:108:0: error: "bool" redefined [-Werror]
# define bool char
^
In file included from /.../usr/src/kernel/tools/include/linux/types.h:4:0,
from /.../usr/src/kernel/arch/arm64/include/uapi/asm/sigcontext.h:19,
from /.../usr/include/bits/sigcontext.h:27,
from /.../usr/include/signal.h:340,
from /.../usr/include/sys/param.h:28,
from /.../usr/lib64/perl/5.14.3/CORE/perl.h:678,
from Context.xs:23:
/.../usr/lib/aarch64-oe-linux/gcc/aarch64-oe-linux/4.9.2/include/stdbool.h:33:0: note: this is the location of the previous definition
#define bool _Bool
Looks like the failure is caused by arm64 uapi/asm/sigcontext.h, which
includes linux/types.h while other archs not.
Current perl consider this problem:
http://perl5.git.perl.org/perl.git/commit/bd31be4baa3ee68abdb92c0db3200efe0fad903b
However there are users which use old version of perl.
This patch includes stdbool.h before Context.xs and define HAS_BOOL to
prevent perl'e headers define its own 'bool'. Code is learn from perl's
git tree.
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Acked-by: Jiri Olsa <jolsa@redhat.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: Li Zefan <lizefan@huawei.com>
Link: http://lkml.kernel.org/r/1421671397-4659-1-git-send-email-wangnan0@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/scripts/perl/Perf-Trace-Util/Context.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
index 790ceba..28431d1 100644
--- a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
+++ b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
@@ -5,7 +5,10 @@
* ANY CHANGES MADE HERE WILL BE LOST!
*
*/
-
+#include <stdbool.h>
+#ifndef HAS_BOOL
+# define HAS_BOOL 1
+#endif
#line 1 "Context.xs"
/*
* Context.xs. XS interfaces for perf script.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2015-01-28 21:24 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-15 5:55 [PATCH] perf: perl: force to use stdbool Wang Nan
2015-01-19 10:42 ` Wang Nan
2015-01-19 11:23 ` Jiri Olsa
2015-01-19 11:51 ` Wang Nan
2015-01-19 12:38 ` Jiri Olsa
2015-01-19 12:43 ` [PATCH v2] " Wang Nan
2015-01-19 14:26 ` Namhyung Kim
2015-01-20 1:59 ` [PATCH v3] " Wang Nan
2015-01-20 2:07 ` [PATCH v2] " Wang Nan
2015-01-28 15:00 ` [tip:perf/core] perf scripting perl: Force " tip-bot for Wang Nan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).