Index: src/binutils/dwarf.c =================================================================== --- src.orig/binutils/dwarf.c 2011-02-17 11:00:34.000000000 +0100 +++ src/binutils/dwarf.c 2011-02-17 14:30:11.291550300 +0100 @@ -123,10 +123,10 @@ print_dwarf_vma (dwarf_vma val, unsigned fputs (buff + (byte_size == 4 ? 8 : 0), stdout); } -unsigned long int +dw2_vma_t read_leb128 (unsigned char *data, unsigned int *length_return, int sign) { - unsigned long int result = 0; + dw2_vma_t result = 0; unsigned int num_read = 0; unsigned int shift = 0; unsigned char byte; @@ -136,7 +136,7 @@ read_leb128 (unsigned char *data, unsign byte = *data++; num_read++; - result |= ((unsigned long int) (byte & 0x7f)) << shift; + result |= ((dw2_vma_t) (byte & 0x7f)) << shift; shift += 7; @@ -193,7 +193,7 @@ process_extended_line_op (unsigned char unsigned int bytes_read; unsigned int len; unsigned char *name; - unsigned long adr; + dw2_vma_t adr; len = read_leb128 (data, & bytes_read, 0); data += bytes_read; @@ -218,7 +218,7 @@ process_extended_line_op (unsigned char case DW_LNE_set_address: adr = byte_get (data, len - bytes_read - 1); - printf (_("set Address to 0x%lx\n"), adr); + printf (_("set Address to 0x%" DW2_VMA_FMT "x\n"), adr); state_machine_regs.address = adr; state_machine_regs.op_index = 0; break; @@ -230,16 +230,17 @@ process_extended_line_op (unsigned char printf (" %d\t", ++state_machine_regs.last_file_entry); name = data; data += strlen ((char *) data) + 1; - printf ("%lu\t", read_leb128 (data, & bytes_read, 0)); + printf ("%" DW2_VMA_FMT "u\t", read_leb128 (data, & bytes_read, 0)); data += bytes_read; - printf ("%lu\t", read_leb128 (data, & bytes_read, 0)); + printf ("%" DW2_VMA_FMT "u\t", + read_leb128 (data, & bytes_read, 0)); data += bytes_read; - printf ("%lu\t", read_leb128 (data, & bytes_read, 0)); + printf ("%" DW2_VMA_FMT "u\t", read_leb128 (data, & bytes_read, 0)); printf ("%s\n\n", name); break; case DW_LNE_set_discriminator: - printf (_("set Discriminator to %lu\n"), + printf (_("set Discriminator to %" DW2_VMA_FMT "u\n"), read_leb128 (data, & bytes_read, 0)); break; @@ -291,7 +292,7 @@ process_extended_line_op (unsigned char } static const char * -fetch_indirect_string (unsigned long offset) +fetch_indirect_string (dw2_vma_t offset) { struct dwarf_section *section = &debug_displays [str].section; @@ -302,7 +303,7 @@ fetch_indirect_string (unsigned long off offset -= section->address; if (offset > section->size) { - warn (_("DW_FORM_strp offset too big: %lx\n"), offset); + warn (_("DW_FORM_strp offset too big: %lx\n"), (long) offset); return _(""); } @@ -605,13 +606,13 @@ decode_location_expression (unsigned cha unsigned int pointer_size, unsigned int offset_size, int dwarf_version, - unsigned long length, - unsigned long cu_offset, + dw2_vma_t length, + dw2_vma_t cu_offset, struct dwarf_section * section) { unsigned op; unsigned int bytes_read; - unsigned long uvalue; + dw2_vma_t uvalue; unsigned char *end = data + length; int need_frame_base = 0; @@ -662,11 +663,13 @@ decode_location_expression (unsigned cha data += 8; break; case DW_OP_constu: - printf ("DW_OP_constu: %lu", read_leb128 (data, &bytes_read, 0)); + printf ("DW_OP_constu: %" DW2_VMA_FMT "u", + read_leb128 (data, &bytes_read, 0)); data += bytes_read; break; case DW_OP_consts: - printf ("DW_OP_consts: %ld", read_leb128 (data, &bytes_read, 1)); + printf ("DW_OP_consts: %" DW2_VMA_FMT "d", + read_leb128 (data, &bytes_read, 1)); data += bytes_read; break; case DW_OP_dup: @@ -721,7 +724,7 @@ decode_location_expression (unsigned cha printf ("DW_OP_plus"); break; case DW_OP_plus_uconst: - printf ("DW_OP_plus_uconst: %lu", + printf ("DW_OP_plus_uconst: %" DW2_VMA_FMT "u", read_leb128 (data, &bytes_read, 0)); data += bytes_read; break; @@ -867,7 +870,8 @@ decode_location_expression (unsigned cha case DW_OP_breg29: case DW_OP_breg30: case DW_OP_breg31: - printf ("DW_OP_breg%d (%s): %ld", op - DW_OP_breg0, + printf ("DW_OP_breg%d (%s): %" DW2_VMA_FMT "d", + op - DW_OP_breg0, regname (op - DW_OP_breg0, 1), read_leb128 (data, &bytes_read, 1)); data += bytes_read; @@ -876,22 +880,26 @@ decode_location_expression (unsigned cha case DW_OP_regx: uvalue = read_leb128 (data, &bytes_read, 0); data += bytes_read; - printf ("DW_OP_regx: %lu (%s)", uvalue, regname (uvalue, 1)); + printf ("DW_OP_regx: %" DW2_VMA_FMT "u (%s)", + uvalue, regname (uvalue, 1)); break; case DW_OP_fbreg: need_frame_base = 1; - printf ("DW_OP_fbreg: %ld", read_leb128 (data, &bytes_read, 1)); + printf ("DW_OP_fbreg: %" DW2_VMA_FMT "d", + read_leb128 (data, &bytes_read, 1)); data += bytes_read; break; case DW_OP_bregx: uvalue = read_leb128 (data, &bytes_read, 0); data += bytes_read; - printf ("DW_OP_bregx: %lu (%s) %ld", uvalue, regname (uvalue, 1), + printf ("DW_OP_bregx: %" DW2_VMA_FMT "u (%s) %" DW2_VMA_FMT "d", + uvalue, regname (uvalue, 1), read_leb128 (data, &bytes_read, 1)); data += bytes_read; break; case DW_OP_piece: - printf ("DW_OP_piece: %lu", read_leb128 (data, &bytes_read, 0)); + printf ("DW_OP_piece: %" DW2_VMA_FMT "u", + read_leb128 (data, &bytes_read, 0)); data += bytes_read; break; case DW_OP_deref_size: @@ -911,13 +919,15 @@ decode_location_expression (unsigned cha case DW_OP_call2: /* XXX: Strictly speaking for 64-bit DWARF3 files this ought to be an 8-byte wide computation. */ - printf ("DW_OP_call2: <0x%lx>", (long) byte_get (data, 2) + cu_offset); + printf ("DW_OP_call2: <0x%" DW2_VMA_FMT "x>", + (dw2_svma_t) byte_get (data, 2) + cu_offset); data += 2; break; case DW_OP_call4: /* XXX: Strictly speaking for 64-bit DWARF3 files this ought to be an 8-byte wide computation. */ - printf ("DW_OP_call4: <0x%lx>", (long) byte_get (data, 4) + cu_offset); + printf ("DW_OP_call4: <0x%" DW2_VMA_FMT "x>", + (dw2_svma_t) byte_get (data, 4) + cu_offset); data += 4; break; case DW_OP_call_ref: @@ -950,9 +960,11 @@ decode_location_expression (unsigned cha break; case DW_OP_bit_piece: printf ("DW_OP_bit_piece: "); - printf ("size: %lu ", read_leb128 (data, &bytes_read, 0)); + printf ("size: %" DW2_VMA_FMT "u ", + read_leb128 (data, &bytes_read, 0)); data += bytes_read; - printf ("offset: %lu ", read_leb128 (data, &bytes_read, 0)); + printf ("offset: %" DW2_VMA_FMT "u ", + read_leb128 (data, &bytes_read, 0)); data += bytes_read; break; @@ -1001,16 +1013,20 @@ decode_location_expression (unsigned cha } if (dwarf_version == 2) { - printf ("DW_OP_GNU_implicit_pointer: <0x%lx> %ld", - (long) byte_get (data, pointer_size), - read_leb128 (data + pointer_size, &bytes_read, 1)); + printf ("DW_OP_GNU_implicit_pointer: " + "<0x%" DW2_VMA_FMT "x> %" DW2_VMA_FMT "d", + (dw2_vma_t) byte_get (data, pointer_size), + (dw2_svma_t) read_leb128 (data + pointer_size, + &bytes_read, 1)); data += pointer_size + bytes_read; } else { - printf ("DW_OP_GNU_implicit_pointer: <0x%lx> %ld", - (long) byte_get (data, offset_size), - read_leb128 (data + offset_size, &bytes_read, 1)); + printf ("DW_OP_GNU_implicit_pointer: " + "<0x%" DW2_VMA_FMT "x> %" DW2_VMA_FMT "d", + (dw2_vma_t) byte_get (data, offset_size), + (dw2_svma_t) read_leb128 (data + offset_size, + &bytes_read, 1)); data += offset_size + bytes_read; } break; @@ -1072,15 +1088,15 @@ static unsigned char * read_and_display_attr_value (unsigned long attribute, unsigned long form, unsigned char * data, - unsigned long cu_offset, - unsigned long pointer_size, - unsigned long offset_size, + dw2_vma_t cu_offset, + dw2_vma_t pointer_size, + dw2_vma_t offset_size, int dwarf_version, debug_info * debug_info_p, int do_loc, struct dwarf_section * section) { - unsigned long uvalue = 0; + dw2_vma_t uvalue = 0; unsigned char *block_start = NULL; unsigned char * orig_data = data; unsigned int bytes_read; @@ -1167,7 +1183,7 @@ read_and_display_attr_value (unsigned lo { case DW_FORM_ref_addr: if (!do_loc) - printf (" <0x%lx>", uvalue); + printf (" <0x%" DW2_VMA_FMT "x>", uvalue); break; case DW_FORM_ref1: @@ -1175,14 +1191,14 @@ read_and_display_attr_value (unsigned lo case DW_FORM_ref4: case DW_FORM_ref_udata: if (!do_loc) - printf (" <0x%lx>", uvalue + cu_offset); + printf (" <0x%" DW2_VMA_FMT "x>", uvalue + cu_offset); break; case DW_FORM_data4: case DW_FORM_addr: case DW_FORM_sec_offset: if (!do_loc) - printf (" 0x%lx", uvalue); + printf (" 0x%" DW2_VMA_FMT "x", uvalue); break; case DW_FORM_flag_present: @@ -1192,7 +1208,7 @@ read_and_display_attr_value (unsigned lo case DW_FORM_sdata: case DW_FORM_udata: if (!do_loc) - printf (" %ld", uvalue); + printf (" %" DW2_VMA_FMT "d", uvalue); break; case DW_FORM_ref8: @@ -1200,7 +1216,7 @@ read_and_display_attr_value (unsigned lo if (!do_loc) { uvalue = byte_get (data, 4); - printf (" 0x%lx", uvalue); + printf (" 0x%" DW2_VMA_FMT "x", uvalue); printf (" 0x%lx", (unsigned long) byte_get (data + 4, 4)); } if ((do_loc || do_debug_loc || do_debug_ranges) @@ -1209,7 +1225,7 @@ read_and_display_attr_value (unsigned lo if (sizeof (uvalue) == 8) uvalue = byte_get (data, 8); else - error (_("DW_FORM_data8 is unsupported when sizeof (unsigned long) != 8\n")); + error (_("DW_FORM_data8 is unsupported when sizeof (dw2_vma_t) != 8\n")); } data += 8; break; @@ -1259,7 +1275,7 @@ read_and_display_attr_value (unsigned lo case DW_FORM_strp: if (!do_loc) - printf (_(" (indirect string, offset: 0x%lx): %s"), + printf (_(" (indirect string, offset: 0x%" DW2_VMA_FMT "x): %s"), uvalue, fetch_indirect_string (uvalue)); break; @@ -1313,7 +1329,7 @@ read_and_display_attr_value (unsigned lo if (lmax == 0 || num >= lmax) { lmax += 1024; - debug_info_p->loc_offsets = (long unsigned int *) + debug_info_p->loc_offsets = (dw2_vma_t *) xcrealloc (debug_info_p->loc_offsets, lmax, sizeof (*debug_info_p->loc_offsets)); debug_info_p->have_frame_base = (int *) @@ -1344,7 +1360,7 @@ read_and_display_attr_value (unsigned lo if (lmax == 0 || num >= lmax) { lmax += 1024; - debug_info_p->range_lists = (long unsigned int *) + debug_info_p->range_lists = (dw2_vma_t *) xcrealloc (debug_info_p->range_lists, lmax, sizeof (*debug_info_p->range_lists)); debug_info_p->max_range_lists = lmax; @@ -1383,7 +1399,8 @@ read_and_display_attr_value (unsigned lo printf (_("(declared as inline and inlined)")); break; default: - printf (_(" (Unknown inline attribute value: %lx)"), uvalue); + printf (_(" (Unknown inline attribute value: %" DW2_VMA_FMT "x)"), + uvalue); break; } break; @@ -1421,9 +1438,9 @@ read_and_display_attr_value (unsigned lo case DW_LANG_Upc: printf ("(Unified Parallel C)"); break; default: if (uvalue >= DW_LANG_lo_user && uvalue <= DW_LANG_hi_user) - printf ("(implementation defined: %lx)", uvalue); + printf ("(implementation defined: %" DW2_VMA_FMT "x)", uvalue); else - printf ("(Unknown: %lx)", uvalue); + printf ("(Unknown: %" DW2_VMA_FMT "x)", uvalue); break; } break; @@ -1584,7 +1601,7 @@ read_and_display_attr_value (unsigned lo uvalue += cu_offset; if (uvalue >= section->size) - warn (_("Offset %lx used as value for DW_AT_import attribute of DIE at offset %lx is too big.\n"), + warn (_("Offset %" DW2_VMA_FMT "x used as value for DW_AT_import attribute of DIE at offset %lx is too big.\n"), uvalue, (unsigned long) (orig_data - section->start)); else { @@ -1786,9 +1803,9 @@ static unsigned char * read_and_display_attr (unsigned long attribute, unsigned long form, unsigned char * data, - unsigned long cu_offset, - unsigned long pointer_size, - unsigned long offset_size, + dw2_vma_t cu_offset, + dw2_vma_t pointer_size, + dw2_vma_t offset_size, int dwarf_version, debug_info * debug_info_p, int do_loc, @@ -1900,7 +1917,7 @@ process_debug_info (struct dwarf_section unsigned char *hdrptr; unsigned char *tags; int level; - unsigned long cu_offset; + dw2_vma_t cu_offset; int offset_size; int initial_length_size; unsigned char signature[8] = { 0 }; @@ -1970,11 +1987,13 @@ process_debug_info (struct dwarf_section if (!do_loc) { - printf (_(" Compilation Unit @ offset 0x%lx:\n"), cu_offset); - printf (_(" Length: 0x%lx (%s)\n"), compunit.cu_length, + printf (_(" Compilation Unit @ offset 0x%" DW2_VMA_FMT "x:\n"), cu_offset); + printf (_(" Length: 0x%" DW2_VMA_FMT "x (%s)\n"), + compunit.cu_length, initial_length_size == 8 ? "64-bit" : "32-bit"); printf (_(" Version: %d\n"), compunit.cu_version); - printf (_(" Abbrev Offset: %ld\n"), compunit.cu_abbrev_offset); + printf (_(" Abbrev Offset: %" DW2_VMA_FMT "d\n"), + compunit.cu_abbrev_offset); printf (_(" Pointer Size: %d\n"), compunit.cu_pointer_size); if (do_types) { @@ -1990,7 +2009,9 @@ process_debug_info (struct dwarf_section if (cu_offset + compunit.cu_length + initial_length_size > section->size) { - warn (_("Debug info is corrupted, length of CU at %lx extends beyond end of section (length = %lx)\n"), + warn (_("Debug info is corrupted, length of CU at %" + DW2_VMA_FMT "x extends beyond end of section (length = %" + DW2_VMA_FMT "x)\n"), cu_offset, compunit.cu_length); break; } @@ -2001,7 +2022,8 @@ process_debug_info (struct dwarf_section && compunit.cu_version != 3 && compunit.cu_version != 4) { - warn (_("CU at offset %lx contains corrupt or unsupported version number: %d.\n"), + warn (_("CU at offset %" DW2_VMA_FMT "x contains corrupt or " + "unsupported version number: %d.\n"), cu_offset, compunit.cu_version); continue; } @@ -2268,7 +2290,7 @@ display_debug_lines_raw (struct dwarf_se linfo.li_line_base >>= 24; printf (_(" Offset: 0x%lx\n"), hdroff); - printf (_(" Length: %ld\n"), linfo.li_length); + printf (_(" Length: %ld\n"), (long) linfo.li_length); printf (_(" DWARF Version: %d\n"), linfo.li_version); printf (_(" Prologue Length: %d\n"), linfo.li_prologue_length); printf (_(" Minimum Instruction Length: %d\n"), linfo.li_min_insn_length); @@ -2329,11 +2351,14 @@ display_debug_lines_raw (struct dwarf_se data += strlen ((char *) data) + 1; - printf ("%lu\t", read_leb128 (data, & bytes_read, 0)); + printf ("%" DW2_VMA_FMT "u\t", + read_leb128 (data, & bytes_read, 0)); data += bytes_read; - printf ("%lu\t", read_leb128 (data, & bytes_read, 0)); + printf ("%" DW2_VMA_FMT "u\t", + read_leb128 (data, & bytes_read, 0)); data += bytes_read; - printf ("%lu\t", read_leb128 (data, & bytes_read, 0)); + printf ("%" DW2_VMA_FMT "u\t", + read_leb128 (data, & bytes_read, 0)); data += bytes_read; printf ("%s\n", name); } @@ -2505,7 +2530,8 @@ display_debug_lines_raw (struct dwarf_se for (i = standard_opcodes[op_code - 1]; i > 0 ; --i) { - printf ("0x%lx%s", read_leb128 (data, &bytes_read, 0), + printf ("0x%" DW2_VMA_FMT "x%s", + read_leb128 (data, &bytes_read, 0), i == 1 ? "" : ", "); data += bytes_read; } @@ -2918,7 +2944,8 @@ display_debug_lines_decoded (struct dwar for (i = standard_opcodes[op_code - 1]; i > 0 ; --i) { - printf ("0x%lx%s", read_leb128 (data, &bytes_read, 0), + printf ("0x%" DW2_VMA_FMT "x%s", + read_leb128 (data, &bytes_read, 0), i == 1 ? "" : ", "); data += bytes_read; } @@ -3076,7 +3103,7 @@ display_debug_pubnames (struct dwarf_sec && num_debug_info_entries > 0 && find_debug_info_for_offset (names.pn_offset) == NULL) warn (_(".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"), - names.pn_offset, section->name); + (unsigned long) names.pn_offset, section->name); names.pn_size = byte_get (data, offset_size); data += offset_size; @@ -3097,13 +3124,13 @@ display_debug_pubnames (struct dwarf_sec } printf (_(" Length: %ld\n"), - names.pn_length); + (long) names.pn_length); printf (_(" Version: %d\n"), names.pn_version); printf (_(" Offset into .debug_info section: 0x%lx\n"), - names.pn_offset); + (unsigned long) names.pn_offset); printf (_(" Size of area in .debug_info section: %ld\n"), - names.pn_size); + (long) names.pn_size); printf (_("\n Offset\tName\n")); @@ -3323,7 +3350,7 @@ display_debug_loc (struct dwarf_section /* DWARF sections under Mach-O have non-zero addresses. */ if (debug_information [first].num_loc_offsets > 0 && debug_information [first].loc_offsets [0] != section->address) - warn (_("Location lists in %s section start at 0x%lx\n"), + warn (_("Location lists in %s section start at 0x%" DW2_VMA_FMT "x\n"), section->name, debug_information [first].loc_offsets [0]); printf (_("Contents of the %s section:\n\n"), section->name); @@ -3596,7 +3623,7 @@ display_debug_aranges (struct dwarf_sect && num_debug_info_entries > 0 && find_debug_info_for_offset (arange.ar_info_offset) == NULL) warn (_(".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"), - arange.ar_info_offset, section->name); + (unsigned long) arange.ar_info_offset, section->name); arange.ar_pointer_size = byte_get (hdrptr, 1); hdrptr += 1; @@ -3610,9 +3637,11 @@ display_debug_aranges (struct dwarf_sect break; } - printf (_(" Length: %ld\n"), arange.ar_length); + printf (_(" Length: %ld\n"), + (long) arange.ar_length); printf (_(" Version: %d\n"), arange.ar_version); - printf (_(" Offset into .debug_info: 0x%lx\n"), arange.ar_info_offset); + printf (_(" Offset into .debug_info: 0x%lx\n"), + (unsigned long) arange.ar_info_offset); printf (_(" Pointer Size: %d\n"), arange.ar_pointer_size); printf (_(" Segment Size: %d\n"), arange.ar_segment_size); Index: src/binutils/dwarf.h =================================================================== --- src.orig/binutils/dwarf.h 2011-02-17 11:00:34.000000000 +0100 +++ src/binutils/dwarf.h 2011-02-17 11:18:37.972034400 +0100 @@ -19,6 +19,8 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ +#include "dwarf2.h" + typedef unsigned HOST_WIDEST_INT dwarf_vma; typedef unsigned HOST_WIDEST_INT dwarf_size_type; @@ -79,15 +81,15 @@ typedef struct unsigned int pointer_size; unsigned int offset_size; int dwarf_version; - unsigned long cu_offset; - unsigned long base_address; + dw2_vma_t cu_offset; + dw2_vma_t base_address; /* This is an array of offsets to the location list table. */ - unsigned long *loc_offsets; + dw2_vma_t *loc_offsets; int *have_frame_base; unsigned int num_loc_offsets; unsigned int max_loc_offsets; /* List of .debug_ranges offsets seen in this .debug_info. */ - unsigned long *range_lists; + dw2_vma_t *range_lists; unsigned int num_range_lists; unsigned int max_range_lists; } @@ -131,5 +133,5 @@ void *cmalloc (size_t, size_t); void *xcmalloc (size_t, size_t); void *xcrealloc (void *, size_t, size_t); -unsigned long int read_leb128 (unsigned char *data, - unsigned int *length_return, int sign); +dw2_vma_t read_leb128 (unsigned char *data, + unsigned int *length_return, int sign); Index: src/include/dwarf2.h =================================================================== --- src.orig/include/dwarf2.h 2011-02-17 11:00:34.000000000 +0100 +++ src/include/dwarf2.h 2011-02-17 12:22:16.839408800 +0100 @@ -47,6 +47,35 @@ #ifndef _ELF_DWARF2_H #define _ELF_DWARF2_H +#if __STDC_VERSION__ >= 199901L || (defined(__GNUC__) && __GNUC__ >= 2) +/* We need here widest integer type so that even for cross scenarios + a wide enough integer scalar value is used to hold address vma. + Additionally it is necessary here to use for non-LP64 targets the + proper integer scalar value to hold an address. */ +#ifdef __GNUC__ +__extension__ +#endif +typedef unsigned long long dw2_vma_t; +#ifdef __GNUC__ +__extension__ +#endif +typedef signed long long dw2_svma_t; + +#ifndef __MINGW32__ +#define DW2_VMA_FMT "ll" +#else +#define DW2_VMA_FMT "I64" +#endif + +#else + +typedef unsigned long dw2_vma_t; +typedef signed long dw2_svma_t; + +#define DW2_VMA_FMT "l" + +#endif + /* Structure found in the .debug_line section. */ typedef struct { @@ -63,7 +92,7 @@ DWARF2_External_LineInfo; typedef struct { - unsigned long li_length; + dw2_vma_t li_length; unsigned short li_version; unsigned int li_prologue_length; unsigned char li_min_insn_length; @@ -87,10 +116,10 @@ DWARF2_External_PubNames; typedef struct { - unsigned long pn_length; + dw2_vma_t pn_length; unsigned short pn_version; - unsigned long pn_offset; - unsigned long pn_size; + dw2_vma_t pn_offset; + dw2_vma_t pn_size; } DWARF2_Internal_PubNames; @@ -106,9 +135,9 @@ DWARF2_External_CompUnit; typedef struct { - unsigned long cu_length; + dw2_vma_t cu_length; unsigned short cu_version; - unsigned long cu_abbrev_offset; + dw2_vma_t cu_abbrev_offset; unsigned char cu_pointer_size; } DWARF2_Internal_CompUnit; @@ -125,9 +154,9 @@ DWARF2_External_ARange; typedef struct { - unsigned long ar_length; + dw2_vma_t ar_length; unsigned short ar_version; - unsigned long ar_info_offset; + dw2_vma_t ar_info_offset; unsigned char ar_pointer_size; unsigned char ar_segment_size; }