diff -urpN src/gdb/ada-valprint.c dev2/gdb/ada-valprint.c --- src/gdb/ada-valprint.c 2007-08-23 20:08:25.000000000 +0200 +++ dev2/gdb/ada-valprint.c 2007-11-05 13:19:49.000000000 +0100 @@ -727,7 +727,9 @@ ada_val_print_1 (struct type *type, cons type_print (type, "", stream, -1); fprintf_filtered (stream, ") "); deprecated_print_address_numeric - (extract_typed_address (valaddr, builtin_type_void_data_ptr), + (extract_typed_address (valaddr, + builtin_type (current_gdbarch) + ->builtin_data_ptr), 1, stream); } else diff -urpN src/gdb/alpha-tdep.c dev2/gdb/alpha-tdep.c --- src/gdb/alpha-tdep.c 2007-11-05 05:32:21.000000000 +0100 +++ dev2/gdb/alpha-tdep.c 2007-11-05 13:18:54.000000000 +0100 @@ -94,7 +94,7 @@ static struct type * alpha_register_type (struct gdbarch *gdbarch, int regno) { if (regno == ALPHA_SP_REGNUM || regno == ALPHA_GP_REGNUM) - return builtin_type_void_data_ptr; + return builtin_type (gdbarch)->builtin_data_ptr; if (regno == ALPHA_PC_REGNUM) return builtin_type_void_func_ptr; diff -urpN src/gdb/amd64-tdep.c dev2/gdb/amd64-tdep.c --- src/gdb/amd64-tdep.c 2007-11-05 05:32:21.000000000 +0100 +++ dev2/gdb/amd64-tdep.c 2007-11-05 13:18:00.000000000 +0100 @@ -90,7 +90,7 @@ amd64_register_type (struct gdbarch *gdb if (regnum >= AMD64_RAX_REGNUM && regnum <= AMD64_RDI_REGNUM) return builtin_type_int64; if (regnum == AMD64_RBP_REGNUM || regnum == AMD64_RSP_REGNUM) - return builtin_type_void_data_ptr; + return builtin_type (gdbarch)->builtin_data_ptr; if (regnum >= AMD64_R8_REGNUM && regnum <= AMD64_R15_REGNUM) return builtin_type_int64; if (regnum == AMD64_RIP_REGNUM) diff -urpN src/gdb/arm-tdep.c dev2/gdb/arm-tdep.c --- src/gdb/arm-tdep.c 2007-11-05 05:32:21.000000000 +0100 +++ dev2/gdb/arm-tdep.c 2007-11-05 13:17:27.000000000 +0100 @@ -1415,7 +1415,7 @@ arm_register_type (struct gdbarch *gdbar if (regnum >= ARM_F0_REGNUM && regnum < ARM_F0_REGNUM + NUM_FREGS) return builtin_type_arm_ext; else if (regnum == ARM_SP_REGNUM) - return builtin_type_void_data_ptr; + return builtin_type (gdbarch)->builtin_data_ptr; else if (regnum == ARM_PC_REGNUM) return builtin_type_void_func_ptr; else if (regnum >= ARRAY_SIZE (arm_register_names)) diff -urpN src/gdb/auxv.c dev2/gdb/auxv.c --- src/gdb/auxv.c 2007-08-23 20:08:26.000000000 +0200 +++ dev2/gdb/auxv.c 2007-11-05 13:16:58.000000000 +0100 @@ -82,7 +82,8 @@ int target_auxv_parse (struct target_ops *ops, gdb_byte **readptr, gdb_byte *endptr, CORE_ADDR *typep, CORE_ADDR *valp) { - const int sizeof_auxv_field = TYPE_LENGTH (builtin_type_void_data_ptr); + const int sizeof_auxv_field + = TYPE_LENGTH (builtin_type (current_gdbarch)->builtin_data_ptr); gdb_byte *ptr = *readptr; if (endptr == ptr) diff -urpN src/gdb/avr-tdep.c dev2/gdb/avr-tdep.c --- src/gdb/avr-tdep.c 2007-11-05 05:32:21.000000000 +0100 +++ dev2/gdb/avr-tdep.c 2007-11-05 13:16:16.000000000 +0100 @@ -213,7 +213,7 @@ avr_register_type (struct gdbarch *gdbar if (reg_nr == AVR_PC_REGNUM) return builtin_type_uint32; if (reg_nr == AVR_SP_REGNUM) - return builtin_type_void_data_ptr; + return builtin_type (gdbarch)->builtin_data_ptr; else return builtin_type_uint8; } diff -urpN src/gdb/bsd-uthread.c dev2/gdb/bsd-uthread.c --- src/gdb/bsd-uthread.c 2007-10-31 05:54:46.000000000 +0100 +++ dev2/gdb/bsd-uthread.c 2007-11-05 13:15:27.000000000 +0100 @@ -280,7 +280,8 @@ bsd_uthread_fetch_registers (struct regc regnum = -1; active_addr = read_memory_typed_address (bsd_uthread_thread_run_addr, - builtin_type_void_data_ptr); + builtin_type (gdbarch) + ->builtin_data_ptr); if (addr != 0 && addr != active_addr) { bsd_uthread_check_magic (addr); @@ -298,7 +299,8 @@ bsd_uthread_store_registers (struct regc CORE_ADDR active_addr; active_addr = read_memory_typed_address (bsd_uthread_thread_run_addr, - builtin_type_void_data_ptr); + builtin_type (gdbarch) + ->builtin_data_ptr); if (addr != 0 && addr != active_addr) { bsd_uthread_check_magic (addr); @@ -344,7 +346,8 @@ bsd_uthread_wait (ptid_t ptid, struct ta /* Fetch the corresponding thread ID, and augment the returned process ID with it. */ addr = read_memory_typed_address (bsd_uthread_thread_run_addr, - builtin_type_void_data_ptr); + builtin_type (current_gdbarch) + ->builtin_data_ptr); if (addr != 0) { gdb_byte buf[4]; @@ -408,7 +411,8 @@ bsd_uthread_find_new_threads (void) CORE_ADDR addr; addr = read_memory_typed_address (bsd_uthread_thread_list_addr, - builtin_type_void_data_ptr); + builtin_type (current_gdbarch) + ->builtin_data_ptr); while (addr != 0) { ptid_t ptid = ptid_build (pid, 0, addr); @@ -417,7 +421,8 @@ bsd_uthread_find_new_threads (void) add_thread (ptid); addr = read_memory_typed_address (addr + offset, - builtin_type_void_data_ptr); + builtin_type (current_gdbarch) + ->builtin_data_ptr); } } diff -urpN src/gdb/cris-tdep.c dev2/gdb/cris-tdep.c --- src/gdb/cris-tdep.c 2007-11-05 05:32:21.000000000 +0100 +++ dev2/gdb/cris-tdep.c 2007-11-05 13:13:48.000000000 +0100 @@ -1680,7 +1680,7 @@ cris_register_type (struct gdbarch *gdba return builtin_type_void_func_ptr; else if (regno == gdbarch_sp_regnum (gdbarch) || regno == CRIS_FP_REGNUM) - return builtin_type_void_data_ptr; + return builtin_type (gdbarch)->builtin_data_ptr; else if ((regno >= 0 && regno < gdbarch_sp_regnum (gdbarch)) || (regno >= MOF_REGNUM && regno <= USP_REGNUM)) /* Note: R8 taken care of previous clause. */ @@ -1701,7 +1701,7 @@ crisv32_register_type (struct gdbarch *g return builtin_type_void_func_ptr; else if (regno == gdbarch_sp_regnum (gdbarch) || regno == CRIS_FP_REGNUM) - return builtin_type_void_data_ptr; + return builtin_type (gdbarch)->builtin_data_ptr; else if ((regno >= 0 && regno <= ACR_REGNUM) || (regno >= EXS_REGNUM && regno <= SPC_REGNUM) || (regno == PID_REGNUM) diff -urpN src/gdb/dwarf2-frame.c dev2/gdb/dwarf2-frame.c --- src/gdb/dwarf2-frame.c 2007-10-08 14:46:09.000000000 +0200 +++ dev2/gdb/dwarf2-frame.c 2007-11-05 13:13:05.000000000 +0100 @@ -1414,7 +1414,7 @@ size_of_encoded_value (gdb_byte encoding switch (encoding & 0x07) { case DW_EH_PE_absptr: - return TYPE_LENGTH (builtin_type_void_data_ptr); + return TYPE_LENGTH (builtin_type (current_gdbarch)->builtin_data_ptr); case DW_EH_PE_udata2: return 2; case DW_EH_PE_udata4: @@ -1699,7 +1699,7 @@ decode_frame_entry_1 (struct comp_unit * if (augmentation[0] == 'e' && augmentation[1] == 'h') { /* Skip. */ - buf += TYPE_LENGTH (builtin_type_void_data_ptr); + buf += TYPE_LENGTH (builtin_type (current_gdbarch)->builtin_data_ptr); augmentation += 2; } diff -urpN src/gdb/dwarf2loc.c dev2/gdb/dwarf2loc.c --- src/gdb/dwarf2loc.c 2007-10-08 14:46:09.000000000 +0200 +++ dev2/gdb/dwarf2loc.c 2007-11-05 13:12:15.000000000 +0100 @@ -119,7 +119,8 @@ dwarf_expr_read_reg (void *baton, int dw int regnum; regnum = gdbarch_dwarf2_reg_to_regnum (current_gdbarch, dwarf_regnum); - result = address_from_register (builtin_type_void_data_ptr, + result = address_from_register (builtin_type (current_gdbarch) + ->builtin_data_ptr, regnum, debaton->frame); return result; } diff -urpN src/gdb/f-valprint.c dev2/gdb/f-valprint.c --- src/gdb/f-valprint.c 2007-08-23 20:08:31.000000000 +0200 +++ dev2/gdb/f-valprint.c 2007-11-05 13:11:19.000000000 +0100 @@ -102,7 +102,8 @@ f77_get_dynamic_lowerbound (struct type ptr_to_lower_bound = read_memory_typed_address (current_frame_addr + TYPE_ARRAY_LOWER_BOUND_VALUE (type), - builtin_type_void_data_ptr); + builtin_type (current_gdbarch) + ->builtin_data_ptr); *lower_bound = read_memory_integer (ptr_to_lower_bound, 4); } else @@ -168,7 +169,8 @@ f77_get_dynamic_upperbound (struct type ptr_to_upper_bound = read_memory_typed_address (current_frame_addr + TYPE_ARRAY_UPPER_BOUND_VALUE (type), - builtin_type_void_data_ptr); + builtin_type (current_gdbarch) + ->builtin_data_ptr); *upper_bound = read_memory_integer (ptr_to_upper_bound, 4); } else diff -urpN src/gdb/gdbtypes.h dev2/gdb/gdbtypes.h --- src/gdb/gdbtypes.h 2007-11-05 05:32:21.000000000 +0100 +++ dev2/gdb/gdbtypes.h 2007-11-05 13:19:57.000000000 +0100 @@ -1025,8 +1025,6 @@ struct builtin_type extern const struct builtin_type *builtin_type (struct gdbarch *gdbarch); /* Compatibility macros to access types for the current architecture. */ -#define builtin_type_void_data_ptr \ - (builtin_type (current_gdbarch)->builtin_data_ptr) #define builtin_type_void_func_ptr \ (builtin_type (current_gdbarch)->builtin_func_ptr) #define builtin_type_CORE_ADDR \ Binary files src/gdb/.gdbtypes.h.swp and dev2/gdb/.gdbtypes.h.swp differ diff -urpN src/gdb/gnu-v3-abi.c dev2/gdb/gnu-v3-abi.c --- src/gdb/gnu-v3-abi.c 2007-09-23 18:25:05.000000000 +0200 +++ dev2/gdb/gnu-v3-abi.c 2007-11-05 13:09:48.000000000 +0100 @@ -376,8 +376,8 @@ static int gnuv3_baseclass_offset (struct type *type, int index, const bfd_byte *valaddr, CORE_ADDR address) { - struct type *vtable_type = gdbarch_data (current_gdbarch, - vtable_type_gdbarch_data); + struct gdbarch *gdbarch = current_gdbarch; + struct type *vtable_type = gdbarch_data (gdbarch, vtable_type_gdbarch_data); struct value *vtable; struct type *vbasetype; struct value *offset_val, *vbase_array; @@ -399,10 +399,11 @@ gnuv3_baseclass_offset (struct type *typ error (_("Expected a negative vbase offset (old compiler?)")); cur_base_offset = cur_base_offset + vtable_address_point_offset (); - if ((- cur_base_offset) % TYPE_LENGTH (builtin_type_void_data_ptr) != 0) + if ((- cur_base_offset) + % TYPE_LENGTH (builtin_type (gdbarch)->builtin_data_ptr) != 0) error (_("Misaligned vbase offset.")); cur_base_offset = cur_base_offset - / ((int) TYPE_LENGTH (builtin_type_void_data_ptr)); + / ((int) TYPE_LENGTH (builtin_type (gdbarch)->builtin_data_ptr)); /* We're now looking for the cur_base_offset'th entry (negative index) in the vcall_and_vbase_offsets array. We used to cast the object to @@ -424,8 +425,9 @@ gnuv3_baseclass_offset (struct type *typ error (_("Illegal vptr offset in class %s"), TYPE_NAME (vbasetype) ? TYPE_NAME (vbasetype) : ""); - vtable_address = value_as_address (value_at_lazy (builtin_type_void_data_ptr, - address)); + vtable_address + = value_as_address (value_at_lazy (builtin_type (gdbarch)->builtin_data_ptr, + address)); vtable = value_at_lazy (vtable_type, vtable_address - vtable_address_point_offset ()); offset_val = value_from_longest(builtin_type_int, cur_base_offset); @@ -576,7 +578,7 @@ gnuv3_print_method_ptr (const gdb_byte * static int gnuv3_method_ptr_size (void) { - return 2 * TYPE_LENGTH (builtin_type_void_data_ptr); + return 2 * TYPE_LENGTH (builtin_type (current_gdbarch)->builtin_data_ptr); } /* GNU v3 implementation of cplus_make_method_ptr. */ @@ -584,7 +586,7 @@ gnuv3_method_ptr_size (void) static void gnuv3_make_method_ptr (gdb_byte *contents, CORE_ADDR value, int is_virtual) { - int size = TYPE_LENGTH (builtin_type_void_data_ptr); + int size = TYPE_LENGTH (builtin_type (current_gdbarch)->builtin_data_ptr); /* FIXME drow/2006-12-24: The adjustment of "this" is currently always zero, since the method pointer is of the correct type. @@ -659,7 +661,8 @@ gnuv3_method_ptr_to_value (struct value You can provoke this case by casting a Base::* to a Derived::*, for instance. */ - *this_p = value_cast (builtin_type_void_data_ptr, *this_p); + *this_p + = value_cast (builtin_type (current_gdbarch)->builtin_data_ptr, *this_p); adjval = value_from_longest (builtin_type_long, adjustment); *this_p = value_add (*this_p, adjval); *this_p = value_cast (final_type, *this_p); diff -urpN src/gdb/h8300-tdep.c dev2/gdb/h8300-tdep.c --- src/gdb/h8300-tdep.c 2007-11-05 05:32:21.000000000 +0100 +++ dev2/gdb/h8300-tdep.c 2007-11-05 13:06:10.000000000 +0100 @@ -1134,7 +1134,7 @@ h8300_register_type (struct gdbarch *gdb return builtin_type_void_func_ptr; case E_SP_REGNUM: case E_FP_REGNUM: - return builtin_type_void_data_ptr; + return builtin_type (gdbarch)->builtin_data_ptr; default: if (regno == E_PSEUDO_CCR_REGNUM) return builtin_type_uint8; diff -urpN src/gdb/i386-tdep.c dev2/gdb/i386-tdep.c --- src/gdb/i386-tdep.c 2007-11-05 05:32:21.000000000 +0100 +++ dev2/gdb/i386-tdep.c 2007-11-05 13:05:34.000000000 +0100 @@ -1268,7 +1268,8 @@ i386_get_longjmp_target (struct frame_in { gdb_byte buf[8]; CORE_ADDR sp, jb_addr; - int jb_pc_offset = gdbarch_tdep (get_frame_arch (frame))->jb_pc_offset; + struct gdbarch *gdbarch = get_frame_arch (frame); + int jb_pc_offset = gdbarch_tdep (gdbarch)->jb_pc_offset; int len = TYPE_LENGTH (builtin_type_void_func_ptr); /* If JB_PC_OFFSET is -1, we have no way to find out where the @@ -1278,12 +1279,13 @@ i386_get_longjmp_target (struct frame_in /* Don't use I386_ESP_REGNUM here, since this function is also used for AMD64. */ - get_frame_register (frame, gdbarch_sp_regnum (get_frame_arch (frame)), buf); - sp = extract_typed_address (buf, builtin_type_void_data_ptr); + get_frame_register (frame, gdbarch_sp_regnum (gdbarch), buf); + sp = extract_typed_address (buf, builtin_type (gdbarch)->builtin_data_ptr); if (target_read_memory (sp + len, buf, len)) return 0; - jb_addr = extract_typed_address (buf, builtin_type_void_data_ptr); + jb_addr = extract_typed_address (buf, + builtin_type (gdbarch)->builtin_data_ptr); if (target_read_memory (jb_addr + jb_pc_offset, buf, len)) return 0; @@ -1738,7 +1740,7 @@ i386_register_type (struct gdbarch *gdba return i386_eflags_type; if (regnum == I386_EBP_REGNUM || regnum == I386_ESP_REGNUM) - return builtin_type_void_data_ptr; + return builtin_type (gdbarch)->builtin_data_ptr; if (i386_fp_regnum_p (regnum)) return builtin_type_i387_ext; diff -urpN src/gdb/m32r-tdep.c dev2/gdb/m32r-tdep.c --- src/gdb/m32r-tdep.c 2007-11-05 05:32:22.000000000 +0100 +++ dev2/gdb/m32r-tdep.c 2007-11-05 13:03:42.000000000 +0100 @@ -231,7 +231,7 @@ m32r_register_type (struct gdbarch *gdba if (reg_nr == M32R_PC_REGNUM) return builtin_type_void_func_ptr; else if (reg_nr == M32R_SP_REGNUM || reg_nr == M32R_FP_REGNUM) - return builtin_type_void_data_ptr; + return builtin_type (current_gdbarch)->builtin_data_ptr; else return builtin_type_int32; } diff -urpN src/gdb/m68k-tdep.c dev2/gdb/m68k-tdep.c --- src/gdb/m68k-tdep.c 2007-11-05 05:32:22.000000000 +0100 +++ dev2/gdb/m68k-tdep.c 2007-11-05 13:03:09.000000000 +0100 @@ -134,7 +134,7 @@ m68k_register_type (struct gdbarch *gdba return builtin_type_void_func_ptr; if (regnum >= M68K_A0_REGNUM && regnum <= M68K_A0_REGNUM + 7) - return builtin_type_void_data_ptr; + return builtin_type (gdbarch)->builtin_data_ptr; if (regnum == M68K_PS_REGNUM) return m68k_ps_type; diff -urpN src/gdb/m88k-tdep.c dev2/gdb/m88k-tdep.c --- src/gdb/m88k-tdep.c 2007-11-05 05:32:22.000000000 +0100 +++ dev2/gdb/m88k-tdep.c 2007-11-05 13:02:24.000000000 +0100 @@ -79,7 +79,7 @@ m88k_register_type (struct gdbarch *gdba /* R30 and R31 typically contains data addresses. */ if (regnum == M88K_R30_REGNUM || regnum == M88K_R31_REGNUM) - return builtin_type_void_data_ptr; + return builtin_type (gdbarch)->builtin_data_ptr; return builtin_type_int32; } diff -urpN src/gdb/mips-tdep.c dev2/gdb/mips-tdep.c --- src/gdb/mips-tdep.c 2007-11-05 05:32:22.000000000 +0100 +++ dev2/gdb/mips-tdep.c 2007-11-05 13:00:50.000000000 +0100 @@ -809,10 +809,11 @@ mips_pseudo_register_type (struct gdbarc /* Use pointer types for registers if we can. For n32 we can not, since we do not have a 64-bit pointer type. */ - if (mips_abi_regsize (gdbarch) == TYPE_LENGTH (builtin_type_void_data_ptr)) + if (mips_abi_regsize (gdbarch) + == TYPE_LENGTH (builtin_type (gdbarch)->builtin_data_ptr)) { if (rawnum == MIPS_SP_REGNUM || rawnum == MIPS_EMBED_BADVADDR_REGNUM) - return builtin_type_void_data_ptr; + return builtin_type (gdbarch)->builtin_data_ptr; else if (rawnum == MIPS_EMBED_PC_REGNUM) return builtin_type_void_func_ptr; } diff -urpN src/gdb/objc-lang.c dev2/gdb/objc-lang.c --- src/gdb/objc-lang.c 2007-11-05 05:32:22.000000000 +0100 +++ dev2/gdb/objc-lang.c 2007-11-05 12:59:54.000000000 +0100 @@ -1524,7 +1524,8 @@ print_object_command (char *args, int fr int pc = 0; object = expr->language_defn->la_exp_desc->evaluate_exp - (builtin_type_void_data_ptr, expr, &pc, EVAL_NORMAL); + (builtin_type (current_gdbarch)->builtin_data_ptr, + expr, &pc, EVAL_NORMAL); do_cleanups (old_chain); } diff -urpN src/gdb/procfs.c dev2/gdb/procfs.c --- src/gdb/procfs.c 2007-08-23 20:08:36.000000000 +0200 +++ dev2/gdb/procfs.c 2007-11-05 12:58:37.000000000 +0100 @@ -2844,8 +2844,11 @@ procfs_address_to_host_pointer (CORE_ADD { void *ptr; - gdb_assert (sizeof (ptr) == TYPE_LENGTH (builtin_type_void_data_ptr)); - gdbarch_address_to_pointer (current_gdbarch, builtin_type_void_data_ptr, + gdb_assert (sizeof (ptr) + == TYPE_LENGTH (builtin_type (current_gdbarch) + ->builtin_data_ptr)); + gdbarch_address_to_pointer (current_gdbarch, + builtin_type (current_gdbarch)->builtin_data_ptr, &ptr, addr); return ptr; } @@ -5270,7 +5273,8 @@ procfs_can_use_hw_breakpoint (int type, procfs_address_to_host_pointer will reveal that an internal error will be generated when the host and target pointer sizes are different. */ - if (sizeof (void *) != TYPE_LENGTH (builtin_type_void_data_ptr)) + if (sizeof (void *) + != TYPE_LENGTH (builtin_type (current_gdbarch)->builtin_data_ptr)) return 0; /* Other tests here??? */ diff -urpN src/gdb/solib-svr4.c dev2/gdb/solib-svr4.c --- src/gdb/solib-svr4.c 2007-10-24 23:22:08.000000000 +0200 +++ dev2/gdb/solib-svr4.c 2007-11-05 12:56:39.000000000 +0100 @@ -111,7 +111,8 @@ LM_ADDR_FROM_LINK_MAP (struct so_list *s struct link_map_offsets *lmo = svr4_fetch_link_map_offsets (); return extract_typed_address (so->lm_info->lm + lmo->l_addr_offset, - builtin_type_void_data_ptr); + builtin_type (current_gdbarch) + ->builtin_data_ptr); } static int @@ -128,7 +129,8 @@ LM_DYNAMIC_FROM_LINK_MAP (struct so_list struct link_map_offsets *lmo = svr4_fetch_link_map_offsets (); return extract_typed_address (so->lm_info->lm + lmo->l_ld_offset, - builtin_type_void_data_ptr); + builtin_type (current_gdbarch) + ->builtin_data_ptr); } static CORE_ADDR @@ -207,7 +209,8 @@ LM_NEXT (struct so_list *so) struct link_map_offsets *lmo = svr4_fetch_link_map_offsets (); return extract_typed_address (so->lm_info->lm + lmo->l_next_offset, - builtin_type_void_data_ptr); + builtin_type (current_gdbarch) + ->builtin_data_ptr); } static CORE_ADDR @@ -216,7 +219,8 @@ LM_NAME (struct so_list *so) struct link_map_offsets *lmo = svr4_fetch_link_map_offsets (); return extract_typed_address (so->lm_info->lm + lmo->l_name_offset, - builtin_type_void_data_ptr); + builtin_type (current_gdbarch) + ->builtin_data_ptr); } static int @@ -230,7 +234,8 @@ IGNORE_FIRST_LINK_MAP_ENTRY (struct so_l return 0; return extract_typed_address (so->lm_info->lm + lmo->l_prev_offset, - builtin_type_void_data_ptr) == 0; + builtin_type (current_gdbarch) + ->builtin_data_ptr) == 0; } static CORE_ADDR debug_base; /* Base of dynamic linker structures */ @@ -406,8 +411,9 @@ scan_dyntag (int dyntag, bfd *abfd, CORE ptr_addr = dyn_addr + (buf - bufstart) + arch_size / 8; if (target_read_memory (ptr_addr, ptr_buf, arch_size / 8) == 0) - dyn_ptr = extract_typed_address (ptr_buf, - builtin_type_void_data_ptr); + dyn_ptr = extract_typed_address + (ptr_buf, + builtin_type (current_gdbarch)->builtin_data_ptr); *ptr = dyn_ptr; } return 1; @@ -454,13 +460,15 @@ elf_locate_base (void) if (scan_dyntag (DT_MIPS_RLD_MAP, exec_bfd, &dyn_ptr)) { gdb_byte *pbuf; - int pbuf_size = TYPE_LENGTH (builtin_type_void_data_ptr); + int pbuf_size + = TYPE_LENGTH (builtin_type (current_gdbarch)->builtin_data_ptr); pbuf = alloca (pbuf_size); /* DT_MIPS_RLD_MAP contains a pointer to the address of the dynamic link structure. */ if (target_read_memory (dyn_ptr, pbuf, pbuf_size)) return 0; - return extract_typed_address (pbuf, builtin_type_void_data_ptr); + return extract_typed_address + (pbuf, builtin_type (current_gdbarch)->builtin_data_ptr); } /* Find DT_DEBUG. */ @@ -545,7 +553,8 @@ solib_svr4_r_map (void) struct link_map_offsets *lmo = svr4_fetch_link_map_offsets (); return read_memory_typed_address (debug_base + lmo->r_map_offset, - builtin_type_void_data_ptr); + builtin_type (current_gdbarch) + ->builtin_data_ptr); } /* Find the link map for the dynamic linker (if it is not in the @@ -565,7 +574,8 @@ solib_svr4_r_ldsomap (void) return 0; return read_memory_typed_address (debug_base + lmo->r_ldsomap_offset, - builtin_type_void_data_ptr); + builtin_type (current_gdbarch) + ->builtin_data_ptr); } /* @@ -598,7 +608,8 @@ open_symbol_file_object (void *from_ttyp int errcode; int from_tty = *(int *)from_ttyp; struct link_map_offsets *lmo = svr4_fetch_link_map_offsets (); - int l_name_size = TYPE_LENGTH (builtin_type_void_data_ptr); + int l_name_size + = TYPE_LENGTH (builtin_type (current_gdbarch)->builtin_data_ptr); gdb_byte *l_name_buf = xmalloc (l_name_size); struct cleanup *cleanups = make_cleanup (xfree, l_name_buf); @@ -618,7 +629,9 @@ open_symbol_file_object (void *from_ttyp read_memory (lm + lmo->l_name_offset, l_name_buf, l_name_size); /* Convert the address to host format. */ - l_name = extract_typed_address (l_name_buf, builtin_type_void_data_ptr); + l_name = extract_typed_address (l_name_buf, + builtin_type (current_gdbarch) + ->builtin_data_ptr); /* Free l_name_buf. */ do_cleanups (cleanups); @@ -814,7 +827,8 @@ svr4_fetch_objfile_link_map (struct objf struct lm_info objfile_lm_info; struct cleanup *old_chain; CORE_ADDR name_address; - int l_name_size = TYPE_LENGTH (builtin_type_void_data_ptr); + int l_name_size + = TYPE_LENGTH (builtin_type (current_gdbarch)->builtin_data_ptr); gdb_byte *l_name_buf = xmalloc (l_name_size); old_chain = make_cleanup (xfree, l_name_buf); @@ -832,7 +846,8 @@ svr4_fetch_objfile_link_map (struct objf /* Extract this object's name. */ name_address = extract_typed_address (l_name_buf, - builtin_type_void_data_ptr); + builtin_type (current_gdbarch) + ->builtin_data_ptr); target_read_string (name_address, &buffer, SO_NAME_MAX_PATH_SIZE - 1, &errcode); make_cleanup (xfree, buffer); @@ -856,7 +871,8 @@ svr4_fetch_objfile_link_map (struct objf } /* Not the file we wanted, continue checking. */ lm = extract_typed_address (objfile_lm_info.lm + lmo->l_next_offset, - builtin_type_void_data_ptr); + builtin_type (current_gdbarch) + ->builtin_data_ptr); do_cleanups (old_chain); } return 0; diff -urpN src/gdb/sparc64-tdep.c dev2/gdb/sparc64-tdep.c --- src/gdb/sparc64-tdep.c 2007-11-05 05:32:22.000000000 +0100 +++ dev2/gdb/sparc64-tdep.c 2007-11-05 12:48:59.000000000 +0100 @@ -246,7 +246,7 @@ sparc64_register_type (struct gdbarch *g /* Raw registers. */ if (regnum == SPARC_SP_REGNUM || regnum == SPARC_FP_REGNUM) - return builtin_type_void_data_ptr; + return builtin_type (gdbarch)->builtin_data_ptr; if (regnum >= SPARC_G0_REGNUM && regnum <= SPARC_I7_REGNUM) return builtin_type_int64; if (regnum >= SPARC_F0_REGNUM && regnum <= SPARC_F31_REGNUM) diff -urpN src/gdb/sparc-tdep.c dev2/gdb/sparc-tdep.c --- src/gdb/sparc-tdep.c 2007-11-05 05:32:22.000000000 +0100 +++ dev2/gdb/sparc-tdep.c 2007-11-05 12:48:12.000000000 +0100 @@ -337,7 +337,7 @@ sparc32_register_type (struct gdbarch *g return builtin_type_double; if (regnum == SPARC_SP_REGNUM || regnum == SPARC_FP_REGNUM) - return builtin_type_void_data_ptr; + return builtin_type (gdbarch)->builtin_data_ptr; if (regnum == SPARC32_PC_REGNUM || regnum == SPARC32_NPC_REGNUM) return builtin_type_void_func_ptr; diff -urpN src/gdb/spu-tdep.c dev2/gdb/spu-tdep.c --- src/gdb/spu-tdep.c 2007-11-05 05:32:22.000000000 +0100 +++ dev2/gdb/spu-tdep.c 2007-11-05 12:47:36.000000000 +0100 @@ -140,7 +140,7 @@ spu_register_type (struct gdbarch *gdbar return builtin_type_void_func_ptr; case SPU_SP_REGNUM: - return builtin_type_void_data_ptr; + return builtin_type (gdbarch)->builtin_data_ptr; case SPU_FPSCR_REGNUM: return builtin_type_uint128; diff -urpN src/gdb/std-regs.c dev2/gdb/std-regs.c --- src/gdb/std-regs.c 2007-10-22 16:13:19.000000000 +0200 +++ dev2/gdb/std-regs.c 2007-11-05 12:47:02.000000000 +0100 @@ -42,12 +42,14 @@ value_of_builtin_frame_fp_reg (struct fr frame); else { - struct value *val = allocate_value (builtin_type_void_data_ptr); + struct value *val + = allocate_value (builtin_type (gdbarch)->builtin_data_ptr); gdb_byte *buf = value_contents_raw (val); if (frame == NULL) memset (buf, 0, TYPE_LENGTH (value_type (val))); else - gdbarch_address_to_pointer (gdbarch, builtin_type_void_data_ptr, + gdbarch_address_to_pointer (gdbarch, + builtin_type (gdbarch)->builtin_data_ptr, buf, get_frame_base_address (frame)); return val; } @@ -61,12 +63,14 @@ value_of_builtin_frame_pc_reg (struct fr return value_of_register (gdbarch_pc_regnum (gdbarch), frame); else { - struct value *val = allocate_value (builtin_type_void_data_ptr); + struct value *val + = allocate_value (builtin_type (gdbarch)->builtin_data_ptr); gdb_byte *buf = value_contents_raw (val); if (frame == NULL) memset (buf, 0, TYPE_LENGTH (value_type (val))); else - gdbarch_address_to_pointer (gdbarch, builtin_type_void_data_ptr, + gdbarch_address_to_pointer (gdbarch, + builtin_type (gdbarch)->builtin_data_ptr, buf, get_frame_pc (frame)); return val; } diff -urpN src/gdb/target.c dev2/gdb/target.c --- src/gdb/target.c 2007-10-22 16:03:37.000000000 +0200 +++ dev2/gdb/target.c 2007-11-05 12:43:42.000000000 +0100 @@ -1785,7 +1785,8 @@ find_default_create_inferior (char *exec static int default_region_ok_for_hw_watchpoint (CORE_ADDR addr, int len) { - return (len <= TYPE_LENGTH (builtin_type_void_data_ptr)); + return (len + <= TYPE_LENGTH (builtin_type (current_gdbarch)->builtin_data_ptr)); } static int diff -urpN src/gdb/target-descriptions.c dev2/gdb/target-descriptions.c --- src/gdb/target-descriptions.c 2007-11-05 05:32:22.000000000 +0100 +++ dev2/gdb/target-descriptions.c 2007-11-05 12:42:42.000000000 +0100 @@ -572,12 +572,12 @@ tdesc_register_type (struct gdbarch *gdb return builtin_type_long_long; else if (reg->bitsize == gdbarch_ptr_bit (gdbarch)) /* A bit desperate by this point... */ - return builtin_type_void_data_ptr; + return builtin_type (gdbarch)->builtin_data_ptr; } else if (strcmp (reg->type, "code_ptr") == 0) return builtin_type_void_func_ptr; else if (strcmp (reg->type, "data_ptr") == 0) - return builtin_type_void_data_ptr; + return builtin_type (gdbarch)->builtin_data_ptr; else internal_error (__FILE__, __LINE__, "Register \"%s\" has an unknown type \"%s\"",