aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog8
-rw-r--r--bfd/dwarf2.c17
2 files changed, 21 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index a819c81..71c6cf9 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,9 +1,15 @@
+2002-06-25 Jason Eckhardt <jle@rice.edu>
+
+ * dwarf2.c (decode_line_info): Check unit->addr_size
+ to read in the proper number of prologue bytes.
+
2002-06-25 Nick Clifton <nickc@cambridge.redhat.com>
* config.bfd (powerpc-*-aix5*): Only create a selvecs for
aix5coff64_vec if 64-bit bfd support has been enabled.
(powerpc64-*-aix5*): Only define if 64-bit bfd support has
- been enabled.
+ been enabled.
+
* targets.c (_bfd_target_vector[]): Only include
aix5coff64_vec if 64-bit bfd support has been enabled.
diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
index e3b8e27..008582e 100644
--- a/bfd/dwarf2.c
+++ b/bfd/dwarf2.c
@@ -981,9 +981,20 @@ decode_line_info (unit, stash)
line_ptr = stash->dwarf_line_buffer + unit->line_offset;
/* Read in the prologue. */
- lh.total_length = read_4_bytes (abfd, line_ptr);
- line_ptr += 4;
- offset_size = 4;
+ if (unit->addr_size == 4)
+ {
+ lh.total_length = read_4_bytes (abfd, line_ptr);
+ line_ptr += 4;
+ offset_size = 4;
+ }
+ else
+ {
+ BFD_ASSERT (unit->addr_size == 8);
+ lh.total_length = read_8_bytes (abfd, line_ptr);
+ line_ptr += 8;
+ offset_size = 8;
+ }
+
if (lh.total_length == 0xffffffff)
{
lh.total_length = read_8_bytes (abfd, line_ptr);