* ldemul.h (ldemul_place_orphan): Update prototype.
authorAlan Modra <amodra@gmail.com>
Mon, 20 Oct 2008 12:14:29 +0000 (12:14 +0000)
committerAlan Modra <amodra@gmail.com>
Mon, 20 Oct 2008 12:14:29 +0000 (12:14 +0000)
(struct ld_emulation_xfer_struct <place_orphan>): Likewise.
* ldemul.c (ldemul_place_orphan): Return pointer to output
section statement.
* emultempl/beos.em (gld${EMULATION_NAME}_place_orphan): Likewise.
* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Likewise.
* emultempl/mmo.em (mmo_place_orphan): Likewise.
* emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
* emultempl/pep.em (gld_${EMULATION_NAME}_place_orphan): Likewise.

ld/ChangeLog
ld/emultempl/beos.em
ld/emultempl/elf32.em
ld/emultempl/mmo.em
ld/emultempl/pe.em
ld/emultempl/pep.em
ld/ldemul.c
ld/ldemul.h

index b46462fbf641ca48f701b1d9bbef3a5c2b76c322..6a0bb8151d06c11565358baa9d56b1fd1d7ef51b 100644 (file)
@@ -1,3 +1,15 @@
+2008-10-20  Alan Modra  <amodra@bigpond.net.au>
+
+       * ldemul.h (ldemul_place_orphan): Update prototype.
+       (struct ld_emulation_xfer_struct <place_orphan>): Likewise.
+       * ldemul.c (ldemul_place_orphan): Return pointer to output
+       section statement.
+       * emultempl/beos.em (gld${EMULATION_NAME}_place_orphan): Likewise.
+       * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Likewise.
+       * emultempl/mmo.em (mmo_place_orphan): Likewise.
+       * emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
+       * emultempl/pep.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
+
 2008-10-08  Nick Clifton  <nickc@redhat.com>
 
        * configure.in (ALL_LINGUAS): Add "id".
index 2777be86ac9c4a2a55bd1e4d82d2ebfb7b90413b..e41769387180b1f916f5e2a38b427088cf4a9ffa 100644 (file)
@@ -664,7 +664,7 @@ gld_${EMULATION_NAME}_before_allocation (void)
    but I'm leaving this here in case we want to enable it for sections
    which are not mentioned in the linker script.  */
 
-static bfd_boolean
+static lang_output_section_statement_type *
 gld${EMULATION_NAME}_place_orphan (asection *s,
                                   const char *secname,
                                   int constraint)
@@ -674,21 +674,21 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
   lang_statement_union_type *l;
 
   if ((s->flags & SEC_ALLOC) == 0)
-    return FALSE;
+    return NULL;
 
   /* Don't process grouped sections unless doing a final link.
      If they're marked as COMDAT sections, we don't want .text\$foo to
      end up in .text and then have .text disappear because it's marked
      link-once-discard.  */
   if (link_info.relocatable)
-    return FALSE;
+    return NULL;
 
   /* Everything from the '\$' on gets deleted so don't allow '\$' as the
      first character.  */
   if (*secname == '\$')
     einfo ("%P%F: section %s has '\$' as first character\n", secname);
   if (strchr (secname + 1, '\$') == NULL)
-    return FALSE;
+    return NULL;
 
   /* Look up the output section.  The Microsoft specs say sections names in
      image files never contain a '\$'.  Fortunately, lang_..._lookup creates
@@ -726,7 +726,7 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
      sort_sections.  */
   lang_add_section (&l->wild_statement.children, s, os);
 
-  return TRUE;
+  return os;
 }
 \f
 static char *
index 7eb4e28a46788e55317537960d9e4b2ab52fccf8..e1e7420ee93b541ab71169285c05673de2c07b68 100644 (file)
@@ -62,7 +62,7 @@ fragment <<EOF
 static void gld${EMULATION_NAME}_before_parse (void);
 static void gld${EMULATION_NAME}_after_open (void);
 static void gld${EMULATION_NAME}_before_allocation (void);
-static bfd_boolean gld${EMULATION_NAME}_place_orphan
+static lang_output_section_statement_type *gld${EMULATION_NAME}_place_orphan
   (asection *, const char *, int);
 static void gld${EMULATION_NAME}_finish (void);
 
@@ -1635,7 +1635,7 @@ output_rel_find (asection *sec, int isdyn)
 /* Place an orphan section.  We use this to put random SHF_ALLOC
    sections in the right segment.  */
 
-static bfd_boolean
+static lang_output_section_statement_type *
 gld${EMULATION_NAME}_place_orphan (asection *s,
                                   const char *secname,
                                   int constraint)
@@ -1723,7 +1723,7 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
         set, then it has been created by the linker, probably as a
         result of a --section-start command line switch.  */
       lang_add_section (&os->children, s, os);
-      return TRUE;
+      return os;
     }
 
   if (!orphan_init_done)
