From de4322ef6d4dc9fc3ee9b69af1c10edbc64a66a3 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 01:48:24 +0000
Subject: [PATCH 03/29] nativesdk-glibc: Look for host system ld.so.cache as
 well

Upstream-Status: Inappropriate [embedded specific]

The default lib search path order is:

  1) LD_LIBRARY_PATH
  2) RPATH from the binary
  3) ld.so.cache
  4) default search paths embedded in the linker

For nativesdk binaries which are being used alongside binaries on a host system, we
need the search paths to firstly search the shipped nativesdk libs but then also
cover the host system. For example we want the host system's libGL and this may be
in a non-standard location like /usr/lib/mesa. The only place the location is know
about is in the ld.so.cache of the host system.

Since nativesdk has a simple structure and doesn't need to use a cache itself, we
repurpose the cache for use as a last resort in finding host system binaries. This
means we need to switch the order of 3 and 4 above to make this work effectively.

RP 14/10/2010

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 elf/dl-load.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/elf/dl-load.c b/elf/dl-load.c
index e39980fb19..565b039b23 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -2160,6 +2160,14 @@ _dl_map_object (struct link_map *loader, const char *name,
             }
         }
 
+      /* try the default path.  */
+      if (fd == -1
+	  && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL
+	   || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1))
+	 && rtld_search_dirs.dirs != (void *) -1)
+	fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs,
+			&realname, &fb, l, LA_SER_DEFAULT, &found_other_class);
+      /* Finally try ld.so.cache */
 #ifdef USE_LDCONFIG
       if (fd == -1
 	  && (__glibc_likely ((mode & __RTLD_SECURE) == 0)
@@ -2218,14 +2226,6 @@ _dl_map_object (struct link_map *loader, const char *name,
 	}
 #endif
 
-      /* Finally, try the default path.  */
-      if (fd == -1
-	  && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL
-	      || __glibc_likely (!(l->l_flags_1 & DF_1_NODEFLIB)))
-	  && rtld_search_dirs.dirs != (void *) -1)
-	fd = open_path (name, namelen, mode, &rtld_search_dirs,
-			&realname, &fb, l, LA_SER_DEFAULT, &found_other_class);
-
       /* Add another newline when we are tracing the library loading.  */
       if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS))
 	_dl_debug_printf ("\n");
-- 
2.27.0

