[GIT PULL] gcc-plugins updates for v4.13-rc1

From: Kees Cook
Date: Wed Jul 05 2017 - 01:05:22 EST


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.



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