--- /dev/null
+diff -ur linux-4.14.orig/scripts/gcc-plugins/gcc-common.h linux-4.14/scripts/gcc-plugins/gcc-common.h
+--- linux-4.14.orig/scripts/gcc-plugins/gcc-common.h 2018-08-19 21:29:20.298229612 +0000
++++ linux-4.14/scripts/gcc-plugins/gcc-common.h 2018-08-19 21:33:02.789227107 +0000
+@@ -97,6 +97,10 @@
+ #include "predict.h"
+ #include "ipa-utils.h"
+
++#if BUILDING_GCC_VERSION >= 8000
++#include "stringpool.h"
++#endif
++
+ #if BUILDING_GCC_VERSION >= 4009
+ #include "attribs.h"
+ #include "varasm.h"
+diff -ur linux-4.14.orig/scripts/gcc-plugins/latent_entropy_plugin.c linux-4.14/scripts/gcc-plugins/latent_entropy_plugin.c
+--- linux-4.14.orig/scripts/gcc-plugins/latent_entropy_plugin.c 2018-08-19 21:29:20.301229612 +0000
++++ linux-4.14/scripts/gcc-plugins/latent_entropy_plugin.c 2018-08-19 21:50:23.229215392 +0000
+@@ -262,10 +262,17 @@
+ .decl_required = true,
+ .type_required = false,
+ .function_type_required = false,
++#if BUILDING_GCC_VERSION >= 8000
++ .affects_type_identity = false,
+ .handler = handle_latent_entropy_attribute,
++#else
+ #if BUILDING_GCC_VERSION >= 4007
+- .affects_type_identity = false
+-#endif
++ .handler = handle_latent_entropy_attribute,
++ .affects_type_identity = false,
++#else
++ .handler = handle_latent_entropy_attribute,
++#endif /* >= 4007 */
++#endif /* >= 8000 */
+ };
+
+ static void register_attributes(void *event_data __unused, void *data __unused)
+diff -ur linux-4.14.orig/scripts/gcc-plugins/randomize_layout_plugin.c linux-4.14/scripts/gcc-plugins/randomize_layout_plugin.c
+--- linux-4.14.orig/scripts/gcc-plugins/randomize_layout_plugin.c 2018-08-19 21:29:20.303229612 +0000
++++ linux-4.14/scripts/gcc-plugins/randomize_layout_plugin.c 2018-08-19 21:55:33.710211897 +0000
+@@ -589,10 +589,17 @@
+ // need type declaration
+ .type_required = true,
+ .function_type_required = false,
+- .handler = handle_randomize_layout_attr,
++#if BUILDING_GCC_VERSION >= 8000
++ .affects_type_identity = true,
++ .handler = handle_randomize_layout_attr,
++#else
+ #if BUILDING_GCC_VERSION >= 4007
+- .affects_type_identity = true
+-#endif
++ .handler = handle_randomize_layout_attr,
++ .affects_type_identity = true,
++#else
++ .handler = handle_randomize_layout_attr,
++#endif /* >= 4007 */
++#endif /* >= 8000 */
+ };
+
+ static struct attribute_spec no_randomize_layout_attr = {
+@@ -604,10 +611,17 @@
+ // need type declaration
+ .type_required = true,
+ .function_type_required = false,
+- .handler = handle_randomize_layout_attr,
++#if BUILDING_GCC_VERSION >= 8000
++ .affects_type_identity = true,
++ .handler = handle_randomize_layout_attr,
++#else
+ #if BUILDING_GCC_VERSION >= 4007
+- .affects_type_identity = true
+-#endif
++ .handler = handle_randomize_layout_attr,
++ .affects_type_identity = true,
++#else
++ .handler = handle_randomize_layout_attr,
++#endif /* >= 4007 */
++#endif /* >= 8000 */
+ };
+
+ static struct attribute_spec randomize_considered_attr = {
+@@ -619,10 +633,17 @@
+ // need type declaration
+ .type_required = true,
+ .function_type_required = false,
+- .handler = handle_randomize_considered_attr,
++#if BUILDING_GCC_VERSION >= 8000
++ .affects_type_identity = false,
++ .handler = handle_randomize_considered_attr,
++#else
+ #if BUILDING_GCC_VERSION >= 4007
+- .affects_type_identity = false
+-#endif
++ .handler = handle_randomize_considered_attr,
++ .affects_type_identity = false,
++#else
++ .handler = handle_randomize_considered_attr,
++#endif /* >= 4007 */
++#endif /* >= 8000 */
+ };
+
+ static struct attribute_spec randomize_performed_attr = {
+@@ -634,10 +655,17 @@
+ // need type declaration
+ .type_required = true,
+ .function_type_required = false,
+- .handler = handle_randomize_performed_attr,
++#if BUILDING_GCC_VERSION >= 8000
++ .affects_type_identity = false,
++ .handler = handle_randomize_performed_attr,
++#else
+ #if BUILDING_GCC_VERSION >= 4007
+- .affects_type_identity = false
+-#endif
++ .handler = handle_randomize_performed_attr,
++ .affects_type_identity = false,
++#else
++ .handler = handle_randomize_performed_attr,
++#endif /* >= 4007 */
++#endif /* >= 8000 */
+ };
+
+ static void register_attributes(void *event_data, void *data)
+diff -ur linux-4.14.orig/scripts/gcc-plugins/structleak_plugin.c linux-4.14/scripts/gcc-plugins/structleak_plugin.c
+--- linux-4.14.orig/scripts/gcc-plugins/structleak_plugin.c 2018-08-19 21:29:20.304229612 +0000
++++ linux-4.14/scripts/gcc-plugins/structleak_plugin.c 2018-08-19 21:51:31.790214620 +0000
+@@ -64,10 +64,17 @@
+ .decl_required = false,
+ .type_required = false,
+ .function_type_required = false,
+- .handler = handle_user_attribute,
++#if BUILDING_GCC_VERSION >= 8000
++ .affects_type_identity = true,
++ .handler = handle_user_attribute,
++#else
+ #if BUILDING_GCC_VERSION >= 4007
+- .affects_type_identity = true
+-#endif
++ .handler = handle_user_attribute,
++ .affects_type_identity = true,
++#else
++ .handler = handle_user_attribute,
++#endif /* >= 4007 */
++#endif /* >= 8000 */
+ };
+
+ static void register_attributes(void *event_data, void *data)