diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2019-05-30 22:45:41 +0100 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2019-05-30 22:45:41 +0100 |
commit | 417f0afc6bbda0eb075bd8025f9b41d0cba2ca14 (patch) | |
tree | caa4393f767c14749ed1705ad534244daacadd95 /4.0.4 | |
parent | 4.6.4: backport gperf-gnu-inline patch (diff) | |
download | gcc-patches-417f0afc6bbda0eb075bd8025f9b41d0cba2ca14.tar.gz gcc-patches-417f0afc6bbda0eb075bd8025f9b41d0cba2ca14.tar.bz2 gcc-patches-417f0afc6bbda0eb075bd8025f9b41d0cba2ca14.zip |
4.*.*: fix build failure against gcc-9
It's a workaround against https://gcc.gnu.org/PR90677
where 'cgraph_node' is effectively forbidden for function names.
Bug: https://gcc.gnu.org/PR90677
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Diffstat (limited to '4.0.4')
-rw-r--r-- | 4.0.4/gentoo/88_all_cgraph_node-gcc-9.patch | 44 | ||||
-rw-r--r-- | 4.0.4/gentoo/README.history | 1 |
2 files changed, 45 insertions, 0 deletions
diff --git a/4.0.4/gentoo/88_all_cgraph_node-gcc-9.patch b/4.0.4/gentoo/88_all_cgraph_node-gcc-9.patch new file mode 100644 index 0000000..fe95a0d --- /dev/null +++ b/4.0.4/gentoo/88_all_cgraph_node-gcc-9.patch @@ -0,0 +1,44 @@ +The patch is a workaround to build this version of gcc with +gcc-9.1.0: https://gcc.gnu.org/PR90677 + +There gcc-9.1.0 pinned 'cgraph_node' to a wired-in type and +disallows anything else (function names in this case) to share +'cgraph_node' name. + +Without this patch build fails as: +gcc-4.6.4/gcc/pretty-print.h:322:6: error: 'cgraph_node' is not defined as a type + 322 | ATTRIBUTE_GCC_PPDIAG(2,3); + | ^~~~~~~~~~~~~ +--- a/gcc/c-tree.h ++++ b/gcc/c-tree.h +@@ -609,7 +609,7 @@ extern void c_write_global_declarations (void); + diagnostic framework extensions, you must include this file before + toplev.h, not after. */ + #define GCC_DIAG_STYLE __gcc_cdiag__ +-#if GCC_VERSION >= 3005 ++#if (GCC_VERSION >= 3005) && (GCC_VERSION != 9001) /* 9.1.0 is buggy: https://gcc.gnu.org/PR90677 */ + #define ATTRIBUTE_GCC_CDIAG(m, n) __attribute__ ((__format__ (GCC_DIAG_STYLE, m ,n))) ATTRIBUTE_NONNULL(m) + #else + #define ATTRIBUTE_GCC_CDIAG(m, n) ATTRIBUTE_NONNULL(m) +--- a/gcc/pretty-print.h ++++ b/gcc/pretty-print.h +@@ -253,7 +253,7 @@ extern void pp_base_append_text (pretty_printer *, const char *, const char *); + + /* This header may be included before toplev.h, hence the duplicate + definitions to allow for GCC-specific formats. */ +-#if GCC_VERSION >= 3005 ++#if (GCC_VERSION >= 3005) && (GCC_VERSION != 9001) /* 9.1.0 is buggy: https://gcc.gnu.org/PR90677 */ + #define ATTRIBUTE_GCC_PPDIAG(m, n) __attribute__ ((__format__ (__gcc_diag__, m ,n))) ATTRIBUTE_NONNULL(m) + #else + #define ATTRIBUTE_GCC_PPDIAG(m, n) ATTRIBUTE_NONNULL(m) +--- a/gcc/toplev.h ++++ b/gcc/toplev.h +@@ -52,7 +52,7 @@ extern void _fatal_insn (const char *, rtx, const char *, int, const char *) + specifiers. We must use custom format checks. Note that at present + the front-end %D specifier is used in non-front-end code with some + functions, and those formats can only be checked in front-end code. */ +-#if GCC_VERSION >= 3005 ++#if (GCC_VERSION >= 3005) && (GCC_VERSION != 9001) /* 9.1.0 is buggy: https://gcc.gnu.org/PR90677 */ + #define ATTRIBUTE_GCC_DIAG(m, n) __attribute__ ((__format__ (GCC_DIAG_STYLE, m, n))) ATTRIBUTE_NONNULL(m) + #ifdef NO_FRONT_END_DIAG + #define ATTRIBUTE_GCC_FE_DIAG(m, n) ATTRIBUTE_NONNULL(m) diff --git a/4.0.4/gentoo/README.history b/4.0.4/gentoo/README.history index 4d92217..0e98546 100644 --- a/4.0.4/gentoo/README.history +++ b/4.0.4/gentoo/README.history @@ -1,5 +1,6 @@ 1.5 TODO + 87_all_libjava-ucontext.patch + + 88_all_cgraph_node-gcc-9.patch 1.4 23 Sep 2018 + 86_all_ucontext-to-ucontext_t.patch |