On 04/30/2018 02:49 PM, Greg Kroah-Hartman wrote: > On Mon, Apr 30, 2018 at 10:20:08AM -0700, Greg Kroah-Hartman wrote: >> On Mon, Apr 30, 2018 at 02:11:55PM -0300, Murilo Opsfelder Araujo wrote: >>> On 04/11/2018 05:21 PM, Murilo Opsfelder Araújo wrote: >>>> On 04/11/2018 04:33 PM, Greg Kroah-Hartman wrote: >>>>> On Wed, Apr 11, 2018 at 03:41:35PM -0300, Murilo Opsfelder Araujo wrote: >>>>>> Using linux-3.18.y branch, perf build fails with the following: >>>>>> >>>>>> $ make -s -j16 -C tools/perf V=1 WERROR=0 NO_LIBUNWIND=1 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_LIBNUMA=1 NO_STRLCPY=1 NO_BIONIC=1 prefix=/usr DESTDIR=/tmp/builddir/build all >>>>>> [...] >>>>>> util/session.c: In function ‘__perf_session__process_pipe_events’: >>>>>> util/session.c:1093:36: error: ‘oe’ undeclared (first use in this function) >>>>>> ordered_events__set_copy_on_queue(oe, true); >>>>>> ^ >>>>>> util/session.c:1093:36: note: each undeclared identifier is reported only once for each function it appears in >>>>>> >>>>>> This patch fixes it for linux-3.18.y branch. >>>>> >>>>> Why is this failing now? Has it always been broken? Is there an >>>>> upstream patch that fixed this instead? >>>>> >>>> >>>> Hi, Greg. >>>> >>>> We've caught this build issue this week. I'm not sure since when it's >>>> failing. >>>> >>>> The upstream patch that fixes this is: >>>> >>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fa713a4eb9cebe5dec71b1bd11429603e17d841d >>>> >>>> commit fa713a4eb9cebe5dec71b1bd11429603e17d841d >>>> Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> >>>> Date: Tue Mar 3 11:48:12 2015 -0300 >>>> >>>> perf ordered_events: Untangle from perf_session >>>> >>>> But it doesn't apply straightforwardly. At >>>> fa713a4eb9cebe5dec71b1bd11429603e17d841d, perf API and perf_evlist >>>> struct are slightly different from linux-3.18.y. >>>> >>>> A list of upstream patches for a clean backport (I think) would be: >>>> >>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=54245fdc357613633954bfd38cffb71cb9def067 >>>> >>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=75be989a7a18e9666efd92b846ee48bed79e8086 >>>> >>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=313e53b08e99b1dacf9ea2b0fbe97890db1ea95f >>>> >>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9fa8727aa4d98d35ca50ef9cd8a50c6468af921d >>>> >>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fa713a4eb9cebe5dec71b1bd11429603e17d841d >>>> >>>> Do you prefer all above patches backported to linux-3.18.y or just the >>>> one-line fix I sent? >>>> >>>>>> Fixes: 95b33b99cdd6 ("perf inject: Copy events when reordering events in pipe mode") >>>>> >>>>> Was this just a bad backport? >>>> >>>> Some patches were left behind, I guess. >>>> >>>>> >>>>> thanks, >>>>> >>>>> greg k-h >>> >>> Hi, Greg. >>> >>> I've realized that perf build on v3.18.107 is still broken, actually, it >>> got a bit worse than v3.18.104. >>> >>> After applying my patch to fix the undeclared 'oe', perf build fails >>> with the following errors: >>> >>> $ make -s -j16 -C tools/perf V=1 WERROR=0 NO_LIBUNWIND=1 >>> HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_LIBNUMA=1 NO_STRLCPY=1 NO_BIONIC=1 >>> prefix=/usr DESTDIR=/tmp/builddir/build all >>> [...] >>> tests/code-reading.c: In function ‘read_object_code’: >>> tests/code-reading.c:145:19: error: ‘KMOD_DECOMP_LEN’ undeclared (first >>> use in this function) >>> char decomp_name[KMOD_DECOMP_LEN]; >>> ^ >>> tests/code-reading.c:145:19: note: each undeclared identifier is >>> reported only once for each function it appears in >>> tests/code-reading.c:208:2: warning: implicit declaration of function >>> ‘dso__needs_decompress’ [-Wimplicit-function-declaration] >>> if (dso__needs_decompress(al.map->dso)) { >>> ^ >>> tests/code-reading.c:208:2: warning: nested extern declaration of >>> ‘dso__needs_decompress’ [-Wnested-externs] >>> tests/code-reading.c:209:3: warning: implicit declaration of function >>> ‘dso__decompress_kmodule_path’ [-Wimplicit-function-declaration] >>> if (dso__decompress_kmodule_path(al.map->dso, objdump_name, >>> ^ >>> tests/code-reading.c:209:3: warning: nested extern declaration of >>> ‘dso__decompress_kmodule_path’ [-Wnested-externs] >>> tests/code-reading.c:145:7: warning: unused variable ‘decomp_name’ >>> [-Wunused-variable] >>> char decomp_name[KMOD_DECOMP_LEN]; >>> ^ >>> >>> Apparently, this was introduced by commit >>> 091b3b4ba55daf8b28f40794aefdaa0bdb5af7a1: >>> >>> commit 091b3b4ba55daf8b28f40794aefdaa0bdb5af7a1 >>> Author: Namhyung Kim <namhyung@xxxxxxxxxx> >>> Date: Thu Jun 8 16:31:07 2017 +0900 >>> >>> perf tests: Decompress kernel module before objdump >>> >>> >>> Namhyung, are you fixing this? >> >> Ugh, I can fix this, I just did so on 4.4.y... > > Nope, this is a mess. When did perf last build on 3.18.y? It really > looks like no one cares about it... perf build is broken since v3.18.101. v3.18.100 works just fine. Cheers Murilo