* som (setup_sections): Set SEC_DEBUGGING and the section attributes
authorJeff Law <law@redhat.com>
Tue, 15 Mar 1994 04:40:51 +0000 (04:40 +0000)
committerJeff Law <law@redhat.com>
Tue, 15 Mar 1994 04:40:51 +0000 (04:40 +0000)
        for spaces and subspaces.

bfd/ChangeLog
bfd/som.c

index 9b6508d..d323a19 100644 (file)
@@ -1,5 +1,8 @@
 Mon Mar 14 11:41:23 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
 
+       * som (setup_sections): Set SEC_DEBUGGING and the section attributes
+       for spaces and subspaces.
+
        * som.c (som_bfd_count_ar_symbols): Fix typo.
 
        * som.c (som_object_setup): Set EXEC_P, D_PAGED, WP_TEXT, and
index 3b32137..02c4dab 100644 (file)
--- a/bfd/som.c
+++ b/bfd/som.c
@@ -1647,6 +1647,14 @@ setup_sections (abfd, file_hdr)
       if (!space_asect)
        goto error_return;
 
+       if (space.is_loadable == 0)
+       space_asect->flags |= SEC_DEBUGGING;
+
+      /* Set up all the attributes for the space.  */
+      bfd_som_set_section_attributes (space_asect, space.is_defined,
+                                     space.is_private, space.sort_key,
+                                     space.space_number);
+
       /* Now, read in the first subspace for this space */
       if (bfd_seek (abfd, file_hdr->subspace_location
                    + space.subspace_index * sizeof subspace,
@@ -1695,6 +1703,12 @@ setup_sections (abfd, file_hdr)
          if (!subspace_asect)
            goto error_return;
 
+         /* Store private information about the section.  */
+         bfd_som_set_subsection_attributes (subspace_asect, space_asect,
+                                            subspace.access_control_bits,
+                                            subspace.sort_key,
+                                            subspace.quadrant);
+
          /* Keep an easy mapping between subspaces and sections.  */
          som_section_data (subspace_asect)->subspace_index 
            = total_subspaces++;
@@ -1734,8 +1748,12 @@ setup_sections (abfd, file_hdr)
            subspace_asect->flags |= SEC_IS_COMMON;
          else if (subspace.subspace_length > 0)
            subspace_asect->flags |= SEC_HAS_CONTENTS;
+
          if (subspace.is_loadable)
            subspace_asect->flags |= SEC_ALLOC | SEC_LOAD;
+         else
+           subspace_asect->flags |= SEC_DEBUGGING;
+
          if (subspace.code_only)
            subspace_asect->flags |= SEC_CODE;