From bc6c74b1406cd9f71b432ac61799c1d1bea60a39 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Mon, 14 Aug 2023 22:52:52 +0200 Subject: [PATCH] [gdb/build] Fix YYSTYPE and yyalloc odr violation MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit When building gdb with -O2 -flto I run into: ... ada-exp.c.tmp:576:7: error: type ‘union YYSTYPE’ violates the C++ One \ Definition Rule [-Werror=odr] ... Fix this by renaming to ada_exp_YYSTYPE and likewise for other .y files. Likewise for yyalloc. Tested on x86_64-linux. Also tested with byacc rather than bison on suggestion of Tom Tromey. Approved-By: Tom Tromey PR build/22395 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395 --- gdb/Makefile.in | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 8521e8d11c8..ccdd84beea6 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -2509,6 +2509,8 @@ po/$(PACKAGE).pot: force -e 's/\([ \t;,(]\)free$$/\1xfree/g' \ -e '/^#line.*y.tab.c/d' \ -e 's/YY_NULL/YY_NULLPTR/g' \ + -e "s/YYSTYPE/$(subst -,_,$*)_YYSTYPE/g" \ + -e "s/yyalloc/$(subst -,_,$*)_yyalloc/g" \ < $@.tmp > $@.new && \ rm -f $@.tmp && \ mv $@.new $@ -- 2.30.2