Re: [PATCH] include, opcodes: prefix REG_* macros in cris.h, nds32.h and microblaze-opcm.h
Hans-Peter Nilsson <[email protected]>
| Newsgroups | gmane.comp.gdb.patches,gmane.comp.gnu.binutils |
|---|---|
| Message-ID | <[email protected]> |
On Tue, 18 Aug 2026, Simon Marchi wrote: > Bug 34537 reports: > > When building gdb with the default configure options of gdb buildbots (which > include --enable-targets=all), gdb fails to build: > > CXX microblaze-tdep.o > In file included from ../../binutils-gdb/gdb/microblaze-tdep.c:37: > 158 | #define REG_PC REG_RIP > | ^~~~~~ > ../../binutils-gdb/gdb/../opcodes/microblaze-opcm.h:120:9: error: ?REG_SP? redefined [-Werror] > 120 | #define REG_SP 1 /* stack pointer. */ > | ^~~~~~ > Attempt to fix it by prefixing the macros with the arch name. An alternative, less intrusive method, would be to #undef those macros in a suitable gdb toplevel file, maybe defs.h, after including cstdlib but before including binutils/gdb files. The error is clearly on the Solaris side, for namespace intrusion and pollution. Having said and suggested that, if that won't work, the CRIS bits are fine. > > I only modified the macros starting with "REG_", but there are other > macros with very generic names (e.g. "MAX_REG") that could be renamed > too (for consistency, IMO, all the macros in those files should be > prefixed the same way). > > I couldn't build-test this patch on Solaris, but it build with > --enable-targets=all on Linux. How would you tell this attempt is complete? (Maybe someone's doing evil ungreppable things like REG_ ## SP. ;-) Are there not Solaris machines in the gcc build farm? brgds, H-P