diff options
-rw-r--r-- | Makefile.in | 8 | ||||
-rw-r--r-- | extra/Configs/Config.in | 20 |
2 files changed, 28 insertions, 0 deletions
diff --git a/Makefile.in b/Makefile.in index dd0856150..2a7674543 100644 --- a/Makefile.in +++ b/Makefile.in @@ -402,6 +402,7 @@ ifeq ($(HAVE_SHARED),y) $(LN) -sf $(RUNTIME_PREFIX_LIB_FROM_DEVEL_PREFIX_LIB)$$i.$(MAJOR_VERSION) \ $(PREFIX)$(DEVEL_PREFIX)lib/$$i; \ done +ifeq ($(HARDWIRED_ABSPATH),y) if [ -f $(top_builddir)lib/libc.so -a -f $(PREFIX)$(RUNTIME_PREFIX)lib/$(SHARED_MAJORNAME) ] ; then \ $(RM) $(PREFIX)$(DEVEL_PREFIX)lib/libc.so; \ $(SED) -e 's:$(NONSHARED_LIBNAME):$(DEVEL_PREFIX)lib/$(NONSHARED_LIBNAME):' \ @@ -409,14 +410,21 @@ ifeq ($(HAVE_SHARED),y) -e 's:$(UCLIBC_LDSO):$(RUNTIME_PREFIX)lib/$(UCLIBC_LDSO):' \ $(top_builddir)lib/libc.so > $(PREFIX)$(DEVEL_PREFIX)lib/libc.so; \ fi +else + -$(INSTALL) -m 644 lib/libc.so $(PREFIX)$(DEVEL_PREFIX)lib/ +endif ifeq ($(UCLIBC_HAS_THREADS),y) ifneq ($(LINUXTHREADS_OLD),y) +ifeq ($(HARDWIRED_ABSPATH),y) if [ -f $(top_builddir)lib/libpthread.so -a -f $(PREFIX)$(RUNTIME_PREFIX)lib/libpthread.so.$(MAJOR_VERSION) ] ; then \ $(RM) $(PREFIX)$(DEVEL_PREFIX)lib/libpthread.so; \ cp $(top_srcdir)extra/scripts/format.lds $(PREFIX)$(DEVEL_PREFIX)lib/libpthread.so; \ echo "GROUP ( $(RUNTIME_PREFIX)lib/libpthread.so.$(MAJOR_VERSION) $(DEVEL_PREFIX)lib/libpthread_nonshared.a )" \ >> $(PREFIX)$(DEVEL_PREFIX)lib/libpthread.so; \ fi +else + -$(INSTALL) -m 644 lib/libpthread.so $(PREFIX)$(DEVEL_PREFIX)lib/ +endif endif endif ifeq ($(PTHREADS_DEBUG_SUPPORT),y) diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in index b4d5fce09..b26c487a6 100644 --- a/extra/Configs/Config.in +++ b/extra/Configs/Config.in @@ -1812,6 +1812,26 @@ config DEVEL_PREFIX For a typical target system this should be set to "/usr", such that 'make install' will install /usr/include/<header files>. +config HARDWIRED_ABSPATH + string "Hardwire absolute paths into linker scripts" + default y + help + This prepends absolute paths to the libraries mentioned in linker + scripts such as libc.so. + + This is a build time optimization. It has no impact on dynamic + linking at runtime, which doesn't use linker scripts. + + You must disable this to use uClibc with a relocatable toolchain, + such as the prebuilt binary cross compilers at + http://uclibc.org/downloads/binaries which may be installed at an + arbitrary location (such as in a user's home directory). + + The amount of time saved by this optimization is actually too small to + measure. The linker just had to search the library path to find the + linker script, so the dentries are cache hot if it has to search the + same path again. But it's what glibc does, so we do it too. + endmenu |