* ecofflink.c (ecoff_align_debug): Align RFDs to debug_align.

This commit is contained in:
Ian Lance Taylor 1994-01-25 01:50:46 +00:00
parent f71babce75
commit 1fe2801ae6

View file

@ -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;