* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
authorAlan Modra <amodra@gmail.com>
Fri, 14 Jan 2011 02:27:41 +0000 (02:27 +0000)
committerAlan Modra <amodra@gmail.com>
Fri, 14 Jan 2011 02:27:41 +0000 (02:27 +0000)
attempt to put non-alloc orphans before debug sections, just place
them after .comment.

ld/ChangeLog
ld/emultempl/elf32.em

index 1dc63c1f876cbc6f95c70dd45d65c7dfed216add..886207b0e3341d580d506820a733bb7f3f9f669b 100644 (file)
@@ -1,3 +1,9 @@
+2011-01-14  Alan Modra  <amodra@gmail.com>
+
+       * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
+       attempt to put non-alloc orphans before debug sections, just place
+       them after .comment.
+
 2011-01-14  J. Park  <grassman@gmail.com>
 
        PR ld/12339
index 9120f85b17cc90f6be3b0fa808292a2b64152d18..ddcd5901fd610f88e08ea5354a58f22dfe807e8a 100644 (file)
@@ -13,7 +13,7 @@ fragment <<EOF
 
 /* ${ELFSIZE} bit ELF emulation code for ${EMULATION_NAME}
    Copyright 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
    Free Software Foundation, Inc.
    Written by Steve Chamberlain <sac@cygnus.com>
    ELF support by Ian Lance Taylor <ian@cygnus.com>
@@ -1788,7 +1788,7 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
       { ".sdata",
        SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_DATA | SEC_SMALL_DATA,
        0, 0, 0, 0 },
-      { 0,
+      { ".comment",
        SEC_HAS_CONTENTS,
        0, 0, 0, 0 },
     };
@@ -1880,7 +1880,6 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
 
   if (!orphan_init_done)
     {
-      lang_output_section_statement_type *lookup;
       struct orphan_save *ho;
 
       for (ho = hold; ho < hold + sizeof (hold) / sizeof (hold[0]); ++ho)
@@ -1890,16 +1889,6 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
            if (ho->os != NULL && ho->os->flags == 0)
              ho->os->flags = ho->flags;
          }
-      lookup = hold[orphan_bss].os;
-      if (lookup == NULL)
-       lookup = &lang_output_section_statement.head->output_section_statement;
-      for (; lookup != NULL; lookup = lookup->next)
-       if ((lookup->bfd_section != NULL
-            && (lookup->bfd_section->flags & SEC_DEBUGGING) != 0)
-           || strcmp (lookup->name, ".comment") == 0)
-         break;
-      hold[orphan_nonalloc].os = lookup ? lookup->prev : NULL;
-      hold[orphan_nonalloc].name = ".comment";
       orphan_init_done = 1;
     }