@@ -1746,9 +1746,9 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
       && CONST_STRNEQ (s->name, ".gnu.warning.")
       && hold[orphan_text].os != NULL)
     {
-      lang_add_section (&hold[orphan_text].os->children, s,
-                       hold[orphan_text].os);
-      return TRUE;
+      os = hold[orphan_text].os;
+      lang_add_section (&os->children, s, os);
+      return os;
     }
 
   /* Decide which segment the section should go in based on the
@@ -1798,9 +1798,7 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
        after = &lang_output_section_statement.head->output_section_statement;
     }
 
-  lang_insert_orphan (s, secname, constraint, after, place, NULL, NULL);
-
-  return TRUE;
+  return lang_insert_orphan (s, secname, constraint, after, place, NULL, NULL);
 }
 EOF
 fi
index 4ff9846ed123ffc39534f8cffa0e03b831a92030..f5ba6dd974c427ab52304e467ef7e328d4e4348a 100644 (file)
@@ -46,7 +46,7 @@ fragment <<EOF
    SEC_READONLY sections right after MMO_TEXT_SECTION_NAME.  Much borrowed
    from elf32.em.  */
 
-static bfd_boolean
+static lang_output_section_statement_type *
 mmo_place_orphan (asection *s,
                  const char *secname,
                  int constraint ATTRIBUTE_UNUSED)
@@ -64,7 +64,7 @@ mmo_place_orphan (asection *s,
   /* We have nothing to say for anything other than a final link.  */
   if (link_info.relocatable
       || (s->flags & (SEC_EXCLUDE | SEC_LOAD)) != SEC_LOAD)
-    return FALSE;
+    return NULL;
 
   /* Only care for sections we're going to load.  */
   os = lang_output_section_find (secname);
@@ -74,13 +74,13 @@ mmo_place_orphan (asection *s,
   if (os != NULL)
     {
       lang_add_section (&os->children, s, os);
-      return TRUE;
+      return os;
     }
 
   /* If this section does not have .text-type section flags or there's no
      MMO_TEXT_SECTION_NAME, we don't have anything to say.  */
   if ((s->flags & (SEC_CODE | SEC_READONLY)) == 0)
-    return FALSE;
+    return NULL;
 
   if (hold_text.os == NULL)
     hold_text.os = lang_output_section_find (hold_text.name);
@@ -102,7 +102,7 @@ mmo_place_orphan (asection *s,
   if (hold_text.os == NULL)
     hold_text.os = os;
 
-  return TRUE;
+  return os;
 }
 
 /* Remove the spurious settings of SEC_RELOC that make it to the output at
index b01425704f17bf528885812a773f92deca3fcb0f..b963d030918872586a87b8094f67cc31dd998803 100644 (file)
@@ -1612,7 +1612,7 @@ gld_${EMULATION_NAME}_finish (void)
    default linker script using wildcards, and are sorted by
    sort_sections.  */
 
-static bfd_boolean
+static lang_output_section_statement_type *
 gld_${EMULATION_NAME}_place_orphan (asection *s,
                                    const char *secname,
                                    int constraint)
@@ -1768,7 +1768,7 @@ gld_${EMULATION_NAME}_place_orphan (asection *s,
       }
   }
 
-  return TRUE;
+  return os;
 }
 
 static bfd_boolean
index 386c98f99aaaf95b937e440a6e52b2c21f229f3a..d70f635f6ec822b8ea25b12d75f65ec33b8e0324 100644 (file)
@@ -1371,7 +1371,7 @@ gld_${EMULATION_NAME}_finish (void)
    default linker script using wildcards, and are sorted by
    sort_sections.  */
 
-static bfd_boolean
+static lang_output_section_statement_type *
 gld_${EMULATION_NAME}_place_orphan (asection *s,
                                    const char *secname,
                                    int constraint)
@@ -1527,7 +1527,7 @@ gld_${EMULATION_NAME}_place_orphan (asection *s,
       }
   }
 
-  return TRUE;
+  return os;
 }
 
 static bfd_boolean
index 567e8ac2cd40711b850f0cf58f238c3731843935..826129d0a150fec121a64da8e0c6fe7d8213434c 100644 (file)
@@ -119,12 +119,12 @@ ldemul_open_dynamic_archive (const char *arch, search_dirs_type *search,
   return FALSE;
 }
 
-bfd_boolean
+lang_output_section_statement_type *
 ldemul_place_orphan (asection *s, const char *name, int constraint)
 {
   if (ld_emulation->place_orphan)
     return (*ld_emulation->place_orphan) (s, name, constraint);
-  return FALSE;
+  return NULL;
 }
 
 void
index 65612583a78ab476274ef2c40031eccc50037f2a..8c68a88b4542fbd70f3ae98019da544a9959c3df 100644 (file)
@@ -58,7 +58,7 @@ extern void ldemul_set_symbols
   (void);
 extern void ldemul_create_output_section_statements
   (void);
-extern bfd_boolean ldemul_place_orphan
+extern lang_output_section_statement_type *ldemul_place_orphan
   (asection *, const char *, int);
 extern bfd_boolean ldemul_parse_args
   (int, char **);
@@ -151,7 +151,7 @@ typedef struct ld_emulation_xfer_struct {
   /* Place an orphan section.  Return TRUE if it was placed, FALSE if
      the default action should be taken.  This field may be NULL, in
      which case the default action will always be taken.  */
-  bfd_boolean (*place_orphan)
+  lang_output_section_statement_type *(*place_orphan)
     (asection *, const char *, int);
 
   /* Run after assigning parsing with the args, but before