summaryrefslogtreecommitdiffstats
path: root/scripts/Makefile.randstruct
diff options
context:
space:
mode:
authorKees Cook <keescook@chromium.org>2022-05-03 22:55:01 +0200
committerKees Cook <keescook@chromium.org>2022-05-08 10:33:06 +0200
commit613f4b3ed7902d1dbbc6ade6401e452a63dfbc21 (patch)
treef8a8d15ab7e7ae882472e52960c7cc6f2ad3d235 /scripts/Makefile.randstruct
parentrandstruct: Reorganize Kconfigs and attribute macros (diff)
downloadlinux-613f4b3ed7902d1dbbc6ade6401e452a63dfbc21.tar.xz
linux-613f4b3ed7902d1dbbc6ade6401e452a63dfbc21.zip
randstruct: Split randstruct Makefile and CFLAGS
To enable the new Clang randstruct implementation[1], move randstruct into its own Makefile and split the CFLAGS from GCC_PLUGINS_CFLAGS into RANDSTRUCT_CFLAGS. [1] https://reviews.llvm.org/D121556 Cc: linux-hardening@vger.kernel.org Signed-off-by: Kees Cook <keescook@chromium.org> Link: https://lore.kernel.org/r/20220503205503.3054173-5-keescook@chromium.org
Diffstat (limited to 'scripts/Makefile.randstruct')
-rw-r--r--scripts/Makefile.randstruct14
1 files changed, 14 insertions, 0 deletions
diff --git a/scripts/Makefile.randstruct b/scripts/Makefile.randstruct
new file mode 100644
index 000000000000..4d741e6db554
--- /dev/null
+++ b/scripts/Makefile.randstruct
@@ -0,0 +1,14 @@
+# SPDX-License-Identifier: GPL-2.0
+
+randstruct-cflags-y += -DRANDSTRUCT
+
+ifdef CONFIG_GCC_PLUGIN_RANDSTRUCT
+randstruct-cflags-y \
+ += -fplugin=$(objtree)/scripts/gcc-plugins/randomize_layout_plugin.so
+randstruct-cflags-$(CONFIG_RANDSTRUCT_PERFORMANCE) \
+ += -fplugin-arg-randomize_layout_plugin-performance-mode
+endif
+
+export RANDSTRUCT_CFLAGS := $(randstruct-cflags-y)
+
+KBUILD_CFLAGS += $(RANDSTRUCT_CFLAGS)