* ecofflink.c (ecoff_align_debug): Align RFDs to debug_align.
This commit is contained in:
parent
f71babce75
commit
1fe2801ae6
1 changed files with 12 additions and 2 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue