aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog14
-rw-r--r--gdb/solib-frv.c1
-rw-r--r--gdb/solib-irix.c1
-rw-r--r--gdb/solib-null.c1
-rw-r--r--gdb/solib-osf.c1
-rw-r--r--gdb/solib-pa64.c1
-rw-r--r--gdb/solib-som.c1
-rw-r--r--gdb/solib-sunos.c1
-rw-r--r--gdb/solib-svr4.c1
-rw-r--r--gdb/solib-target.c1
-rw-r--r--gdb/solib.c10
11 files changed, 25 insertions, 8 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 661bb45..5128dc6 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,19 @@
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>
+
* mi/mi-cmd-disas.c (mi_cmd_disassemble): Respect mixed_mode flag.
2009-07-16 Doug Evans <dje@google.com>
diff --git a/gdb/solib-frv.c b/gdb/solib-frv.c
index eec4e78..b8d5528 100644
--- a/gdb/solib-frv.c
+++ b/gdb/solib-frv.c
@@ -1300,6 +1300,7 @@ _initialize_frv_solib (void)
frv_so_ops.current_sos = frv_current_sos;
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.bfd_open = solib_bfd_open;
/* Debug this file's internals. */
add_setshow_zinteger_cmd ("solib-frv", class_maintenance,
diff --git a/gdb/solib-irix.c b/gdb/solib-irix.c
index 4cf8cc6..a0c1cd2 100644
--- a/gdb/solib-irix.c
+++ b/gdb/solib-irix.c
@@ -740,4 +740,5 @@ _initialize_irix_solib (void)
irix_so_ops.current_sos = irix_current_sos;
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.bfd_open = solib_bfd_open;
}
diff --git a/gdb/solib-null.c b/gdb/solib-null.c
index 695c114..b39ccdb 100644
--- a/gdb/solib-null.c
+++ b/gdb/solib-null.c
@@ -81,6 +81,7 @@ _initialize_null_solib (void)
null_so_ops.current_sos = null_current_sos;
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.bfd_open = solib_bfd_open;
/* Set current_target_so_ops to null_so_ops if not already set. */
if (current_target_so_ops == 0)
diff --git a/gdb/solib-osf.c b/gdb/solib-osf.c
index 5bd2895..c295335 100644
--- a/gdb/solib-osf.c
+++ b/gdb/solib-osf.c
@@ -631,6 +631,7 @@ _initialize_osf_solib (void)
osf_so_ops.current_sos = osf_current_sos;
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.bfd_open = solib_bfd_open;
/* FIXME: Don't do this here. *_gdbarch_init() should set so_ops. */
current_target_so_ops = &osf_so_ops;
diff --git a/gdb/solib-pa64.c b/gdb/solib-pa64.c
index 3d22ee5..637fc1a 100644
--- a/gdb/solib-pa64.c
+++ b/gdb/solib-pa64.c
@@ -658,6 +658,7 @@ _initialize_pa64_solib (void)
pa64_so_ops.current_sos = pa64_current_sos;
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.bfd_open = solib_bfd_open;
memset (&dld_cache, 0, sizeof (dld_cache));
}
diff --git a/gdb/solib-som.c b/gdb/solib-som.c
index 457930c..16f00a3 100644
--- a/gdb/solib-som.c
+++ b/gdb/solib-som.c
@@ -812,6 +812,7 @@ _initialize_som_solib (void)
som_so_ops.current_sos = som_current_sos;
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.bfd_open = solib_bfd_open;
}
void
diff --git a/gdb/solib-sunos.c b/gdb/solib-sunos.c
index ff41847..9b2a470 100644
--- a/gdb/solib-sunos.c
+++ b/gdb/solib-sunos.c
@@ -840,6 +840,7 @@ _initialize_sunos_solib (void)
sunos_so_ops.current_sos = sunos_current_sos;
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.bfd_open = solib_bfd_open;
/* FIXME: Don't do this here. *_gdbarch_init() should set so_ops. */
current_target_so_ops = &sunos_so_ops;
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index 0f17584..6cfaa85 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -1934,6 +1934,7 @@ _initialize_svr4_solib (void)
svr4_so_ops.current_sos = svr4_current_sos;
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.bfd_open = solib_bfd_open;
svr4_so_ops.lookup_lib_global_symbol = elf_lookup_lib_symbol;
svr4_so_ops.same = svr4_same;
diff --git a/gdb/solib-target.c b/gdb/solib-target.c
index f41dc51..07415e4 100644
--- a/gdb/solib-target.c
+++ b/gdb/solib-target.c
@@ -492,4 +492,5 @@ _initialize_solib_target (void)
= solib_target_open_symbol_file_object;
solib_target_so_ops.in_dynsym_resolve_code
= solib_target_in_dynsym_resolve_code;
+ solib_target_so_ops.bfd_open = solib_bfd_open;
}
diff --git a/gdb/solib.c b/gdb/solib.c
index 53d5d1b..157aaba 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -285,16 +285,11 @@ solib_bfd_fopen (char *pathname, int fd)
bfd *
solib_bfd_open (char *pathname)
{
- struct target_so_ops *ops = solib_ops (target_gdbarch);
char *found_pathname;
int found_file;
bfd *abfd;
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. */
found_pathname = solib_find (pathname, &found_file);
if (found_pathname == NULL)
@@ -354,6 +349,7 @@ static int
solib_map_sections (void *arg)
{
struct so_list *so = (struct so_list *) arg; /* catch_errors bogon */
+ struct target_so_ops *ops = solib_ops (target_gdbarch);
char *filename;
struct target_section *p;
struct cleanup *old_chain;
@@ -361,7 +357,7 @@ solib_map_sections (void *arg)
filename = tilde_expand (so->so_name);
old_chain = make_cleanup (xfree, filename);
- abfd = solib_bfd_open (filename);
+ abfd = ops->bfd_open (filename);
do_cleanups (old_chain);
/* 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++)
{
- struct target_so_ops *ops = solib_ops (target_gdbarch);
-
/* Relocate the section binding addresses as recorded in the shared
object's file by the base address to which the object was actually
mapped. */