<div dir="ltr">I'm surprised that this is reproducible with gcc7 used in Sumo.<div><br></div><div>Khem suggested to use signed char instead, the pull-request in upstream was updated with signed char as well:</div><div><a href="https://github.com/systemd/systemd/pull/9156">https://github.com/systemd/systemd/pull/9156</a><br></div><div><br></div><div>I'll send v2.</div></div><br><div class="gmail_quote"><div dir="ltr">On Sat, Jun 2, 2018 at 4:03 AM akuster808 <<a href="mailto:akuster808@gmail.com">akuster808@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
On 06/01/2018 08:42 AM, Martin Jansa wrote:<br>
> Signed-off-by: Martin Jansa <<a href="mailto:Martin.Jansa@gmail.com" target="_blank">Martin.Jansa@gmail.com</a>><br>
> ---<br>
> ...ild-with-gcc8-Werror-format-truncati.patch | 53 +++++++++++++++++++<br>
> meta/recipes-core/systemd/<a href="http://systemd_237.bb" rel="noreferrer" target="_blank">systemd_237.bb</a> | 1 +<br>
> 2 files changed, 54 insertions(+)<br>
<br>
I am seeing this same issue in Sumo and I have applied this patch. Its<br>
currently running a test build.<br>
- armin<br>
> create mode 100644 meta/recipes-core/systemd/systemd/0036-time-util-fix-build-with-gcc8-Werror-format-truncati.patch<br>
><br>
> diff --git a/meta/recipes-core/systemd/systemd/0036-time-util-fix-build-with-gcc8-Werror-format-truncati.patch b/meta/recipes-core/systemd/systemd/0036-time-util-fix-build-with-gcc8-Werror-format-truncati.patch<br>
> new file mode 100644<br>
> index 0000000000..e44f431073<br>
> --- /dev/null<br>
> +++ b/meta/recipes-core/systemd/systemd/0036-time-util-fix-build-with-gcc8-Werror-format-truncati.patch<br>
> @@ -0,0 +1,53 @@<br>
> +From f9fd4546c25a15629544bc4642a74d7909cc0840 Mon Sep 17 00:00:00 2001<br>
> +From: Martin Jansa <<a href="mailto:Martin.Jansa@gmail.com" target="_blank">Martin.Jansa@gmail.com</a>><br>
> +Date: Fri, 1 Jun 2018 15:22:28 +0000<br>
> +Subject: [PATCH] time-util: fix build with gcc8 -Werror=format-truncation=<br>
> +<br>
> +* it fails with gcc8 when -O1 or -Os is used (and -ftree-vrp which is added by -O2 and higher isn't used)<br>
> +<br>
> +../git/src/basic/time-util.c: In function 'format_timespan':<br>
> +../git/src/basic/time-util.c:508:46: error: '%0*llu' directive output between 1 and 2147483647 bytes may cause result to exceed 'INT_MAX' [-Werror=format-truncation=]<br>
> + "%s"USEC_FMT".%0*"PRI_USEC"%s",<br>
> + ^~~~<br>
> +../git/src/basic/time-util.c:508:60: note: format string is defined here<br>
> + "%s"USEC_FMT".%0*"PRI_USEC"%s",<br>
> +../git/src/basic/time-util.c:508:46: note: directive argument in the range [0, 18446744073709551614]<br>
> + "%s"USEC_FMT".%0*"PRI_USEC"%s",<br>
> + ^~~~<br>
> +../git/src/basic/time-util.c:507:37: note: 'snprintf' output 4 or more bytes (assuming 2147483651) into a destination of size 4294967295<br>
> + k = snprintf(p, l,<br>
> + ^~~~~~~~~~~~~~<br>
> + "%s"USEC_FMT".%0*"PRI_USEC"%s",<br>
> + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
> + p > buf ? " " : "",<br>
> + ~~~~~~~~~~~~~~~~~~~<br>
> + a,<br>
> + ~~<br>
> + j,<br>
> + ~~<br>
> + b,<br>
> + ~~<br>
> + table[i].suffix);<br>
> + ~~~~~~~~~~~~~~~~<br>
> +cc1: some warnings being treated as errors<br>
> +<br>
> +Upstream-Status: Submitted <a href="https://github.com/systemd/systemd/pull/9156" rel="noreferrer" target="_blank">https://github.com/systemd/systemd/pull/9156</a><br>
> +<br>
> +Signed-off-by: Martin Jansa <<a href="mailto:Martin.Jansa@gmail.com" target="_blank">Martin.Jansa@gmail.com</a>><br>
> +---<br>
> + src/basic/time-util.c | 2 +-<br>
> + 1 file changed, 1 insertion(+), 1 deletion(-)<br>
> +<br>
> +diff --git a/src/basic/time-util.c b/src/basic/time-util.c<br>
> +index 0601d4fa9..db5a9cd78 100644<br>
> +--- a/src/basic/time-util.c<br>
> ++++ b/src/basic/time-util.c<br>
> +@@ -484,7 +484,7 @@ char *format_timespan(char *buf, size_t l, usec_t t, usec_t accuracy) {<br>
> + /* Let's see if we should shows this in dot notation */<br>
> + if (t < USEC_PER_MINUTE && b > 0) {<br>
> + usec_t cc;<br>
> +- int j;<br>
> ++ char j;<br>
> + <br>
> + j = 0;<br>
> + for (cc = table[i].usec; cc > 1; cc /= 10)<br>
> diff --git a/meta/recipes-core/systemd/<a href="http://systemd_237.bb" rel="noreferrer" target="_blank">systemd_237.bb</a> b/meta/recipes-core/systemd/<a href="http://systemd_237.bb" rel="noreferrer" target="_blank">systemd_237.bb</a><br>
> index 2e6558ded1..0113c2dc72 100644<br>
> --- a/meta/recipes-core/systemd/<a href="http://systemd_237.bb" rel="noreferrer" target="_blank">systemd_237.bb</a><br>
> +++ b/meta/recipes-core/systemd/<a href="http://systemd_237.bb" rel="noreferrer" target="_blank">systemd_237.bb</a><br>
> @@ -54,6 +54,7 @@ SRC_URI += "file://touchscreen.rules \<br>
> file://libmount.patch \<br>
> file://0034-Fix-format-truncation-compile-failure-by-typecasting.patch \<br>
> file://0035-Define-glibc-compatible-basename-for-non-glibc-syste.patch \<br>
> + file://0036-time-util-fix-build-with-gcc8-Werror-format-truncati.patch \<br>
> "<br>
> SRC_URI_append_qemuall = " file://0001-core-device.c-Change-the-default-device-timeout-to-2.patch"<br>
> <br>
<br>
</blockquote></div>