Link extra-libs consistently with libc and ld.so.
authorJoseph Myers <joseph@codesourcery.com>
Fri, 31 May 2013 16:16:33 +0000 (16:16 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Fri, 31 May 2013 16:16:33 +0000 (16:16 +0000)
29 files changed:
ChangeLog
Makefile
Makerules
crypt/Makefile
debug/Makefile
dlfcn/Makefile
hesiod/Makefile
iconvdata/extra-module.mk
libidn/ChangeLog
libidn/Makefile
locale/Makefile
login/Makefile
malloc/Makefile
math/Makefile
nis/Makefile
nptl/ChangeLog
nptl/Makefile
nptl_db/ChangeLog
nptl_db/Makefile
nss/Makefile
ports/ChangeLog.arm
ports/ChangeLog.microblaze
ports/sysdeps/arm/Makefile
ports/sysdeps/microblaze/Makefile
resolv/Makefile
rt/Makefile
stdlib/Makefile
sysdeps/i386/fpu/Makefile [deleted file]
sysdeps/powerpc/fpu/Makefile

index 9134d18..8b47a2b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,55 @@
+2013-05-31  Joseph Myers  <joseph@codesourcery.com>
+
+       * Makefile ($(common-objpfx)linkobj/libc.so): Define
+       link-libc-deps to empty as target-specific variable.
+       * Makerules (link-libc-args): New variable.
+       (libc-for-link): Likewise.
+       (link-libc-deps): Likewise.
+       (lib%.so): Depend on $(link-libc-deps).  Link with
+       $(link-libc-args).
+       (build-module): Link with $(link-libc-args).
+       (build-module-asneeded): Likewise.
+       (build-module-helper-objlist): Filter out $(link-libc-deps) from
+       list of objects.
+       ($(common-objpfx)libc.so): Define link-libc-deps to empty as
+       target-specific variable.
+       ($(extra-modules-build:%=$(objpfx)%.so)): Depend on
+       $(link-libc-deps) instead of libc.so and libc_nonshared.a.
+       * crypt/Makefile ($(objpfx)libcrypt.so): Remove dependencies on
+       libc.
+       * debug/Makefile ($(objpfx)libSegFault.so): Remove dependencies on
+       libc and ld.so.
+       ($(objpfx)libpcprofile.so): Likewise.
+       * dlfcn/Makefile (LDLIBS-bug-atexit3-lib.so): Remove ld.so and
+       libc_nonshared.a.
+       ($(objpfx)libdl.so): Remove dependencies on libc and ld.so.
+       * hesiod/Makefile ($(objpfx)libnss_hesiod.so): Likewise.
+       * iconvdata/extra-module.mk ($(objpfx)$(mod).so): Depend on
+       $(link-libc-deps).
+       ($(objpfx)$(mod).so): Remove dependencies on libc and ld.so.
+       * locale/Makefile ($(objpfx)libBrokenLocale.so): Likewise.
+       * login/Makefile ($(objpfx)libutil.so): Likewise.
+       * malloc/Makefile ($(objpfx)libmemusage.so): Likewise.
+       * math/Makefile ($(objpfx)libm.so): Likewise.
+       * nis/Makefile ($(services:%=$(objpfx)libnss_%.so)
+       $(objpfx)libnsl.so): Define libc-for-link as target-specific
+       variable instead of depending directly on libc.
+       * nss/Makefile ($(services:%=$(objpfx)libnss_%.so)): Likewise.
+       ($(objpfx)/libnss_test1.so): Change dependencies on libc to
+       $(link-libc-deps).
+       * resolv/Makefile ($(objpfx)libresolv.so): Remove dependencies on
+       libc.
+       [$(have-ssp) = yes] (LDLIBS-resolv.so): Remove variable.
+       ($(objpfx)libnss_dns.so): Remove dependencies on libc.
+       ($(objpfx)libanl.so): Likewise.
+       * rt/Makefile ($(objpfx)librt.so): Remove dependencies on libc and
+       ld.so.
+       * stdlib/Makefile ($(objpfx)tst-putenvmod.so): Depend on
+       $(link-libc-deps).
+       * sysdeps/i386/fpu/Makefile: Remove file.
+       * sysdeps/powerpc/fpu/Makefile [$(subdir) = math]
+       ($(objpfx)libm.so): Remove dependency on ld.so.
+
 2013-05-30  Patsy Franklin  <pfrankli@redhat.com>
 
        [BZ # 15553]
index c12e332..7d8eccf 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -127,6 +127,9 @@ lib: $(common-objpfx)libc.so
 
 lib: $(common-objpfx)linkobj/libc.so
 
+# Do not filter ld.so out of libc.so link.
+$(common-objpfx)linkobj/libc.so: link-libc-deps = # empty
+
 $(common-objpfx)linkobj/libc.so: $(elfobjdir)/soinit.os \
                                 $(common-objpfx)linkobj/libc_pic.a \
                                 $(elfobjdir)/sofini.os \
index d88bb62..2c25233 100644 (file)
--- a/Makerules
+++ b/Makerules
@@ -432,13 +432,33 @@ map-file = $(firstword $($(@F:.so=-map)) \
 load-map-file = $(map-file:%=-Wl,--version-script=%)
 endif
 
+# Compiler arguments to use to link a shared object with libc and
+# ld.so.  This is intended to be as similar as possible to a default
+# link with an installed libc.
+link-libc-args = -Wl,--start-group \
+                $(libc-for-link) \
+                $(common-objpfx)libc_nonshared.a \
+                $(as-needed) $(elfobjdir)/ld.so $(no-as-needed) \
+                -Wl,--end-group
+
+# The corresponding shared libc to use.  This may be modified for a
+# particular target.
+libc-for-link = $(common-objpfx)libc.so
+
+# The corresponding dependencies.  As these are used in dependencies,
+# not just commands, they cannot use target-specific variables so need
+# to name both possible libc.so objects.
+link-libc-deps = $(common-objpfx)libc.so $(common-objpfx)linkobj/libc.so \
+                $(common-objpfx)libc_nonshared.a $(elfobjdir)/ld.so
+
 # Pattern rule to build a shared object from an archive of PIC objects.
 # This must come after the installation rules so Make doesn't try to
 # build shared libraries in place from the installed *_pic.a files.
 # $(LDLIBS-%.so) may contain -l switches to generate run-time dependencies
-# on other shared objects.
-lib%.so: lib%_pic.a $(+preinit) $(+postinit) $(+interp)
-       $(build-shlib)
+# on other shared objects.  The linking with libc and ld.so is intended
+# to be as similar as possible to a default link with an installed libc.
+lib%.so: lib%_pic.a $(+preinit) $(+postinit) $(+interp) $(link-libc-deps)
+       $(build-shlib) $(link-libc-args)
 
 define build-shlib-helper
 $(LINK.o) -shared $(static-libgcc) -Wl,-O1 $(sysdep-LDFLAGS) \
@@ -513,17 +533,19 @@ endef
 # not for shared objects
 define build-module
 $(build-module-helper) -o $@ $(shlib-lds-flags) \
-         $(csu-objpfx)abi-note.o $(build-module-objlist)
+         $(csu-objpfx)abi-note.o $(build-module-objlist) $(link-libc-args)
 endef
 define build-module-asneeded
 $(build-module-helper) -o $@ $(shlib-lds-flags) \
          $(csu-objpfx)abi-note.o \
-         -Wl,--as-needed $(build-module-objlist) -Wl,--no-as-needed
+         -Wl,--as-needed $(build-module-objlist) -Wl,--no-as-needed \
+         $(link-libc-args)
 endef
 
 build-module-helper-objlist = \
        $(patsubst %_pic.a,$(whole-archive) %_pic.a $(no-whole-archive),\
-                  $(filter-out %.lds $(map-file) $(+preinit) $(+postinit),$^))
+                  $(filter-out %.lds $(map-file) $(+preinit) $(+postinit) \
+                               $(link-libc-deps),$^))
 
 build-module-objlist = $(build-module-helper-objlist) $(LDLIBS-$(@F:%.so=%).so)
 build-shlib-objlist = $(build-module-helper-objlist) \
@@ -566,6 +588,9 @@ generated += libc_pic.opts libc_pic.os.clean
 libc_pic_clean := .clean
 endif
 
+# Do not filter ld.so out of libc.so link.
+$(common-objpfx)libc.so: link-libc-deps = # empty
+
 # Use our own special initializer and finalizer files for libc.so.
 $(common-objpfx)libc.so: $(elfobjdir)/soinit.os \
                         $(common-objpfx)libc_pic.os$(libc_pic_clean) \
@@ -621,8 +646,7 @@ include $(patsubst %,$(..)extra-modules.mk,$(modules-names))
 
 extra-modules-build := $(filter-out $(modules-names-nobuild),$(modules-names))
 $(extra-modules-build:%=$(objpfx)%.so): $(objpfx)%.so: \
-               $(objpfx)%.os $(shlib-lds) \
-               $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a
+               $(objpfx)%.os $(shlib-lds) $(link-libs-deps)
        $(build-module)
 endif
 \f
index 0f5f099..238e527 100644 (file)
@@ -69,8 +69,3 @@ $(addprefix $(objpfx),$(tests)): $(objpfx)libcrypt.so
 else
 $(addprefix $(objpfx),$(tests)): $(objpfx)libcrypt.a
 endif
-
-# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
-# This ensures they will load libc.so for needed symbols if loaded by
-# a statically-linked program that hasn't already loaded it.
-$(objpfx)libcrypt.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a
index 9b5afb4..779741f 100644 (file)
@@ -186,13 +186,3 @@ $(objpfx)xtrace: xtrace.sh
            -e 's|@PKGVERSION@|$(PKGVERSION)|' \
            -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|' $^ > $@.new \
        && rm -f $@ && mv $@.new $@ && chmod +x $@
-
-# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
-# This ensures they will load libc.so for needed symbols if loaded by
-# a statically-linked program that hasn't already loaded it.
-$(objpfx)libSegFault.so: $(common-objpfx)libc.so \
-                        $(common-objpfx)libc_nonshared.a \
-                        $(elf-objpfx)$(rtld-installed-name)
-$(objpfx)libpcprofile.so: $(common-objpfx)libc.so \
-                         $(common-objpfx)libc_nonshared.a \
-                         $(elf-objpfx)$(rtld-installed-name)
index cf4428c..c2ebdca 100644 (file)
@@ -117,14 +117,6 @@ $(objpfx)bug-atexit1.out: $(objpfx)bug-atexit1-lib.so
 $(objpfx)bug-atexit2: $(libdl)
 $(objpfx)bug-atexit2.out: $(objpfx)bug-atexit2-lib.so
 
-LDLIBS-bug-atexit3-lib.so = -lstdc++ -lgcc_eh $(elfobjdir)/ld.so \
-                           $(common-objpfx)libc_nonshared.a
+LDLIBS-bug-atexit3-lib.so = -lstdc++ -lgcc_eh
 $(objpfx)bug-atexit3: $(libdl)
 $(objpfx)bug-atexit3.out: $(objpfx)bug-atexit3-lib.so
-
-
-# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
-# This ensures they will load libc.so for needed symbols if loaded by
-# a statically-linked program that hasn't already loaded it.
-$(objpfx)libdl.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a \
-                  $(elfobjdir)/ld.so
index 95ec252..b7a13c2 100644 (file)
@@ -33,12 +33,7 @@ libnss_hesiod-inhibit-o      = $(filter-out .os,$(object-suffixes))
 
 include ../Rules
 
-# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
-# This ensures they will load libc.so for needed symbols if loaded by
-# a statically-linked program that hasn't already loaded it.
-# The Hesiod NSS modules also needs the resolver and some help from
+# The Hesiod NSS module also needs the resolver and some help from
 # the file service.
 $(objpfx)libnss_hesiod.so: $(common-objpfx)resolv/libresolv.so \
-                          $(common-objpfx)nss/libnss_files.so \
-                          $(common-objpfx)libc.so \
-                          $(common-objpfx)libc_nonshared.a
+                          $(common-objpfx)nss/libnss_files.so
index 43f4e12..ecaf507 100644 (file)
@@ -4,16 +4,9 @@ extra-modules-left := $(strip $(filter-out $(mod),$(extra-modules-left)))
 extra-objs := $(extra-objs) $(patsubst %,%.os,$($(mod)-routines))
 
 $(objpfx)$(mod).so: $(addprefix $(objpfx),$(addsuffix .os,$($(mod)-routines)))\
-                   $(shlib-lds)
+                   $(shlib-lds) $(link-libc-deps)
        $(build-module-asneeded)
 
-# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
-# This ensures they will load libc.so for needed symbols if loaded by
-# a statically-linked program that hasn't already loaded it.
-$(objpfx)$(mod).so: $(common-objpfx)libc.so \
-       $(common-objpfx)/elf/ld.so \
-       $(common-objpfx)libc_nonshared.a
-
 ifneq (,$(extra-modules-left))
 include extra-module.mk
 endif
index 619d891..50e5d53 100644 (file)
@@ -1,3 +1,7 @@
+2013-05-31  Joseph Myers  <joseph@codesourcery.com>
+
+       * Makefile ($(objpfx)libcidn.so): Remove dependencies on libc.
+
 2013-05-16  Ryan S. Arnold  <rsa@linux.vnet.ibm.com>
 
        * idna.c: Add missing #include <stdint.h> due to uint64_t or uint32_t
index 1c578c1..de26051 100644 (file)
@@ -33,5 +33,3 @@ include $(..)Makeconfig
 libcidn-inhibit-o = $(filter-out .os,$(object-suffixes))
 
 include $(..)Rules
-
-$(objpfx)libcidn.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a
index 8bab9a0..8ccc603 100644 (file)
@@ -98,9 +98,3 @@ cpp-srcs-left := $(addsuffix .c,$(localedef-modules) $(localedef-aux) \
                                $(locale-modules) $(lib-modules))
 lib := locale-programs
 include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left))
