Subject: Re: linux-next: build failure after merge of the perf tree

From: Charlie Jenkins <[email-masked]>
Date: Fri, 10 Jan 2025 11:22:06 -0800

On Fri, Jan 10, 2025 at 11:01:54AM -0300, Arnaldo Carvalho de Melo wrote:
> On Thu, Jan 09, 2025 at 03:31:42PM -0800, Charlie Jenkins wrote:
> > On Fri, Jan 10, 2025 at 10:05:05AM +1100, Stephen Rothwell wrote:
> > > Hi all,
> > > 
> > > After merging the perf tree, today's linux-next build (native perf)
> > > failed like this:
> > > 
> > > In file included from tools/perf/arch/powerpc/include/syscall_table.h:5,
> > >                  from util/syscalltbl.c:16:
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:16:16: error: initialized field overwritten [-Werror=override-init]
> > >    16 |         [13] = "time",
> > >       |                ^~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:16:16: note: (near initialization for 'syscalltbl[13]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:22:16: error: initialized field overwritten [-Werror=override-init]
> > >    22 |         [18] = "oldstat",
> > >       |                ^~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:22:16: note: (near initialization for 'syscalltbl[18]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:27:16: error: initialized field overwritten [-Werror=override-init]
> > >    27 |         [22] = "umount",
> > >       |                ^~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:27:16: note: (near initialization for 'syscalltbl[22]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:31:16: error: initialized field overwritten [-Werror=override-init]
> > >    31 |         [25] = "stime",
> > >       |                ^~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:31:16: note: (near initialization for 'syscalltbl[25]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:35:16: error: initialized field overwritten [-Werror=override-init]
> > >    35 |         [28] = "oldfstat",
> > >       |                ^~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:35:16: note: (near initialization for 'syscalltbl[28]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:67:16: error: initialized field overwritten [-Werror=override-init]
> > >    67 |         [59] = "oldolduname",
> > >       |                ^~~~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:67:16: note: (near initialization for 'syscalltbl[59]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:76:16: error: initialized field overwritten [-Werror=override-init]
> > >    76 |         [67] = "sigaction",
> > >       |                ^~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:76:16: note: (near initialization for 'syscalltbl[67]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:82:16: error: initialized field overwritten [-Werror=override-init]
> > >    82 |         [72] = "sigsuspend",
> > >       |                ^~~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:82:16: note: (near initialization for 'syscalltbl[72]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:84:16: error: initialized field overwritten [-Werror=override-init]
> > >    84 |         [73] = "sigpending",
> > >       |                ^~~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:84:16: note: (near initialization for 'syscalltbl[73]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:88:16: error: initialized field overwritten [-Werror=override-init]
> > >    88 |         [76] = "getrlimit",
> > >       |                ^~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:88:16: note: (near initialization for 'syscalltbl[76]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:95:16: error: initialized field overwritten [-Werror=override-init]
> > >    95 |         [82] = "select",
> > >       |                ^~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:95:16: note: (near initialization for 'syscalltbl[82]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:98:16: error: initialized field overwritten [-Werror=override-init]
> > >    98 |         [84] = "oldlstat",
> > >       |                ^~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:98:16: note: (near initialization for 'syscalltbl[84]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:104:16: error: initialized field overwritten [-Werror=override-init]
> > >   104 |         [89] = "readdir",
> > >       |                ^~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:104:16: note: (near initialization for 'syscalltbl[89]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:125:17: error: initialized field overwritten [-Werror=override-init]
> > >   125 |         [109] = "olduname",
> > >       |                 ^~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:125:17: note: (near initialization for 'syscalltbl[109]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:136:17: error: initialized field overwritten [-Werror=override-init]
> > >   136 |         [119] = "sigreturn",
> > >       |                 ^~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:136:17: note: (near initialization for 'syscalltbl[119]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:142:17: error: initialized field overwritten [-Werror=override-init]
> > >   142 |         [124] = "adjtimex",
> > >       |                 ^~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:142:17: note: (near initialization for 'syscalltbl[124]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:145:17: error: initialized field overwritten [-Werror=override-init]
> > >   145 |         [126] = "sigprocmask",
> > >       |                 ^~~~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:145:17: note: (near initialization for 'syscalltbl[126]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:156:17: error: initialized field overwritten [-Werror=override-init]
> > >   156 |         [136] = "personality",
> > >       |                 ^~~~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:156:17: note: (near initialization for 'syscalltbl[136]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:182:17: error: initialized field overwritten [-Werror=override-init]
> > >   182 |         [161] = "sched_rr_get_interval",
> > >       |                 ^~~~~~~~~~~~~~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:182:17: note: (near initialization for 'syscalltbl[161]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:184:17: error: initialized field overwritten [-Werror=override-init]
> > >   184 |         [162] = "nanosleep",
> > >       |                 ^~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:184:17: note: (near initialization for 'syscalltbl[162]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:202:17: error: initialized field overwritten [-Werror=override-init]
> > >   202 |         [179] = "pread64",
> > >       |                 ^~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:202:17: note: (near initialization for 'syscalltbl[179]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:204:17: error: initialized field overwritten [-Werror=override-init]
> > >   204 |         [180] = "pwrite64",
> > >       |                 ^~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:204:17: note: (near initialization for 'syscalltbl[180]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:211:17: error: initialized field overwritten [-Werror=override-init]
> > >   211 |         [186] = "sendfile",
> > >       |                 ^~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:211:17: note: (near initialization for 'syscalltbl[186]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:217:17: error: initialized field overwritten [-Werror=override-init]
> > >   217 |         [191] = "readahead",
> > >       |                 ^~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:217:17: note: (near initialization for 'syscalltbl[191]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:241:17: error: initialized field overwritten [-Werror=override-init]
> > >   241 |         [221] = "futex",
> > >       |                 ^~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:241:17: note: (near initialization for 'syscalltbl[221]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:248:17: error: initialized field overwritten [-Werror=override-init]
> > >   248 |         [229] = "io_getevents",
> > >       |                 ^~~~~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:248:17: note: (near initialization for 'syscalltbl[229]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:253:17: error: initialized field overwritten [-Werror=override-init]
> > >   253 |         [233] = "fadvise64",
> > >       |                 ^~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:253:17: note: (near initialization for 'syscalltbl[233]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:262:17: error: initialized field overwritten [-Werror=override-init]
> > >   262 |         [241] = "timer_settime",
> > >       |                 ^~~~~~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:262:17: note: (near initialization for 'syscalltbl[241]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:264:17: error: initialized field overwritten [-Werror=override-init]
> > >   264 |         [242] = "timer_gettime",
> > >       |                 ^~~~~~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:264:17: note: (near initialization for 'syscalltbl[242]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:268:17: error: initialized field overwritten [-Werror=override-init]
> > >   268 |         [245] = "clock_settime",
> > >       |                 ^~~~~~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:268:17: note: (near initialization for 'syscalltbl[245]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:270:17: error: initialized field overwritten [-Werror=override-init]
> > >   270 |         [246] = "clock_gettime",
> > >       |                 ^~~~~~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:270:17: note: (near initialization for 'syscalltbl[246]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:272:17: error: initialized field overwritten [-Werror=override-init]
> > >   272 |         [247] = "clock_getres",
> > >       |                 ^~~~~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:272:17: note: (near initialization for 'syscalltbl[247]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:274:17: error: initialized field overwritten [-Werror=override-init]
> > >   274 |         [248] = "clock_nanosleep",
> > >       |                 ^~~~~~~~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:274:17: note: (near initialization for 'syscalltbl[248]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:278:17: error: initialized field overwritten [-Werror=override-init]
> > >   278 |         [251] = "utimes",
> > >       |                 ^~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:278:17: note: (near initialization for 'syscalltbl[251]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:284:17: error: initialized field overwritten [-Werror=override-init]
> > >   284 |         [256] = "sys_debug_setcontext",
> > >       |                 ^~~~~~~~~~~~~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:284:17: note: (near initialization for 'syscalltbl[256]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:318:17: error: initialized field overwritten [-Werror=override-init]
> > >   318 |         [290] = "utimesat",
> > >       |                 ^~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:318:17: note: (near initialization for 'syscalltbl[290]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:320:17: error: initialized field overwritten [-Werror=override-init]
> > >   320 |         [291] = "newfstatat",
> > >       |                 ^~~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:320:17: note: (near initialization for 'syscalltbl[291]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:334:17: error: initialized field overwritten [-Werror=override-init]
> > >   334 |         [304] = "utimensat",
> > >       |                 ^~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:334:17: note: (near initialization for 'syscalltbl[304]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:339:17: error: initialized field overwritten [-Werror=override-init]
> > >   339 |         [308] = "sync_file_range2",
> > >       |                 ^~~~~~~~~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:339:17: note: (near initialization for 'syscalltbl[308]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:343:17: error: initialized field overwritten [-Werror=override-init]
> > >   343 |         [311] = "timerfd_settime",
> > >       |                 ^~~~~~~~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:343:17: note: (near initialization for 'syscalltbl[311]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:345:17: error: initialized field overwritten [-Werror=override-init]
> > >   345 |         [312] = "timerfd_gettime",
> > >       |                 ^~~~~~~~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:345:17: note: (near initialization for 'syscalltbl[312]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:377:17: error: initialized field overwritten [-Werror=override-init]
> > >   377 |         [343] = "recvmmsg",
> > >       |                 ^~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:377:17: note: (near initialization for 'syscalltbl[343]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:382:17: error: initialized field overwritten [-Werror=override-init]
> > >   382 |         [347] = "clock_adjtime",
> > >       |                 ^~~~~~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:382:17: note: (near initialization for 'syscalltbl[347]')
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:399:17: error: initialized field overwritten [-Werror=override-init]
> > >   399 |         [363] = "switch_endian",
> > >       |                 ^~~~~~~~~~~~~~~
> > > /home/sfr/next/perf/arch/powerpc/include/generated/asm/syscalls_64.h:399:17: note: (near initialization for 'syscalltbl[363]')
> > > cc1: all warnings being treated as errors
> > > 
> > > Presumably caused by commit
> > > 
> > >   7eca67cf3dab ("perf tools powerpc: Use generic syscall table scripts")
> > > 
> > > This is a native powerpc build of perf on a little endian host.
> > 
> > Thank you for reporting! I see that these headers for powerpc are
> > generating duplicate entries. This is due to me mistakenly setting the
> > abis for the syscall headers for powerpc to be spu and nospu, causing
> > conflicts. It looks like for the uapi, only nospu needs to be exposed. I
> > will send a patch to fix that.
> 
> Right, we need to make the syscall tables for all arches to be built in
> all arches, meaning we can translate from syscall numbers found in
> tracepoints collected in one arch and present in a perf.data file while
> doing analysis on another machine of a different architecture, just like
> we do with errno numbers.

Oh that's a good point. tools/perf/util/syscalltbl.c will need to be
reworked to allow non-native archs (just as a note, the native-only
nature was not something that was introduced in this series!).

- Charlie

> 
> This way we would notice these kinds of problems immediatelly while
> building anywhere.
> 
> I squashed your fix as requested and will force push the result.
> 
> - Arnaldo
>  
> > - Charlie
> > 
> > > 
> > > I have used the perf tree from next-20250109 for today.
> > > 
> > > -- 
> > > Cheers,
> > > Stephen Rothwell
> >