aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog9
-rw-r--r--bfd/som.c23
2 files changed, 30 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index e8924d4..5953115 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,12 @@
+Thu Mar 24 09:21:13 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
+
+ * som.c (som_bfd_prep_for_ar_write): Ignore non-SOM objects.
+ (som_bfd_ar_write_symbol_stuff, som_write_armap): Likewise.
+
+Wed Mar 23 14:29:31 1994 David J. Mackenzie (djm@rtl.cygnus.com)
+
+ * netbsd386.c (N_SET_FLAGS): Delete the old definition.
+
Wed Mar 23 14:58:44 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
Clean up the relaxing code for the new linker.
diff --git a/bfd/som.c b/bfd/som.c
index a75b26d..43f29f5 100644
--- a/bfd/som.c
+++ b/bfd/som.c
@@ -3118,7 +3118,7 @@ som_begin_writing (abfd)
zeros are filled in. Ugh. */
if (abfd->flags & EXEC_P)
current_offset = SOM_ALIGN (current_offset, PA_PAGESIZE);
- if (bfd_seek (abfd, current_offset, SEEK_SET) < 0)
+ if (bfd_seek (abfd, current_offset - 1, SEEK_SET) < 0)
{
bfd_set_error (bfd_error_system_call);
return false;
@@ -5071,6 +5071,14 @@ som_bfd_prep_for_ar_write (abfd, num_syms, stringsize)
unsigned int curr_count, i;
som_symbol_type *sym;
+ /* Don't bother for non-SOM objects. */
+ if (curr_bfd->format != bfd_object
+ || curr_bfd->xvec->flavour != bfd_target_som_flavour)
+ {
+ curr_bfd = curr_bfd->next;
+ continue;
+ }
+
/* Make sure the symbol table has been read, then snag a pointer
to it. It's a little slimey to grab the symbols via obj_som_symtab,
but doing so avoids allocating lots of extra memory. */
@@ -5260,6 +5268,14 @@ som_bfd_ar_write_symbol_stuff (abfd, nsyms, string_size, lst)
unsigned int curr_count, i;
som_symbol_type *sym;
+ /* Don't bother for non-SOM objects. */
+ if (curr_bfd->format != bfd_object
+ || curr_bfd->xvec->flavour != bfd_target_som_flavour)
+ {
+ curr_bfd = curr_bfd->next;
+ continue;
+ }
+
/* Make sure the symbol table has been read, then snag a pointer
to it. It's a little slimey to grab the symbols via obj_som_symtab,
but doing so avoids allocating lots of extra memory. */
@@ -5478,7 +5494,10 @@ som_write_armap (abfd)
lst.module_count = 0;
while (curr_bfd != NULL)
{
- lst.module_count++;
+ /* Only true SOM objects count. */
+ if (curr_bfd->format == bfd_object
+ && curr_bfd->xvec->flavour == bfd_target_som_flavour)
+ lst.module_count++;
curr_bfd = curr_bfd->next;
}
lst.module_limit = lst.module_count;