mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-28 23:39:35 +08:00
1999-09-11 Donn Terry <donn@interix.com>
* peicode.h (coff_swap_scnhdr_in): If COFF_IMAGE_WITH_PE, the get the overflow of the s_nlnno field from the s_nreloc field. * peigen.c (_bfd_pei_swap_scnhdr_out): If doing a final link, swap the s_nlnno overflow of the .text section into the s_nreloc field.
This commit is contained in:
@ -215,8 +215,20 @@ coff_swap_scnhdr_in (abfd, ext, in)
|
||||
GET_SCNHDR_LNNOPTR (abfd, (bfd_byte *) scnhdr_ext->s_lnnoptr);
|
||||
scnhdr_int->s_flags = bfd_h_get_32(abfd, (bfd_byte *) scnhdr_ext->s_flags);
|
||||
|
||||
scnhdr_int->s_nreloc = bfd_h_get_16(abfd, (bfd_byte *) scnhdr_ext->s_nreloc);
|
||||
scnhdr_int->s_nlnno = bfd_h_get_16(abfd, (bfd_byte *) scnhdr_ext->s_nlnno);
|
||||
/* MS handles overflow of line numbers by carrying into the reloc
|
||||
field (it appears). Since it's supposed to be zero for PE
|
||||
*IMAGE* format, that's safe. This is still a bit iffy. */
|
||||
#ifdef COFF_IMAGE_WITH_PE
|
||||
scnhdr_int->s_nlnno =
|
||||
(bfd_h_get_16 (abfd, (bfd_byte *) scnhdr_ext->s_nlnno)
|
||||
+ (bfd_h_get_16 (abfd, (bfd_byte *) scnhdr_ext->s_nreloc) << 16));
|
||||
scnhdr_int->s_nreloc = 0;
|
||||
#else
|
||||
scnhdr_int->s_nreloc = bfd_h_get_16 (abfd,
|
||||
(bfd_byte *) scnhdr_ext->s_nreloc);
|
||||
scnhdr_int->s_nlnno = bfd_h_get_16 (abfd,
|
||||
(bfd_byte *) scnhdr_ext->s_nlnno);
|
||||
#endif
|
||||
|
||||
if (scnhdr_int->s_vaddr != 0)
|
||||
{
|
||||
|
Reference in New Issue
Block a user