+Sat Mar 19 07:06:59 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
+
+ * som.c (som_begin_writing): Account for alignment needs of
+ subspaces too when writing executables. Never request a negative
+ bss size. Fixes some problems with demand paged executables,
+ still having problems with pure executables and shared executables.
+
Fri Mar 18 19:12:47 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
* trad-core.c (trad_unix_core_file_p): Call bfd_zmalloc not
/* Only do this for the first subspace within each space. */
first_subspace = 0;
}
+ else if (abfd->flags & EXEC_P)
+ {
+ /* Have to keep proper alignments for the subspaces
+ in executables too! */
+ if (subsection->flags & SEC_CODE)
+ {
+ unsigned tmp = exec_header.exec_tsize;
+
+ tmp = SOM_ALIGN (tmp, 1 << subsection->alignment_power);
+ current_offset += (tmp - exec_header.exec_tsize);
+ exec_header.exec_tsize = tmp;
+ }
+ else
+ {
+ unsigned tmp = exec_header.exec_dsize;
+
+ tmp = SOM_ALIGN (tmp, 1 << subsection->alignment_power);
+ current_offset += (tmp - exec_header.exec_dsize);
+ exec_header.exec_dsize = tmp;
+ }
+ }
subsection->target_index = total_subspaces++;
/* This is real data to be loaded from the file. */
tmp = exec_header.exec_dsize;
tmp = SOM_ALIGN (tmp, PA_PAGESIZE);
exec_header.exec_bsize -= (tmp - exec_header.exec_dsize);
+ if (exec_header.exec_bsize < 0)
+ exec_header.exec_bsize = 0;
exec_header.exec_dsize = tmp;
bfd_seek (abfd, obj_som_file_hdr (abfd)->aux_header_location, SEEK_SET);