summaryrefslogtreecommitdiff
path: root/debian
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2014-05-25 17:03:11 +0200
committerJustus Winter <4winter@informatik.uni-hamburg.de>2014-05-25 17:03:11 +0200
commit8e9065cbf9e98105f4bc727a37e5bbc64b5984a1 (patch)
treee006a9e56bb61121ecf430726cdabb8dc4dc175a /debian
parent2800cb6ea47572f7a1d8ca4437426eef8f9dc5d7 (diff)
add patch series
Diffstat (limited to 'debian')
-rw-r--r--debian/patches/0001-include-fix-the-embedded-type-definitions-in-memory_.patch69
-rw-r--r--debian/patches/0002-Rewrite-old-style-endif-FOO-directives.patch224
-rw-r--r--debian/patches/0003-Include-the-notify-protocol-in-gnumach.msgids.patch49
-rw-r--r--debian/patches/series3
4 files changed, 345 insertions, 0 deletions
diff --git a/debian/patches/0001-include-fix-the-embedded-type-definitions-in-memory_.patch b/debian/patches/0001-include-fix-the-embedded-type-definitions-in-memory_.patch
new file mode 100644
index 0000000..9a32bb9
--- /dev/null
+++ b/debian/patches/0001-include-fix-the-embedded-type-definitions-in-memory_.patch
@@ -0,0 +1,69 @@
+From 3617701208c6fd63386442d2d107d37ff7d22041 Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Sun, 25 May 2014 15:53:23 +0200
+Subject: [PATCH 1/3] include: fix the embedded type definitions in
+ memory_object.defs
+
+In order to use MIG translation functions to lookup memory objects,
+preprocessor macros have been introduced into the definition of
+memory_object_t in 50cc5152.
+
+The procedure definitions contain inlined type definitions in order to
+change the type of the argument in question (i.e. to make it
+polymorphic). The inline definitions however lack the destructor
+function, leading to reference leaks when a reference is acquired in
+the intran function.
+
+* include/mach/memory_object.defs: Add the destructor functions to the
+inlined type definitions.
+---
+ include/mach/memory_object.defs | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/include/mach/memory_object.defs b/include/mach/memory_object.defs
+index 0ed8dbc..1ae36aa 100644
+--- a/include/mach/memory_object.defs
++++ b/include/mach/memory_object.defs
+@@ -93,6 +93,9 @@ simpleroutine memory_object_terminate(
+ #ifdef MEMORY_OBJECT_INTRAN
+ intran: MEMORY_OBJECT_INTRAN
+ #endif
++#ifdef MEMORY_OBJECT_DESTRUCTOR
++ destructor: MEMORY_OBJECT_DESTRUCTOR
++#endif
+ ;
+ #if SEQNOS
+ msgseqno seqno : mach_port_seqno_t;
+@@ -233,6 +236,9 @@ simpleroutine memory_object_lock_completed(
+ #ifdef MEMORY_OBJECT_INTRAN
+ intran: MEMORY_OBJECT_INTRAN
+ #endif
++#ifdef MEMORY_OBJECT_DESTRUCTOR
++ destructor: MEMORY_OBJECT_DESTRUCTOR
++#endif
+ ;
+ #if SEQNOS
+ msgseqno seqno : mach_port_seqno_t;
+@@ -268,6 +274,9 @@ simpleroutine memory_object_supply_completed(
+ #ifdef MEMORY_OBJECT_INTRAN
+ intran: MEMORY_OBJECT_INTRAN
+ #endif
++#ifdef MEMORY_OBJECT_DESTRUCTOR
++ destructor: MEMORY_OBJECT_DESTRUCTOR
++#endif
+ ;
+ #if SEQNOS
+ msgseqno seqno : mach_port_seqno_t;
+@@ -318,6 +327,9 @@ simpleroutine memory_object_change_completed(
+ #ifdef MEMORY_OBJECT_INTRAN
+ intran: MEMORY_OBJECT_INTRAN
+ #endif
++#ifdef MEMORY_OBJECT_DESTRUCTOR
++ destructor: MEMORY_OBJECT_DESTRUCTOR
++#endif
+ ;
+ #if SEQNOS
+ msgseqno seqno : mach_port_seqno_t;
+--
+2.0.0.rc2
+
diff --git a/debian/patches/0002-Rewrite-old-style-endif-FOO-directives.patch b/debian/patches/0002-Rewrite-old-style-endif-FOO-directives.patch
new file mode 100644
index 0000000..d6ce7ce
--- /dev/null
+++ b/debian/patches/0002-Rewrite-old-style-endif-FOO-directives.patch
@@ -0,0 +1,224 @@
+From 306d763d872bae2a1cc23fe13b769cace8198a3a Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Sun, 25 May 2014 16:19:16 +0200
+Subject: [PATCH 2/3] Rewrite old-style #endif FOO directives
+
+* i386/include/mach/i386/cthreads.h: Rewrite old-style #endif FOO
+directives.
+* include/device/tape_status.h: Likewise.
+* include/mach/alert.h: Likewise.
+* include/mach/boot.h: Likewise.
+* include/mach/default_pager_types.defs: Likewise.
+* include/mach/default_pager_types.h: Likewise.
+* include/mach/multiboot.h: Likewise.
+* include/mach/notify.defs: Likewise.
+* include/mach_debug/pc_info.h: Likewise.
+* kern/act.h: Likewise.
+* kern/refcount.h: Likewise.
+* kern/shuttle.h: Likewise.
+---
+ i386/include/mach/i386/cthreads.h | 2 +-
+ include/device/tape_status.h | 2 +-
+ include/mach/alert.h | 2 +-
+ include/mach/boot.h | 4 ++--
+ include/mach/default_pager_types.defs | 2 +-
+ include/mach/default_pager_types.h | 2 +-
+ include/mach/multiboot.h | 2 +-
+ include/mach/notify.defs | 16 ++++++++--------
+ include/mach_debug/pc_info.h | 2 +-
+ kern/act.h | 2 +-
+ kern/refcount.h | 2 +-
+ kern/shuttle.h | 2 +-
+ 12 files changed, 20 insertions(+), 20 deletions(-)
+
+diff --git a/i386/include/mach/i386/cthreads.h b/i386/include/mach/i386/cthreads.h
+index f9755b4..d2aa16f 100644
+--- a/i386/include/mach/i386/cthreads.h
++++ b/i386/include/mach/i386/cthreads.h
+@@ -53,4 +53,4 @@ typedef volatile int spin_lock_t;
+
+ #endif /* __GNUC__ */
+
+-#endif _MACHINE_CTHREADS_H_
++#endif /* _MACHINE_CTHREADS_H_ */
+diff --git a/include/device/tape_status.h b/include/device/tape_status.h
+index 97cb098..603d76c 100644
+--- a/include/device/tape_status.h
++++ b/include/device/tape_status.h
+@@ -137,4 +137,4 @@ struct mtget {
+ #define MTIOCEEOT _IO('m', 4) /* enable EOT error */
+
+
+-#endif _TAPE_STATUS_H_
++#endif /* _TAPE_STATUS_H_ */
+diff --git a/include/mach/alert.h b/include/mach/alert.h
+index 8232f9e..e8eb371 100644
+--- a/include/mach/alert.h
++++ b/include/mach/alert.h
+@@ -34,4 +34,4 @@
+
+ #define ALERT_USER 0xffff0000 /* User-defined alert bits */
+
+-#endif _MACH_ALERT_H_
++#endif /* _MACH_ALERT_H_ */
+diff --git a/include/mach/boot.h b/include/mach/boot.h
+index d3e141f..7f14cc4 100644
+--- a/include/mach/boot.h
++++ b/include/mach/boot.h
+@@ -65,7 +65,7 @@ struct boot_rendezvous
+ int code;
+ };
+
+-#endif !__ASSEMBLER__
++#endif /* !__ASSEMBLER__ */
+
+
+ /* This is the magic value that must appear in boot_module.magic. */
+@@ -90,4 +90,4 @@ struct boot_rendezvous
+ #define BRZV_DATA 'D'
+
+
+-#endif _MACH_BOOT_
++#endif /* _MACH_BOOT_ */
+diff --git a/include/mach/default_pager_types.defs b/include/mach/default_pager_types.defs
+index 3164f04..bee7c25 100644
+--- a/include/mach/default_pager_types.defs
++++ b/include/mach/default_pager_types.defs
+@@ -41,4 +41,4 @@ type default_pager_filename_t = (MACH_MSG_TYPE_STRING_C, 8*256);
+
+ import <mach/default_pager_types.h>;
+
+-#endif _MACH_DEFAULT_PAGER_TYPES_DEFS_
++#endif /* _MACH_DEFAULT_PAGER_TYPES_DEFS_ */
+diff --git a/include/mach/default_pager_types.h b/include/mach/default_pager_types.h
+index 99e43ce..f5ce5a4 100644
+--- a/include/mach/default_pager_types.h
++++ b/include/mach/default_pager_types.h
+@@ -55,4 +55,4 @@ typedef default_pager_page_t *default_pager_page_array_t;
+
+ typedef char default_pager_filename_t[256];
+
+-#endif _MACH_DEFAULT_PAGER_TYPES_H_
++#endif /* _MACH_DEFAULT_PAGER_TYPES_H_ */
+diff --git a/include/mach/multiboot.h b/include/mach/multiboot.h
+index 3880fa8..b23df4a 100644
+--- a/include/mach/multiboot.h
++++ b/include/mach/multiboot.h
+@@ -79,4 +79,4 @@ struct multiboot_info
+ natural_t pad[4];
+ };
+
+-#endif _MACH_MULTIBOOT_H_
++#endif /* _MACH_MULTIBOOT_H_ */
+diff --git a/include/mach/notify.defs b/include/mach/notify.defs
+index fdf35e9..5e59d39 100644
+--- a/include/mach/notify.defs
++++ b/include/mach/notify.defs
+@@ -35,10 +35,10 @@ NOTIFY_IMPORTS
+ #if SEQNOS
+ serverprefix do_seqnos_;
+ serverdemux seqnos_notify_server;
+-#else SEQNOS
++#else
+ serverprefix do_;
+ serverdemux notify_server;
+-#endif SEQNOS
++#endif
+
+ type notify_port_t = MACH_MSG_TYPE_MOVE_SEND_ONCE
+ ctype: mach_port_t
+@@ -61,7 +61,7 @@ simpleroutine mach_notify_port_deleted(
+ notify : notify_port_t;
+ #if SEQNOS
+ msgseqno seqno : mach_port_seqno_t;
+-#endif SEQNOS
++#endif
+ name : mach_port_name_t);
+
+ /* MACH_NOTIFY_MSG_ACCEPTED: 0102 */
+@@ -69,7 +69,7 @@ simpleroutine mach_notify_msg_accepted(
+ notify : notify_port_t;
+ #if SEQNOS
+ msgseqno seqno : mach_port_seqno_t;
+-#endif SEQNOS
++#endif
+ name : mach_port_name_t);
+
+ skip; /* was NOTIFY_OWNERSHIP_RIGHTS: 0103 */
+@@ -81,7 +81,7 @@ simpleroutine mach_notify_port_destroyed(
+ notify : notify_port_t;
+ #if SEQNOS
+ msgseqno seqno : mach_port_seqno_t;
+-#endif SEQNOS
++#endif
+ rights : mach_port_receive_t);
+
+ /* MACH_NOTIFY_NO_SENDERS: 0106 */
+@@ -89,7 +89,7 @@ simpleroutine mach_notify_no_senders(
+ notify : notify_port_t;
+ #if SEQNOS
+ msgseqno seqno : mach_port_seqno_t;
+-#endif SEQNOS
++#endif
+ mscount : mach_port_mscount_t);
+
+ /* MACH_NOTIFY_SEND_ONCE: 0107 */
+@@ -97,7 +97,7 @@ simpleroutine mach_notify_send_once(
+ notify : notify_port_t
+ #if SEQNOS
+ ; msgseqno seqno : mach_port_seqno_t
+-#endif SEQNOS
++#endif
+ );
+
+ /* MACH_NOTIFY_DEAD_NAME: 0110 */
+@@ -105,5 +105,5 @@ simpleroutine mach_notify_dead_name(
+ notify : notify_port_t;
+ #if SEQNOS
+ msgseqno seqno : mach_port_seqno_t;
+-#endif SEQNOS
++#endif
+ name : mach_port_name_t);
+diff --git a/include/mach_debug/pc_info.h b/include/mach_debug/pc_info.h
+index bc43fa8..912da9f 100644
+--- a/include/mach_debug/pc_info.h
++++ b/include/mach_debug/pc_info.h
+@@ -40,4 +40,4 @@ typedef struct sampled_pc {
+ typedef sampled_pc_t *sampled_pc_array_t;
+ typedef unsigned int sampled_pc_seqno_t;
+
+-#endif _MACH_DEBUG_PC_INFO_H_
++#endif /* _MACH_DEBUG_PC_INFO_H_ */
+diff --git a/kern/act.h b/kern/act.h
+index 6d3a9a9..f46f53a 100644
+--- a/kern/act.h
++++ b/kern/act.h
+@@ -189,4 +189,4 @@ kern_return_t act_machine_get_state(Act *inc, int flavor, int *tstate, unsigned
+
+
+ #endif /* MIGRATING_THREADS */
+-#endif _KERN_ACT_H_
++#endif /* _KERN_ACT_H_ */
+diff --git a/kern/refcount.h b/kern/refcount.h
+index 01dc6b5..74204d6 100644
+--- a/kern/refcount.h
++++ b/kern/refcount.h
+@@ -65,4 +65,4 @@ typedef struct RefCount RefCount;
+
+ #endif /* MACHINE_REFCOUNT */
+
+-#endif _KERN_REFCOUNT_H_
++#endif /* _KERN_REFCOUNT_H_ */
+diff --git a/kern/shuttle.h b/kern/shuttle.h
+index e8e574b..0b1c2c5 100644
+--- a/kern/shuttle.h
++++ b/kern/shuttle.h
+@@ -68,4 +68,4 @@ typedef struct Shuttle Shuttle;
+
+
+
+-#endif _KERN_SHUTTLE_H_
++#endif /* _KERN_SHUTTLE_H_ */
+--
+2.0.0.rc2
+
diff --git a/debian/patches/0003-Include-the-notify-protocol-in-gnumach.msgids.patch b/debian/patches/0003-Include-the-notify-protocol-in-gnumach.msgids.patch
new file mode 100644
index 0000000..92770bd
--- /dev/null
+++ b/debian/patches/0003-Include-the-notify-protocol-in-gnumach.msgids.patch
@@ -0,0 +1,49 @@
+From e8522c16db449dbc8859163a35b3ec7143ef7ba2 Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Sun, 25 May 2014 16:26:42 +0200
+Subject: [PATCH 3/3] Include the notify protocol in gnumach.msgids
+
+* Makefrag.am (gnumach.msgids): Add notify.msgids as prerequisite.
+* Makerules.mig.am: Add rule to generate the list of message ids when
+neither the client nor the server stubs are required.
+---
+ Makefrag.am | 3 ++-
+ Makerules.mig.am | 8 ++++++++
+ 2 files changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/Makefrag.am b/Makefrag.am
+index d6dd77f..2c25dd2 100644
+--- a/Makefrag.am
++++ b/Makefrag.am
+@@ -537,7 +537,8 @@ nodist_libkernel_a_SOURCES += \
+ # rpctrace can make use of that.
+ MOSTLYCLEANFILES += \
+ gnumach.msgids
+-gnumach.msgids: $(filter %.msgids,$(nodist_libkernel_a_SOURCES))
++gnumach.msgids: $(filter %.msgids,$(nodist_libkernel_a_SOURCES)) \
++ include/mach/notify.msgids
+ $(AM_V_at) cat $^ > $@.new
+ $(AM_V_GEN) mv $@.new $@
+ # `exec_' prefix, so that we don't try to build that file during when running
+diff --git a/Makerules.mig.am b/Makerules.mig.am
+index 3060984..1612e1c 100644
+--- a/Makerules.mig.am
++++ b/Makerules.mig.am
+@@ -88,6 +88,14 @@ lib_dep_tr_for_defs_a_CPPFLAGS = $(AM_CPPFLAGS) \
+ -list $*.user.msgids \
+ < $<
+
++# Stand-alone rule to generate the list of message ids when neither
++# the client nor the server stubs are required.
++%.msgids: $(top_srcdir)/%.defs
++ $(MIGCOM_V) $(CPP) $(AM_CPPFLAGS) $(CPPFLAGS) -E $< \
++ | $(MIGCOM) $(MIGCOMFLAGS) $(MIGCOMSFLAGS) \
++ -sheader /dev/null -server /dev/null \
++ -list "$@"
++
+ # This is how it should be done, but this is not integrated into GNU Automake
+ # and is missing automatic inter-file dependency management because of that.
+
+--
+2.0.0.rc2
+
diff --git a/debian/patches/series b/debian/patches/series
index 342ddab..8376306 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -7,3 +7,6 @@
protected_payload.patch
Add-some-padding-to-make-objects-fit-a-single-cache-.patch
#acpihalt.patch
+0001-include-fix-the-embedded-type-definitions-in-memory_.patch
+0002-Rewrite-old-style-endif-FOO-directives.patch
+0003-Include-the-notify-protocol-in-gnumach.msgids.patch