* solib.c (solib_bfd_open): Do not call ops->bfd_open.

(solib_map_sections): Call ops->bfd_open instead of solib_bfd_open.
	* solib-frv.c (_initialize_frv_solib): Initialize bfd_open member.
	* solib-irix.c (_initialize_irix_solib): Likewise.
	* solib-null.c (_initialize_null_solib): Likewise.
	* solib-osf.c (_initialize_osf_solib): Likewise.
	* solib-pa64.c (_initialize_pa64_solib): Likewise.
	* solib-som.c (_initialize_som_solib): Likewise.
	* solib-sunos.c (_initialize_sunos_solib): Likewise.
	* solib-svr4.c (_initialize_svr4_solib): Likewise.
	* solib-target.c (_initialize_solib_target): Likewise.
This commit is contained in:
Ulrich Weigand
2009-07-17 17:08:23 +00:00
parent 328d0145af
commit 831a0c4447
11 changed files with 25 additions and 8 deletions

View File

@ -1,3 +1,17 @@
2009-07-17 Ulrich Weigand <uweigand@de.ibm.com>
* solib.c (solib_bfd_open): Do not call ops->bfd_open.
(solib_map_sections): Call ops->bfd_open instead of solib_bfd_open.
* solib-frv.c (_initialize_frv_solib): Initialize bfd_open member.
* solib-irix.c (_initialize_irix_solib): Likewise.
* solib-null.c (_initialize_null_solib): Likewise.
* solib-osf.c (_initialize_osf_solib): Likewise.
* solib-pa64.c (_initialize_pa64_solib): Likewise.
* solib-som.c (_initialize_som_solib): Likewise.
* solib-sunos.c (_initialize_sunos_solib): Likewise.
* solib-svr4.c (_initialize_svr4_solib): Likewise.
* solib-target.c (_initialize_solib_target): Likewise.
2009-07-17 Ulrich Weigand <uweigand@de.ibm.com> 2009-07-17 Ulrich Weigand <uweigand@de.ibm.com>
* mi/mi-cmd-disas.c (mi_cmd_disassemble): Respect mixed_mode flag. * mi/mi-cmd-disas.c (mi_cmd_disassemble): Respect mixed_mode flag.

View File

@ -1300,6 +1300,7 @@ _initialize_frv_solib (void)
frv_so_ops.current_sos = frv_current_sos; frv_so_ops.current_sos = frv_current_sos;
frv_so_ops.open_symbol_file_object = open_symbol_file_object; frv_so_ops.open_symbol_file_object = open_symbol_file_object;
frv_so_ops.in_dynsym_resolve_code = frv_in_dynsym_resolve_code; frv_so_ops.in_dynsym_resolve_code = frv_in_dynsym_resolve_code;
frv_so_ops.bfd_open = solib_bfd_open;
/* Debug this file's internals. */ /* Debug this file's internals. */
add_setshow_zinteger_cmd ("solib-frv", class_maintenance, add_setshow_zinteger_cmd ("solib-frv", class_maintenance,

View File

@ -740,4 +740,5 @@ _initialize_irix_solib (void)
irix_so_ops.current_sos = irix_current_sos; irix_so_ops.current_sos = irix_current_sos;
irix_so_ops.open_symbol_file_object = irix_open_symbol_file_object; irix_so_ops.open_symbol_file_object = irix_open_symbol_file_object;
irix_so_ops.in_dynsym_resolve_code = irix_in_dynsym_resolve_code; irix_so_ops.in_dynsym_resolve_code = irix_in_dynsym_resolve_code;
irix_so_ops.bfd_open = solib_bfd_open;
} }

View File

@ -81,6 +81,7 @@ _initialize_null_solib (void)
null_so_ops.current_sos = null_current_sos; null_so_ops.current_sos = null_current_sos;
null_so_ops.open_symbol_file_object = null_open_symbol_file_object; null_so_ops.open_symbol_file_object = null_open_symbol_file_object;
null_so_ops.in_dynsym_resolve_code = null_in_dynsym_resolve_code; null_so_ops.in_dynsym_resolve_code = null_in_dynsym_resolve_code;
null_so_ops.bfd_open = solib_bfd_open;
/* Set current_target_so_ops to null_so_ops if not already set. */ /* Set current_target_so_ops to null_so_ops if not already set. */
if (current_target_so_ops == 0) if (current_target_so_ops == 0)

View File

@ -631,6 +631,7 @@ _initialize_osf_solib (void)
osf_so_ops.current_sos = osf_current_sos; osf_so_ops.current_sos = osf_current_sos;
osf_so_ops.open_symbol_file_object = osf_open_symbol_file_object; osf_so_ops.open_symbol_file_object = osf_open_symbol_file_object;
osf_so_ops.in_dynsym_resolve_code = osf_in_dynsym_resolve_code; osf_so_ops.in_dynsym_resolve_code = osf_in_dynsym_resolve_code;
osf_so_ops.bfd_open = solib_bfd_open;
/* FIXME: Don't do this here. *_gdbarch_init() should set so_ops. */ /* FIXME: Don't do this here. *_gdbarch_init() should set so_ops. */
current_target_so_ops = &osf_so_ops; current_target_so_ops = &osf_so_ops;

View File

