about summary refs log tree commit diff
path: root/sysdeps/mach
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/mach')
-rw-r--r--sysdeps/mach/hurd/Makefile12
1 files changed, 10 insertions, 2 deletions
diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile
index 8b70092f5f..26446951cc 100644
--- a/sysdeps/mach/hurd/Makefile
+++ b/sysdeps/mach/hurd/Makefile
@@ -104,11 +104,19 @@ endif
 
 # For the shared library, we don't need to do the linker script machination.
 # Instead, we specify the required libraries when building the shared object.
-$(common-objpfx)libc.so: $(firstword $(objdir) $(..)mach)/libmachuser.so \
-			 $(firstword $(objdir) $(..)hurd)/libhurduser.so
+rpcuserlibs := $(firstword $(objdir) $(..)mach)/libmachuser.so \
+	       $(firstword $(objdir) $(..)hurd)/libhurduser.so
+$(common-objpfx)libc.so: $(rpcuserlibs)
 ifndef objpfx
 rpath-link += $(..)mach:$(..)hurd
 endif
+
+# The RPC stubs from these libraries are needed in building the dynamic
+# linker, too.  It must be self-contained, so we link the needed PIC
+# objects directly into the shared object.
+ifeq (elf,$(subdir))
+$(objpfx)librtld.so: $(rpcuserlibs:.so=_pic.a)
+endif
 
 
 endif	# in-Makerules