solib_global_lookup: Fetch arch from objfile.
Commit Message
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.
Comments
Doug Evans <xdje42@gmail.com> writes:
> 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.
Committed.
@@ -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;
}
@@ -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);
@@ -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);