summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/patches/0001-hurd-make-the-protected-payload-changes-less-intrusi.patch63
-rw-r--r--debian/patches/series1
2 files changed, 64 insertions, 0 deletions
diff --git a/debian/patches/0001-hurd-make-the-protected-payload-changes-less-intrusi.patch b/debian/patches/0001-hurd-make-the-protected-payload-changes-less-intrusi.patch
new file mode 100644
index 00000000..818cb8ae
--- /dev/null
+++ b/debian/patches/0001-hurd-make-the-protected-payload-changes-less-intrusi.patch
@@ -0,0 +1,63 @@
+From 89c2cbb53b8ad14ae9d5d06ec230a696bea4a6ba Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Fri, 12 Dec 2014 17:09:07 +0100
+Subject: [PATCH hurd] hurd: make the protected payload changes less intrusive
+
+The changes to `hurd_types.defs' caused the glibc build to fail.
+Guard the problematic parts with `HURD_SERVER' similar how it is done
+in GNU Mach.
+
+* Makeconf: Define `HURD_SERVER' when preprocessing the RPC
+definitions for the server side.
+* hurd/hurd_types.defs: Guard problematic parts with `HURD_SERVER'.
+---
+ Makeconf | 1 +
+ hurd/hurd_types.defs | 5 ++---
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/Makeconf b/Makeconf
+index 5439913..ed2f6d0 100644
+--- a/Makeconf
++++ b/Makeconf
+@@ -546,6 +546,7 @@ MIGCOMFLAGS := -subrprefix __
+
+ %.sdefsi %.sdefs.d: %.defs
+ $(CPP) $(CPPFLAGS) $(MIGSFLAGS) $($*-MIGSFLAGS) -DSERVERPREFIX=S_ \
++ -DHURD_SERVER=1 \
+ -MD -MF $*.sdefs.d.new \
+ $< -o $*.sdefsi
+ sed -e 's/[^:]*:/$*Server.c $(mig-sheader-prefix)$*_S.h:/' \
+diff --git a/hurd/hurd_types.defs b/hurd/hurd_types.defs
+index 4c01e63..5fa59f3 100644
+--- a/hurd/hurd_types.defs
++++ b/hurd/hurd_types.defs
+@@ -18,6 +18,7 @@ along with the GNU Hurd; see the file COPYING. If not, write to
+ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+
++#ifdef HURD_SERVER
+ /* The Hurd uses protected payloads to quickly look up the object
+ receiving a message. Looking up objects is optimized at the cost
+ of having to translate payloads back to port names if the server
+@@ -42,10 +43,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+ #undef HURD_DEFAULT_PAYLOAD_TO_PORT
+ #endif
+ #else
+-/* Ideally we would include this here, to make sure ports_payload_get_name gets
+- declared, but this leads to an inclusion loop via hurd/signal.h
+ import <hurd/ports.h>;
+- */
+ #define HURD_DEFAULT_PAYLOAD_TO_PORT ports_payload_get_name
+ #endif
+
+@@ -55,6 +53,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+ #ifdef HURD_DEFAULT_PAYLOAD_TO_PORT
+ #define MACH_PAYLOAD_TO_PORT HURD_DEFAULT_PAYLOAD_TO_PORT
+ #endif
++#endif /* HURD_SERVER */
+
+ #include <mach/std_types.defs>
+ #include <mach/mach_types.defs>
+--
+2.1.3
+
diff --git a/debian/patches/series b/debian/patches/series
index ef03f009..aab9614e 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -45,3 +45,4 @@ startup-avoid-broken-puts.patch
pfinet_dhcp.patch
libports-payloads.patch
proc-task-notify-0005-proc-fix-build.patch
+0001-hurd-make-the-protected-payload-changes-less-intrusi.patch