-
-# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
-# This ensures they will load libc.so for needed symbols if loaded by
-# a statically-linked program that hasn't already loaded it.
-$(objpfx)libBrokenLocale.so: $(common-objpfx)libc.so \
-                            $(common-objpfx)libc_nonshared.a
index 61c9d7e..0bfe643 100644 (file)
@@ -68,8 +68,3 @@ endif
 $(inst_libexecdir)/pt_chown: $(objpfx)pt_chown $(+force)
        $(make-target-directory)
        -$(INSTALL_PROGRAM) -m 4755 -o root $< $@
-
-# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
-# This ensures they will load libc.so for needed symbols if loaded by
-# a statically-linked program that hasn't already loaded it.
-$(objpfx)libutil.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a
index 05f9b15..0fe31a4 100644 (file)
@@ -141,7 +141,7 @@ $(objpfx)memusage: memusage.sh
 
 
 # The implementation uses `dlsym'
-$(objpfx)libmemusage.so: $(common-objpfx)dlfcn/libdl.so $(elfobjdir)/ld.so
+$(objpfx)libmemusage.so: $(common-objpfx)dlfcn/libdl.so
 
 # Extra dependencies
 $(foreach o,$(all-object-suffixes),$(objpfx)malloc$(o)): arena.c hooks.c
