[v2] Put bcache inside "namespace gdb"
Commit Message
[Updated for https://sourceware.org/ml/gdb-patches/2019-12/msg00073.html,
which has been pushed]
This avoids a conflict with a system "struct bcache" on
Solaris (see e.g.
https://www.isi.edu/nsnam/archive/ns-users/webarch/2001/msg05393.html)
Note that the Solaris conflict for now only surfaces with
--enable-targets=all (which the build bot doesn't use).
gdb/ChangeLog:
2019-12-02 Christian Biesinger <cbiesinger@google.com>
* bcache.c: Put in namespace gdb.
* bcache.h: Likewise.
* gdbtypes.c (check_types_worklist): Update.
(types_deeply_equal): Update.
* macrotab.c (struct macro_table) <bcache>: Update.
(new_macro_table): Update.
* macrotab.h (struct bcache): Put this forward declaration
inside namespace gdb.
(new_macro_table): Update.
* objfiles.h (struct objfile_per_bfd_storage) <filename_cache>:
Update.
<macro_cache>: Update.
* psymtab.h: (psymtab_storage) <psymbol_cache>: Update.
Change-Id: I843d5e91f7ccb3db6d1099a8214c15a74510256f
---
gdb/bcache.c | 4 ++++
gdb/bcache.h | 4 ++++
gdb/gdbtypes.c | 4 ++--
gdb/macrotab.c | 4 ++--
gdb/macrotab.h | 7 +++++--
gdb/objfiles.h | 4 ++--
gdb/psymtab.h | 2 +-
7 files changed, 20 insertions(+), 9 deletions(-)
Comments
On 12/5/19 9:32 PM, Christian Biesinger via gdb-patches wrote:
> [Updated for https://sourceware.org/ml/gdb-patches/2019-12/msg00073.html,
> which has been pushed]
>
> This avoids a conflict with a system "struct bcache" on
> Solaris (see e.g.
> https://www.isi.edu/nsnam/archive/ns-users/webarch/2001/msg05393.html)
>
> Note that the Solaris conflict for now only surfaces with
> --enable-targets=all (which the build bot doesn't use).
>
OK.
I still haven't managed to submit the "namespace gdb everywhere" [1]
patch series in this cycle. :-/ Maybe after we branch. Once
we have that, then we can drop the "gdb::"'s sprinkled throughout.
[1] https://github.com/palves/gdb/commits/palves/cxx-gdb-namespace
Thanks,
Pedro Alves
On Fri, Dec 6, 2019 at 12:51 PM Pedro Alves <palves@redhat.com> wrote:
>
> On 12/5/19 9:32 PM, Christian Biesinger via gdb-patches wrote:
> > [Updated for https://sourceware.org/ml/gdb-patches/2019-12/msg00073.html,
> > which has been pushed]
> >
> > This avoids a conflict with a system "struct bcache" on
> > Solaris (see e.g.
> > https://www.isi.edu/nsnam/archive/ns-users/webarch/2001/msg05393.html)
> >
> > Note that the Solaris conflict for now only surfaces with
> > --enable-targets=all (which the build bot doesn't use).
> >
>
> OK.
>
> I still haven't managed to submit the "namespace gdb everywhere" [1]
> patch series in this cycle. :-/ Maybe after we branch. Once
> we have that, then we can drop the "gdb::"'s sprinkled throughout.
Thanks, pushed.
Christian
@@ -25,6 +25,8 @@
#include <algorithm>
+namespace gdb {
+
/* The type used to hold a single bcache string. The user data is
stored in d.data. Since it can be any type, it needs to have the
same alignment as the most strict alignment of any type on the host
@@ -378,3 +380,5 @@ bcache::memory_used ()
return 0;
return obstack_memory_used (&m_cache);
}
+
+} /* namespace gdb */
@@ -136,6 +136,8 @@
*/
+namespace gdb {
+
struct bstring;
struct bcache
@@ -222,4 +224,6 @@ private:
void expand_hash_table ();
};
+} /* namespace gdb */
+
#endif /* BCACHE_H */
@@ -3813,7 +3813,7 @@ check_types_equal (struct type *type1, struct type *type2,
static bool
check_types_worklist (std::vector<type_equality_entry> *worklist,
- struct bcache *cache)
+ gdb::bcache *cache)
{
while (!worklist->empty ())
{
@@ -3849,7 +3849,7 @@ types_deeply_equal (struct type *type1, struct type *type2)
if (type1 == type2)
return true;
- struct bcache cache (nullptr, nullptr);
+ gdb::bcache cache (nullptr, nullptr);
worklist.emplace_back (type1, type2);
return check_types_worklist (&worklist, &cache);
}
@@ -40,7 +40,7 @@ struct macro_table
/* The bcache we should use to hold macro names, argument names, and
definitions, or zero if we should use xmalloc. */
- struct bcache *bcache;
+ gdb::bcache *bcache;
/* The main source file for this compilation unit --- the one whose
name was given to the compiler. This is the root of the
@@ -1025,7 +1025,7 @@ macro_for_each_in_scope (struct macro_source_file *file, int line,
struct macro_table *
-new_macro_table (struct obstack *obstack, struct bcache *b,
+new_macro_table (struct obstack *obstack, gdb::bcache *b,
struct compunit_symtab *cust)
{
struct macro_table *t;
@@ -23,9 +23,12 @@
#include "gdbsupport/function-view.h"
struct obstack;
-struct bcache;
struct compunit_symtab;
+namespace gdb {
+struct bcache;
+}
+
/* How do we represent a source location? I mean, how should we
represent them within GDB; the user wants to use all sorts of
ambiguous abbreviations, like "break 32" and "break foo.c:32"
@@ -170,7 +173,7 @@ struct macro_source_file
the same source location (although 'gcc -DFOO -UFOO -DFOO=2' does
do that in GCC 4.1.2.). */
struct macro_table *new_macro_table (struct obstack *obstack,
- struct bcache *bcache,
+ gdb::bcache *bcache,
struct compunit_symtab *cust);
@@ -244,11 +244,11 @@ struct objfile_per_bfd_storage
/* Byte cache for file names. */
- struct bcache filename_cache;
+ gdb::bcache filename_cache;
/* Byte cache for macros. */
- struct bcache macro_cache;
+ gdb::bcache macro_cache;
/* The gdbarch associated with the BFD. Note that this gdbarch is
determined solely from BFD information, without looking at target
@@ -120,7 +120,7 @@ public:
/* A byte cache where we can stash arbitrary "chunks" of bytes that
will not change. */
- struct bcache psymbol_cache;
+ gdb::bcache psymbol_cache;
/* Vectors of all partial symbols read in from file. The actual data
is stored in the objfile_obstack. */