diff options
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | mach/Machrules | 14 | ||||
-rw-r--r-- | sysdeps/mach/hurd/Makefile | 11 |
3 files changed, 28 insertions, 9 deletions
@@ -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) |