Looks like 4.19.49 received some patches for GCC 9+, but unfortunately perf still doesn't want to compile: [07:15:32]In file included from /usr/include/string.h:635, [07:15:32] from util/debug.h:7, [07:15:32] from builtin-help.c:15: [07:15:32]In function 'strncpy', [07:15:32] inlined from 'add_man_viewer' at builtin-help.c:192:2, [07:15:32] inlined from 'perf_help_config' at builtin-help.c:284:3: [07:15:32]/usr/include/x86_64-linux-gnu/bits/string3.h:126:10: error: '__builtin_strncpy' output truncated before terminating nul copying as many bytes from a string as its length [-Werror=stringop-truncation] [07:15:32] 126 | return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest)); [07:15:32] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [07:15:32]builtin-help.c: In function 'perf_help_config': [07:15:32]builtin-help.c:187:15: note: length computed here [07:15:32] 187 | size_t len = strlen(name); [07:15:32] | ^~~~~~~~~~~~ [07:15:32]cc1: all warnings being treated as errors On Fri, May 17, 2019 at 11:27 AM Arnaldo Carvalho de Melo <arnaldo.melo@xxxxxxxxx> wrote: > > On May 17, 2019 2:23:10 PM GMT-03:00, Ivan Babrou <ivan@xxxxxxxxxxxxxx> wrote: > >On Fri, May 17, 2019 at 8:22 AM Arnaldo Carvalho de Melo > ><arnaldo.melo@xxxxxxxxx> wrote: > >> > >> Em Fri, May 17, 2019 at 11:01:45AM +0200, Miguel Ojeda escreveu: > >> > On Fri, May 17, 2019 at 10:51 AM Greg KH > ><gregkh@xxxxxxxxxxxxxxxxxxx> wrote: > >> > > > >> > > On Fri, May 17, 2019 at 10:35:29AM +0200, Miguel Ojeda wrote: > >> > > > On Fri, May 17, 2019 at 9:38 AM Peter Zijlstra > ><peterz@xxxxxxxxxxxxx> wrote: > >> > > > > > >> > > > > Right; if there is anything you can reproduce on linus.git > >I'll happily > >> > > > > have a look. If it doesn't reproduce all you have to do is > >find the > >> > > > > patches that make it work and ask Greg. > >> > > > > >> > > > Just to clarify: Linus' master is clean of these issues with > >GCC 9.1.1. > >> > > > >> > > Great! Care to find the patches that did that work and send me > >the git > >> > > commit ids so that I can queue them up? I don't have gcc9 here > >yet on > >> > > my systems, so I can not test for this. > >> > > >> > I am unsure about the perf and the objtools parts (Peter/Josh?), > >but > >> > >> I'm not noticing these while building upstream perf with gcc 9.1.1 on > ^^^^^^^^^^^^^^^ > > >at > >> least fedora:30. > >> > >> 33 fedora:30 : Ok gcc (GCC) 9.1.1 20190503 > >(Red Hat 9.1.1-1) > > > >I've tried to replicate this in fedora:30 docker container and it's > >there: > > > >[root@linuxkit-025000000001 perf]# gcc --version > >gcc (GCC) 9.1.1 20190503 (Red Hat 9.1.1-1) > > > >[root@linuxkit-025000000001 perf]# pwd > >/tmp/linux-4.19.44/tools/perf > ^^^^^^^^^^^^^^ > > That is not upstream perf, please look for patches from 4.19 to Linus' master Branch for fixes. > > I'll triple check here in a f30 container just in case meanwhile. > > Thanks, > > - Arnaldo > > > >[root@linuxkit-025000000001 perf]# make -j1 > >... > >trace/beauty/ioctl.c: In function ‘ioctl__scnprintf_kvm_cmd’: > >trace/beauty/ioctl.c:85:82: error: array subscript [-2147483648, -1] > >is outside array bounds of ‘const char *[0]’ [-Werror=array-bounds] > > 85 | if (nr < strarray__kvm_ioctl_cmds.nr_entries && > >strarray__kvm_ioctl_cmds.entries[nr] != NULL) > > | > >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ > >In file included from trace/beauty/ioctl.c:82: > >/tmp/linux-4.19.44/tools/perf/trace/beauty/generated/ioctl/kvm_ioctl_array.c:1:20: > >note: while referencing ‘kvm_ioctl_cmds’ > > 1 | static const char *kvm_ioctl_cmds[] = { > > | ^~~~~~~~~~~~~~ > >In file included from /usr/include/string.h:494, > > from util/debug.h:7, > > from builtin-help.c:15: > >In function ‘strncpy’, > > inlined from ‘add_man_viewer’ at builtin-help.c:192:2, > > inlined from ‘perf_help_config’ at builtin-help.c:284:3: > >/usr/include/bits/string_fortified.h:106:10: error: > >‘__builtin_strncpy’ output truncated before terminating nul copying as > >many bytes from a string as its length [-Werror=stringop-truncation] > >106 | return __builtin___strncpy_chk (__dest, __src, __len, __bos > >(__dest)); > >| > >^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > >builtin-help.c: In function ‘perf_help_config’: > >builtin-help.c:187:15: note: length computed here > > 187 | size_t len = strlen(name); > > | ^~~~~~~~~~~~ > >trace/beauty/ioctl.c: In function ‘ioctl__scnprintf_perf_cmd’: > >trace/beauty/ioctl.c:109:84: error: array subscript [-2147483648, -1] > >is outside array bounds of ‘const char *[0]’ [-Werror=array-bounds] > > 109 | if (nr < strarray__perf_ioctl_cmds.nr_entries && > >strarray__perf_ioctl_cmds.entries[nr] != NULL) > > | > >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ > >In file included from trace/beauty/ioctl.c:106: > >/tmp/linux-4.19.44/tools/perf/trace/beauty/generated/ioctl/perf_ioctl_array.c:1:20: > >note: while referencing ‘perf_ioctl_cmds’ > > 1 | static const char *perf_ioctl_cmds[] = { > > | ^~~~~~~~~~~~~~~ > >cc1: all warnings being treated as errors > > > >> > about the -Wmissing-attributes I cleaned, they were these: > >> > >> > a6e60d84989f ("include/linux/module.h: copy __init/__exit attrs to > >> > init/cleanup_module") > >> > c0d9782f5b6d ("Compiler Attributes: add support for __copy (gcc >= > >9)") > >> > ff98e20ef208 ("lib/crc32.c: mark crc32_le_base/__crc32c_le_base > >> > aliases as __pure") > >> > > >> > Cheers, > >> > Miguel > >> > >> -- > >> > >> - Arnaldo >