* relax.c (build_it): re-enable the processing of data_statements
authorSteve Chamberlain <sac@cygnus>
Thu, 5 Nov 1992 19:35:38 +0000 (19:35 +0000)
committerSteve Chamberlain <sac@cygnus>
Thu, 5 Nov 1992 19:35:38 +0000 (19:35 +0000)
in scripts, makes counted contructor lists work again.

ld/ChangeLog
ld/relax.c

index 01edfd10ea3e147296844426ee81c314e78cb7b9..23f24eecfa77cb27bc363eea8bbb77b367bf80b5 100644 (file)
@@ -1,3 +1,8 @@
+Thu Nov  5 11:33:57 1992  Steve Chamberlain  (sac@thepub.cygnus.com)
+
+       * relax.c (build_it): re-enable the processing of data_statements
+       in scripts, makes counted contructor lists work again.
+
 Thu Nov  5 05:43:01 1992  John Gilmore  (gnu@cygnus.com)
 
        * ldemul.h:  Remove uses of SDEF and PROTO macros (use PARAMS).
index 5738b5bddb1b6f997a7f10e9dcf4a8b4173a2f0d..ea156e34fe9a2ef927d89fafeb8d48321456aa20 100644 (file)
@@ -28,116 +28,117 @@ DEFUN(build_it,(statement),
 {
   switch (statement->header.type) {
 #if 0
-    {
-
-      bfd_byte play_area[SHORT_SIZE];
-      unsigned int i;
-      bfd_putshort(output_bfd, statement->fill_statement.fill, play_area);
-      /* Write out all entire shorts */
-      for (i = 0;
-          i < statement->fill_statement.size - SHORT_SIZE + 1;
-          i+= SHORT_SIZE)
-       {
-         bfd_set_section_contents(output_bfd,
-                                  statement->fill_statement.output_section,
-                                  play_area,
-                                  statement->data_statement.output_offset +i,
-                                  SHORT_SIZE);
-
-       }
-
-      /* Now write any remaining byte */
-      if (i < statement->fill_statement.size) 
-       {
-         bfd_set_section_contents(output_bfd,
-                                  statement->fill_statement.output_section,
-                                  play_area,
-                                  statement->data_statement.output_offset +i,
-                                  1);
-
-       }
-
-      abort();
-    }
+   {
+
+     bfd_byte play_area[SHORT_SIZE];
+     unsigned int i;
+     bfd_putshort(output_bfd, statement->fill_statement.fill, play_area);
+     /* Write out all entire shorts */
+     for (i = 0;
+         i < statement->fill_statement.size - SHORT_SIZE + 1;
+         i+= SHORT_SIZE)
+     {
+       bfd_set_section_contents(output_bfd,
+                               statement->fill_statement.output_section,
+                               play_area,
+                               statement->data_statement.output_offset +i,
+                               SHORT_SIZE);
+
+     }
+
+     /* Now write any remaining byte */
+     if (i < statement->fill_statement.size) 
+     {
+       bfd_set_section_contents(output_bfd,
+                               statement->fill_statement.output_section,
+                               play_area,
+                               statement->data_statement.output_offset +i,
+                               1);
+
+     }
+
+     abort();
+   }
     break;
 #endif
-  case lang_data_statement_enum:
-#if 0
-    {
+   case lang_data_statement_enum:
+
+   {
 
-      bfd_vma value = statement->data_statement.value;
-      bfd_byte play_area[LONG_SIZE];
-      unsigned int size = 0;
-      switch (statement->data_statement.type) {
+     bfd_vma value = statement->data_statement.value;
+     bfd_byte play_area[LONG_SIZE];
+     unsigned int size = 0;
+     asection * output_section = statement->data_statement.output_section;
+     switch (statement->data_statement.type) {
       case LONG:
-       bfd_put_32(output_bfd, value,  play_area);
-       size = LONG_SIZE;
-       break;
+       bfd_put_32(output_section->owner, value,  play_area);
+       size = LONG_SIZE;
+       break;
       case SHORT:
-       bfd_put_16(output_bfd, value,  play_area);
-       size = SHORT_SIZE;
-       break;
+       bfd_put_16(output_section->owner, value,  play_area);
+       size = SHORT_SIZE;
+       break;
       case BYTE:
-       bfd_put_8(output_bfd, value,  play_area);
-       size = BYTE_SIZE;
-       break;
-      }
+       bfd_put_8(output_section->owner, value,  play_area);
+       size = BYTE_SIZE;
+       break;
+     }
       
-      bfd_set_section_contents(output_bfd,
-                              statement->data_statement.output_section,
-                              play_area,
-                              statement->data_statement.output_vma,
-                              size);
+     bfd_set_section_contents(output_section->owner,
+                             statement->data_statement.output_section,
+                             play_area,
+                             statement->data_statement.output_vma,
+                             size);
                               
                               
 
-    }
-#endif
+   }
+
     break;
-  case lang_input_section_enum:
-    {
-      /* Create a new seclet in the output section with this
-        attached */
-      if (statement->input_section.ifile->just_syms_flag == false) 
-      {
-       asection *i  = statement->input_section.section;
-
-       asection *output_section = i->output_section;
+   case lang_input_section_enum:
+   {
+     /* Create a new seclet in the output section with this
+       attached */
+     if (statement->input_section.ifile->just_syms_flag == false) 
+     {
+       asection *i  = statement->input_section.section;
+
+       asection *output_section = i->output_section;
        
-       bfd_seclet_type *seclet  = bfd_new_seclet(output_section->owner,output_section);
+       bfd_seclet_type *seclet  = bfd_new_seclet(output_section->owner,output_section);
        
-       seclet->type = bfd_indirect_seclet;
-       seclet->u.indirect.section = i;
-       seclet->u.indirect.symbols = statement->input_section.ifile->asymbols;
-       seclet->size = i->_cooked_size;
-       seclet->offset = i->output_offset;
-       seclet->next = 0;
-      }
+       seclet->type = bfd_indirect_seclet;
+       seclet->u.indirect.section = i;
+       seclet->u.indirect.symbols = statement->input_section.ifile->asymbols;
+       seclet->size = i->_cooked_size;
+       seclet->offset = i->output_offset;
+       seclet->next = 0;
+     }
        
-    }
+   }
     break;
-  case lang_padding_statement_enum:
+   case lang_padding_statement_enum:
     /* Make a new seclet with the right filler */
-    {
-      /* Create a new seclet in the output section with this
-        attached */
+   {
+     /* Create a new seclet in the output section with this
+       attached */
 
-      bfd_seclet_type *seclet  =
-       bfd_new_seclet(statement->padding_statement.output_section->owner,
-                      statement->padding_statement.output_section);
+     bfd_seclet_type *seclet  =
+      bfd_new_seclet(statement->padding_statement.output_section->owner,
+                    statement->padding_statement.output_section);
        
-      seclet->type = bfd_fill_seclet;
-      seclet->size = statement->padding_statement.size;
-      seclet->offset = statement->padding_statement.output_offset;
-      seclet->u.fill.value = statement->padding_statement.fill;
-      seclet->next = 0;
-    }
+     seclet->type = bfd_fill_seclet;
+     seclet->size = statement->padding_statement.size;
+     seclet->offset = statement->padding_statement.output_offset;
+     seclet->u.fill.value = statement->padding_statement.fill;
+     seclet->next = 0;
+   }
     break;
 
 
 
     break;
-  default:
+   default:
     /* All the other ones fall through */
     ;