summaryrefslogtreecommitdiff
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)