Re: [PATCH 3/4] tools lib feature: Do not redefine compiler configuration
From: Jiri Olsa
Date: Mon Feb 06 2017 - 10:42:22 EST
On Mon, Feb 06, 2017 at 10:38:59AM -0300, Arnaldo Carvalho de Melo wrote:
> Em Wed, Feb 01, 2017 at 10:38:03PM -0800, David Carrillo-Cisneros escreveu:
> > Feature detection redefines CC, CCX and PKG_CONFIG, making the
> > output of feature detection inconsistent with the actual features
> > available during compilation when the above variables are used.
> >
> > Fix it by using conditional assignment.
>
> This one is tricky, the real meaning of that line got lost somewhere,
> its original intent, in commit 8b6eb56a9570 ("tools/perf/build: Add
> 'autodep' functionality, generate feature test dependencies
> automatically") was to just add that "-MD" to whatever definition CC
> had, be it the default one or a value set by the user in the make
> command line.
>
> At some point someone added that CROSS_COMPILE there, which it should
> have gotten from the default CC definition
>
> It was here: a8a5cd8b472c ("perf: tools: Fix cross building")
>
> perf: tools: Fix cross building
>
> Currently the feature-checks Makefile does not inherit $(CC), and calls
> cc rather than $(CROSS_COMPILE)gcc. Thus the feature checks invoke the
> native toolchain rather than the cross toolchain, and can identify
> features as available when they are not. This can break the build
>
> ----------------------------------
>
> Mark, do you recall why can't we make tools/perf/Makefile.perf pass the
> definitions of CC, AR and PKG_CONFIG to tools/perf/config/Makefile (now
> tools/build/feature/Makefile) so that the original intent (adding -MD to
> whatever was in CC) can be kept?
>
> Jiri?
I guess we could remove -MD from the gcc like and add it to the CFLAGS
if we want to keep the CC/CXX lines alone..
jirka