Hi, Please pull these gcc-plugins changes for v4.13-rc1. The big part is the randstruct plugin infrastructure. This is the first of two expected pull requests for randstruct since there are dependencies in other trees that would be easier to merge once those have landed. Notably, the IPC allocation refactoring in -mm, and many trivial merge conflicts across several trees when applying the __randomize_layout annotation. As a result, it seemed like I should send this now since it is relatively self-contained, and once the rest of the trees have landed, send the annotation patches. I'm expecting the final phase of randstruct (automatic struct selection) will land for v4.14, but if its other tree dependencies actually make it for v4.13, I can send that merge request too.
Thanks! -Kees The following changes since commit 6f7da290413ba713f0cdd9ff1a2a9bb129ef4f6c: Linux 4.12 (2017-07-02 16:07:02 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git tags/gcc-plugins-v4.13-rc1 for you to fetch changes up to d1185a8c5dd21182012e6dd531b00fd72f4d30cb: Merge branch 'merge/randstruct' into for-next/gcc-plugins (2017-07-04 21:41:31 -0700) ---------------------------------------------------------------- GCC plugin updates: - typo fix in Kconfig (Jean Delvare) - randstruct infrastructure ---------------------------------------------------------------- Arnd Bergmann (1): ARM: Prepare for randomized task_struct Jean Delvare (1): Fix English in description of GCC_PLUGIN_STRUCTLEAK Kees Cook (9): gcc-plugins: Detail c-common.h location for GCC 4.6 compiler: Add __designated_init annotation gcc-plugins: Add the randstruct plugin randstruct: Whitelist struct security_hook_heads cast randstruct: Whitelist UNIXCB cast randstruct: Whitelist big_key path struct overloading randstruct: Whitelist NIU struct page overloading Merge branch 'for-next/gcc-plugin-infrastructure' into merge/randstruct Merge branch 'merge/randstruct' into for-next/gcc-plugins Documentation/dontdiff | 2 + arch/Kconfig | 41 +- arch/arm/include/asm/assembler.h | 2 + arch/arm/kernel/entry-armv.S | 5 +- arch/arm/mm/proc-macros.S | 10 +- include/linux/compiler-gcc.h | 13 + include/linux/compiler.h | 12 + include/linux/vermagic.h | 9 +- scripts/Makefile.gcc-plugins | 4 + scripts/gcc-plugins/.gitignore | 1 + scripts/gcc-plugins/Makefile | 8 + scripts/gcc-plugins/gcc-common.h | 12 + scripts/gcc-plugins/gen-random-seed.sh | 8 + scripts/gcc-plugins/randomize_layout_plugin.c | 1028 +++++++++++++++++++++++++ 14 files changed, 1146 insertions(+), 9 deletions(-) create mode 100644 scripts/gcc-plugins/.gitignore create mode 100644 scripts/gcc-plugins/gen-random-seed.sh create mode 100644 scripts/gcc-plugins/randomize_layout_plugin.c -- Kees Cook Pixel Security