Randomize layout of sensitive kernel structures

configname: CONFIG_GCC_PLUGIN_RANDSTRUCT

Linux Kernel Configuration
└─>GCC plugins
└─>Randomize layout of sensitive kernel structures
In linux kernel since version 3.10 (release Date: 2013-06-30)  
If you say Y here, the layouts of structures explicitly
marked by __randomize_layout will be randomized at
compile-time. This can introduce the requirement of an
additional information exposure vulnerability for exploits
targeting these structure types.

Enabling this feature will introduce some performance impact,
slightly increase memory usage, and prevent the use of forensic
tools like Volatility against the system (unless the kernel
source tree isn't cleaned after kernel installation).

The seed used for compilation is located at
scripts/gcc-plgins/randomize_layout_seed.h. It remains after
a make clean to allow for external modules to be compiled with
the existing seed and will be removed by a make mrproper or
make distclean.

Note that the implementation requires gcc 4.7 or newer.

This plugin was ported from grsecurity/PaX. More information at:
* https://grsecurity.net/
* https://pax.grsecurity.net/

selects
CONFIG_MODVERSIONS