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
-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 $@