index 5bbf9d3..3ed78fc 100644 (file)
@@ -229,8 +229,3 @@ gmp-objs = $(patsubst %,$(common-objpfx)stdlib/%.o,\
 $(objpfx)atest-exp: $(gmp-objs)
 $(objpfx)atest-sincos: $(gmp-objs)
 $(objpfx)atest-exp2: $(gmp-objs)
-
-# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
-# This ensures they will load libc.so for needed symbols if loaded by
-# a statically-linked program that hasn't already loaded it.
-$(objpfx)libm.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a
index 0b3b6a2..0ce99d0 100644 (file)
@@ -76,12 +76,12 @@ $(objpfx)libnss_nis.so: $(objpfx)libnsl.so$(libnsl.so-version) \
                        $(common-objpfx)nss/libnss_files.so
 $(objpfx)libnss_nisplus.so: $(objpfx)libnsl.so$(libnsl.so-version)
 
-# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
-# This ensures they will load libc.so for needed symbols if loaded by
-# a statically-linked program that hasn't already loaded it.
 libnsl-libc = $(common-objpfx)linkobj/libc.so
-$(services:%=$(objpfx)libnss_%.so) $(objpfx)libnsl.so: $(libnsl-libc) \
-                                              $(common-objpfx)libc_nonshared.a
+# Target-specific variable setting to link objects using deprecated
+# RPC interfaces with the version of libc.so that makes them available
+# for new links:
+$(services:%=$(objpfx)libnss_%.so) $(objpfx)libnsl.so: \
+  libc-for-link = $(libnsl-libc)
 
 
 ifeq ($(build-shared),yes)
index 6e5ca4c..7a9ce8e 100644 (file)
@@ -1,3 +1,8 @@
+2013-05-31  Joseph Myers  <joseph@codesourcery.com>
+
+       * Makefile ($(objpfx)libpthread.so): Remove dependencies on libc
+       and ld.so.
+
 2013-05-16  Ryan S. Arnold  <rsa@linux.vnet.ibm.com>
 
        * pthread_create.c: Add missing #include <stdint.h> due to uint64_t or
index 6af4b37..7fa991b 100644 (file)
@@ -507,14 +507,6 @@ $(objpfx)libpthread.so: $(addprefix $(objpfx),$(crti-objs) $(crtn-objs))
 $(objpfx)libpthread.so: +preinit += $(addprefix $(objpfx),$(crti-objs))
 $(objpfx)libpthread.so: +postinit += $(addprefix $(objpfx),$(crtn-objs))
 
-# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
-# This ensures they will load libc.so for needed symbols if loaded by
-# a statically-linked program that hasn't already loaded it.
-# Depend on ld.so too to get proper versions of ld.so symbols.
-$(objpfx)libpthread.so: $(common-objpfx)libc.so \
-                       $(common-objpfx)libc_nonshared.a \
-                       $(elfobjdir)/ld.so
-
 # Make sure we link with the thread library.
 ifeq ($(build-shared),yes)
 $(addprefix $(objpfx), \
index 34462ce..e0935e3 100644 (file)
@@ -1,3 +1,8 @@
+2013-05-31  Joseph Myers  <joseph@codesourcery.com>
+
+       * Makefile ($(objpfx)libthread_db.so): Remove dependencies on
+       libc.
+
 2013-05-16  Ryan S. Arnold  <rsa@linux.vnet.ibm.com>
 
        * db_info.c: Add missing #include <stdint.h> due to uint64_t or
index 533fbae..77ea46e 100644 (file)
@@ -51,12 +51,6 @@ libthread_db.so-no-z-defs = yes
 
 include ../Rules
 
-# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
-# This ensures they will load libc.so for needed symbols if loaded by
-# a statically-linked program that hasn't already loaded it.
-$(objpfx)libthread_db.so: $(common-objpfx)libc.so \
-                         $(common-objpfx)libc_nonshared.a
-
 tests: $(objpfx)db-symbols.out
 $(objpfx)db-symbols.out: $(objpfx)db-symbols.v.i \
                         $(common-objpfx)nptl/libpthread.so
index 553eafa..ae2e5f6 100644 (file)
@@ -84,12 +84,11 @@ ifeq (yes,$(have-selinux))
 LDLIBS-makedb          := -lselinux
 endif
 
-# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
-# This ensures they will load libc.so for needed symbols if loaded by
-# a statically-linked program that hasn't already loaded it.
 libnss-libc = $(common-objpfx)linkobj/libc.so
-$(services:%=$(objpfx)libnss_%.so): $(libnss-libc) \
-                                   $(common-objpfx)libc_nonshared.a
+# Target-specific variable setting to link objects using deprecated
+# RPC interfaces with the version of libc.so that makes them available
+# for new links:
+$(services:%=$(objpfx)libnss_%.so): libc-for-link = $(libnss-libc)
 
 $(objpfx)libnss_db.so: $(objpfx)libnss_files.so
 
@@ -107,8 +106,7 @@ $(inst_vardbdir)/Makefile: db-Makefile $(+force)
        $(do-install)
 
 CFLAGS-nss_test1.c = -DNOT_IN_libc=1
-$(objpfx)/libnss_test1.so: $(objpfx)nss_test1.os $(common-objpfx)libc.so \
-                          $(common-objpfx)libc_nonshared.a
+$(objpfx)/libnss_test1.so: $(objpfx)nss_test1.os $(link-libc-deps)
        $(build-module)
 ifdef libnss_test1.so-version
 $(objpfx)/libnss_test1.so$(libnss_test1.so-version): $(objpfx)/libnss_test1.so
index b1f14df..7c025ca 100644 (file)
@@ -1,3 +1,9 @@
+2013-05-31  Joseph Myers  <joseph@codesourcery.com>
+
+       * sysdeps/arm/Makefile [$(subdir) = malloc]
+       ($(objpfx)libmemusage.so): Remove dependency on libc_nonshared.
+       [$(subdir) = math] ($(objpfx)libm.so): Remove dependency on ld.so.
+
 2013-05-29  Siddhesh Poyarekar  <siddhesh@redhat.com>
 
        [BZ #15465]
index 32fcfbc..9890681 100644 (file)
@@ -1,3 +1,21 @@
+2013-05-31  Joseph Myers  <joseph@codesourcery.com>
+
+       * sysdeps/microblaze/Makefile ($(objpfx)libm.so): Remove
+       dependency on ld.so.
+       ($(objpfx)libcrypt.so): Likewise.
+       ($(objpfx)libresolv.so): Likewise.
+       ($(objpfx)libnss_dns.so): Likewise.
+       ($(objpfx)libnss_files.so): Likewise.
+       ($(objpfx)libnss_db.so): Likewise.
+       ($(objpfx)libnss_nis.so): Likewise.
+       ($(objpfx)libnss_nisplus.so): Likewise.
+       ($(objpfx)libnss_hesiod.so): Likewise.
+       ($(objpfx)libnss_compat.so): Likewise.
+       ($(objpfx)libanl.so): Likewise.
+       ($(objpfx)libnsl.so): Likewise.
+       ($(objpfx)libcidn.so): Likewise.
+       ($(objpfx)libutil.so): Likewise.
+
 2013-05-29  Siddhesh Poyarekar  <siddhesh@redhat.com>
 
        [BZ #15465]
index 3bdb6b3..b218e76 100644 (file)
@@ -25,11 +25,6 @@ sysdep_routines += $(aeabi_constants) $(aeabi_routines)
 static-only-routines += $(aeabi_constants)
 endif
 
-# to pull in __aeabi_read_tp, needed for tls
-ifeq ($(subdir),malloc)
-$(objpfx)libmemusage.so: $(common-objpfx)libc_nonshared.a
-endif
-
 ifeq ($(subdir),gmon)
 sysdep_routines += arm-mcount
 endif
@@ -37,7 +32,3 @@ endif
 ifeq ($(subdir),debug)
 CFLAGS-backtrace.c += -funwind-tables
 endif
-
-ifeq ($(subdir),math)
-$(objpfx)libm.so: $(elfobjdir)/ld.so
-endif
index cc82a74..f7c95ae 100644 (file)
@@ -9,18 +9,3 @@ endif
 ifeq ($(subdir),resource)
 sysdep_routines += backtrace_linux
 endif
-
-$(objpfx)libm.so: $(elfobjdir)/ld.so
-$(objpfx)libcrypt.so: $(elfobjdir)/ld.so
-$(objpfx)libresolv.so: $(elfobjdir)/ld.so
-$(objpfx)libnss_dns.so: $(elfobjdir)/ld.so
-$(objpfx)libnss_files.so: $(elfobjdir)/ld.so
-$(objpfx)libnss_db.so: $(elfobjdir)/ld.so
-$(objpfx)libnss_nis.so: $(elfobjdir)/ld.so
-$(objpfx)libnss_nisplus.so: $(elfobjdir)/ld.so
-$(objpfx)libnss_hesiod.so: $(elfobjdir)/ld.so
-$(objpfx)libnss_compat.so: $(elfobjdir)/ld.so
-$(objpfx)libanl.so: $(elfobjdir)/ld.so
-$(objpfx)libnsl.so: $(elfobjdir)/ld.so
-$(objpfx)libcidn.so: $(elfobjdir)/ld.so
-$(objpfx)libutil.so: $(elfobjdir)/ld.so
index d3635bc..51dcf21 100644 (file)
@@ -83,23 +83,11 @@ CFLAGS-res_hconf.c = -fexceptions
 # The BIND code elicits some harmless warnings.
 +cflags += -Wno-strict-prototypes -Wno-write-strings
 
-# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
-# This ensures they will load libc.so for needed symbols if loaded by
-# a statically-linked program that hasn't already loaded it.
-$(objpfx)libresolv.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a
-# Some hosts need '__stack_chk_guard', so pull in the definition from
-# ld.so if required.
-ifeq (yes,$(have-ssp))
-LDLIBS-resolv.so += $(as-needed) $(elfobjdir)/ld.so $(no-as-needed)
-endif
-
 # The DNS NSS modules needs the resolver.
-$(objpfx)libnss_dns.so: $(objpfx)libresolv.so $(common-objpfx)libc.so \
-                       $(common-objpfx)libc_nonshared.a
+$(objpfx)libnss_dns.so: $(objpfx)libresolv.so
 
 # The asynchronous name lookup code needs the thread library.
-$(objpfx)libanl.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a \
-                   $(shared-thread-library)
+$(objpfx)libanl.so: $(shared-thread-library)
 
 $(objpfx)ga_test: $(objpfx)libanl.so $(shared-thread-library)
 
index ef356d0..b1392f2 100644 (file)
@@ -64,12 +64,7 @@ CFLAGS-librt-cancellation.c = -fasynchronous-unwind-tables
 
 LDFLAGS-rt.so = -Wl,--enable-new-dtags,-z,nodelete
 
-# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
-# This ensures they will load libc.so for needed symbols if loaded by
-# a statically-linked program that hasn't already loaded it.
-$(objpfx)librt.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a \
-                  $(shared-thread-library) \
-                  $(elfobjdir)/ld.so
+$(objpfx)librt.so: $(shared-thread-library)
 
 ifeq (yes,$(build-shared))
 $(addprefix $(objpfx),$(tests)): $(objpfx)librt.so $(shared-thread-library)
index 27765d1..17d80e0 100644 (file)
@@ -144,7 +144,7 @@ $(objpfx)tst-fmtmsg.out: tst-fmtmsg.sh $(objpfx)tst-fmtmsg
 $(objpfx)tst-putenv: $(objpfx)tst-putenvmod.so
 LDFLAGS-tst-putenv = $(no-as-needed)
 
-$(objpfx)tst-putenvmod.so: $(objpfx)tst-putenvmod.os
+$(objpfx)tst-putenvmod.so: $(objpfx)tst-putenvmod.os $(link-libc-deps)
        $(build-module)
 CFLAGS-tst-putenvmod.c = -DNOT_IN_libc=1
 
diff --git a/sysdeps/i386/fpu/Makefile b/sysdeps/i386/fpu/Makefile
deleted file mode 100644 (file)
index 1309b64..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-ifeq ($(subdir),math)
-$(objpfx)libm.so: $(elfobjdir)/ld.so
-endif
index fda59f9..53470a9 100644 (file)
@@ -1,8 +1,5 @@
 ifeq ($(subdir),math)
 libm-support += fenv_const fe_nomask fe_mask t_sqrt
-
-# libm needs ld.so to access dl_hwcap
-$(objpfx)libm.so: $(elfobjdir)/ld.so
 endif
 
 ifeq ($(subdir),stdlib)