From: Tom de Vries Date: Mon, 14 Aug 2023 20:52:52 +0000 (+0200) Subject: [gdb/build] Fix YYSTYPE and yyalloc odr violation X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bc6c74b1406cd9f71b432ac61799c1d1bea60a39;p=binutils-gdb.git [gdb/build] Fix YYSTYPE and yyalloc odr violation 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 --- 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 $@