Submitted By: Jonathan Norman (jonathan at bluesquarelinux dot co dot uk)
Date: 2012-02-26
Initial Package Version: 2.15 r16526
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.
Rediffed by Jonathan Norman for Eglibc 2.15


diff -Naur eglibc-2.15.orig/elf/dl-deps.c eglibc-2.15/elf/dl-deps.c
--- eglibc-2.15.orig/elf/dl-deps.c	2012-02-26 17:15:55.394189832 +0000
+++ eglibc-2.15/elf/dl-deps.c	2012-02-26 17:21:48.882756229 +0000
@@ -502,6 +502,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)
     {
@@ -699,7 +703,4 @@
   if (old_l_initfini != NULL)
       map->l_orig_initfini = old_l_initfini;
 
-  if (errno_reason)
-    _dl_signal_error (errno_reason == -1 ? 0 : errno_reason, objname,
-		      NULL, errstring);
 }
