aboutsummaryrefslogtreecommitdiff
path: root/elf/Makefile
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2019-11-28 12:57:25 +0100
committerFlorian Weimer <fweimer@redhat.com>2019-11-28 13:40:01 +0100
commit6d6f77fc251774d14246de794eea86e1da291d1c (patch)
tree1c95e5f2758583e47e0e3a8c484cdda1cae2b168 /elf/Makefile
parent1d809de12a6bee31860c1156b3afea47331015f1 (diff)
downloadglibc-fw/no-symlinks.zip
glibc-fw/no-symlinks.tar.gz
glibc-fw/no-symlinks.tar.bz2
Add --disable-major-minor-libraries configure optionfw/no-symlinks
This option can be used to increase compatibility with package managers. The name was choosen to avoid confusion with all the different versions (glibc release, soname versions, symbol versions). This patch makes all uses of -$(version).so conditional on the new $(major-minor-libraries) flag. The alternative install targets write the implementation DSOs directly to the locations determined by their sonames, skipping the creation of an intermediate symbolic link. install-symbolic-link in Makerules is updated not to require the $(symbolic-link-list) file because it may not exist in --disable-major-minor-libraries mode. I verified that by default, the install tree is the same as before on x86_64-linux-gnu except for the changes in the manual.
Diffstat (limited to 'elf/Makefile')
-rw-r--r--elf/Makefile8
1 files changed, 7 insertions, 1 deletions
diff --git a/elf/Makefile b/elf/Makefile
index 305bed2..e3e898b 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -553,6 +553,7 @@ $(objpfx)trusted-dirs.st: Makefile $(..)Makeconfig
CPPFLAGS-dl-load.c += -I$(objpfx). -I$(csu-objpfx).
ifeq (yes,$(build-shared))
+ifeq (yes,$(major-minor-libraries))
$(inst_slibdir)/$(rtld-version-installed-name): $(objpfx)ld.so $(+force)
$(make-target-directory)
$(do-install-program)
@@ -562,11 +563,16 @@ $(inst_rtlddir)/$(rtld-installed-name): \
$(inst_slibdir)/libc-$(version).so
$(make-target-directory)
$(make-shlib-link)
+else # !$(major-minor-libraries)
+$(inst_slibdir)/$(rtld-installed-name): $(objpfx)ld.so $(+force)
+ $(make-target-directory)
+ $(do-install-program)
+endif # !$(major-minor-libraries)
# Special target called by parent to install just the dynamic linker.
.PHONY: ldso_install
ldso_install: $(inst_rtlddir)/$(rtld-installed-name)
-endif
+endif # $(build-shared)
ldd-rewrite = -e 's%@RTLD@%$(rtlddir)/$(rtld-installed-name)%g' \