This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Link extra-libs consistently with libc and ld.so


As has been discussed on various occasions, it's desirable in
principle for miscellaneous shared objects and executables installed
by glibc to be built in as similar a way as possible to such objects
built with an installed libc: there should only be differences from
how something would be built with an installed libc where there is a
good reason for those differences, which is mainly the case for libc
and ld.so but not for other libraries.

In particular, shared objects built outside of a glibc build are
generally linked with libc.so, which is installed as a linker script
with contents of the form

/* GNU ld script
   Use the shared library, but some functions are only in
   the static library, so try that secondarily.  */
OUTPUT_FORMAT(elf64-x86-64)
GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a  AS_NEEDED ( /lib64/ld-linux-x86-64.so.2 ) )

so indicating that appropriate linker options and libraries should be
passed for a link as part of a glibc build to replicate the effects of
such a linker script.

At present, links of libraries in extra-libs do not generally link
with libc or ld.so, but various individual makefiles contain code to
make particular libraries link that way.  This patch moves such code
into the toplevel Makerules, eliminating the cases in subdirectory
makefiles.

Tested x86_64 and x86; also tested for ARM (GCC configured
--with-tls=gnu2) that glibc builds OK.  I haven't tested the changes
for PowerPC or MicroBlaze.

Some unresolved issues with this patch about how best to do certain
things:

* In Makerules I link with ld.so in the form
  $(common-objpfx)elf/ld.so.  Other versions used in removed code
  include $(elf-objpfx)$(rtld-installed-name) and $(elfobjdir)/ld.so.
  Which is the best form to use in glibc makefiles?

* Some libraries need to link with the internal linkobj/libc.so,
  rather than the normal libc.so, because of use of obsolete RPC
  interfaces.  To support this, the rule in Makerules allows
  $($(@F)-libc) to be used instead of the default
  $(common-objpfx)libc.so.  But a previous arrangement where
  dependencies were generated for every library listed in $(services)
  in nis/Makefile and nss/Makefile has been replaced by one where a
  variable for each library is set separately (libnss_nis.so-libc,
  libnss_nisplus.so-libc etc.) - is there a good way, without unduly
  increasing complexity, to set such variables for everything in
  $(services) without the repetition of the list of elements of
  $(services)?

* This patch doesn't add libc.so, libc_nonshared.a and ld.so to the
  makefile dependencies of the objects being linked with them.
  Dependencies would get automatically included in the list of objects
  to link, via build-shlib-objlist and build-module-helper-objlist
  used therein - and so not inside the --start-group / --end-group
  pair and --as-needed / --no-as-needed used to replicate how linking
  with an installed library would operate.  Filtering them out in
  build-module-helper-objlist would affect build-module.  Should I
  make build-module-helper-objlist filter them out, and change also
  how modules are built, so that build-module includes the same
  sequence of arguments for linking with libc/ld.so as used after this
  patch in lib%.so?  (Changing also build-module-asneeded would allow
  eliminating the special-case dependencies in elf/Makefile for
  sotruss-lib.so.)

2013-05-09  Joseph Myers  <joseph@codesourcery.com>

	* Makerules (lib%.so): Link with shared libc, libc_nonshared, and
	(with --as-needed) ld.so.
	* 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 ($(objpfx)libdl.so): Likewise.
	* hesiod/Makefile ($(objpfx)libnss_hesiod.so): Likewise.
	* 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 (libnss_nis.so-libc): New variable.
	(libnss_nisplus.so-libc): Likewise.
	(libnss_compat.so-libc): Likewise.
	(libnsl.so-libc): Likewise.
	($(services:%=$(objpfx)libnss_%.so) $(objpfx)libnsl.so): Remove
	dependencies on libc.
	* nss/Makefile (libnss_files.so-libc): New variable.
	(libnss_db.so-libc): Likewise.
	($(services:%=$(objpfx)libnss_%.so)): Remove dependencies on libc.
	* 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.
	* sysdeps/i386/fpu/Makefile: Remove file.
	* sysdeps/powerpc/fpu/Makefile [$(subdir) = math]
	($(objpfx)libm.so): Remove dependency on ld.so.

libidn/ChangeLog:
2013-05-08  Joseph Myers  <joseph@codesourcery.com>

	* Makefile ($(objpfx)libcidn.so): Remove dependencies on libc.

nptl/ChangeLog:
2013-05-08  Joseph Myers  <joseph@codesourcery.com>

	* Makefile ($(objpfx)libpthread.so): Remove dependencies on libc
	and ld.so.

nptl_db/ChangeLog:
2013-05-08  Joseph Myers  <joseph@codesourcery.com>

	* Makefile ($(objpfx)libthread_db.so): Remove dependencies on
	libc.

ports/ChangeLog.arm:
2013-05-08  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.

ports/ChangeLog.microblaze
2013-05-08  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.

diff --git a/Makerules b/Makerules
index d88bb62..2ea47c8 100644
--- a/Makerules
+++ b/Makerules
@@ -436,9 +436,15 @@ endif
 # 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.
