obj_som_exec_data (abfd)->exec_flags = aux_hdrp->exec_flags;
}
+ obj_som_exec_data (abfd)->version_id = file_hdrp->version_id;
+
bfd_default_set_arch_mach (abfd, bfd_arch_hppa, pa10);
bfd_get_symcount (abfd) = file_hdrp->symbol_total;
char *space_strings;
unsigned int space_index, i;
unsigned int total_subspaces = 0;
- asection **subspace_sections, *section;
+ asection **subspace_sections = NULL;
+ asection *section;
bfd_size_type amt;
/* First, read in space names. */
else
file_hdr->a_magic = RELOC_MAGIC;
- /* Only new format SOM is supported. */
- file_hdr->version_id = NEW_VERSION_ID;
-
/* These fields are optional, and embedding timestamps is not always
a wise thing to do, it makes comparing objects during a multi-stage
bootstrap difficult. */
break;
case R_END_TRY:
- /* The end of a exception handling region. The reloc's
+ /* The end of an exception handling region. The reloc's
addend contains the offset of the exception handling
code. */
if (bfd_reloc->addend == 0)
unsigned int total_reloc_size;
bfd_size_type amt;
+ /* We must set up the version identifier here as objcopy/strip copy
+ private BFD data too late for us to handle this in som_begin_writing. */
+ if (obj_som_exec_data (abfd)
+ && obj_som_exec_data (abfd)->version_id)
+ obj_som_file_hdr (abfd)->version_id = obj_som_exec_data (abfd)->version_id;
+ else
+ obj_som_file_hdr (abfd)->version_id = NEW_VERSION_ID;
+
/* Next is the symbol table. These are fixed length records.
Count the number of symbols to determine how much room is needed