d7b8ad5c29
Drop patches that are applied upstream Fix the license checksums for changes in LICENSES file the new changes add more copyright notices that were missing earlier Moving ports is no longer needed since ports is now part of libc proper Refresh tzselect-sh.patch to accomodate upstream changes C++ headers discovery relative to target sysroot is fixed differently upstream hence we drop use-sysroot-cxx-headers.patch aarch64 support is already available in 2.17 hence drop the local patches (From OE-Core rev: 83b6fe6d91b924be5a7676e6ee973ce26b5eefc5) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
57 lines
2.3 KiB
Diff
57 lines
2.3 KiB
Diff
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
|
|
|
|
Index: libc/elf/dl-load.c
|
|
===================================================================
|
|
--- libc.orig/elf/dl-load.c 2012-12-02 13:11:45.000000000 -0800
|
|
+++ libc/elf/dl-load.c 2013-01-09 07:00:59.135223084 -0800
|
|
@@ -2215,7 +2215,14 @@
|
|
fd = open_path (name, namelen, mode & __RTLD_SECURE,
|
|
&loader->l_runpath_dirs, &realname, &fb, loader,
|
|
LA_SER_RUNPATH, &found_other_class);
|
|
-
|
|
+ /* 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
|
|
&& (__builtin_expect (! (mode & __RTLD_SECURE), 1)
|
|
@@ -2283,14 +2290,6 @@
|
|
}
|
|
#endif
|
|
|
|
- /* Finally, 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);
|
|
-
|
|
/* Add another newline when we are tracing the library loading. */
|
|
if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_LIBS, 0))
|
|
_dl_debug_printf ("\n");
|