This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH] solib_global_lookup: Fetch arch from objfile.
- From: Doug Evans <xdje42 at gmail dot com>
- To: gdb-patches at sourceware dot org
- Date: Fri, 31 Oct 2014 19:27:09 -0700
- Subject: [PATCH] solib_global_lookup: Fetch arch from objfile.
- Authentication-results: sourceware.org; auth=none
Hi.
solib_global_lookup should be using the objfile's arch,
not fetching it from global state.
Regression tested on amd64-linux.
2014-10-31 Doug Evans <xdje42@gmail.com>
* objfiles.c (get_objfile_arch): Constify.
* objfiles.h (get_objfile_arch): Update prototype.
* solib.c (solib_global_lookup): Fetch arch from objfile,
not target_gdbarch.
diff --git a/gdb/objfiles.c b/gdb/objfiles.c
index 2a5c15f..38a365c 100644
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -366,8 +366,9 @@ allocate_objfile (bfd *abfd, const char *name, int flags)
}
/* Retrieve the gdbarch associated with OBJFILE. */
+
struct gdbarch *
-get_objfile_arch (struct objfile *objfile)
+get_objfile_arch (const struct objfile *objfile)
{
return objfile->per_bfd->gdbarch;
}
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
index 57a94e1..af80c0c 100644
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -465,7 +465,7 @@ struct objfile
extern struct objfile *allocate_objfile (bfd *, const char *name, int);
-extern struct gdbarch *get_objfile_arch (struct objfile *);
+extern struct gdbarch *get_objfile_arch (const struct objfile *);
extern int entry_point_address_query (CORE_ADDR *entry_p);
diff --git a/gdb/solib.c b/gdb/solib.c
index 41250a2..6260dac 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -1408,7 +1408,7 @@ solib_global_lookup (const struct objfile *objfile,
const char *name,
const domain_enum domain)
{
- const struct target_so_ops *ops = solib_ops (target_gdbarch ());
+ const struct target_so_ops *ops = solib_ops (get_objfile_arch (objfile));
if (ops->lookup_lib_global_symbol != NULL)
return ops->lookup_lib_global_symbol (objfile, name, domain);