Index: gdb/solib-frv.c |
diff --git a/gdb/solib-frv.c b/gdb/solib-frv.c |
index 2f2c8b026af16c03aa930362ffa7b0a7dae769ba..6d5222af5ac0679f3678719ef2e36a70d74a8b93 100644 |
--- a/gdb/solib-frv.c |
+++ b/gdb/solib-frv.c |
@@ -1,5 +1,5 @@ |
/* Handle FR-V (FDPIC) shared libraries for GDB, the GNU Debugger. |
- Copyright (C) 2004, 2007-2012 Free Software Foundation, Inc. |
+ Copyright (C) 2004-2013 Free Software Foundation, Inc. |
This file is part of GDB. |
@@ -18,7 +18,7 @@ |
#include "defs.h" |
-#include "gdb_string.h" |
+#include <string.h> |
#include "inferior.h" |
#include "gdbcore.h" |
#include "solib.h" |
@@ -31,9 +31,10 @@ |
#include "gdbcmd.h" |
#include "elf/frv.h" |
#include "exceptions.h" |
+#include "gdb_bfd.h" |
/* Flag which indicates whether internal debug messages should be printed. */ |
-static int solib_frv_debug; |
+static unsigned int solib_frv_debug; |
/* FR-V pointers are four bytes wide. */ |
enum { FRV_PTR_SIZE = 4 }; |
@@ -97,7 +98,7 @@ struct int_elf32_fdpic_loadmap { |
static struct int_elf32_fdpic_loadmap * |
fetch_loadmap (CORE_ADDR ldmaddr) |
{ |
- enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch); |
+ enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ()); |
struct ext_elf32_fdpic_loadmap ext_ldmbuf_partial; |
struct ext_elf32_fdpic_loadmap *ext_ldmbuf; |
struct int_elf32_fdpic_loadmap *int_ldmbuf; |
@@ -264,7 +265,7 @@ static CORE_ADDR main_lm_addr = 0; |
static CORE_ADDR |
lm_base (void) |
{ |
- enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch); |
+ enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ()); |
struct minimal_symbol *got_sym; |
CORE_ADDR addr; |
gdb_byte buf[FRV_PTR_SIZE]; |
@@ -316,7 +317,7 @@ lm_base (void) |
static struct so_list * |
frv_current_sos (void) |
{ |
- enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch); |
+ enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ()); |
CORE_ADDR lm_addr, mgot; |
struct so_list *sos_head = NULL; |
struct so_list **sos_next_ptr = &sos_head; |
@@ -327,11 +328,11 @@ frv_current_sos (void) |
for details.) |
Note that the relocation of the main executable is also performed |
- by SOLIB_CREATE_INFERIOR_HOOK(), however, in the case of core |
+ by solib_create_inferior_hook(), however, in the case of core |
files, this hook is called too late in order to be of benefit to |
- SOLIB_ADD. SOLIB_ADD eventually calls this this function, |
+ solib_add. solib_add eventually calls this this function, |
frv_current_sos, and also precedes the call to |
- SOLIB_CREATE_INFERIOR_HOOK(). (See post_create_inferior() in |
+ solib_create_inferior_hook(). (See post_create_inferior() in |
infcmd.c.) */ |
if (main_executable_lm_info == 0 && core_bfd != NULL) |
frv_relocate_main_executable (); |
@@ -447,7 +448,7 @@ frv_in_dynsym_resolve_code (CORE_ADDR pc) |
{ |
return ((pc >= interp_text_sect_low && pc < interp_text_sect_high) |
|| (pc >= interp_plt_sect_low && pc < interp_plt_sect_high) |
- || in_plt_section (pc, NULL)); |
+ || in_plt_section (pc)); |
} |
/* Given a loadmap and an address, return the displacement needed |
@@ -517,7 +518,7 @@ static int enable_break2_done = 0; |
static int |
enable_break2 (void) |
{ |
- enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch); |
+ enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ()); |
int success = 0; |
char **bkpt_namep; |
asection *interp_sect; |
@@ -534,7 +535,7 @@ enable_break2 (void) |
if (interp_sect) |
{ |
unsigned int interp_sect_size; |
- gdb_byte *buf; |
+ char *buf; |
bfd *tmp_bfd = NULL; |
int status; |
CORE_ADDR addr, interp_loadmap_addr; |
@@ -568,13 +569,13 @@ enable_break2 (void) |
return 0; |
} |
- status = frv_fdpic_loadmap_addresses (target_gdbarch, |
+ status = frv_fdpic_loadmap_addresses (target_gdbarch (), |
&interp_loadmap_addr, 0); |
if (status < 0) |
{ |
warning (_("Unable to determine dynamic linker loadmap address.")); |
enable_break_failure_warning (); |
- bfd_close (tmp_bfd); |
+ gdb_bfd_unref (tmp_bfd); |
return 0; |
} |
@@ -589,7 +590,7 @@ enable_break2 (void) |
warning (_("Unable to load dynamic linker loadmap at address %s."), |
hex_string_custom (interp_loadmap_addr, 8)); |
enable_break_failure_warning (); |
- bfd_close (tmp_bfd); |
+ gdb_bfd_unref (tmp_bfd); |
return 0; |
} |
@@ -623,7 +624,7 @@ enable_break2 (void) |
warning (_("Could not find symbol _dl_debug_addr " |
"in dynamic linker")); |
enable_break_failure_warning (); |
- bfd_close (tmp_bfd); |
+ gdb_bfd_unref (tmp_bfd); |
return 0; |
} |
@@ -674,7 +675,7 @@ enable_break2 (void) |
"(at address %s) from dynamic linker"), |
hex_string_custom (addr + 8, 8)); |
enable_break_failure_warning (); |
- bfd_close (tmp_bfd); |
+ gdb_bfd_unref (tmp_bfd); |
return 0; |
} |
addr = extract_unsigned_integer (addr_buf, sizeof addr_buf, byte_order); |
@@ -686,13 +687,13 @@ enable_break2 (void) |
"(at address %s) from dynamic linker"), |
hex_string_custom (addr, 8)); |
enable_break_failure_warning (); |
- bfd_close (tmp_bfd); |
+ gdb_bfd_unref (tmp_bfd); |
return 0; |
} |
addr = extract_unsigned_integer (addr_buf, sizeof addr_buf, byte_order); |
/* We're done with the temporary bfd. */ |
- bfd_close (tmp_bfd); |
+ gdb_bfd_unref (tmp_bfd); |
/* We're also done with the loadmap. */ |
xfree (ldm); |
@@ -702,7 +703,7 @@ enable_break2 (void) |
remove_solib_event_breakpoints (); |
/* Now (finally!) create the solib breakpoint. */ |
- create_solib_event_breakpoint (target_gdbarch, addr); |
+ create_solib_event_breakpoint (target_gdbarch (), addr); |
enable_break2_done = 1; |
@@ -750,7 +751,7 @@ enable_break (void) |
return 0; |
} |
- create_solib_event_breakpoint (target_gdbarch, |
+ create_solib_event_breakpoint (target_gdbarch (), |
symfile_objfile->ei.entry_point); |
if (solib_frv_debug) |
@@ -781,7 +782,7 @@ frv_relocate_main_executable (void) |
int changed; |
struct obj_section *osect; |
- status = frv_fdpic_loadmap_addresses (target_gdbarch, |
+ status = frv_fdpic_loadmap_addresses (target_gdbarch (), |
&interp_addr, &exec_addr); |
if (status < 0 || (exec_addr == 0 && interp_addr == 0)) |
@@ -811,7 +812,7 @@ frv_relocate_main_executable (void) |
int osect_idx; |
int seg; |
- osect_idx = osect->the_bfd_section->index; |
+ osect_idx = osect - symfile_objfile->sections; |
/* Current address of section. */ |
addr = obj_section_addr (osect); |
@@ -1020,7 +1021,7 @@ find_canonical_descriptor_in_load_object |
(CORE_ADDR entry_point, CORE_ADDR got_value, const char *name, bfd *abfd, |
struct lm_info *lm) |
{ |
- enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch); |
+ enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ()); |
arelent *rel; |
unsigned int i; |
CORE_ADDR addr = 0; |
@@ -1183,12 +1184,12 @@ _initialize_frv_solib (void) |
frv_so_ops.bfd_open = solib_bfd_open; |
/* Debug this file's internals. */ |
- add_setshow_zinteger_cmd ("solib-frv", class_maintenance, |
- &solib_frv_debug, _("\ |
+ add_setshow_zuinteger_cmd ("solib-frv", class_maintenance, |
+ &solib_frv_debug, _("\ |
Set internal debugging of shared library code for FR-V."), _("\ |
Show internal debugging of shared library code for FR-V."), _("\ |
When non-zero, FR-V solib specific internal debugging is enabled."), |
- NULL, |
- NULL, /* FIXME: i18n: */ |
- &setdebuglist, &showdebuglist); |
+ NULL, |
+ NULL, /* FIXME: i18n: */ |
+ &setdebuglist, &showdebuglist); |
} |