Re: [PATCH] include, opcodes: prefix REG_* macros in cris.h, nds32.h and microblaze-opcm.h

Simon Marchi <[email protected]>
Newsgroups gmane.comp.gdb.patches,gmane.comp.gnu.binutils
Message-ID <[email protected]>
On 8/19/26 1:32 PM, Hans-Peter Nilsson wrote:
> 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.

I think that would be more obscure and less maintainable.

> 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?

I rely on Rainer to tell me :).

As mentioned here:

https://inbox.sourceware.org/gdb-patches/[email protected]/T/#mcffe63661ff054a3384964589356e90d21eebdac

I did try to build on Solaris, but I hit some other separate build
errors.

Simon
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.