This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

place_orphan return value


More preparation for future patches.

	* 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.

Index: ld/ldemul.c
===================================================================
RCS file: /cvs/src/src/ld/ldemul.c,v
retrieving revision 1.29
diff -u -p -r1.29 ldemul.c
--- ld/ldemul.c	4 Oct 2008 06:08:59 -0000	1.29
+++ ld/ldemul.c	17 Oct 2008 05:44:55 -0000
@@ -119,12 +119,12 @@ ldemul_open_dynamic_archive (const char 
   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: ld/ldemul.h
===================================================================
RCS file: /cvs/src/src/ld/ldemul.h,v
retrieving revision 1.21
diff -u -p -r1.21 ldemul.h
--- ld/ldemul.h	4 Oct 2008 06:08:59 -0000	1.21
+++ ld/ldemul.h	17 Oct 2008 05:44:55 -0000
@@ -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
Index: ld/emultempl/beos.em
===================================================================
RCS file: /cvs/src/src/ld/emultempl/beos.em,v
retrieving revision 1.42
diff -u -p -r1.42 beos.em
--- ld/emultempl/beos.em	4 Oct 2008 06:08:59 -0000	1.42
+++ ld/emultempl/beos.em	17 Oct 2008 05:45:00 -0000
@@ -664,7 +664,7 @@ gld_${EMULATION_NAME}_before_allocation 
    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 (asect
   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 (asect
      sort_sections.  */
   lang_add_section (&l->wild_statement.children, s, os);
 
-  return TRUE;
+  return os;
 }
 
 static char *
Index: ld/emultempl/elf32.em
===================================================================
RCS file: /cvs/src/src/ld/emultempl/elf32.em,v
retrieving revision 1.194
diff -u -p -r1.194 elf32.em
--- ld/emultempl/elf32.em	4 Oct 2008 06:08:59 -0000	1.194
+++ ld/emultempl/elf32.em	17 Oct 2008 05:45:01 -0000
@@ -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 isdy
 /* 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 +1727,7 @@ gld${EMULATION_NAME}_place_orphan (asect
 	 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 +1762,9 @@ gld${EMULATION_NAME}_place_orphan (asect
       && 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 +1816,7 @@ gld${EMULATION_NAME}_place_orphan (asect
 	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: ld/emultempl/mmo.em
===================================================================
RCS file: /cvs/src/src/ld/emultempl/mmo.em,v
retrieving revision 1.23
diff -u -p -r1.23 mmo.em
--- ld/emultempl/mmo.em	4 Oct 2008 06:08:59 -0000	1.23
+++ ld/emultempl/mmo.em	17 Oct 2008 05:45:01 -0000
@@ -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: ld/emultempl/pe.em
===================================================================
RCS file: /cvs/src/src/ld/emultempl/pe.em,v
retrieving revision 1.136
diff -u -p -r1.136 pe.em
--- ld/emultempl/pe.em	4 Oct 2008 06:08:59 -0000	1.136
+++ ld/emultempl/pe.em	17 Oct 2008 05:45:03 -0000
@@ -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 (asec
       }
   }
 
-  return TRUE;
+  return os;
 }
 
 static bfd_boolean
Index: ld/emultempl/pep.em
===================================================================
RCS file: /cvs/src/src/ld/emultempl/pep.em,v
retrieving revision 1.15
diff -u -p -r1.15 pep.em
--- ld/emultempl/pep.em	4 Oct 2008 06:08:59 -0000	1.15
+++ ld/emultempl/pep.em	17 Oct 2008 05:45:04 -0000
@@ -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 (asec
       }
   }
 
-  return TRUE;
+  return os;
 }
 
 static bfd_boolean

-- 
Alan Modra
Australia Development Lab, IBM


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]