Re: [PATCH v2 1/3] Add the initify gcc plugin

From: Emese Revfy
Date: Wed Jul 13 2016 - 16:28:13 EST


On Tue, 12 Jul 2016 16:05:45 -0400
Kees Cook <keescook@xxxxxxxxxxxx> wrote:

> /*
> * The initify gcc-plugin attempts to identify const arguments that are only
> * used during init (see __init), so they can be moved to the .init.rodata
> * section. If an argument is passed to a non-init function, it must
> * normally be assumed that such an argument has been captured by that
> * function and may be used in the future when .init has been unmapped from
> * memory. In order to identify functions that are confirmed to not capture
> * their arguments, the __nocapture() attribute is used so that initify can
> * better identify candidate variables.
> */
> #ifdef INITIFY_PLUGIN
> # define __nocapture(...) __attribute__((nocapture(__VA_ARGS__)))
> #endif

Thanks, I'll take it in the next patch set with some additions (the attribute
also handles __exit functions and the plugin does other things e.g., it can
identify candidate init/exit functions and move them automatically to init.text/exit.text).

--
Emese