Hi,

Here's the first patch of my port of Rump to GNU/Hurd. It includes the basic
system detection stuff.

-- 
Robert Millan
--- a/buildrump.sh/buildrump.sh
+++ b/buildrump.sh/buildrump.sh
@@ -993,6 +993,13 @@
 		cppdefines _LITTLE_ENDIAN \
 		    && appendvar RUMPKERN_UNDEF -U_LITTLE_ENDIAN
 		;;
+	*-gnu*)
+		RUMPKERN_UNDEF='-U__GNU__'
+		cppdefines _BIG_ENDIAN \
+		    && appendvar RUMPKERN_UNDEF -U_BIG_ENDIAN
+		cppdefines _LITTLE_ENDIAN \
+		    && appendvar RUMPKERN_UNDEF -U_LITTLE_ENDIAN
+		;;
 	*-dragonflybsd)
 		RUMPKERN_UNDEF='-U__DragonFly__'
 		;;
@@ -1064,6 +1071,10 @@
 		doesitbuild '#include <linux/if_tun.h>' -c && RUMP_VIRTIF=yes
 		cppdefines '__ANDROID__' || HIJACK=true
 		;;
+	*-gnu*)
+		EXTRA_RUMPCOMMON='-ldl'
+		EXTRA_RUMPCLIENT='-lpthread'
+		;;
 	*-openbsd*)
 		EXTRA_RUMPCLIENT='-lpthread'
 		;;
--- a/buildrump.sh/src/lib/librumpuser/rumpuser_port.h
+++ b/buildrump.sh/src/lib/librumpuser/rumpuser_port.h
@@ -63,7 +63,7 @@
 #include "rumpuser_config.h"
 #endif
 
-#ifdef __linux__
+#if defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)
 #define _GNU_SOURCE
 #endif
 
--- a/buildrump.sh/src/lib/librumpuser/rumpuser_sp.c
+++ b/buildrump.sh/src/lib/librumpuser/rumpuser_sp.c
@@ -90,7 +90,7 @@
 
 
 /* how to use atomic ops on Linux? */
-#if defined(__linux__) || defined(__APPLE__) || defined(__CYGWIN__) || defined(__OpenBSD__)
+#if defined(__linux__) || defined(__APPLE__) || defined(__CYGWIN__) || defined(__OpenBSD__) || defined(__GNU__) || defined(__GLIBC__)
 static pthread_mutex_t discomtx = PTHREAD_MUTEX_INITIALIZER;
 
 static void

Reply via email to