Re: [PATCH 00/12] libperf: Add events to perf/event.h

From: Jiri Olsa
Date: Mon Aug 26 2019 - 12:58:57 EST


On Mon, Aug 26, 2019 at 01:18:49PM -0300, Arnaldo Carvalho de Melo wrote:

SNIP

> [perfbuilder@490c2c7bdaab ~]$ grep 'printf("lost' /tmp/build/perf/builtin-sched.i
> printf("lost %" "l" "ll""u" " events on cpu %d\n", event->lost.lost, sample->cpu);
> [perfbuilder@490c2c7bdaab ~]$
>
> And if we do this on a fedora:30 x86_64:
>
> $ make -C tools/perf O=/tmp/build/perf /tmp/build/perf/builtin-sched.i
> [acme@quaco perf]$ grep -A4 'printf("lost' /tmp/build/perf/builtin-sched.i
> printf("lost %" "l"
> # 2646 "builtin-sched.c" 3 4
> "l" "u"
> # 2646 "builtin-sched.c"
> " events on cpu %d\n", event->lost.lost, sample->cpu);
> [acme@quaco perf]$
>
> I.e. on 32-bit arches we shouldn't add that extra "l", right?

hum, I guess we could #ifdef it 64/32 bits

>
> I bet the build for the mips/mipsel will fail too, lemme see... Yeah,
> both failed:
>
>
> [root@quaco ~]# grep -m1 -A6 -- -Werror=format= dm.log/debian\:experimental-x-mips
> builtin-sched.c:2646:9: error: unknown conversion type character 'l' in format [-Werror=format=]
> printf("lost %" PRI_lu64 " events on cpu %d\n", event->lost.lost, sample->cpu);
> ^~~~~~~~
> In file included from builtin-sched.c:31:
> /usr/mips-linux-gnu/include/inttypes.h:47:28: note: format string is defined here
> # define __PRI64_PREFIX "ll"
> ^
> [root@quaco ~]#
>
> [root@quaco ~]# grep -m1 -A6 -- -Werror=format= dm.log/debian\:experimental-x-mipsel
> builtin-sched.c:2646:9: error: unknown conversion type character 'l' in format [-Werror=format=]
> printf("lost %" PRI_lu64 " events on cpu %d\n", event->lost.lost, sample->cpu);
> ^~~~~~~~
> In file included from builtin-sched.c:31:
> /usr/mipsel-linux-gnu/include/inttypes.h:47:28: note: format string is defined here
> # define __PRI64_PREFIX "ll"
> ^
> [root@quaco ~]#
>
> And also on a uclibc ARC arch container:
>
> [root@quaco ~]# grep -m1 -A6 -- -Werror=format= dm.log/fedora\:24-x-ARC-uClibc
> builtin-sched.c:2646:9: error: unknown conversion type character 'l' in format [-Werror=format=]
> printf("lost %" PRI_lu64 " events on cpu %d\n", event->lost.lost, sample->cpu);
> ^~~~~~~~
> In file included from builtin-sched.c:31:0:
> /arc_gnu_2017.09-rc2_prebuilt_uclibc_le_arc700_linux_install/arc-snps-linux-uclibc/sysroot/usr/include/inttypes.h:47:28: note: format string is defined here
> # define __PRI64_PREFIX "ll"
> ^
> [root@quaco ~]#
>
> The _fix_ will come after lunch :)

thanks ;-)

jirka