This changes the way _EXTERN_INLINE is defined so we can
avoid external definition errors.
https://lists.gnu.org/archive/html/bug-hurd/2014-04/msg00002.html

diff --git a/signal/sigsetops.c b/signal/sigsetops.c
index 0317662..b92c296 100644
--- a/signal/sigsetops.c
+++ b/signal/sigsetops.c
@@ -3,7 +3,9 @@
 
 #include <features.h>
 
-#define _EXTERN_INLINE
+#ifndef _EXTERN_INLINE
+#define _EXTERN_INLINE __extern_inline
+#endif
 #ifndef __USE_EXTERN_INLINES
 # define __USE_EXTERN_INLINES  1
 #endif

Link libmachuser and libhurduser automatically with libc, since they are
considered a standard part of the API in GNU-land.

--- a/Makerules
+++ b/Makerules
@@ -978,6 +978,9 @@
 	      '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
	      ' AS_NEEDED (' $(rtlddir)/$(rtld-installed-name) ') )' \
 	) > $@.new
+ifeq ($(patsubst gnu%,,$(config-os)),)
+	echo 'INPUT ( AS_NEEDED ( -lmachuser -lhurduser ) )' >> $@.new
+endif
 	mv -f $@.new $@
 
 endif