summaryrefslogtreecommitdiff
path: root/debian/patches/0001-include-force-all-refcount-functions-to-be-inlined.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/0001-include-force-all-refcount-functions-to-be-inlined.patch')
-rw-r--r--debian/patches/0001-include-force-all-refcount-functions-to-be-inlined.patch173
1 files changed, 173 insertions, 0 deletions
diff --git a/debian/patches/0001-include-force-all-refcount-functions-to-be-inlined.patch b/debian/patches/0001-include-force-all-refcount-functions-to-be-inlined.patch
new file mode 100644
index 00000000..273d7078
--- /dev/null
+++ b/debian/patches/0001-include-force-all-refcount-functions-to-be-inlined.patch
@@ -0,0 +1,173 @@
+From aafaff7640e33e6534d2d130cfbc46c791a54b8c Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Sun, 23 Nov 2014 19:09:51 +0100
+Subject: [PATCH hurd 01/28] include: force all refcount functions to be
+ inlined
+
+* include/refcount.h: Declare all functions `extern inline' instead of
+`static inline'. This forces those functions to be inlined, and
+allows us to use them in functions declared as `extern inline'.
+---
+ include/refcount.h | 34 +++++++++++++++++-----------------
+ 1 file changed, 17 insertions(+), 17 deletions(-)
+
+diff --git a/include/refcount.h b/include/refcount.h
+index ebde42d..21ac876 100644
+--- a/include/refcount.h
++++ b/include/refcount.h
+@@ -32,7 +32,7 @@
+ typedef unsigned int refcount_t;
+
+ /* Initialize REF with REFERENCES. REFERENCES must not be zero. */
+-static inline void
++extern inline void
+ refcount_init (refcount_t *ref, unsigned int references)
+ {
+ assert (references > 0 || !"references must not be zero!");
+@@ -46,7 +46,7 @@ refcount_init (refcount_t *ref, unsigned int references)
+ This is the unsafe version of refcount_ref. refcount_ref also
+ checks for use-after-free errors. When in doubt, use that one
+ instead. */
+-static inline unsigned int
++extern inline unsigned int
+ refcount_unsafe_ref (refcount_t *ref)
+ {
+ unsigned int r;
+@@ -58,7 +58,7 @@ refcount_unsafe_ref (refcount_t *ref)
+ /* Increment REF. Return the result of the operation. This function
+ uses atomic operations. It is not required to serialize calls to
+ this function. */
+-static inline unsigned int
++extern inline unsigned int
+ refcount_ref (refcount_t *ref)
+ {
+ unsigned int r;
+@@ -70,7 +70,7 @@ refcount_ref (refcount_t *ref)
+ /* Decrement REF. Return the result of the operation. This function
+ uses atomic operations. It is not required to serialize calls to
+ this function. */
+-static inline unsigned int
++extern inline unsigned int
+ refcount_deref (refcount_t *ref)
+ {
+ unsigned int r;
+@@ -81,7 +81,7 @@ refcount_deref (refcount_t *ref)
+
+ /* Return REF. This function uses atomic operations. It is not
+ required to serialize calls to this function. */
+-static inline unsigned int
++extern inline unsigned int
+ refcount_references (refcount_t *ref)
+ {
+ return __atomic_load_n (ref, __ATOMIC_RELAXED);
+@@ -120,7 +120,7 @@ union _references {
+
+ /* Initialize REF with HARD and WEAK references. HARD and WEAK must
+ not both be zero. */
+-static inline void
++extern inline void
+ refcounts_init (refcounts_t *ref, uint32_t hard, uint32_t weak)
+ {
+ assert ((hard != 0 || weak != 0) || !"references must not both be zero!");
+@@ -135,7 +135,7 @@ refcounts_init (refcounts_t *ref, uint32_t hard, uint32_t weak)
+ This is the unsafe version of refcounts_ref. refcounts_ref also
+ checks for use-after-free errors. When in doubt, use that one
+ instead. */
+-static inline void
++extern inline void
+ refcounts_unsafe_ref (refcounts_t *ref, struct references *result)
+ {
+ const union _references op = { .references = { .hard = 1 } };
+@@ -150,7 +150,7 @@ refcounts_unsafe_ref (refcounts_t *ref, struct references *result)
+ the result of the operation is written there. This function uses
+ atomic operations. It is not required to serialize calls to this
+ function. */
+-static inline void
++extern inline void
+ refcounts_ref (refcounts_t *ref, struct references *result)
+ {
+ struct references r;
+@@ -165,7 +165,7 @@ refcounts_ref (refcounts_t *ref, struct references *result)
+ the result of the operation is written there. This function uses
+ atomic operations. It is not required to serialize calls to this
+ function. */
+-static inline void
++extern inline void
+ refcounts_deref (refcounts_t *ref, struct references *result)
+ {
+ const union _references op = { .references = { .hard = 1 } };
+@@ -180,7 +180,7 @@ refcounts_deref (refcounts_t *ref, struct references *result)
+ NULL, the result of the operation is written there. This function
+ uses atomic operations. It is not required to serialize calls to
+ this function. */
+-static inline void
++extern inline void
+ refcounts_promote (refcounts_t *ref, struct references *result)
+ {
+ /* To promote a weak reference, we need to atomically subtract 1
+@@ -211,7 +211,7 @@ refcounts_promote (refcounts_t *ref, struct references *result)
+ NULL, the result of the operation is written there. This function
+ uses atomic operations. It is not required to serialize calls to
+ this function. */
+-static inline void
++extern inline void
+ refcounts_demote (refcounts_t *ref, struct references *result)
+ {
+ /* To demote a hard reference, we need to atomically subtract 1 from
+@@ -243,7 +243,7 @@ refcounts_demote (refcounts_t *ref, struct references *result)
+ This is the unsafe version of refcounts_ref_weak.
+ refcounts_ref_weak also checks for use-after-free errors. When in
+ doubt, use that one instead. */
+-static inline void
++extern inline void
+ refcounts_unsafe_ref_weak (refcounts_t *ref, struct references *result)
+ {
+ const union _references op = { .references = { .weak = 1 } };
+@@ -258,7 +258,7 @@ refcounts_unsafe_ref_weak (refcounts_t *ref, struct references *result)
+ the result of the operation is written there. This function uses
+ atomic operations. It is not required to serialize calls to this
+ function. */
+-static inline void
++extern inline void
+ refcounts_ref_weak (refcounts_t *ref, struct references *result)
+ {
+ struct references r;
+@@ -273,7 +273,7 @@ refcounts_ref_weak (refcounts_t *ref, struct references *result)
+ the result of the operation is written there. This function uses
+ atomic operations. It is not required to serialize calls to this
+ function. */
+-static inline void
++extern inline void
+ refcounts_deref_weak (refcounts_t *ref, struct references *result)
+ {
+ const union _references op = { .references = { .weak = 1 } };
+@@ -287,7 +287,7 @@ refcounts_deref_weak (refcounts_t *ref, struct references *result)
+ /* Store the current reference counts of REF in RESULT. This function
+ uses atomic operations. It is not required to serialize calls to
+ this function. */
+-static inline void
++extern inline void
+ refcounts_references (refcounts_t *ref, struct references *result)
+ {
+ union _references r;
+@@ -298,7 +298,7 @@ refcounts_references (refcounts_t *ref, struct references *result)
+ /* Return the hard reference count of REF. This function uses atomic
+ operations. It is not required to serialize calls to this
+ function. */
+-static inline uint32_t
++extern inline uint32_t
+ refcounts_hard_references (refcounts_t *ref)
+ {
+ struct references result;
+@@ -309,7 +309,7 @@ refcounts_hard_references (refcounts_t *ref)
+ /* Return the weak reference count of REF. This function uses atomic
+ operations. It is not required to serialize calls to this
+ function. */
+-static inline uint32_t
++extern inline uint32_t
+ refcounts_weak_references (refcounts_t *ref)
+ {
+ struct references result;
+--
+2.1.3
+