Re: [PATCH v9 3/4] Add Cyclomatic complexity GCC plugin

From: Kees Cook
Date: Wed Jun 15 2016 - 18:41:37 EST


On Wed, Jun 15, 2016 at 1:53 PM, Emese Revfy <re.emese@xxxxxxxxx> wrote:
> On Tue, 14 Jun 2016 12:29:59 -0700
> Laura Abbott <labbott@xxxxxxxxxx> wrote:
>
>> On 05/23/2016 03:10 PM, Emese Revfy wrote:
>> 1) make mrproper
>> 2) make defconfig
>> 3) enable GCC_PLUGINS, GCC_PLUGIN_CYC_COMPLEXITY
>> 4) enable FUNCTION_TRACER (it will select other options as well)
>> 5) make && make modules
>>
>> ERROR: "__fentry__" [net/ipv4/netfilter/ipt_MASQUERADE.ko] undefined!
>> ERROR: "__fentry__" [fs/efivarfs/efivarfs.ko] undefined!
>> ERROR: "__fentry__" [drivers/thermal/x86_pkg_temp_thermal.ko] undefined!
>> scripts/Makefile.modpost:91: recipe for target '__modpost' failed
>> make[1]: *** [__modpost] Error 1
>
> The patch below fixes this bug, but I think it is ugly.
> https://github.com/ephox-gcc-plugins/gcc-plugins_linux-next/commit/73e2d117daa7f3c6aee8935ecbb318354ff9cd82
>
> If anyone has a better idea to fix this, please let me know.

I think the logic looks fine, but I think I would name it more
generically. For example, call it something plugin-agnostic like
KBUILD_CFLAGS_MINIMUM.

I actually wonder if I can use this same logic to fix the stack
protector detection code...

-Kees

--
Kees Cook
Chrome OS & Brillo Security