diff options
Diffstat (limited to 'sys-apps/systemd/files/233-format-warnings.patch')
-rw-r--r-- | sys-apps/systemd/files/233-format-warnings.patch | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/sys-apps/systemd/files/233-format-warnings.patch b/sys-apps/systemd/files/233-format-warnings.patch deleted file mode 100644 index 7bb08f0..0000000 --- a/sys-apps/systemd/files/233-format-warnings.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 3e7d14d78c4d15ec7789299216cbf5c58e61547b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> -Date: Sat, 3 Jun 2017 05:41:17 -0400 -Subject: [PATCH] sd-bus: silence format warnings in kdbus code (#6072) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The code is mostly correct, but gcc is trying to outsmart us, and emits a -warning for a "llu vs lu" mismatch, even though they are the same size (on alpha): - -src/libsystemd/sd-bus/bus-control.c: In function ‘kernel_get_list’: -src/libsystemd/sd-bus/bus-control.c:267:42: error: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 3 has type ‘__u64 {aka long unsigned int}’ [-Werror=format=] - if (asprintf(&n, ":1.%llu", name->id) < 0) { - ^ -src/libsystemd/sd-bus/bus-control.c: In function ‘bus_get_name_creds_kdbus’: -src/libsystemd/sd-bus/bus-control.c:714:47: error: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 3 has type ‘__u64 {aka long unsigned int}’ [-Werror=format=] - if (asprintf(&c->unique_name, ":1.%llu", conn_info->id) < 0) { - ^ -This is hard to work around properly, because kdbus.h uses __u64 which is -defined-differently-despite-being-the-same-size then uint64_t. Thus the simple -solution of using %PRIu64 fails on amd64: - -src/libsystemd/sd-bus/bus-control.c:714:47: error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘__u64 {aka long long unsigned int}’ [-Werror=format=] - if (asprintf(&c->unique_name, ":1.%"PRIu64, conn_info->id) < 0) { - ^~~~~~ - -Let's just avoid the whole issue for now by silencing the warning. -After the next release, we should just get rid of the kdbus code. - -Fixes #5561. ---- - src/libsystemd/sd-bus/bus-control.c | 6 ++++++ - src/libsystemd/sd-bus/bus-kernel.c | 2 ++ - 2 files changed, 8 insertions(+) - -diff --git a/src/libsystemd/sd-bus/bus-control.c b/src/libsystemd/sd-bus/bus-control.c -index 9e58ffbd8..303ae0f23 100644 ---- a/src/libsystemd/sd-bus/bus-control.c -+++ b/src/libsystemd/sd-bus/bus-control.c -@@ -264,10 +264,13 @@ static int kernel_get_list(sd_bus *bus, uint64_t flags, char ***x) { - if ((flags & KDBUS_LIST_UNIQUE) && name->id != previous_id && !(name->flags & KDBUS_HELLO_ACTIVATOR)) { - char *n; - -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wformat" - if (asprintf(&n, ":1.%llu", name->id) < 0) { - r = -ENOMEM; - goto fail; - } -+#pragma GCC diagnostic pop - - r = strv_consume(x, n); - if (r < 0) -@@ -711,10 +714,13 @@ int bus_get_name_creds_kdbus( - } - - if (mask & SD_BUS_CREDS_UNIQUE_NAME) { -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wformat" - if (asprintf(&c->unique_name, ":1.%llu", conn_info->id) < 0) { - r = -ENOMEM; - goto fail; - } -+#pragma GCC diagnostic pop - - c->mask |= SD_BUS_CREDS_UNIQUE_NAME; - } -diff --git a/src/libsystemd/sd-bus/bus-kernel.c b/src/libsystemd/sd-bus/bus-kernel.c -index c82caeb3f..ca6aee7c0 100644 ---- a/src/libsystemd/sd-bus/bus-kernel.c -+++ b/src/libsystemd/sd-bus/bus-kernel.c -@@ -51,6 +51,8 @@ - #include "user-util.h" - #include "util.h" - -+#pragma GCC diagnostic ignored "-Wformat" -+ - #define UNIQUE_NAME_MAX (3+DECIMAL_STR_MAX(uint64_t)) - - int bus_kernel_parse_unique_name(const char *s, uint64_t *id) { --- -2.13.2 - |