diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 280b40ffed..8cfc52137e 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +Thu May 26 10:10:21 1994 Jeff Law (law@snake.cs.utah.edu) + + * som.c (som_prep_headers): Do not set the system_id here, private + bfd data has not been copied yet. + (som_write_headers): Instead do it here. + Tue May 24 16:17:18 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) Make MIPS ELF use new ELF backend linker. No shared library diff --git a/bfd/som.c b/bfd/som.c index 0ae799107f..b67a87b3e4 100644 --- a/bfd/som.c +++ b/bfd/som.c @@ -1959,13 +1959,6 @@ som_prep_headers (abfd) } obj_som_file_hdr (abfd) = file_hdr; - /* FIXME. This should really be conditional based on whether or not - PA1.1 instructions/registers have been used. */ - if (abfd->flags & (EXEC_P | DYNAMIC)) - file_hdr->system_id = obj_som_exec_data (abfd)->system_id; - else - file_hdr->system_id = CPU_PA_RISC1_0; - if (abfd->flags & (EXEC_P | DYNAMIC)) { if (abfd->flags & D_PAGED) @@ -3309,6 +3302,16 @@ som_write_headers (abfd) section = section->next; } + /* FIXME. This should really be conditional based on whether or not + PA1.1 instructions/registers have been used. + + Setting of the system_id has to happen very late now that copying of + BFD private data happens *after* section contents are set. */ + if (abfd->flags & (EXEC_P | DYNAMIC)) + obj_som_file_hdr(abfd)->system_id = obj_som_exec_data (abfd)->system_id; + else + obj_som_file_hdr(abfd)->system_id = CPU_PA_RISC1_0; + /* Only thing left to do is write out the file header. It is always at location zero. Seek there and write it. */ if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) < 0)