Re: arch/x86//kernel/ftrace.c:35:3: error: #error The following combination is not supported: ((compiler missing -mfentry) || (CONFIG_X86_32 and !CONFIG_DYNAMIC_FTRACE)) && CONFIG_FUNCTION_GRAPH_TRACER && CONFIG_CC_OPTIMIZE_FOR_SIZE

From: Andi Kleen
Date: Tue Apr 18 2017 - 16:25:50 EST


On Tue, Apr 18, 2017 at 03:19:42PM -0500, Josh Poimboeuf wrote:
> On Tue, Apr 18, 2017 at 11:52:41AM -0700, Andi Kleen wrote:
> > Josh Poimboeuf <jpoimboe@xxxxxxxxxx> writes:
> > >
> > > The error is working as designed. gcc < 4.6.0 doesn't have -mfentry, so
> > > it fails the above check on x86. Can you add a skip rule? It should
> > > skip building the following case:
> > >
> > > x86 && ((gcc < 4.6.0) || (CONFIG_X86_32 and !CONFIG_DYNAMIC_FTRACE))
> > > && CONFIG_FUNCTION_GRAPH_TRACER && CONFIG_CC_OPTIMIZE_FOR_SIZE
> >
> > This will also break everyone's randconfig builds. The better way
> > would be to check this in the Makefile and disable one of the options
>
> I don't know how to disable a config option from the Makefile like that.

You just don't do something in the Makefile, e.g. don't set the -Os

For an example see the LTO Makefile here

https://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-misc.git/tree/scripts/Makefile.lto?h=lto-411-1


-Andi