| From 7210e060155b9cf557fb13128353c3e494fa5ed3 Mon Sep 17 00:00:00 2001 |
| From: Kees Cook <keescook@chromium.org> |
| Date: Mon, 20 May 2019 11:50:42 -0700 |
| Subject: gcc-plugins: Fix build failures under Darwin host |
| |
| From: Kees Cook <keescook@chromium.org> |
| |
| commit 7210e060155b9cf557fb13128353c3e494fa5ed3 upstream. |
| |
| The gcc-common.h file did not take into account certain macros that |
| might have already been defined in the build environment. This updates |
| the header to avoid redefining the macros, as seen on a Darwin host |
| using gcc 4.9.2: |
| |
| HOSTCXX -fPIC scripts/gcc-plugins/arm_ssp_per_task_plugin.o - due to: scripts/gcc-plugins/gcc-common.h |
| In file included from scripts/gcc-plugins/arm_ssp_per_task_plugin.c:3:0: |
| scripts/gcc-plugins/gcc-common.h:153:0: warning: "__unused" redefined |
| ^ |
| In file included from /usr/include/stdio.h:64:0, |
| from /Users/hns/Documents/Projects/QuantumSTEP/System/Library/Frameworks/System.framework/Versions-jessie/x86_64-apple-darwin15.0.0/gcc/arm-linux-gnueabi/bin/../lib/gcc/arm-linux-gnueabi/4.9.2/plugin/include/system.h:40, |
| from /Users/hns/Documents/Projects/QuantumSTEP/System/Library/Frameworks/System.framework/Versions-jessie/x86_64-apple-darwin15.0.0/gcc/arm-linux-gnueabi/bin/../lib/gcc/arm-linux-gnueabi/4.9.2/plugin/include/gcc-plugin.h:28, |
| from /Users/hns/Documents/Projects/QuantumSTEP/System/Library/Frameworks/System.framework/Versions-jessie/x86_64-apple-darwin15.0.0/gcc/arm-linux-gnueabi/bin/../lib/gcc/arm-linux-gnueabi/4.9.2/plugin/include/plugin.h:23, |
| from scripts/gcc-plugins/gcc-common.h:9, |
| from scripts/gcc-plugins/arm_ssp_per_task_plugin.c:3: |
| /usr/include/sys/cdefs.h:161:0: note: this is the location of the previous definition |
| ^ |
| |
| Reported-and-tested-by: "H. Nikolaus Schaller" <hns@goldelico.com> |
| Fixes: 189af4657186 ("ARM: smp: add support for per-task stack canaries") |
| Cc: stable@vger.kernel.org |
| Signed-off-by: Kees Cook <keescook@chromium.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 |
| @@ -150,8 +150,12 @@ void print_gimple_expr(FILE *, gimple, i |
| void dump_gimple_stmt(pretty_printer *, gimple, int, int); |
| #endif |
| |
| +#ifndef __unused |
| #define __unused __attribute__((__unused__)) |
| +#endif |
| +#ifndef __visible |
| #define __visible __attribute__((visibility("default"))) |
| +#endif |
| |
| #define DECL_NAME_POINTER(node) IDENTIFIER_POINTER(DECL_NAME(node)) |
| #define DECL_NAME_LENGTH(node) IDENTIFIER_LENGTH(DECL_NAME(node)) |