Fix toolchain gcc compilation with newer host gcc

An inline attribute mismatch in the gcc-4.9.2 source causes its
compilation to fail on modern gcc versions (verified with gcc 6.3.1,
but probably since gcc 5)
The patch is courtesy of the gcc-patches mailing list:
https://gcc.gnu.org/ml/gcc-patches/2015-08/msg00375.html

Fixes #2341
This commit is contained in:
Philipp Kerling 2017-03-16 18:50:37 +01:00 committed by Christian Helmuth
parent 770c7548d8
commit 15a607f307
3 changed files with 35 additions and 1 deletions

View File

@ -1 +1 @@
fe976d168f9937cac0ffaa7ec4999d385d076fe2
6f36711bdcf68dc66357563c8429cd29d8e92003

View File

@ -0,0 +1,33 @@
Required for building with newer gcc
See https://gcc.gnu.org/ml/gcc-patches/2015-08/msg00375.html
--
diff --git a/gcc/cp/cfns.gperf b/gcc/cp/cfns.gperf
index 68acd3d..953262f 100644
--- a/gcc/cp/cfns.gperf
+++ b/gcc/cp/cfns.gperf
@@ -22,6 +22,9 @@ __inline
static unsigned int hash (const char *, unsigned int);
#ifdef __GNUC__
__inline
+#ifdef __GNUC_STDC_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
#endif
const char * libc_name_p (const char *, unsigned int);
%}
diff --git a/gcc/cp/cfns.h b/gcc/cp/cfns.h
index 1c6665d..6d00c0e 100644
--- a/gcc/cp/cfns.h
+++ b/gcc/cp/cfns.h
@@ -53,6 +53,9 @@ __inline
static unsigned int hash (const char *, unsigned int);
#ifdef __GNUC__
__inline
+#ifdef __GNUC_STDC_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
#endif
const char * libc_name_p (const char *, unsigned int);
/* maximum key range = 391, duplicates = 0 */

View File

@ -10,3 +10,4 @@ libsupcxx_demangle.patch
libgcc_s.patch
go_libbacktrace.patch
target_libbacktrace.patch
gnu_inline_mismatch.patch