Submitted By: Joe Ciccone <jciccone@gmail.com>
Date: 2011-04-16
Initial Package Version: 2.13 r13356
Origin: Andreas Schwab
        Via http://sourceware.org/ml/libc-hacker/2011-02/msg00002.html
Upstream Status: Unknown, In Bugzilla
Description: If a ELF binaries dependencies are missing it was causing
             a signal too early.

diff -Naur eglibc-2.13.orig/elf/dl-deps.c eglibc-2.13/elf/dl-deps.c
--- eglibc-2.13.orig/elf/dl-deps.c	2011-02-04 22:31:21.000000000 +0000
+++ eglibc-2.13/elf/dl-deps.c	2011-04-16 23:44:34.479218974 +0000
@@ -491,6 +491,10 @@
   if (errno == 0 && errno_saved != 0)
     __set_errno (errno_saved);
 
+  if (errno_reason)
+    _dl_signal_error (errno_reason == -1 ? 0 : errno_reason, objname,
+		      NULL, errstring);
+
   struct link_map **old_l_initfini = NULL;
   if (map->l_initfini != NULL && map->l_type == lt_loaded)
     {
@@ -683,8 +687,4 @@
     }
   if (old_l_initfini != NULL)
     _dl_scope_free (old_l_initfini);
-
-  if (errno_reason)
-    _dl_signal_error (errno_reason == -1 ? 0 : errno_reason, objname,
-		      NULL, errstring);
 }
