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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.