* som.c (som_slurp_symbol_table): Tighten test to determine
authorJeff Law <law@redhat.com>
Tue, 21 Mar 1995 05:40:30 +0000 (05:40 +0000)
committerJeff Law <law@redhat.com>
Tue, 21 Mar 1995 05:40:30 +0000 (05:40 +0000)
what symbols are section symbols.

bfd/som.c

index 9f5be87e25a64ff2158bc40ce4251d45499e1f30..f97a7fefbb8b0029abad51e586fb49a017205b69 100644 (file)
--- a/bfd/som.c
+++ b/bfd/som.c
@@ -170,6 +170,8 @@ static boolean som_new_section_hook PARAMS ((bfd *, asection *));
 static boolean som_bfd_copy_private_section_data PARAMS ((bfd *, asection *,
                                                          bfd *, asection *));
 static boolean som_bfd_copy_private_bfd_data PARAMS ((bfd *, bfd *));
+#define som_bfd_merge_private_bfd_data _bfd_generic_bfd_merge_private_bfd_data
+#define som_bfd_set_private_flags _bfd_generic_bfd_set_private_flags
 static boolean som_bfd_is_local_label PARAMS ((bfd *, asymbol *));
 static boolean som_set_section_contents PARAMS ((bfd *, sec_ptr, PTR,
                                                 file_ptr, bfd_size_type));
@@ -3960,7 +3962,7 @@ som_slurp_symbol_table (abfd)
         Note $START$ is a magic code symbol, NOT a section symbol.  */
       if (sym->symbol.name[0] == '$'
          && sym->symbol.name[strlen (sym->symbol.name) - 1] == '$'
-         && strcmp (sym->symbol.name, "$START$"))
+         && !strcmp (sym->symbol.name, sym->symbol.section->name))
        sym->symbol.flags |= BSF_SECTION_SYM;
       else if (!strncmp (sym->symbol.name, "L$0\002", 4))
        {
@@ -4585,7 +4587,7 @@ som_bfd_copy_private_section_data (ibfd, isection, obfd, osection)
   if (ibfd->xvec->flavour != bfd_target_som_flavour
       || obfd->xvec->flavour != bfd_target_som_flavour
       || (!som_is_space (isection) && !som_is_subspace (isection)))
-    return false;
+    return true;
 
   som_section_data (osection)->copy_data
     = (struct som_copyable_section_data_struct *)
@@ -4618,7 +4620,7 @@ som_bfd_copy_private_bfd_data (ibfd, obfd)
   /* One day we may try to grok other private data.  */
   if (ibfd->xvec->flavour != bfd_target_som_flavour
       || obfd->xvec->flavour != bfd_target_som_flavour)
-    return false;
+    return true;
 
   /* Allocate some memory to hold the data we need.  */
   obj_som_exec_data (obfd) = (struct som_exec_data *)