Re: [PATCH regression 4.0 -> 4.1] tools perf: Fix build breakage if prefix= is specified

From: Jiri Olsa
Date: Thu Jun 18 2015 - 18:17:18 EST


On Thu, Jun 18, 2015 at 10:39:35PM +0200, Lukas Wunner wrote:
> Hi David,
>
> On Thu, Jun 18, 2015 at 02:26:25PM -0600, David Ahern wrote:
> > It worked for me last week with OL6.
> > I created a standalone perf rpm with 4.1-rc6; it builds just fine with
> > _prefix (rpm variable) set to /usr:
> [...]
> > %global perf_make \
> > make -s -C tools/perf V=1 WERROR=0 NO_LIBUNWIND=1 HAVE_CPLUS_DEMANGLE=1
> > NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 prefix=%{_prefix}
> > %{perf_make} DESTDIR=$RPM_BUILD_ROOT all
>
> You're not invoking tools/perf/Makefile.perf but tools/perf/Makefile
> and I would say this in line 18 avoids that prefix= is passed down
> to Makefile.perf:
>
> # We don't want to pass along options like -j:
> unexport MAKEFLAGS
>
> Sources:
> https://www.gnu.org/software/make/manual/html_node/Options_002fRecursion.html
> https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/tree/tools/perf/Makefile#n18
>
> So the prefix parameter should have no effect at all in your case,
> no matter to what you set it.

it had effect.. prefix is passed to build framework throught .config-detected
file as prefix_SQ variable, which is then referenced in perf Build makefiles

the issue is that having 'unexport MAKEFLAGS' in perf's Makefile causes
'prefix' variable to change from 'command line' origin to environment

so the tools/build/Makefile.build can set prefix if called from perf's
'Makefile', but will not override it if called from perf's Makefile.perf,
because prefix will have 'command line' origin and we would need to use
'override'

jirka
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/