@ -658,6 +658,7 @@ _initialize_pa64_solib (void)
pa64_so_ops.current_sos = pa64_current_sos; pa64_so_ops.current_sos = pa64_current_sos;
pa64_so_ops.open_symbol_file_object = pa64_open_symbol_file_object; pa64_so_ops.open_symbol_file_object = pa64_open_symbol_file_object;
pa64_so_ops.in_dynsym_resolve_code = pa64_in_dynsym_resolve_code; pa64_so_ops.in_dynsym_resolve_code = pa64_in_dynsym_resolve_code;
pa64_so_ops.bfd_open = solib_bfd_open;
memset (&dld_cache, 0, sizeof (dld_cache)); memset (&dld_cache, 0, sizeof (dld_cache));
} }

View File

@ -812,6 +812,7 @@ _initialize_som_solib (void)
som_so_ops.current_sos = som_current_sos; som_so_ops.current_sos = som_current_sos;
som_so_ops.open_symbol_file_object = som_open_symbol_file_object; som_so_ops.open_symbol_file_object = som_open_symbol_file_object;
som_so_ops.in_dynsym_resolve_code = som_in_dynsym_resolve_code; som_so_ops.in_dynsym_resolve_code = som_in_dynsym_resolve_code;
som_so_ops.bfd_open = solib_bfd_open;
} }
void void

View File

@ -840,6 +840,7 @@ _initialize_sunos_solib (void)
sunos_so_ops.current_sos = sunos_current_sos; sunos_so_ops.current_sos = sunos_current_sos;
sunos_so_ops.open_symbol_file_object = open_symbol_file_object; sunos_so_ops.open_symbol_file_object = open_symbol_file_object;
sunos_so_ops.in_dynsym_resolve_code = sunos_in_dynsym_resolve_code; sunos_so_ops.in_dynsym_resolve_code = sunos_in_dynsym_resolve_code;
sunos_so_ops.bfd_open = solib_bfd_open;
/* FIXME: Don't do this here. *_gdbarch_init() should set so_ops. */ /* FIXME: Don't do this here. *_gdbarch_init() should set so_ops. */
current_target_so_ops = &sunos_so_ops; current_target_so_ops = &sunos_so_ops;

View File

@ -1934,6 +1934,7 @@ _initialize_svr4_solib (void)
svr4_so_ops.current_sos = svr4_current_sos; svr4_so_ops.current_sos = svr4_current_sos;
svr4_so_ops.open_symbol_file_object = open_symbol_file_object; svr4_so_ops.open_symbol_file_object = open_symbol_file_object;
svr4_so_ops.in_dynsym_resolve_code = svr4_in_dynsym_resolve_code; svr4_so_ops.in_dynsym_resolve_code = svr4_in_dynsym_resolve_code;
svr4_so_ops.bfd_open = solib_bfd_open;
svr4_so_ops.lookup_lib_global_symbol = elf_lookup_lib_symbol; svr4_so_ops.lookup_lib_global_symbol = elf_lookup_lib_symbol;
svr4_so_ops.same = svr4_same; svr4_so_ops.same = svr4_same;

View File

@ -492,4 +492,5 @@ _initialize_solib_target (void)
= solib_target_open_symbol_file_object; = solib_target_open_symbol_file_object;
solib_target_so_ops.in_dynsym_resolve_code solib_target_so_ops.in_dynsym_resolve_code
= solib_target_in_dynsym_resolve_code; = solib_target_in_dynsym_resolve_code;
solib_target_so_ops.bfd_open = solib_bfd_open;
} }

View File

@ -285,16 +285,11 @@ solib_bfd_fopen (char *pathname, int fd)
bfd * bfd *
solib_bfd_open (char *pathname) solib_bfd_open (char *pathname)
{ {
struct target_so_ops *ops = solib_ops (target_gdbarch);
char *found_pathname; char *found_pathname;
int found_file; int found_file;
bfd *abfd; bfd *abfd;
const struct bfd_arch_info *b; const struct bfd_arch_info *b;
/* Use target-specific override if present. */
if (ops->bfd_open)
return ops->bfd_open (pathname);
/* Search for shared library file. */ /* Search for shared library file. */
found_pathname = solib_find (pathname, &found_file); found_pathname = solib_find (pathname, &found_file);
if (found_pathname == NULL) if (found_pathname == NULL)
@ -354,6 +349,7 @@ static int
solib_map_sections (void *arg) solib_map_sections (void *arg)
{ {
struct so_list *so = (struct so_list *) arg; /* catch_errors bogon */ struct so_list *so = (struct so_list *) arg; /* catch_errors bogon */
struct target_so_ops *ops = solib_ops (target_gdbarch);
char *filename; char *filename;
struct target_section *p; struct target_section *p;
struct cleanup *old_chain; struct cleanup *old_chain;
@ -361,7 +357,7 @@ solib_map_sections (void *arg)
filename = tilde_expand (so->so_name); filename = tilde_expand (so->so_name);
old_chain = make_cleanup (xfree, filename); old_chain = make_cleanup (xfree, filename);
abfd = solib_bfd_open (filename); abfd = ops->bfd_open (filename);
do_cleanups (old_chain); do_cleanups (old_chain);
/* Leave bfd open, core_xfer_memory and "info files" need it. */ /* Leave bfd open, core_xfer_memory and "info files" need it. */
@ -381,8 +377,6 @@ solib_map_sections (void *arg)
for (p = so->sections; p < so->sections_end; p++) for (p = so->sections; p < so->sections_end; p++)
{ {
struct target_so_ops *ops = solib_ops (target_gdbarch);
/* Relocate the section binding addresses as recorded in the shared /* Relocate the section binding addresses as recorded in the shared
object's file by the base address to which the object was actually object's file by the base address to which the object was actually
mapped. */ mapped. */