about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog12
-rw-r--r--mach/Machrules14
-rw-r--r--sysdeps/mach/hurd/Makefile11
3 files changed, 28 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index fc5577d7e9..659bcadcc4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+1999-03-23  Roland McGrath  <roland@baalperazim.frob.com>
+
+	* sysdeps/mach/hurd/Makefile: Undo last change.
+	[$(subdir) = mach] (lib-noranlib): Depend on libmachuser-link.so.
+	[$(subdir) = hurd] (lib-noranlib): Depend on libhurduser-link.so.
+
+	* mach/Machrules (+preinit, +postinit, +interp,
+	LDFLAGS-$(interface.so)): Variables removed.  Interface libraries get
+	linked just like other shared libraries.
+	(interface.so): Fix typo in defn, so it works.
+	($(objpfx)$(interface.so)): Make it depend on libc.so.
+
 1999-03-21  Roland McGrath  <roland@baalperazim.frob.com>
 
 	* sysdeps/mach/hurd/Makefile (subdir_lib): Depend on
diff --git a/mach/Machrules b/mach/Machrules
index b5a6998c18..adf539419a 100644
--- a/mach/Machrules
+++ b/mach/Machrules
@@ -221,13 +221,11 @@ $(interface-library)-routines = $(interface-routines)
 extra-libs += $(interface-library)
 extra-libs-others += $(interface-library)
 
-# Avoid -lmachuser requiring -lc, which may not be built yet.  If the
-# shared object is absent, ld may choose a static library someplace and
-# produce a bogus libmachuser.so.
-+preinit =
-+postinit =
-+interp =
-interface.so = $(interface-library:lib%=%.so)
-LDFLAGS-$(interface.so) = -nostdlib -nostartfiles
+ifeq (yes,$(build-shared))
+interface.so = $(interface-library:=.so)
+
+# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
+$(objpfx)$(interface.so): $(common-objpfx)libc.so
+endif
 
 endif
diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile
index fbc1ad3f61..ec466e3ee6 100644
--- a/sysdeps/mach/hurd/Makefile
+++ b/sysdeps/mach/hurd/Makefile
@@ -133,9 +133,18 @@ endif
 rpcuserlibs := $(common-objpfx)mach/libmachuser.so \
 	       $(common-objpfx)hurd/libhurduser.so
 link-rpcuserlibs := $(rpcuserlibs:%user.so=%user-link.so)
-$(common-objpfx)libc.so subdir_lib: $(link-rpcuserlibs)
+$(common-objpfx)libc.so: $(link-rpcuserlibs)
 rpath-dirs += mach hurd
 
+# Make sure the `lib' pass builds the dummy shared objects so
+# we can link libc against them.
+ifeq (mach,$(subdir))
+lib-noranlib: $(common-objpfx)mach/libmachuser-link.so
+endif
+ifeq (hurd,$(subdir))
+lib-noranlib: $(common-objpfx)hurd/libhurduser-link.so
+endif
+
 $(link-rpcuserlibs): %-link.so: %_pic.a
 	$(build-module) -nostdlib -Wl,-soname=$(*F).so$($(*F).so-version)