]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 3 Sep 2018 16:26:46 +0000 (18:26 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 3 Sep 2018 16:26:46 +0000 (18:26 +0200)
added patches:
gcc-plugins-add-include-required-by-gcc-release-8.patch
gcc-plugins-use-dynamic-initializers.patch

queue-4.14/gcc-plugins-add-include-required-by-gcc-release-8.patch [new file with mode: 0644]
queue-4.14/gcc-plugins-use-dynamic-initializers.patch [new file with mode: 0644]
queue-4.14/series

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 (file)
index 0000000..6da18fd
--- /dev/null
@@ -0,0 +1,33 @@
+From 80d172431696482d9acd8d2c4ea78fed8956e2a1 Mon Sep 17 00:00:00 2001
+From: "valdis.kletnieks@vt.edu" <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 <valdis.kletnieks@vt.edu>
+
+commit 80d172431696482d9acd8d2c4ea78fed8956e2a1 upstream.
+
+GCC requires another #include to get the gcc-plugins to build cleanly.
+
+Signed-off-by: Valdis Kletnieks <valdis.kletnieks@vt.edu>
+Signed-off-by: Kees Cook <keescook@chromium.org>
+Cc: Lance Albertson <lance@osuosl.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..650caf9
--- /dev/null
@@ -0,0 +1,176 @@
+From b86729109c5fd0a480300f40608aac68764b5adf Mon Sep 17 00:00:00 2001
+From: Kees Cook <keescook@chromium.org>
+Date: Mon, 5 Feb 2018 17:27:46 -0800
+Subject: gcc-plugins: Use dynamic initializers
+
+From: Kees Cook <keescook@chromium.org>
+
+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 <valdis.kletnieks@vt.edu>
+Signed-off-by: Kees Cook <keescook@chromium.org>
+Cc: Lance Albertson <lance@osuosl.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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);
+ }
index b121ef7c7ae9619dafd16cd2b27799685068b486..89745e470f138c7d6bf5aa58eaedc29ee838a9b2 100644 (file)
@@ -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