]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
* emultempl/elf32.em (gld${EMULATION_NAME}_stat_needed): Ignore
authorAlan Modra <amodra@gmail.com>
Tue, 12 Apr 2005 12:22:11 +0000 (12:22 +0000)
committerAlan Modra <amodra@gmail.com>
Tue, 12 Apr 2005 12:22:11 +0000 (12:22 +0000)
as_needed libs that were not needed.
(gld${EMULATION_NAME}_check_needed): Likewise.

ld/ChangeLog
ld/emultempl/elf32.em

index 8e3f5cb65e6bd65493651bff453ae646c860f4c5..5d223140962b3bfd6129750894dc7f05a8371fe9 100644 (file)
@@ -1,3 +1,9 @@
+2005-04-12  Alan Modra  <amodra@bigpond.net.au>
+
+       * emultempl/elf32.em (gld${EMULATION_NAME}_stat_needed): Ignore
+       as_needed libs that were not needed.
+       (gld${EMULATION_NAME}_check_needed): Likewise.
+
 2005-03-24  Nick Clifton  <nickc@redhat.com>
 
        * po/fr.po: Updated French translation.
index 8bdf88d5fcb0eef1d6492307a36fbdc7ff32b8bf..a5e6739e3fd8f5167d6f457f07af1d9f857a2d8d 100644 (file)
@@ -226,6 +226,9 @@ gld${EMULATION_NAME}_stat_needed (lang_input_statement_type *s)
     return;
   if (s->the_bfd == NULL)
     return;
+  if (s->as_needed
+      && (bfd_elf_get_dyn_lib_class (s->the_bfd) & DYN_AS_NEEDED) != 0)
+    return;
 
   if (bfd_stat (s->the_bfd, &st) != 0)
     {
@@ -733,6 +736,13 @@ gld${EMULATION_NAME}_check_needed (lang_input_statement_type *s)
   if (global_found)
     return;
 
+  /* If this input file was an as-needed entry, and wasn't found to be
+     needed at the stage it was linked, then don't say we have loaded it.  */
+  if (s->as_needed
+      && (s->the_bfd == NULL
+         || (bfd_elf_get_dyn_lib_class (s->the_bfd) & DYN_AS_NEEDED) != 0))
+    return;
+
   if (s->filename != NULL)
     {
       const char *f;