+# 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)
-	$(build-shlib)
+	$(build-shlib) -Wl,--start-group \
+		       $(if $($(@F)-libc),$($(@F)-libc),\
+					  $(common-objpfx)libc.so) \
+		       $(common-objpfx)libc_nonshared.a \
+		       $(as-needed) $(common-objpfx)elf/ld.so $(no-as-needed) \
+		       -Wl,--end-group
 
 define build-shlib-helper
 $(LINK.o) -shared $(static-libgcc) -Wl,-O1 $(sysdep-LDFLAGS) \
diff --git a/crypt/Makefile b/crypt/Makefile
index 0f5f099..238e527 100644
--- a/crypt/Makefile
+++ b/crypt/Makefile
@@ -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
diff --git a/debug/Makefile b/debug/Makefile
index 9b5afb4..779741f 100644
--- a/debug/Makefile
+++ b/debug/Makefile
@@ -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)
diff --git a/dlfcn/Makefile b/dlfcn/Makefile
index cf4428c..1e7b7c1 100644
--- a/dlfcn/Makefile
+++ b/dlfcn/Makefile
@@ -121,10 +121,3 @@ LDLIBS-bug-atexit3-lib.so = -lstdc++ -lgcc_eh $(elfobjdir)/ld.so \
 			    $(common-objpfx)libc_nonshared.a
 $(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
diff --git a/hesiod/Makefile b/hesiod/Makefile
index 95ec252..b7a13c2 100644
--- a/hesiod/Makefile
+++ b/hesiod/Makefile
@@ -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
diff --git a/libidn/Makefile b/libidn/Makefile
index 1c578c1..de26051 100644
--- a/libidn/Makefile
+++ b/libidn/Makefile
@@ -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
diff --git a/locale/Makefile b/locale/Makefile
index 8bab9a0..8ccc603 100644
--- a/locale/Makefile
+++ b/locale/Makefile
@@ -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
diff --git a/login/Makefile b/login/Makefile
index 61c9d7e..0bfe643 100644
--- a/login/Makefile
+++ b/login/Makefile
@@ -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
diff --git a/malloc/Makefile b/malloc/Makefile
index 05f9b15..0fe31a4 100644
--- a/malloc/Makefile
+++ b/malloc/Makefile
@@ -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
diff --git a/math/Makefile b/math/Makefile
index 5bbf9d3..3ed78fc 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -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
diff --git a/nis/Makefile b/nis/Makefile
index 0b3b6a2..45a36c9 100644
--- a/nis/Makefile
+++ b/nis/Makefile
@@ -76,12 +76,11 @@ $(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
+libnss_nis.so-libc = $(libnsl-libc)
+libnss_nisplus.so-libc = $(libnsl-libc)
+libnss_compat.so-libc = $(libnsl-libc)
+libnsl.so-libc = $(libnsl-libc)
 
 
 ifeq ($(build-shared),yes)
diff --git a/nptl/Makefile b/nptl/Makefile
index 6af4b37..7fa991b 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -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), \
diff --git a/nptl_db/Makefile b/nptl_db/Makefile
index 533fbae..77ea46e 100644
--- a/nptl_db/Makefile
+++ b/nptl_db/Makefile
@@ -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
diff --git a/nss/Makefile b/nss/Makefile
index 449a258..2c7da13 100644
--- a/nss/Makefile
+++ b/nss/Makefile
@@ -84,12 +84,9 @@ 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
+libnss_files.so-libc = $(libnss-libc)
+libnss_db.so-libc = $(libnss-libc)
 
 $(objpfx)libnss_db.so: $(objpfx)libnss_files.so
 
diff --git a/ports/sysdeps/arm/Makefile b/ports/sysdeps/arm/Makefile
index 3bdb6b3..b218e76 100644
--- a/ports/sysdeps/arm/Makefile
+++ b/ports/sysdeps/arm/Makefile
@@ -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
diff --git a/ports/sysdeps/microblaze/Makefile b/ports/sysdeps/microblaze/Makefile
index cc82a74..f7c95ae 100644
--- a/ports/sysdeps/microblaze/Makefile
+++ b/ports/sysdeps/microblaze/Makefile
@@ -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
diff --git a/resolv/Makefile b/resolv/Makefile
index d3635bc..51dcf21 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -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)
 
diff --git a/rt/Makefile b/rt/Makefile
index ef356d0..b1392f2 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -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)
diff --git a/sysdeps/i386/fpu/Makefile b/sysdeps/i386/fpu/Makefile
deleted file mode 100644
index 1309b64..0000000
--- a/sysdeps/i386/fpu/Makefile
+++ /dev/null
@@ -1,3 +0,0 @@
-ifeq ($(subdir),math)
-$(objpfx)libm.so: $(elfobjdir)/ld.so
-endif
diff --git a/sysdeps/powerpc/fpu/Makefile b/sysdeps/powerpc/fpu/Makefile
index fda59f9..53470a9 100644
--- a/sysdeps/powerpc/fpu/Makefile
+++ b/sysdeps/powerpc/fpu/Makefile
@@ -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)

-- 
Joseph S. Myers
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]