about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2020-10-20 22:16:24 +0200
committerMichael Biebl <biebl@debian.org>2020-10-20 22:17:02 +0200
commit7d33d1faff5e4d2827491a90fc66c4080e5e76be (patch)
tree6d8aca50c14f7f14c06e8db4205b693844fd0729
parent0eeddde66a7917091e0ce693de2b96e345a11f97 (diff)
Rebase patches
-rw-r--r--debian/patches/c-rbtree-reduce-alignment-constraints.patch92
-rw-r--r--debian/patches/platform-tests-adjust-regeneration-of-test-code-for-test_.patch39
-rw-r--r--debian/patches/platform-tests-print-details-about-test-failure-for-test_.patch38
-rw-r--r--debian/patches/platform-tests-skip-test_platform_ip_address_pretty_sort_.patch40
-rw-r--r--debian/patches/series5
-rw-r--r--debian/patches/systemd-basic-missing_syscall-fix-syscall-numbers-for-mip.patch63
6 files changed, 0 insertions, 277 deletions
diff --git a/debian/patches/c-rbtree-reduce-alignment-constraints.patch b/debian/patches/c-rbtree-reduce-alignment-constraints.patch
deleted file mode 100644
index 787e3097..00000000
--- a/debian/patches/c-rbtree-reduce-alignment-constraints.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From: David Rheinsberg <david.rheinsberg@gmail.com>
-Date: Wed, 7 Oct 2020 15:54:15 +0200
-Subject: c-rbtree: reduce alignment constraints
-
-There are some Debian-supported architectures where `max_align_t` is
-only aligned to 4-bytes. This is unfortunate and breaks our assumptions.
-While glibc-malloc still guarantees 8 / 16 bytes alignment, this is not
-necessarily guaranteed by the C standard (and alternative allocators
-will deviate (see jemalloc, for instance)).
-
-Fortunately, we only need 2 flags, so a 4-byte alignment is more than
-enough.
-
-Reported-by: Thomas Haller
-Signed-off-by: David Rheinsberg <david.rheinsberg@gmail.com>
-
-https://github.com/c-util/c-rbtree/pull/4
-(cherry picked from commit 1554936e33718c1a4deea590217e2c19ea6f80de)
-(cherry picked from commit 282fac4afbe2ebdf95a9f0210aa8bd745061e8d2)
----
- shared/c-rbtree/src/c-rbtree.c | 14 ++++++++------
- shared/c-rbtree/src/c-rbtree.h |  8 +++-----
- 2 files changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/shared/c-rbtree/src/c-rbtree.c b/shared/c-rbtree/src/c-rbtree.c
-index aacdcc2..2f0e608 100644
---- a/shared/c-rbtree/src/c-rbtree.c
-+++ b/shared/c-rbtree/src/c-rbtree.c
-@@ -31,15 +31,17 @@
- #include "c-rbtree-private.h"
- 
- /*
-- * We use alignas(8) to enforce 64bit alignment of structure fields. This is
-- * according to ISO-C11, so we rely on the compiler to implement this. However,
-- * at the same time we don't want to exceed native malloc() alignment on target
-- * platforms. Hence, we also verify against max_align_t.
-+ * We use the lower 2 bits of CRBNode pointers to store flags. Make sure
-+ * CRBNode is 4-byte aligned, so the lower 2 bits are actually unused. We also
-+ * sometimes store a pointer to the root-node, so make sure this one is also 4
-+ * byte aligned.
-+ * Note that there are actually some architectures where `max_align_t` is 4, so
-+ * we do not have much wiggle-room to extend this flag-set.
-  */
- static_assert(alignof(CRBNode) <= alignof(max_align_t), "Invalid RBNode alignment");
--static_assert(alignof(CRBNode) >= 8, "Invalid CRBNode alignment");
-+static_assert(alignof(CRBNode) >= 4, "Invalid CRBNode alignment");
- static_assert(alignof(CRBTree) <= alignof(max_align_t), "Invalid RBTree alignment");
--static_assert(alignof(CRBTree) >= 8, "Invalid CRBTree alignment");
-+static_assert(alignof(CRBTree) >= 4, "Invalid CRBTree alignment");
- 
- /**
-  * c_rbnode_leftmost() - return leftmost child
-diff --git a/shared/c-rbtree/src/c-rbtree.h b/shared/c-rbtree/src/c-rbtree.h
-index cb33fcf..a9bbce5 100644
---- a/shared/c-rbtree/src/c-rbtree.h
-+++ b/shared/c-rbtree/src/c-rbtree.h
-@@ -27,7 +27,6 @@ extern "C" {
- #endif
- 
- #include <assert.h>
--#include <stdalign.h>
- #include <stddef.h>
- 
- typedef struct CRBNode CRBNode;
-@@ -36,8 +35,7 @@ typedef struct CRBTree CRBTree;
- /* implementation detail */
- #define C_RBNODE_RED                    (0x1UL)
- #define C_RBNODE_ROOT                   (0x2UL)
--#define C_RBNODE_UNUSED3                (0x4UL)
--#define C_RBNODE_FLAG_MASK              (0x7UL)
-+#define C_RBNODE_FLAG_MASK              (0x3UL)
- 
- /**
-  * struct CRBNode - Node of a Red-Black Tree
-@@ -60,7 +58,7 @@ typedef struct CRBTree CRBTree;
-  * C_RBNODE_INIT.
-  */
- struct CRBNode {
--        alignas(8) unsigned long __parent_and_flags;
-+        unsigned long __parent_and_flags;
-         CRBNode *left;
-         CRBNode *right;
- };
-@@ -90,7 +88,7 @@ void c_rbnode_unlink_stale(CRBNode *n);
-  * To initialize an RB-Tree, set it to NULL / all zero.
-  */
- struct CRBTree {
--        alignas(8) CRBNode *root;
-+        CRBNode *root;
- };
- 
- #define C_RBTREE_INIT {}
diff --git a/debian/patches/platform-tests-adjust-regeneration-of-test-code-for-test_.patch b/debian/patches/platform-tests-adjust-regeneration-of-test-code-for-test_.patch
deleted file mode 100644
index 941204a3..00000000
--- a/debian/patches/platform-tests-adjust-regeneration-of-test-code-for-test_.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From: Thomas Haller <thaller@redhat.com>
-Date: Wed, 7 Oct 2020 08:39:56 +0200
-Subject: platform/tests: adjust regeneration of test code for
- test_platform_ip_address_pretty_sort_cmp()
-
-Since re-formatting our source code, the generated output no longer
-matched the required formatting. Adjust it.
-
-(cherry picked from commit 4fc79734985f661c7c28c56a558f00a795b9abf3)
-(cherry picked from commit 07868a535f2454a7bdc7d1af9b96d8686d9f7dca)
----
- src/platform/tests/test-platform-general.c | 10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/src/platform/tests/test-platform-general.c b/src/platform/tests/test-platform-general.c
-index f98f84c..aca4413 100644
---- a/src/platform/tests/test-platform-general.c
-+++ b/src/platform/tests/test-platform-general.c
-@@ -692,14 +692,16 @@ test_platform_ip_address_pretty_sort_cmp(gconstpointer test_data)
-     }
- 
-     if (PRINT_RESULT) {
--        g_print("\n\n\t\t[%d] = (\n", TEST_DATA_I);
-+        g_print("\n        [%d] = (", TEST_DATA_I);
-         for (i = 0; i < ELM_SIZE * N_ADDRESSES;) {
--            g_print("\t\t\t\"");
-+            if (i > 0)
-+                g_print("\n               ");
-+            g_print("\"");
-             for (j = 0; j < 40 && i < ELM_SIZE * N_ADDRESSES; j++, i++)
-                 g_print("%02x", addresses[i]);
--            g_print("\"\n");
-+            g_print("\"");
-         }
--        g_print("\t\t),\n\n");
-+        g_print("),\n");
-         return;
-     }
- 
diff --git a/debian/patches/platform-tests-print-details-about-test-failure-for-test_.patch b/debian/patches/platform-tests-print-details-about-test-failure-for-test_.patch
deleted file mode 100644
index 63a980be..00000000
--- a/debian/patches/platform-tests-print-details-about-test-failure-for-test_.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From: Thomas Haller <thaller@redhat.com>
-Date: Wed, 7 Oct 2020 09:00:41 +0200
-Subject: platform/tests: print details about test failure for
- test_platform_ip_address_pretty_sort_cmp()
-
-When the test is about to fail, print the wrong data to help debugging
-the test failure.
-
-(cherry picked from commit 3576f541003106fb4ba7b41138a57f8e4a6e7d18)
-(cherry picked from commit 36ccbcc550a981688eee6a83bfc55324cdd0c874)
----
- src/platform/tests/test-platform-general.c | 13 +++++++++++++
- 1 file changed, 13 insertions(+)
-
-diff --git a/src/platform/tests/test-platform-general.c b/src/platform/tests/test-platform-general.c
-index aca4413..ee1e247 100644
---- a/src/platform/tests/test-platform-general.c
-+++ b/src/platform/tests/test-platform-general.c
-@@ -715,6 +715,19 @@ test_platform_ip_address_pretty_sort_cmp(gconstpointer test_data)
-                                             NULL,
-                                             0,
-                                             &bin_len);
-+
-+        if (bin_len != ELM_SIZE * N_ADDRESSES || memcmp(addresses, bin_arr, bin_len) != 0) {
-+            char *addresses_str = nm_utils_bin2hexstr(addresses, ELM_SIZE * N_ADDRESSES, -1);
-+
-+            g_error(">>> test_platform_ip_address_pretty_sort_cmp() will fail:\n"
-+                    ">>> addresses[%zu]: %s\n"
-+                    ">>> expected [%zu]: %s\n",
-+                    ELM_SIZE * N_ADDRESSES,
-+                    addresses_str,
-+                    bin_len,
-+                    EXPECTED_BUFFER[TEST_DATA_I]);
-+        }
-+
-         g_assert_cmpmem(addresses, ELM_SIZE * N_ADDRESSES, bin_arr, bin_len);
-     }
- }
diff --git a/debian/patches/platform-tests-skip-test_platform_ip_address_pretty_sort_.patch b/debian/patches/platform-tests-skip-test_platform_ip_address_pretty_sort_.patch
deleted file mode 100644
index 71376190..00000000
--- a/debian/patches/platform-tests-skip-test_platform_ip_address_pretty_sort_.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From: Thomas Haller <thaller@redhat.com>
-Date: Wed, 7 Oct 2020 09:08:57 +0200
-Subject: platform/tests: skip test_platform_ip_address_pretty_sort_cmp() on
- non-amd64 archs
-
-The test only works on amd64, because it relies on the memory layout of
-the structures.
-
-https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/546
-(cherry picked from commit 6cf7c6739f670bb8ae2e1b8cbc56c789a0b0ae0d)
-(cherry picked from commit b569687f5f363fa83f2518c97d51abce5a518b64)
----
- src/platform/tests/test-platform-general.c | 14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/src/platform/tests/test-platform-general.c b/src/platform/tests/test-platform-general.c
-index ee1e247..703c886 100644
---- a/src/platform/tests/test-platform-general.c
-+++ b/src/platform/tests/test-platform-general.c
-@@ -555,6 +555,20 @@ test_platform_ip_address_pretty_sort_cmp(gconstpointer test_data)
-     gs_free guint64 *rand_map    = NULL;
-     gsize            i, j;
- 
-+#if !defined(__amd64__)
-+    /* The test generates a random array of NMPlatformIPXAddress (by crudely randomizing the memory,
-+     * not the structures themself) and then compares the sorted result with the expected output.
-+     * The sole purpose is to ensure that the sorting order stays stable.
-+     *
-+     * This only works on an architecture for which the test was made, otherwise
-+     * the expected data does not match (due to different layout of the structures
-+     * in memory).
-+     *
-+     * That's fine. Skip the test. */
-+    g_test_skip("skip test on non-amd64 architecture");
-+    return;
-+#endif
-+
-     /*
-      * First we create a list of addresses filled with (stable) random bytes.
-      * We tweak some fields explicitly (stable randomly), so that we cover all
diff --git a/debian/patches/series b/debian/patches/series
index 78fcb807..b718f8ef 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,7 +1,2 @@
 Force-online-state-with-unmanaged-devices.patch
-platform-tests-adjust-regeneration-of-test-code-for-test_.patch
-platform-tests-print-details-about-test-failure-for-test_.patch
-platform-tests-skip-test_platform_ip_address_pretty_sort_.patch
-c-rbtree-reduce-alignment-constraints.patch
-systemd-basic-missing_syscall-fix-syscall-numbers-for-mip.patch
 systemd-basic-missing_syscall-fix-syscall-numbers-for-x32.patch
diff --git a/debian/patches/systemd-basic-missing_syscall-fix-syscall-numbers-for-mip.patch b/debian/patches/systemd-basic-missing_syscall-fix-syscall-numbers-for-mip.patch
deleted file mode 100644
index 6acf5aa2..00000000
--- a/debian/patches/systemd-basic-missing_syscall-fix-syscall-numbers-for-mip.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From: Michael Biebl <biebl@debian.org>
-Date: Wed, 7 Oct 2020 17:44:05 +0200
-Subject: systemd: basic/missing_syscall: fix syscall numbers for mips*
-
-Thanks Christian Brauner @brauner
-
-https://github.com/systemd/systemd/commit/cd2065989163a5b6f71c8f1e4a8d73f1be63a52b
-
-https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/545
-(cherry picked from commit e9c6561ffade614e9341769b5e37a9d0436e693b)
-(cherry picked from commit dfd54b7f2eb65f9d4909d501c1ec9ff5333e170e)
----
- shared/systemd/src/basic/missing_syscall.h | 28 ++++++++++++++++++++++++++--
- 1 file changed, 26 insertions(+), 2 deletions(-)
-
-diff --git a/shared/systemd/src/basic/missing_syscall.h b/shared/systemd/src/basic/missing_syscall.h
-index 4aed6e7..d11a77d 100644
---- a/shared/systemd/src/basic/missing_syscall.h
-+++ b/shared/systemd/src/basic/missing_syscall.h
-@@ -632,8 +632,20 @@ static inline long missing_get_mempolicy(int *mode, unsigned long *nodemask,
- /* ======================================================================= */
- 
- /* should be always defined, see kernel 39036cd2727395c3369b1051005da74059a85317 */
--#if defined(__alpha__)
-+#if defined __alpha__
- #  define systemd_NR_pidfd_send_signal 534
-+#elif defined _MIPS_SIM
-+#  if _MIPS_SIM == _MIPS_SIM_ABI32	/* o32 */
-+#    define systemd_NR_pidfd_send_signal (424 + 4000)
-+#  endif
-+#  if _MIPS_SIM == _MIPS_SIM_NABI32	/* n32 */
-+#    define systemd_NR_pidfd_send_signal (424 + 6000)
-+#  endif
-+#  if _MIPS_SIM == _MIPS_SIM_ABI64	/* n64 */
-+#    define systemd_NR_pidfd_send_signal (424 + 5000)
-+#  endif
-+#elif defined __ia64__
-+#  define systemd_NR_pidfd_send_signal (424 + 1024)
- #else
- #  define systemd_NR_pidfd_send_signal 424
- #endif
-@@ -664,8 +676,20 @@ static inline int missing_pidfd_send_signal(int fd, int sig, siginfo_t *info, un
- #endif
- 
- /* should be always defined, see kernel 7615d9e1780e26e0178c93c55b73309a5dc093d7 */
--#if defined(__alpha__)
-+#if defined __alpha__
- #  define systemd_NR_pidfd_open 544
-+#elif defined _MIPS_SIM
-+#  if _MIPS_SIM == _MIPS_SIM_ABI32	/* o32 */
-+#    define systemd_NR_pidfd_open (434 + 4000)
-+#  endif
-+#  if _MIPS_SIM == _MIPS_SIM_NABI32	/* n32 */
-+#    define systemd_NR_pidfd_open (434 + 6000)
-+#  endif
-+#  if _MIPS_SIM == _MIPS_SIM_ABI64	/* n64 */
-+#    define systemd_NR_pidfd_open (434 + 5000)
-+#  endif
-+#elif defined __ia64__
-+#  define systemd_NR_pidfd_open (434 + 1024)
- #else
- #  define systemd_NR_pidfd_open 434
- #endif