diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 872e320da8..dc873051f3 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -8,6 +8,7 @@ Mon Aug 21 17:49:28 1995 steve chamberlain * coffcode.h (pe_value): New function. (fill_pe_header_info): New function. (coff_write_object_contents): Use new function. + (coff_write_object_contents): Initialze link_data if not set. * cofflink.c (coff_final_link_info): Remove pe randomness. (dores_com): Update info in bfd_link_pe_info_dval. (process_embedded_commands): Use the bfd_link_pe_info_dval. diff --git a/bfd/coffcode.h b/bfd/coffcode.h index 08964fc68f..f155ce2dc3 100644 --- a/bfd/coffcode.h +++ b/bfd/coffcode.h @@ -1879,16 +1879,26 @@ coff_write_object_contents (abfd) #ifdef COFF_IMAGE_WITH_PE struct internal_extra_pe_aouthdr extra_a; struct internal_extra_pe_filehdr extra_f; - - bfd_link_pe_info *pe_info = coff_data (abfd)->link_info->pe_info; bfd_link_pe_info defs; + struct bfd_link_info dummy_info; + struct bfd_link_info *info ; + struct bfd_link_pe_info *pe_info; + + if (coff_data (abfd)->link_info) + info =coff_data (abfd)->link_info; + else + { + coff_data (abfd)->link_info = info = &dummy_info; + info->pe_info = 0; + } + pe_info = info->pe_info; + if (!pe_info) { /* Just use sensible defaults */ memset (&defs, 0, sizeof (defs)); coff_data (abfd)->link_info->pe_info = &defs; } - #endif bfd_set_error (bfd_error_system_call);