From 15fc83a23b3256ef594ae603cb05e3f2c7e8693a Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 3 Sep 2018 18:26:46 +0200 Subject: [PATCH] 4.14-stable patches added patches: gcc-plugins-add-include-required-by-gcc-release-8.patch gcc-plugins-use-dynamic-initializers.patch --- ...dd-include-required-by-gcc-release-8.patch | 33 ++++ ...gcc-plugins-use-dynamic-initializers.patch | 176 ++++++++++++++++++ queue-4.14/series | 2 + 3 files changed, 211 insertions(+) create mode 100644 queue-4.14/gcc-plugins-add-include-required-by-gcc-release-8.patch create mode 100644 queue-4.14/gcc-plugins-use-dynamic-initializers.patch diff --git a/queue-4.14/gcc-plugins-add-include-required-by-gcc-release-8.patch b/queue-4.14/gcc-plugins-add-include-required-by-gcc-release-8.patch new file mode 100644 index 00000000000..6da18fdae87 --- /dev/null +++ b/queue-4.14/gcc-plugins-add-include-required-by-gcc-release-8.patch @@ -0,0 +1,33 @@ +From 80d172431696482d9acd8d2c4ea78fed8956e2a1 Mon Sep 17 00:00:00 2001 +From: "valdis.kletnieks@vt.edu" +Date: Sun, 4 Feb 2018 12:01:43 -0500 +Subject: gcc-plugins: Add include required by GCC release 8 + +From: Valdis Kletnieks + +commit 80d172431696482d9acd8d2c4ea78fed8956e2a1 upstream. + +GCC requires another #include to get the gcc-plugins to build cleanly. + +Signed-off-by: Valdis Kletnieks +Signed-off-by: Kees Cook +Cc: Lance Albertson +Signed-off-by: Greg Kroah-Hartman + +--- + scripts/gcc-plugins/gcc-common.h | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/scripts/gcc-plugins/gcc-common.h ++++ b/scripts/gcc-plugins/gcc-common.h +@@ -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 --git a/queue-4.14/gcc-plugins-use-dynamic-initializers.patch b/queue-4.14/gcc-plugins-use-dynamic-initializers.patch new file mode 100644 index 00000000000..650caf9aab0 --- /dev/null +++ b/queue-4.14/gcc-plugins-use-dynamic-initializers.patch @@ -0,0 +1,176 @@ +From b86729109c5fd0a480300f40608aac68764b5adf Mon Sep 17 00:00:00 2001 +From: Kees Cook +Date: Mon, 5 Feb 2018 17:27:46 -0800 +Subject: gcc-plugins: Use dynamic initializers + +From: Kees Cook + +commit b86729109c5fd0a480300f40608aac68764b5adf upstream. + +GCC 8 changed the order of some fields and is very picky about ordering +in static initializers, so instead just move to dynamic initializers, +and drop the redundant already-zero field assignments. + +Suggested-by: Valdis Kletnieks +Signed-off-by: Kees Cook +Cc: Lance Albertson +Signed-off-by: Greg Kroah-Hartman + +--- + scripts/gcc-plugins/latent_entropy_plugin.c | 17 +---- + scripts/gcc-plugins/randomize_layout_plugin.c | 75 +++++++------------------- + scripts/gcc-plugins/structleak_plugin.c | 19 ++---- + 3 files changed, 33 insertions(+), 78 deletions(-) + +--- a/scripts/gcc-plugins/latent_entropy_plugin.c ++++ b/scripts/gcc-plugins/latent_entropy_plugin.c +@@ -255,21 +255,14 @@ static tree handle_latent_entropy_attrib + return NULL_TREE; + } + +-static struct attribute_spec latent_entropy_attr = { +- .name = "latent_entropy", +- .min_length = 0, +- .max_length = 0, +- .decl_required = true, +- .type_required = false, +- .function_type_required = false, +- .handler = handle_latent_entropy_attribute, +-#if BUILDING_GCC_VERSION >= 4007 +- .affects_type_identity = false +-#endif +-}; ++static struct attribute_spec latent_entropy_attr = { }; + + static void register_attributes(void *event_data __unused, void *data __unused) + { ++ latent_entropy_attr.name = "latent_entropy"; ++ latent_entropy_attr.decl_required = true; ++ latent_entropy_attr.handler = handle_latent_entropy_attribute; ++ + register_attribute(&latent_entropy_attr); + } + +--- a/scripts/gcc-plugins/randomize_layout_plugin.c ++++ b/scripts/gcc-plugins/randomize_layout_plugin.c +@@ -580,68 +580,35 @@ static void finish_type(void *event_data + return; + } + +-static struct attribute_spec randomize_layout_attr = { +- .name = "randomize_layout", +- // related to args +- .min_length = 0, +- .max_length = 0, +- .decl_required = false, +- // need type declaration +- .type_required = true, +- .function_type_required = false, +- .handler = handle_randomize_layout_attr, +-#if BUILDING_GCC_VERSION >= 4007 +- .affects_type_identity = true +-#endif +-}; ++static struct attribute_spec randomize_layout_attr = { }; ++static struct attribute_spec no_randomize_layout_attr = { }; ++static struct attribute_spec randomize_considered_attr = { }; ++static struct attribute_spec randomize_performed_attr = { }; + +-static struct attribute_spec no_randomize_layout_attr = { +- .name = "no_randomize_layout", +- // related to args +- .min_length = 0, +- .max_length = 0, +- .decl_required = false, +- // need type declaration +- .type_required = true, +- .function_type_required = false, +- .handler = handle_randomize_layout_attr, ++static void register_attributes(void *event_data, void *data) ++{ ++ randomize_layout_attr.name = "randomize_layout"; ++ randomize_layout_attr.type_required = true; ++ randomize_layout_attr.handler = handle_randomize_layout_attr; + #if BUILDING_GCC_VERSION >= 4007 +- .affects_type_identity = true ++ randomize_layout_attr.affects_type_identity = true; + #endif +-}; + +-static struct attribute_spec randomize_considered_attr = { +- .name = "randomize_considered", +- // related to args +- .min_length = 0, +- .max_length = 0, +- .decl_required = false, +- // need type declaration +- .type_required = true, +- .function_type_required = false, +- .handler = handle_randomize_considered_attr, ++ no_randomize_layout_attr.name = "no_randomize_layout"; ++ no_randomize_layout_attr.type_required = true; ++ no_randomize_layout_attr.handler = handle_randomize_layout_attr; + #if BUILDING_GCC_VERSION >= 4007 +- .affects_type_identity = false ++ no_randomize_layout_attr.affects_type_identity = true; + #endif +-}; + +-static struct attribute_spec randomize_performed_attr = { +- .name = "randomize_performed", +- // related to args +- .min_length = 0, +- .max_length = 0, +- .decl_required = false, +- // need type declaration +- .type_required = true, +- .function_type_required = false, +- .handler = handle_randomize_performed_attr, +-#if BUILDING_GCC_VERSION >= 4007 +- .affects_type_identity = false +-#endif +-}; ++ randomize_considered_attr.name = "randomize_considered"; ++ randomize_considered_attr.type_required = true; ++ randomize_considered_attr.handler = handle_randomize_considered_attr; ++ ++ randomize_performed_attr.name = "randomize_performed"; ++ randomize_performed_attr.type_required = true; ++ randomize_performed_attr.handler = handle_randomize_performed_attr; + +-static void register_attributes(void *event_data, void *data) +-{ + register_attribute(&randomize_layout_attr); + register_attribute(&no_randomize_layout_attr); + register_attribute(&randomize_considered_attr); +--- a/scripts/gcc-plugins/structleak_plugin.c ++++ b/scripts/gcc-plugins/structleak_plugin.c +@@ -57,21 +57,16 @@ static tree handle_user_attribute(tree * + return NULL_TREE; + } + +-static struct attribute_spec user_attr = { +- .name = "user", +- .min_length = 0, +- .max_length = 0, +- .decl_required = false, +- .type_required = false, +- .function_type_required = false, +- .handler = handle_user_attribute, +-#if BUILDING_GCC_VERSION >= 4007 +- .affects_type_identity = true +-#endif +-}; ++static struct attribute_spec user_attr = { }; + + static void register_attributes(void *event_data, void *data) + { ++ user_attr.name = "user"; ++ user_attr.handler = handle_user_attribute; ++#if BUILDING_GCC_VERSION >= 4007 ++ user_attr.affects_type_identity = true; ++#endif ++ + register_attribute(&user_attr); + } + diff --git a/queue-4.14/series b/queue-4.14/series index b121ef7c7ae..89745e470f1 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -161,3 +161,5 @@ power-generic-adc-battery-fix-out-of-bounds-write-when-copying-channel-propertie power-generic-adc-battery-check-for-duplicate-properties-copied-from-iio-channels.patch watchdog-mark-watchdog-touch-functions-as-notrace.patch cdrom-fix-info-leak-oob-read-in-cdrom_ioctl_drive_status.patch +gcc-plugins-add-include-required-by-gcc-release-8.patch +gcc-plugins-use-dynamic-initializers.patch -- 2.47.3