From 5a82b8a12b6a9b8167517ab1df1dcdcc4711ffda Mon Sep 17 00:00:00 2001 From: Kamil Rytarowski Date: Tue, 17 Mar 2020 14:38:23 +0100 Subject: [PATCH] Namespace the reg class to avoid clashes with OS headers Fix build issues on NetBSD where the reg symbol exists in public headers. regformats/regdef.h:22:8: error: redefinition struct struct reg ^~~ /usr/include/amd64/reg.h:51:8: note: previous definition struct struct reg { ^~~ gdb/ChangeLog: * regformats/regdef.h: Put reg in gdb namespace. gdbserver/ChangeLog: * regcache.cc (find_register_by_number): Update. * tdesc.cc (init_target_desc): Likewise. * tdesc.h (target_desc::reg_defs): Likewise. --- gdb/ChangeLog | 4 ++++ gdb/regformats/regdef.h | 4 ++++ gdbserver/ChangeLog | 6 ++++++ gdbserver/regcache.cc | 2 +- gdbserver/tdesc.cc | 2 +- gdbserver/tdesc.h | 2 +- 6 files changed, 17 insertions(+), 3 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a89267fc27d..84964dc00ac 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2020-03-17 Kamil Rytarowski + + * regformats/regdef.h: Put reg in gdb namespace. + 2020-03-17 Kamil Rytarowski * i386-bsd-nat.c (gdb_ptrace): New. diff --git a/gdb/regformats/regdef.h b/gdb/regformats/regdef.h index 340281e2425..ed9aeb7af4b 100644 --- a/gdb/regformats/regdef.h +++ b/gdb/regformats/regdef.h @@ -19,6 +19,8 @@ #ifndef REGFORMATS_REGDEF_H #define REGFORMATS_REGDEF_H +namespace gdb { + struct reg { reg (int _offset) @@ -60,4 +62,6 @@ struct reg } }; +} /* namespace gdb */ + #endif /* REGFORMATS_REGDEF_H */ diff --git a/gdbserver/ChangeLog b/gdbserver/ChangeLog index 5c3761a6713..ea8a079fbf2 100644 --- a/gdbserver/ChangeLog +++ b/gdbserver/ChangeLog @@ -1,3 +1,9 @@ +2020-03-17 Kamil Rytarowski + + * regcache.cc (find_register_by_number): Update. + * tdesc.cc (init_target_desc): Likewise. + * tdesc.h (target_desc::reg_defs): Likewise. + 2020-03-12 Tom Tromey * configure: Rebuild. diff --git a/gdbserver/regcache.cc b/gdbserver/regcache.cc index 33d38879dc6..6c0af95b34e 100644 --- a/gdbserver/regcache.cc +++ b/gdbserver/regcache.cc @@ -198,7 +198,7 @@ regcache_cpy (struct regcache *dst, struct regcache *src) /* Return a reference to the description of register N. */ -static const struct reg & +static const struct gdb::reg & find_register_by_number (const struct target_desc *tdesc, int n) { return tdesc->reg_defs[n]; diff --git a/gdbserver/tdesc.cc b/gdbserver/tdesc.cc index de25e7cfb46..8d97defb9b5 100644 --- a/gdbserver/tdesc.cc +++ b/gdbserver/tdesc.cc @@ -75,7 +75,7 @@ init_target_desc (struct target_desc *tdesc, gdb_assert (regnum == 0 || regnum >= tdesc->reg_defs.size ()); if (regnum != 0) - tdesc->reg_defs.resize (regnum, reg (offset)); + tdesc->reg_defs.resize (regnum, gdb::reg (offset)); tdesc->reg_defs.emplace_back (treg->name.c_str (), offset, treg->bitsize); diff --git a/gdbserver/tdesc.h b/gdbserver/tdesc.h index 5e0df85cea8..f9ca478ff6d 100644 --- a/gdbserver/tdesc.h +++ b/gdbserver/tdesc.h @@ -31,7 +31,7 @@ struct target_desc : tdesc_element { /* A vector of elements of register definitions that describe the inferior's register set. */ - std::vector reg_defs; + std::vector reg_defs; /* The register cache size, in bytes. */ int registers_size; -- 2.30.2