From 5407f442ec52d7aa7a92573b765dafecca74abe4 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 23 Mar 1999 18:05:48 +0000 Subject: [PATCH] 1999-03-23 Roland McGrath * 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. --- ChangeLog | 12 ++++++++++++ mach/Machrules | 14 ++++++-------- sysdeps/mach/hurd/Makefile | 11 ++++++++++- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index fc5577d..659bcad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +1999-03-23 Roland McGrath + + * 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 * sysdeps/mach/hurd/Makefile (subdir_lib): Depend on diff --git a/mach/Machrules b/mach/Machrules index b5a6998..adf5394 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 fbc1ad3..ec466e3 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) -- 2.7.4