* coffswap.h (coff_swap_scnhdr_in): Don't always add IMAGE_BASE.
authorSteve Chamberlain <sac@cygnus>
Tue, 29 Aug 1995 23:26:43 +0000 (23:26 +0000)
committerSteve Chamberlain <sac@cygnus>
Tue, 29 Aug 1995 23:26:43 +0000 (23:26 +0000)
Swap in PE header.
* coffcode.h (coff_write_object_contents): Remove #if0ed code
Only remove empty sections in PE inmage files.

bfd/ChangeLog
bfd/coffcode.h

index bb4ed7f6523a2f95a7bcb1dea6957f6212de4820..c4560fcb494edc3ec18a9a71c042de22752b01e3 100644 (file)
@@ -10,10 +10,12 @@ Tue Aug 29 13:50:21 1995  steve chamberlain  <sac@slash.cygnus.com>
        (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.
+       Pagesize info is only valid in PE image files.
        (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.
+       Swap in PE header.
        (coff_swap_scnhdr_out): Setup PE flags correctly.
        * reloc.c (BFD_RELOC_RVA): New field.
 
index 771693660f0f6d7060f8e683171f198bf95eba19..76d8fd4c0eacb8df53f2f336e829da28a7ac74da 100644 (file)
@@ -1513,17 +1513,22 @@ coff_compute_section_file_positions (abfd)
 #endif
   unsigned int count;
 
+
 #ifdef COFF_IMAGE_WITH_PE
-  page_size = pe_value (&(coff_data (abfd)->link_info->pe_info->file_alignment),
-                       PE_DEF_FILE_ALIGNMENT);
+  if (coff_data (abfd)->link_info) 
+    {
+      page_size = pe_value (&(coff_data (abfd)->link_info->pe_info->file_alignment),
+                           PE_DEF_FILE_ALIGNMENT);
+    }
+  else
+    page_size = PE_DEF_FILE_ALIGNMENT;
 #else
   page_size = COFF_PAGE_SIZE;
 #endif
-
   if (bfd_get_start_address (abfd))
     {
       /*  A start address may have been added to the original file. In this
-       case it will need an optional header to record it.  */
+         case it will need an optional header to record it.  */
       abfd->flags |= EXEC_P;
     }
 
@@ -1547,7 +1552,7 @@ coff_compute_section_file_positions (abfd)
          stores codeview debug data. */
       if (strcmp (current->name, ".junk") == 0)
         {
-         continue;
+         continue;
         }
 #endif
 
@@ -1558,7 +1563,7 @@ coff_compute_section_file_positions (abfd)
 #ifndef I960
       {
        /* make sure this section is aligned on the right boundary - by
-        padding the previous section up if necessary */
+          padding the previous section up if necessary */
 
        old_sofar = sofar;
        sofar = BFD_ALIGN (sofar, 1 << current->alignment_power);