From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 7D1E2139694 for ; Sun, 2 Jul 2017 15:56:52 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 1C222234019; Sun, 2 Jul 2017 15:56:50 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id DD47D234019 for ; Sun, 2 Jul 2017 15:56:49 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 4C80A33BE61 for ; Sun, 2 Jul 2017 15:56:48 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 8AD37747D for ; Sun, 2 Jul 2017 15:56:46 +0000 (UTC) From: "Mike Gilbert" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Mike Gilbert" Message-ID: <1499010973.dc1c5167bcf33b3a500b072f5c40e8c2c7ab57c4.floppym@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: sys-apps/systemd/, sys-apps/systemd/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: sys-apps/systemd/files/233-format-warnings.patch sys-apps/systemd/systemd-233-r3.ebuild X-VCS-Directories: sys-apps/systemd/ sys-apps/systemd/files/ X-VCS-Committer: floppym X-VCS-Committer-Name: Mike Gilbert X-VCS-Revision: dc1c5167bcf33b3a500b072f5c40e8c2c7ab57c4 X-VCS-Branch: master Date: Sun, 2 Jul 2017 15:56:46 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: e45d714e-37ba-42b2-9b26-56bb8d79e530 X-Archives-Hash: e1127de488abf58fe2ca11174c6ddb64 commit: dc1c5167bcf33b3a500b072f5c40e8c2c7ab57c4 Author: Mike Gilbert gentoo org> AuthorDate: Sun Jul 2 15:53:46 2017 +0000 Commit: Mike Gilbert gentoo org> CommitDate: Sun Jul 2 15:56:13 2017 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dc1c5167 sys-apps/systemd: fix build failure on ia64/alpha Bug: https://bugs.gentoo.org/623536 Bug: https://bugs.gentoo.org/612102 Package-Manager: Portage-2.3.6_p9, Repoman-2.3.2_p77 sys-apps/systemd/files/233-format-warnings.patch | 84 ++++++++++++++++++++++++ sys-apps/systemd/systemd-233-r3.ebuild | 1 + 2 files changed, 85 insertions(+) diff --git a/sys-apps/systemd/files/233-format-warnings.patch b/sys-apps/systemd/files/233-format-warnings.patch new file mode 100644 index 00000000000..7bb08f0a320 --- /dev/null +++ b/sys-apps/systemd/files/233-format-warnings.patch @@ -0,0 +1,84 @@ +From 3e7d14d78c4d15ec7789299216cbf5c58e61547b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +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 + diff --git a/sys-apps/systemd/systemd-233-r3.ebuild b/sys-apps/systemd/systemd-233-r3.ebuild index 8210bd8a2f9..ab19c28efc0 100644 --- a/sys-apps/systemd/systemd-233-r3.ebuild +++ b/sys-apps/systemd/systemd-233-r3.ebuild @@ -155,6 +155,7 @@ src_prepare() { local PATCHES=( "${FILESDIR}/233-0001-Avoid-strict-DM-interface-version-dependencies-5519.patch" "${FILESDIR}/233-CVE-2017-9445.patch" + "${FILESDIR}/233-format-warnings.patch" ) if ! use vanilla; then