There is build error if build env upgrade from 2109 to 2203. ../../gdb/c-exp.y:3320:1: error: 'void c_print_token(FILE*, int, YYSTYPE)' defined but not used [-Werror=unused-function] The root cause is bison version changed from 3.7.4 to 3.8.2 Meanwhile, bison 3.8.x removed removed YYPRINT support, so there will be trigger this function is unused. Solution: Backport upstream patch to check bison version which means function only work bison < 3.8 After this change, both aarch64 and x86 build successfully. Change-Id: Ib80d828fcca8e1eb8e085f36fc5a9a197259e35f Signed-off-by: Chenxi Mao <chenxi.mao@suse.com>
45 lines
1.4 KiB
Diff
45 lines
1.4 KiB
Diff
From cb9f257adb210ad1f1e9abea1b8e8675a96077df Mon Sep 17 00:00:00 2001
|
|
From: Christian Biesinger <cbiesinger@google.com>
|
|
Date: Fri, 8 Oct 2021 16:09:46 -0400
|
|
Subject: [PATCH 1/1] Make c-exp.y work with Bison 3.8+
|
|
|
|
When using Bison 3.8, we get this error:
|
|
|
|
../../gdb/c-exp.y:3455:1: error: 'void c_print_token(FILE*, int, YYSTYPE)' defined but not used [-Werror=unused-function]
|
|
|
|
That's because bison 3.8 removed YYPRINT support:
|
|
https://savannah.gnu.org/forum/forum.php?forum_id=10047
|
|
|
|
Accordingly, this patch only defines that function for Bison < 3.8.
|
|
|
|
Change-Id: I3cbf2f317630bb72810b00f2d9b2c4b99fa812ad
|
|
---
|
|
gdb/c-exp.y | 4 ++--
|
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/gdb/c-exp.y b/gdb/c-exp.y
|
|
index 3403a85..d17f104 100644
|
|
--- a/gdb/c-exp.y
|
|
+++ b/gdb/c-exp.y
|
|
@@ -166,7 +166,7 @@ static void check_parameter_typelist (std::vector<struct type *> *);
|
|
static void write_destructor_name (struct parser_state *par_state,
|
|
struct stoken);
|
|
|
|
-#ifdef YYBISON
|
|
+#if defined(YYBISON) && YYBISON < 30800
|
|
static void c_print_token (FILE *file, int type, YYSTYPE value);
|
|
#define YYPRINT(FILE, TYPE, VALUE) c_print_token (FILE, TYPE, VALUE)
|
|
#endif
|
|
@@ -3311,7 +3311,7 @@ c_parse (struct parser_state *par_state)
|
|
return yyparse ();
|
|
}
|
|
|
|
-#ifdef YYBISON
|
|
+#if defined(YYBISON) && YYBISON < 30800
|
|
|
|
/* This is called via the YYPRINT macro when parser debugging is
|
|
enabled. It prints a token's value. */
|
|
--
|
|
2.32.0
|
|
|