Browse Source

ldso: let people disable the implicit path search

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Mike Frysinger 16 years ago
parent
commit
b65c7b2c79
2 changed files with 16 additions and 0 deletions
  1. 14 0
      extra/Configs/Config.in
  2. 2 0
      ldso/ldso/ldso.c

+ 14 - 0
extra/Configs/Config.in

@@ -352,6 +352,20 @@ config LDSO_RUNPATH
 	  Usage of RUNPATH tags is not too common, so disabling this feature
 	  Usage of RUNPATH tags is not too common, so disabling this feature
 	  should be safe for most people.
 	  should be safe for most people.
 
 
+config LDSO_SEARCH_INTERP_PATH
+	bool "Add ldso path to lib search path"
+	depends on HAVE_SHARED
+	default y
+	help
+	  The ldso is told where it is being executed from and can use that
+	  path to find related core libraries.  This is useful by default,
+	  but can be annoying in a mixed development environment.
+
+	  i.e. if the ldso is run from /foo/boo/ldso.so, it will start its
+	  library search with /foo/boo/
+
+	  If unsure, simply say Y here.
+
 config UCLIBC_CTOR_DTOR
 config UCLIBC_CTOR_DTOR
 	bool "Support global constructors and destructors"
 	bool "Support global constructors and destructors"
 	default y
 	default y

+ 2 - 0
ldso/ldso/ldso.c

@@ -490,6 +490,7 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE load_addr,
 
 
 			tpnt->libname = (char *) DL_RELOC_ADDR(app_tpnt->loadaddr, ppnt->p_vaddr);
 			tpnt->libname = (char *) DL_RELOC_ADDR(app_tpnt->loadaddr, ppnt->p_vaddr);
 
 
+#ifdef __LDSO_SEARCH_INTERP_PATH__
 			/* Store the path where the shared lib loader was found
 			/* Store the path where the shared lib loader was found
 			 * for later use
 			 * for later use
 			 */
 			 */
@@ -499,6 +500,7 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE load_addr,
 				*ptmp = '\0';
 				*ptmp = '\0';
 
 
 			_dl_debug_early("Lib Loader: (%x) %s\n", (unsigned) DL_LOADADDR_BASE(tpnt->loadaddr), tpnt->libname);
 			_dl_debug_early("Lib Loader: (%x) %s\n", (unsigned) DL_LOADADDR_BASE(tpnt->loadaddr), tpnt->libname);
+#endif
 		}
 		}
 
 
 		/* Discover any TLS sections if the target supports them. */
 		/* Discover any TLS sections if the target supports them. */