diff options
author | Steve Chamberlain <sac@cygnus> | 1995-08-29 21:05:59 +0000 |
---|---|---|
committer | Steve Chamberlain <sac@cygnus> | 1995-08-29 21:05:59 +0000 |
commit | 3ea928f5a902b2dd53d16cfda009c5b8a9653398 (patch) | |
tree | bba8105c6eaa5a49101cd55baa9cf71daa5736e9 /bfd/cofflink.c | |
parent | f88ebc68615192a6a98888452d103c7e017e2c1f (diff) | |
download | gdb-3ea928f5a902b2dd53d16cfda009c5b8a9653398.zip gdb-3ea928f5a902b2dd53d16cfda009c5b8a9653398.tar.gz gdb-3ea928f5a902b2dd53d16cfda009c5b8a9653398.tar.bz2 |
Tue Aug 29 13:50:21 1995 steve chamberlain <sac@slash.cygnus.com>
* libbfd.h, bfd-in2.h: regenerated.
* coff-arm.c (aoutarm_std_relo): New entry at 11.
(arm_reloc_type_lookup) : Understand type 11.
* coff-i386.c (howto_table): fix name of rva type.
(coff-i386_rtype_to_howto): Understand R_IMAGEBASE type.
* coffcode.h (sec_to_styp_flags): .edata is data.
(coff_compute_section_file_positions): Get page size right for PE.
(fill_pe_header_info): Fix fields.
(coff_write_object_contents): Remove end_of_image calc.
(_bfd_coff_generate_reloc_section): Remove orphaned comment.
* coffswap.h (coff_swap_scnhdr_in): Don't always add IMAGE_BASE.
(coff_swap_scnhdr_out): Setup PE flags correctly.
* reloc.c (BFD_RELOC_RVA): New field.
Diffstat (limited to 'bfd/cofflink.c')
-rw-r--r-- | bfd/cofflink.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/bfd/cofflink.c b/bfd/cofflink.c index c4c42d5..43bb69f 100644 --- a/bfd/cofflink.c +++ b/bfd/cofflink.c @@ -1622,7 +1622,17 @@ coff_link_input_bfd (finfo, input_bfd) bfd_byte *eline; bfd_byte *elineend; - if (o->lineno_count == 0) + /* FIXME: If SEC_HAS_CONTENTS is not for the section, then + build_link_order in ldwrite.c will not have created a + link order, which means that we will not have seen this + input section in _bfd_coff_final_link, which means that + we will not have allocated space for the line numbers of + this section. I don't think line numbers can be + meaningful for a section which does not have + SEC_HAS_CONTENTS set, but, if they do, this must be + changed. */ + if (o->lineno_count == 0 + || (o->output_section->flags & SEC_HAS_CONTENTS) == 0) continue; if (bfd_seek (input_bfd, o->line_filepos, SEEK_SET) != 0 @@ -2225,15 +2235,6 @@ _bfd_coff_generic_relocate_section (output_bfd, info, input_bfd, if (howto == NULL) return false; - /* WINDOWS_NT; in this next section, the value of 'val' will be computed. - With respect to the .idata and .rsrc sections, the NT_IMAGE_BASE - must be removed from the value that is to be relocated (NT_IMAGE_BASE - is currently defined in internal.h and has value 400000). Now this - value should only be removed from addresses being relocated in the - .idata and .rsrc sections, not the .text section which should have - the 'real' address. In addition, the .rsrc val's must also be - adjusted by the input_section->vma. */ - val = 0; if (h == NULL) |