diff options
author | Ian Lance Taylor <ian@airs.com> | 1994-01-25 01:50:46 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1994-01-25 01:50:46 +0000 |
commit | 1fe2801ae61d3c10ea6f3714fbff930640fdadbf (patch) | |
tree | 62156838ef55af0d8f9c2215584435d75b586811 | |
parent | f71babce75525dd94b465135ed96f912b3460ea1 (diff) | |
download | gdb-1fe2801ae61d3c10ea6f3714fbff930640fdadbf.zip gdb-1fe2801ae61d3c10ea6f3714fbff930640fdadbf.tar.gz gdb-1fe2801ae61d3c10ea6f3714fbff930640fdadbf.tar.bz2 |
* ecofflink.c (ecoff_align_debug): Align RFDs to debug_align.
-rw-r--r-- | bfd/ecofflink.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/bfd/ecofflink.c b/bfd/ecofflink.c index e606be6..523a4bf 100644 --- a/bfd/ecofflink.c +++ b/bfd/ecofflink.c @@ -1069,12 +1069,13 @@ ecoff_align_debug (abfd, debug, swap) const struct ecoff_debug_swap *swap; { HDRR * const symhdr = &debug->symbolic_header; - bfd_size_type debug_align, aux_align; + bfd_size_type debug_align, aux_align, rfd_align; size_t add; /* Adjust the counts so that structures are aligned. */ debug_align = swap->debug_align; aux_align = debug_align / sizeof (union aux_ext); + rfd_align = debug_align / swap->external_rfd_size; add = debug_align - (symhdr->cbLine & (debug_align - 1)); if (add != debug_align) @@ -1108,6 +1109,16 @@ ecoff_align_debug (abfd, debug, swap) add * sizeof (union aux_ext)); symhdr->iauxMax += add; } + + add = rfd_align - (symhdr->crfd & (rfd_align - 1)); + if (add != rfd_align) + { + if (debug->external_rfd != (PTR) NULL) + memset (((char *) debug->external_rfd + + symhdr->crfd * swap->external_rfd_size), + 0, add * swap->external_rfd_size); + symhdr->crfd += add; + } } /* Return the size required by the ECOFF debugging information. */ @@ -1300,7 +1311,6 @@ bfd_ecoff_write_accumulated_debug (handle, abfd, debug, swap, info, where) { struct accumulate *ainfo = (struct accumulate *) handle; PTR space; - FDR fdr; if (! ecoff_write_symhdr (abfd, debug, swap, where)) return false; |