From 0c9546b152f6b01756475ce259c895d3fa446774 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Thu, 17 Aug 2023 17:09:39 +0200 Subject: [PATCH] [gdb/build] Fix yysymbol_kind_t odr violation When building gdb with -O2 -flto on openSUSE Tumbleweed (using bison 3.8.2) I run into: ... ada-exp.c.tmp:653: warning: type 'yysymbol_kind_t' violates the C++ One \ Definition Rule [-Wodr] c-exp.c.tmp:398: note: an enum with different value name is defined in \ another translation unit ada-exp.c.tmp:660: note: name 'YYSYMBOL_NULL_PTR' differs from name \ 'YYSYMBOL_COMPLEX_INT' defined in another translation unit c-exp.c.tmp:405: note: mismatching definition ... Fix this by renaming to ada_exp_yysymbol_kind_t and likewise for other .y files. Tested on x86_64-linux. PR build/22395 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395 --- gdb/Makefile.in | 1 + 1 file changed, 1 insertion(+) diff --git a/gdb/Makefile.in b/gdb/Makefile.in index ccdd84beea6..54c5312e19a 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -2511,6 +2511,7 @@ po/$(PACKAGE).pot: force -e 's/YY_NULL/YY_NULLPTR/g' \ -e "s/YYSTYPE/$(subst -,_,$*)_YYSTYPE/g" \ -e "s/yyalloc/$(subst -,_,$*)_yyalloc/g" \ + -e "s/yysymbol_kind_t/$(subst -,_,$*)_yysymbol_kind_t/g" \ < $@.tmp > $@.new && \ rm -f $@.tmp && \ mv $@.new $@ -- 2.30.2