This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [rfc] Introduce "target_gdbarch" variable
- From: "Ulrich Weigand" <uweigand at de dot ibm dot com>
- To: gdb-patches at sourceware dot org
- Date: Tue, 26 Aug 2008 19:29:08 +0200 (CEST)
- Subject: Re: [rfc] Introduce "target_gdbarch" variable
> while moving away from current_gdbarch and towards a per-thread /
> per-frame / per-objfile architecture, I noticed a couple of places
> where we currently use current_gdbarch that simply do not make sense
> in a per-thread / per-frame / per-objfile context.
>
> For example, the remote target uses "current_gdbarch" to store
> basic information about the target connection (layout of various
> packets etc). Also, the shared library layer uses "current_gdbarch"
> to store the master solib_ops structure.
I've now checked in the version below, which adds some more places
that should be using a per-target architecture which I missed before.
These include addition solib and remote uses, and a number of places
where the per-target architecture is explicitly addressed.
Re-tested on powerpc-linux, powerpc64-linux, and spu-elf, and by
running a --enable-targets=all compile.
Bye,
Ulrich
ChangeLog:
* gdbarch.sh (target_gdbarch): New global variable.
(deprecated_current_gdbarch_select_hack): Set it.
* gdbarch.c, gdbarch.h: Regenerate.
* arch-utils.c (gdbarch_update_p): Use target_gdbarch instead
of current_gdbarch.
* target-descriptions.c (target_find_description): Likewise.
* arm-tdep.c (arm_update_current_architecture): Likewise.
(show_fp_model, arm_show_abi, arm_show_fallback_mode,
arm_show_force_mode): Likewise.
* mips-tdep.c (show_mask_address, show_mipsfpu_command,
show_mips_abi): Likewise.
* mep-tdep.c (me_module_register_set, current_me_module): Likewise.
* target.c (target_translate_tls_address): Use target_gdbarch
instead of current_gdbarch.
* remote.c (struct packet_reg): Likewise.
(get_remote_arch_state, packet_reg_from_regnum,
packet_reg_from_pnum, remote_check_symbols, remote_wait,
remote_address_masked, remote_insert_breakpoint,
remote_insert_hw_breakpoint, remote_read_description): Likewise.
* remote-m32r-sdi.c (m32r_resume, m32r_wait): Likewise.
* remote-mips.c (mips_open, mips_common_breakpoint): Likewise.
* cris-tdep.c (cris_can_use_hardware_watchpoint): Likewise.
* solib.c (solib_open, solib_map_sections, solib_read_symbols,
solib_add, info_sharedlibrary_command, solib_address,
solib_create_inferior_hook, in_solib_dynsym_resolve_code,
solib_global_lookup): Likewise.
* solib-frv.c (enable_break2, frv_relocate_main_executable): Likewise.
* solib-irix.c (irix_current_sos, irix_open_symbol_file_object):
Likewise.
* solib-sunos.c (sunos_solib_create_inferior_hook): Likewise.
* solib-svr4.c (exec_entry_point, enable_break, svr4_free_so,
set_solib_svr4_fetch_link_map_offsets, svr4_fetch_link_map_offsets):
Likewise.
* nto-tdep.c (nto_find_and_open_solib, nto_init_solib_absolute_prefix,
nto_truncate_ptr): Likewise.
* mips-linux-tdep.c (mips_linux_in_dynsym_stub): Likewise.
diff -urNp gdb-orig/gdb/arch-utils.c gdb-head/gdb/arch-utils.c
--- gdb-orig/gdb/arch-utils.c 2008-08-22 03:25:26.000000000 +0200
+++ gdb-head/gdb/arch-utils.c 2008-08-26 00:41:54.000000000 +0200
@@ -491,7 +491,7 @@ gdbarch_update_p (struct gdbarch_info in
/* If it is the same old architecture, accept the request (but don't
swap anything). */
- if (new_gdbarch == current_gdbarch)
+ if (new_gdbarch == target_gdbarch)
{
if (gdbarch_debug)
fprintf_unfiltered (gdb_stdlog, "gdbarch_update_p: "
diff -urNp gdb-orig/gdb/arm-tdep.c gdb-head/gdb/arm-tdep.c
--- gdb-orig/gdb/arm-tdep.c 2008-08-26 00:05:35.000000000 +0200
+++ gdb-head/gdb/arm-tdep.c 2008-08-26 00:44:45.000000000 +0200
@@ -2704,7 +2704,7 @@ arm_update_current_architecture (void)
struct gdbarch_info info;
/* If the current architecture is not ARM, we have nothing to do. */
- if (gdbarch_bfd_arch_info (current_gdbarch)->arch != bfd_arch_arm)
+ if (gdbarch_bfd_arch_info (target_gdbarch)->arch != bfd_arch_arm)
return;
/* Update the architecture. */
@@ -2738,10 +2738,10 @@ static void
show_fp_model (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
{
- struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
+ struct gdbarch_tdep *tdep = gdbarch_tdep (target_gdbarch);
if (arm_fp_model == ARM_FLOAT_AUTO
- && gdbarch_bfd_arch_info (current_gdbarch)->arch == bfd_arch_arm)
+ && gdbarch_bfd_arch_info (target_gdbarch)->arch == bfd_arch_arm)
fprintf_filtered (file, _("\
The current ARM floating point model is \"auto\" (currently \"%s\").\n"),
fp_model_strings[tdep->fp_model]);
@@ -2775,10 +2775,10 @@ static void
arm_show_abi (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
{
- struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
+ struct gdbarch_tdep *tdep = gdbarch_tdep (target_gdbarch);
if (arm_abi_global == ARM_ABI_AUTO
- && gdbarch_bfd_arch_info (current_gdbarch)->arch == bfd_arch_arm)
+ && gdbarch_bfd_arch_info (target_gdbarch)->arch == bfd_arch_arm)
fprintf_filtered (file, _("\
The current ARM ABI is \"auto\" (currently \"%s\").\n"),
arm_abi_strings[tdep->arm_abi]);
@@ -2791,7 +2791,7 @@ static void
arm_show_fallback_mode (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
{
- struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
+ struct gdbarch_tdep *tdep = gdbarch_tdep (target_gdbarch);
fprintf_filtered (file, _("\
The current execution mode assumed (when symbols are unavailable) is \"%s\".\n"),
@@ -2802,7 +2802,7 @@ static void
arm_show_force_mode (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
{
- struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
+ struct gdbarch_tdep *tdep = gdbarch_tdep (target_gdbarch);
fprintf_filtered (file, _("\
The current execution mode assumed (even when symbols are available) is \"%s\".\n"),
diff -urNp gdb-orig/gdb/cris-tdep.c gdb-head/gdb/cris-tdep.c
--- gdb-orig/gdb/cris-tdep.c 2008-08-26 00:05:35.000000000 +0200
+++ gdb-head/gdb/cris-tdep.c 2008-08-26 00:44:45.000000000 +0200
@@ -498,7 +498,7 @@ crisv32_single_step_through_delay (struc
int
cris_can_use_hardware_watchpoint (int type, int count, int other)
{
- struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
+ struct gdbarch_tdep *tdep = gdbarch_tdep (target_gdbarch);
/* No bookkeeping is done here; it is handled by the remote debug agent. */
diff -urNp gdb-orig/gdb/gdbarch.c gdb-head/gdb/gdbarch.c
--- gdb-orig/gdb/gdbarch.c 2008-08-25 22:55:59.000000000 +0200
+++ gdb-head/gdb/gdbarch.c 2008-08-26 00:41:54.000000000 +0200
@@ -377,6 +377,7 @@ struct gdbarch startup_gdbarch =
};
struct gdbarch *current_gdbarch = &startup_gdbarch;
+struct gdbarch *target_gdbarch = &startup_gdbarch;
/* Create a new ``struct gdbarch'' based on information provided by
``struct gdbarch_info''. */
@@ -3666,6 +3667,7 @@ deprecated_current_gdbarch_select_hack (
gdb_assert (current_gdbarch != NULL);
gdb_assert (new_gdbarch->initialized_p);
current_gdbarch = new_gdbarch;
+ target_gdbarch = new_gdbarch;
observer_notify_architecture_changed (new_gdbarch);
registers_changed ();
}
diff -urNp gdb-orig/gdb/gdbarch.h gdb-head/gdb/gdbarch.h
--- gdb-orig/gdb/gdbarch.h 2008-08-22 03:25:27.000000000 +0200
+++ gdb-head/gdb/gdbarch.h 2008-08-26 00:41:54.000000000 +0200
@@ -54,6 +54,7 @@ struct displaced_step_closure;
struct core_regset_section;
extern struct gdbarch *current_gdbarch;
+extern struct gdbarch *target_gdbarch;
/* The following are pre-initialized by GDBARCH. */
diff -urNp gdb-orig/gdb/gdbarch.sh gdb-head/gdb/gdbarch.sh
--- gdb-orig/gdb/gdbarch.sh 2008-08-25 22:55:59.000000000 +0200
+++ gdb-head/gdb/gdbarch.sh 2008-08-26 00:41:54.000000000 +0200
@@ -822,6 +822,7 @@ struct displaced_step_closure;
struct core_regset_section;
extern struct gdbarch *current_gdbarch;
+extern struct gdbarch *target_gdbarch;
EOF
# function typedef's
@@ -1281,6 +1282,7 @@ cat <<EOF
};
struct gdbarch *current_gdbarch = &startup_gdbarch;
+struct gdbarch *target_gdbarch = &startup_gdbarch;
EOF
# Create a new gdbarch struct
@@ -2022,6 +2024,7 @@ deprecated_current_gdbarch_select_hack (
gdb_assert (current_gdbarch != NULL);
gdb_assert (new_gdbarch->initialized_p);
current_gdbarch = new_gdbarch;
+ target_gdbarch = new_gdbarch;
observer_notify_architecture_changed (new_gdbarch);
registers_changed ();
}
diff -urNp gdb-orig/gdb/mep-tdep.c gdb-head/gdb/mep-tdep.c
--- gdb-orig/gdb/mep-tdep.c 2008-08-26 00:05:35.000000000 +0200
+++ gdb-head/gdb/mep-tdep.c 2008-08-26 00:44:45.000000000 +0200
@@ -264,7 +264,7 @@ me_module_register_set (CONFIG_ATTR me_m
mask contains any of the me_module's coprocessor ISAs,
specifically excluding the generic coprocessor register sets. */
- CGEN_CPU_DESC desc = gdbarch_tdep (current_gdbarch)->cpu_desc;
+ CGEN_CPU_DESC desc = gdbarch_tdep (target_gdbarch)->cpu_desc;
const CGEN_HW_ENTRY *hw;
if (me_module == CONFIG_NONE)
@@ -855,7 +855,7 @@ current_me_module ()
return regval;
}
else
- return gdbarch_tdep (current_gdbarch)->me_module;
+ return gdbarch_tdep (target_gdbarch)->me_module;
}
diff -urNp gdb-orig/gdb/mips-linux-tdep.c gdb-head/gdb/mips-linux-tdep.c
--- gdb-orig/gdb/mips-linux-tdep.c 2008-08-26 00:04:20.000000000 +0200
+++ gdb-head/gdb/mips-linux-tdep.c 2008-08-26 00:44:45.000000000 +0200
@@ -603,7 +603,7 @@ mips_linux_in_dynsym_stub (CORE_ADDR pc,
{
unsigned char buf[28], *p;
ULONGEST insn, insn1;
- int n64 = (mips_abi (current_gdbarch) == MIPS_ABI_N64);
+ int n64 = (mips_abi (target_gdbarch) == MIPS_ABI_N64);
read_memory (pc - 12, buf, 28);
diff -urNp gdb-orig/gdb/mips-tdep.c gdb-head/gdb/mips-tdep.c
--- gdb-orig/gdb/mips-tdep.c 2008-08-26 00:05:35.000000000 +0200
+++ gdb-head/gdb/mips-tdep.c 2008-08-26 00:44:45.000000000 +0200
@@ -778,7 +778,7 @@ static void
show_mask_address (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
{
- struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
+ struct gdbarch_tdep *tdep = gdbarch_tdep (target_gdbarch);
deprecated_show_value_hack (file, from_tty, c, value);
switch (mask_address_var)
@@ -4788,7 +4788,7 @@ show_mipsfpu_command (char *args, int fr
{
char *fpu;
- if (gdbarch_bfd_arch_info (current_gdbarch)->arch != bfd_arch_mips)
+ if (gdbarch_bfd_arch_info (target_gdbarch)->arch != bfd_arch_mips)
{
printf_unfiltered
("The MIPS floating-point coprocessor is unknown "
@@ -4796,7 +4796,7 @@ show_mipsfpu_command (char *args, int fr
return;
}
- switch (MIPS_FPU_TYPE (current_gdbarch))
+ switch (MIPS_FPU_TYPE (target_gdbarch))
{
case MIPS_FPU_SINGLE:
fpu = "single-precision";
@@ -5958,7 +5958,7 @@ show_mips_abi (struct ui_file *file,
struct cmd_list_element *ignored_cmd,
const char *ignored_value)
{
- if (gdbarch_bfd_arch_info (current_gdbarch)->arch != bfd_arch_mips)
+ if (gdbarch_bfd_arch_info (target_gdbarch)->arch != bfd_arch_mips)
fprintf_filtered
(file,
"The MIPS ABI is unknown because the current architecture "
@@ -5966,7 +5966,7 @@ show_mips_abi (struct ui_file *file,
else
{
enum mips_abi global_abi = global_mips_abi ();
- enum mips_abi actual_abi = mips_abi (current_gdbarch);
+ enum mips_abi actual_abi = mips_abi (target_gdbarch);
const char *actual_abi_str = mips_abi_strings[actual_abi];
if (global_abi == MIPS_ABI_UNKNOWN)
diff -urNp gdb-orig/gdb/nto-tdep.c gdb-head/gdb/nto-tdep.c
--- gdb-orig/gdb/nto-tdep.c 2008-08-26 00:04:20.000000000 +0200
+++ gdb-head/gdb/nto-tdep.c 2008-08-26 00:44:45.000000000 +0200
@@ -107,14 +107,14 @@ nto_find_and_open_solib (char *solib, un
#define PATH_FMT "%s/lib:%s/usr/lib:%s/usr/photon/lib:%s/usr/photon/dll:%s/lib/dll"
nto_root = nto_target ();
- if (strcmp (gdbarch_bfd_arch_info (current_gdbarch)->arch_name, "i386") == 0)
+ if (strcmp (gdbarch_bfd_arch_info (target_gdbarch)->arch_name, "i386") == 0)
{
arch = "x86";
endian = "";
}
- else if (strcmp (gdbarch_bfd_arch_info (current_gdbarch)->arch_name,
+ else if (strcmp (gdbarch_bfd_arch_info (target_gdbarch)->arch_name,
"rs6000") == 0
- || strcmp (gdbarch_bfd_arch_info (current_gdbarch)->arch_name,
+ || strcmp (gdbarch_bfd_arch_info (target_gdbarch)->arch_name,
"powerpc") == 0)
{
arch = "ppc";
@@ -122,8 +122,8 @@ nto_find_and_open_solib (char *solib, un
}
else
{
- arch = gdbarch_bfd_arch_info (current_gdbarch)->arch_name;
- endian = gdbarch_byte_order (current_gdbarch)
+ arch = gdbarch_bfd_arch_info (target_gdbarch)->arch_name;
+ endian = gdbarch_byte_order (target_gdbarch)
== BFD_ENDIAN_BIG ? "be" : "le";
}
@@ -169,14 +169,14 @@ nto_init_solib_absolute_prefix (void)
const char *arch;
nto_root = nto_target ();
- if (strcmp (gdbarch_bfd_arch_info (current_gdbarch)->arch_name, "i386") == 0)
+ if (strcmp (gdbarch_bfd_arch_info (target_gdbarch)->arch_name, "i386") == 0)
{
arch = "x86";
endian = "";
}
- else if (strcmp (gdbarch_bfd_arch_info (current_gdbarch)->arch_name,
+ else if (strcmp (gdbarch_bfd_arch_info (target_gdbarch)->arch_name,
"rs6000") == 0
- || strcmp (gdbarch_bfd_arch_info (current_gdbarch)->arch_name,
+ || strcmp (gdbarch_bfd_arch_info (target_gdbarch)->arch_name,
"powerpc") == 0)
{
arch = "ppc";
@@ -184,8 +184,8 @@ nto_init_solib_absolute_prefix (void)
}
else
{
- arch = gdbarch_bfd_arch_info (current_gdbarch)->arch_name;
- endian = gdbarch_byte_order (current_gdbarch)
+ arch = gdbarch_bfd_arch_info (target_gdbarch)->arch_name;
+ endian = gdbarch_byte_order (target_gdbarch)
== BFD_ENDIAN_BIG ? "be" : "le";
}
@@ -291,12 +291,12 @@ LM_ADDR (struct so_list *so)
static CORE_ADDR
nto_truncate_ptr (CORE_ADDR addr)
{
- if (gdbarch_ptr_bit (current_gdbarch) == sizeof (CORE_ADDR) * 8)
+ if (gdbarch_ptr_bit (target_gdbarch) == sizeof (CORE_ADDR) * 8)
/* We don't need to truncate anything, and the bit twiddling below
will fail due to overflow problems. */
return addr;
else
- return addr & (((CORE_ADDR) 1 << gdbarch_ptr_bit (current_gdbarch)) - 1);
+ return addr & (((CORE_ADDR) 1 << gdbarch_ptr_bit (target_gdbarch)) - 1);
}
Elf_Internal_Phdr *
diff -urNp gdb-orig/gdb/remote.c gdb-head/gdb/remote.c
--- gdb-orig/gdb/remote.c 2008-08-22 03:25:28.000000000 +0200
+++ gdb-head/gdb/remote.c 2008-08-26 00:41:54.000000000 +0200
@@ -274,9 +274,9 @@ struct packet_reg
long regnum; /* GDB's internal register number. */
LONGEST pnum; /* Remote protocol register number. */
int in_g_packet; /* Always part of G packet. */
- /* long size in bytes; == register_size (current_gdbarch, regnum);
+ /* long size in bytes; == register_size (target_gdbarch, regnum);
at present. */
- /* char *name; == gdbarch_register_name (current_gdbarch, regnum);
+ /* char *name; == gdbarch_register_name (target_gdbarch, regnum);
at present. */
};
@@ -309,7 +309,7 @@ static struct gdbarch_data *remote_gdbar
static struct remote_arch_state *
get_remote_arch_state (void)
{
- return gdbarch_data (current_gdbarch, remote_gdbarch_data_handle);
+ return gdbarch_data (target_gdbarch, remote_gdbarch_data_handle);
}
/* Fetch the global remote target state. */
@@ -445,7 +445,7 @@ get_remote_packet_size (void)
static struct packet_reg *
packet_reg_from_regnum (struct remote_arch_state *rsa, long regnum)
{
- if (regnum < 0 && regnum >= gdbarch_num_regs (current_gdbarch))
+ if (regnum < 0 && regnum >= gdbarch_num_regs (target_gdbarch))
return NULL;
else
{
@@ -459,7 +459,7 @@ static struct packet_reg *
packet_reg_from_pnum (struct remote_arch_state *rsa, LONGEST pnum)
{
int i;
- for (i = 0; i < gdbarch_num_regs (current_gdbarch); i++)
+ for (i = 0; i < gdbarch_num_regs (target_gdbarch); i++)
{
struct packet_reg *r = &rsa->regs[i];
if (r->pnum == pnum)
@@ -2400,7 +2400,7 @@ remote_check_symbols (struct objfile *ob
/* If this is a function address, return the start of code
instead of any data function descriptor. */
- sym_addr = gdbarch_convert_from_func_ptr_addr (current_gdbarch,
+ sym_addr = gdbarch_convert_from_func_ptr_addr (target_gdbarch,
sym_addr,
¤t_target);
@@ -3588,10 +3588,10 @@ Packet: '%s'\n"),
phex_nz (pnum, 0), p, buf);
fieldsize = hex2bin (p, regs,
- register_size (current_gdbarch,
+ register_size (target_gdbarch,
reg->regnum));
p += 2 * fieldsize;
- if (fieldsize < register_size (current_gdbarch,
+ if (fieldsize < register_size (target_gdbarch,
reg->regnum))
warning (_("Remote reply is too short: %s"), buf);
regcache_raw_supply (get_current_regcache (),
@@ -4105,7 +4105,7 @@ remote_address_masked (CORE_ADDR addr)
int address_size = remote_address_size;
/* If "remoteaddresssize" was not set, default to target address size. */
if (!address_size)
- address_size = gdbarch_addr_bit (current_gdbarch);
+ address_size = gdbarch_addr_bit (target_gdbarch);
if (address_size > 0
&& address_size < (sizeof (ULONGEST) * 8))
@@ -5373,8 +5373,7 @@ remote_insert_breakpoint (struct bp_targ
char *p;
int bpsize;
- gdbarch_breakpoint_from_pc
- (current_gdbarch, &addr, &bpsize);
+ gdbarch_breakpoint_from_pc (target_gdbarch, &addr, &bpsize);
rs = get_remote_state ();
p = rs->buf;
@@ -5576,7 +5575,7 @@ remote_insert_hw_breakpoint (struct bp_t
instruction, even though we aren't inserting one ourselves. */
gdbarch_breakpoint_from_pc
- (current_gdbarch, &bp_tgt->placed_address, &bp_tgt->placed_size);
+ (target_gdbarch, &bp_tgt->placed_address, &bp_tgt->placed_size);
if (remote_protocol_packets[PACKET_Z1].support == PACKET_DISABLE)
return -1;
@@ -6505,7 +6504,7 @@ static const struct target_desc *
remote_read_description (struct target_ops *target)
{
struct remote_g_packet_data *data
- = gdbarch_data (current_gdbarch, remote_g_packet_data_handle);
+ = gdbarch_data (target_gdbarch, remote_g_packet_data_handle);
if (!VEC_empty (remote_g_packet_guess_s, data->guesses))
{
diff -urNp gdb-orig/gdb/remote-m32r-sdi.c gdb-head/gdb/remote-m32r-sdi.c
--- gdb-orig/gdb/remote-m32r-sdi.c 2008-08-22 03:25:28.000000000 +0200
+++ gdb-head/gdb/remote-m32r-sdi.c 2008-08-26 00:43:10.000000000 +0200
@@ -481,7 +481,7 @@ m32r_resume (ptid_t ptid, int step, enum
else
{
buf[0] = SDI_WRITE_MEMORY;
- if (gdbarch_byte_order (current_gdbarch) == BFD_ENDIAN_BIG)
+ if (gdbarch_byte_order (target_gdbarch) == BFD_ENDIAN_BIG)
store_long_parameter (buf + 1, pc_addr);
else
store_long_parameter (buf + 1, pc_addr - 1);
@@ -521,7 +521,7 @@ m32r_resume (ptid_t ptid, int step, enum
continue;
/* Set PBP. */
- if (gdbarch_byte_order (current_gdbarch) == BFD_ENDIAN_BIG)
+ if (gdbarch_byte_order (target_gdbarch) == BFD_ENDIAN_BIG)
send_three_arg_cmd (SDI_WRITE_MEMORY, 0xffff8000 + 4 * i, 4,
0x00000006);
else
@@ -548,7 +548,7 @@ m32r_resume (ptid_t ptid, int step, enum
store_long_parameter (buf + 5, 4);
if ((bp_addr & 2) == 0 && bp_addr != (pc_addr & 0xfffffffc))
{
- if (gdbarch_byte_order (current_gdbarch) == BFD_ENDIAN_BIG)
+ if (gdbarch_byte_order (target_gdbarch) == BFD_ENDIAN_BIG)
{
buf[9] = dbt_bp_entry[0];
buf[10] = dbt_bp_entry[1];
@@ -565,7 +565,7 @@ m32r_resume (ptid_t ptid, int step, enum
}
else
{
- if (gdbarch_byte_order (current_gdbarch) == BFD_ENDIAN_BIG)
+ if (gdbarch_byte_order (target_gdbarch) == BFD_ENDIAN_BIG)
{
if ((bp_addr & 2) == 0)
{
@@ -612,7 +612,7 @@ m32r_resume (ptid_t ptid, int step, enum
continue;
/* DBC register */
- if (gdbarch_byte_order (current_gdbarch) == BFD_ENDIAN_BIG)
+ if (gdbarch_byte_order (target_gdbarch) == BFD_ENDIAN_BIG)
{
switch (ab_type[i])
{
@@ -754,7 +754,7 @@ m32r_wait (ptid_t ptid, struct target_wa
if (last_pc_addr != 0xffffffff)
{
buf[0] = SDI_WRITE_MEMORY;
- if (gdbarch_byte_order (current_gdbarch) == BFD_ENDIAN_BIG)
+ if (gdbarch_byte_order (target_gdbarch) == BFD_ENDIAN_BIG)
store_long_parameter (buf + 1, last_pc_addr);
else
store_long_parameter (buf + 1, last_pc_addr - 1);
@@ -783,7 +783,7 @@ m32r_wait (ptid_t ptid, struct target_wa
address, we have to take care of it later. */
if ((pc_addr & 0x2) != 0)
{
- if (gdbarch_byte_order (current_gdbarch) == BFD_ENDIAN_BIG)
+ if (gdbarch_byte_order (target_gdbarch) == BFD_ENDIAN_BIG)
{
if ((bp_data[i][2] & 0x80) != 0)
{
@@ -845,7 +845,7 @@ m32r_wait (ptid_t ptid, struct target_wa
c = serial_readchar (sdi_desc, SDI_TIMEOUT);
if (c != '-' && recv_data (buf, 4) != -1)
{
- if (gdbarch_byte_order (current_gdbarch) == BFD_ENDIAN_BIG)
+ if (gdbarch_byte_order (target_gdbarch) == BFD_ENDIAN_BIG)
{
if ((buf[3] & 0x1) == 0x1)
hit_watchpoint_addr = ab_address[i];
diff -urNp gdb-orig/gdb/remote-mips.c gdb-head/gdb/remote-mips.c
--- gdb-orig/gdb/remote-mips.c 2008-07-19 17:23:19.000000000 +0200
+++ gdb-head/gdb/remote-mips.c 2008-08-26 00:42:36.000000000 +0200
@@ -1593,10 +1593,10 @@ static void
mips_open (char *name, int from_tty)
{
const char *monitor_prompt = NULL;
- if (gdbarch_bfd_arch_info (current_gdbarch) != NULL
- && gdbarch_bfd_arch_info (current_gdbarch)->arch == bfd_arch_mips)
+ if (gdbarch_bfd_arch_info (target_gdbarch) != NULL
+ && gdbarch_bfd_arch_info (target_gdbarch)->arch == bfd_arch_mips)
{
- switch (gdbarch_bfd_arch_info (current_gdbarch)->mach)
+ switch (gdbarch_bfd_arch_info (target_gdbarch)->mach)
{
case bfd_mach_mips4100:
case bfd_mach_mips4300:
@@ -2417,7 +2417,7 @@ mips_common_breakpoint (int set, CORE_AD
int rpid, rerrflg, rresponse, rlen;
int nfields;
- addr = gdbarch_addr_bits_remove (current_gdbarch, addr);
+ addr = gdbarch_addr_bits_remove (target_gdbarch, addr);
if (mips_monitor == MON_LSI)
{
diff -urNp gdb-orig/gdb/solib.c gdb-head/gdb/solib.c
--- gdb-orig/gdb/solib.c 2008-07-19 17:23:19.000000000 +0200
+++ gdb-head/gdb/solib.c 2008-08-26 00:41:54.000000000 +0200
@@ -142,7 +142,7 @@ The search path for loading non-absolute
int
solib_open (char *in_pathname, char **found_pathname)
{
- struct target_so_ops *ops = solib_ops (current_gdbarch);
+ struct target_so_ops *ops = solib_ops (target_gdbarch);
int found_file = -1;
char *temp_pathname = NULL;
char *p = in_pathname;
@@ -321,7 +321,7 @@ solib_map_sections (void *arg)
for (p = so->sections; p < so->sections_end; p++)
{
- struct target_so_ops *ops = solib_ops (current_gdbarch);
+ 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
@@ -369,7 +369,7 @@ solib_map_sections (void *arg)
void
free_so (struct so_list *so)
{
- struct target_so_ops *ops = solib_ops (current_gdbarch);
+ struct target_so_ops *ops = solib_ops (target_gdbarch);
char *bfd_filename = 0;
if (so->sections)
@@ -490,7 +490,7 @@ solib_read_symbols (struct so_list *so,
static void
update_solib_list (int from_tty, struct target_ops *target)
{
- struct target_so_ops *ops = solib_ops (current_gdbarch);
+ struct target_so_ops *ops = solib_ops (target_gdbarch);
struct so_list *inferior = ops->current_sos();
struct so_list *gdb, **gdb_link;
@@ -705,7 +705,7 @@ solib_add (char *pattern, int from_tty,
if (loaded_any_symbols)
{
- struct target_so_ops *ops = solib_ops (current_gdbarch);
+ struct target_so_ops *ops = solib_ops (target_gdbarch);
/* Getting new symbols may change our opinion about what is
frameless. */
@@ -741,7 +741,7 @@ info_sharedlibrary_command (char *ignore
int addr_width;
/* "0x", a little whitespace, and two hex digits per byte of pointers. */
- addr_width = 4 + (gdbarch_ptr_bit (current_gdbarch) / 4);
+ addr_width = 4 + (gdbarch_ptr_bit (target_gdbarch) / 4);
update_solib_list (from_tty, 0);
@@ -824,7 +824,7 @@ solib_address (CORE_ADDR address)
void
clear_solib (void)
{
- struct target_so_ops *ops = solib_ops (current_gdbarch);
+ struct target_so_ops *ops = solib_ops (target_gdbarch);
/* This function is expected to handle ELF shared libraries. It is
also used on Solaris, which can run either ELF or a.out binaries
@@ -880,7 +880,7 @@ clear_solib (void)
void
solib_create_inferior_hook (void)
{
- struct target_so_ops *ops = solib_ops (current_gdbarch);
+ struct target_so_ops *ops = solib_ops (target_gdbarch);
ops->solib_create_inferior_hook();
}
@@ -903,7 +903,7 @@ solib_create_inferior_hook (void)
int
in_solib_dynsym_resolve_code (CORE_ADDR pc)
{
- struct target_so_ops *ops = solib_ops (current_gdbarch);
+ struct target_so_ops *ops = solib_ops (target_gdbarch);
return ops->in_dynsym_resolve_code (pc);
}
@@ -973,7 +973,7 @@ solib_global_lookup (const struct objfil
const char *linkage_name,
const domain_enum domain)
{
- struct target_so_ops *ops = solib_ops (current_gdbarch);
+ struct target_so_ops *ops = solib_ops (target_gdbarch);
if (ops->lookup_lib_global_symbol != NULL)
return ops->lookup_lib_global_symbol (objfile, name, linkage_name, domain);
diff -urNp gdb-orig/gdb/solib-frv.c gdb-head/gdb/solib-frv.c
--- gdb-orig/gdb/solib-frv.c 2008-08-22 03:25:29.000000000 +0200
+++ gdb-head/gdb/solib-frv.c 2008-08-26 00:41:54.000000000 +0200
@@ -687,7 +687,7 @@ enable_break2 (void)
return 0;
}
- status = frv_fdpic_loadmap_addresses (current_gdbarch,
+ status = frv_fdpic_loadmap_addresses (target_gdbarch,
&interp_loadmap_addr, 0);
if (status < 0)
{
@@ -876,7 +876,7 @@ frv_relocate_main_executable (void)
int changed;
struct obj_section *osect;
- status = frv_fdpic_loadmap_addresses (current_gdbarch, 0, &exec_addr);
+ status = frv_fdpic_loadmap_addresses (target_gdbarch, 0, &exec_addr);
if (status < 0)
{
diff -urNp gdb-orig/gdb/solib-irix.c gdb-head/gdb/solib-irix.c
--- gdb-orig/gdb/solib-irix.c 2008-05-25 18:19:40.000000000 +0200
+++ gdb-head/gdb/solib-irix.c 2008-08-26 00:41:54.000000000 +0200
@@ -505,9 +505,9 @@ irix_current_sos (void)
read_memory (debug_base,
addr_buf,
- gdbarch_addr_bit (current_gdbarch) / TARGET_CHAR_BIT);
+ gdbarch_addr_bit (target_gdbarch) / TARGET_CHAR_BIT);
lma = extract_mips_address (addr_buf,
- gdbarch_addr_bit (current_gdbarch)
+ gdbarch_addr_bit (target_gdbarch)
/ TARGET_CHAR_BIT);
while (lma)
@@ -611,9 +611,9 @@ irix_open_symbol_file_object (void *from
/* First link map member should be the executable. */
read_memory (debug_base,
addr_buf,
- gdbarch_addr_bit (current_gdbarch) / TARGET_CHAR_BIT);
+ gdbarch_addr_bit (target_gdbarch) / TARGET_CHAR_BIT);
lma = extract_mips_address (addr_buf,
- gdbarch_addr_bit (current_gdbarch)
+ gdbarch_addr_bit (target_gdbarch)
/ TARGET_CHAR_BIT);
if (lma == 0)
return 0; /* failed somehow... */
diff -urNp gdb-orig/gdb/solib-sunos.c gdb-head/gdb/solib-sunos.c
--- gdb-orig/gdb/solib-sunos.c 2008-08-22 03:25:29.000000000 +0200
+++ gdb-head/gdb/solib-sunos.c 2008-08-26 00:44:10.000000000 +0200
@@ -780,9 +780,9 @@ sunos_solib_create_inferior_hook (void)
the GDB software break point list. Thus we have to adjust the
PC here. */
- if (gdbarch_decr_pc_after_break (current_gdbarch))
+ if (gdbarch_decr_pc_after_break (target_gdbarch))
{
- stop_pc -= gdbarch_decr_pc_after_break (current_gdbarch);
+ stop_pc -= gdbarch_decr_pc_after_break (target_gdbarch);
write_pc (stop_pc);
}
diff -urNp gdb-orig/gdb/solib-svr4.c gdb-head/gdb/solib-svr4.c
--- gdb-orig/gdb/solib-svr4.c 2008-08-22 03:25:29.000000000 +0200
+++ gdb-head/gdb/solib-svr4.c 2008-08-26 00:41:54.000000000 +0200
@@ -909,7 +909,7 @@ exec_entry_point (struct bfd *abfd, stru
gdbarch_convert_from_func_ptr_addr(). The method
gdbarch_convert_from_func_ptr_addr() is the merely the identify
function for targets which don't use function descriptors. */
- return gdbarch_convert_from_func_ptr_addr (current_gdbarch,
+ return gdbarch_convert_from_func_ptr_addr (target_gdbarch,
bfd_get_start_address (abfd),
targ);
}
@@ -987,7 +987,7 @@ enable_break (void)
struct obj_section *os;
sym_addr = gdbarch_addr_bits_remove
- (current_gdbarch, gdbarch_convert_from_func_ptr_addr (current_gdbarch,
+ (target_gdbarch, gdbarch_convert_from_func_ptr_addr (target_gdbarch,
sym_addr,
¤t_target));
@@ -1149,7 +1149,7 @@ enable_break (void)
/* Convert 'sym_addr' from a function pointer to an address.
Because we pass tmp_bfd_target instead of the current
target, this will always produce an unrelocated value. */
- sym_addr = gdbarch_convert_from_func_ptr_addr (current_gdbarch,
+ sym_addr = gdbarch_convert_from_func_ptr_addr (target_gdbarch,
sym_addr,
tmp_bfd_target);
@@ -1455,12 +1455,12 @@ svr4_free_so (struct so_list *so)
static CORE_ADDR
svr4_truncate_ptr (CORE_ADDR addr)
{
- if (gdbarch_ptr_bit (current_gdbarch) == sizeof (CORE_ADDR) * 8)
+ if (gdbarch_ptr_bit (target_gdbarch) == sizeof (CORE_ADDR) * 8)
/* We don't need to truncate anything, and the bit twiddling below
will fail due to overflow problems. */
return addr;
else
- return addr & (((CORE_ADDR) 1 << gdbarch_ptr_bit (current_gdbarch)) - 1);
+ return addr & (((CORE_ADDR) 1 << gdbarch_ptr_bit (target_gdbarch)) - 1);
}
@@ -1518,7 +1518,7 @@ set_solib_svr4_fetch_link_map_offsets (s
static struct link_map_offsets *
svr4_fetch_link_map_offsets (void)
{
- struct solib_svr4_ops *ops = gdbarch_data (current_gdbarch, solib_svr4_data);
+ struct solib_svr4_ops *ops = gdbarch_data (target_gdbarch, solib_svr4_data);
gdb_assert (ops->fetch_link_map_offsets);
return ops->fetch_link_map_offsets ();
@@ -1529,7 +1529,7 @@ svr4_fetch_link_map_offsets (void)
static int
svr4_have_link_map_offsets (void)
{
- struct solib_svr4_ops *ops = gdbarch_data (current_gdbarch, solib_svr4_data);
+ struct solib_svr4_ops *ops = gdbarch_data (target_gdbarch, solib_svr4_data);
return (ops->fetch_link_map_offsets != NULL);
}
diff -urNp gdb-orig/gdb/target.c gdb-head/gdb/target.c
--- gdb-orig/gdb/target.c 2008-08-22 03:25:29.000000000 +0200
+++ gdb-head/gdb/target.c 2008-08-26 00:41:54.000000000 +0200
@@ -826,7 +826,7 @@ target_translate_tls_address (struct obj
volatile CORE_ADDR addr = 0;
if (target_get_thread_local_address_p ()
- && gdbarch_fetch_tls_load_module_address_p (current_gdbarch))
+ && gdbarch_fetch_tls_load_module_address_p (target_gdbarch))
{
ptid_t ptid = inferior_ptid;
volatile struct gdb_exception ex;
@@ -836,7 +836,7 @@ target_translate_tls_address (struct obj
CORE_ADDR lm_addr;
/* Fetch the load module address for this objfile. */
- lm_addr = gdbarch_fetch_tls_load_module_address (current_gdbarch,
+ lm_addr = gdbarch_fetch_tls_load_module_address (target_gdbarch,
objfile);
/* If it's 0, throw the appropriate exception. */
if (lm_addr == 0)
diff -urNp gdb-orig/gdb/target-descriptions.c gdb-head/gdb/target-descriptions.c
--- gdb-orig/gdb/target-descriptions.c 2008-08-25 22:55:59.000000000 +0200
+++ gdb-head/gdb/target-descriptions.c 2008-08-26 00:41:54.000000000 +0200
@@ -183,7 +183,7 @@ target_find_description (void)
/* The current architecture should not have any target description
specified. It should have been cleared, e.g. when we
disconnected from the previous target. */
- gdb_assert (gdbarch_target_desc (current_gdbarch) == NULL);
+ gdb_assert (gdbarch_target_desc (target_gdbarch) == NULL);
/* First try to fetch an XML description from the user-specified
file. */
@@ -216,7 +216,7 @@ target_find_description (void)
{
struct tdesc_arch_data *data;
- data = gdbarch_data (current_gdbarch, tdesc_data);
+ data = gdbarch_data (target_gdbarch, tdesc_data);
if (tdesc_has_registers (current_target_desc)
&& data->registers == NULL)
warning (_("Target-supplied registers are not supported "
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
Ulrich.Weigand@de.ibm.com