From 0f2176364f0faaab18f098aa24925c3ba9ef30df Mon Sep 17 00:00:00 2001 From: Andr? Draszik Date: Wed, 8 Jan 2020 15:07:57 +0000 Subject: diffutils: fix build with 64bit time_t on 32bit arches MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See included patch. Signed-off-by: André Draszik Signed-off-by: Ross Burton --- ...-compilation-with-64bit-time_t-on-32bit-a.patch | 46 ++++++++++++++++++++++ recipes-extended/diffutils/diffutils_2.8.1.bb | 1 + 2 files changed, 47 insertions(+) create mode 100644 recipes-extended/diffutils/diffutils-2.8.1/0003-context-fix-compilation-with-64bit-time_t-on-32bit-a.patch diff --git a/recipes-extended/diffutils/diffutils-2.8.1/0003-context-fix-compilation-with-64bit-time_t-on-32bit-a.patch b/recipes-extended/diffutils/diffutils-2.8.1/0003-context-fix-compilation-with-64bit-time_t-on-32bit-a.patch new file mode 100644 index 0000000..a8fcde0 --- /dev/null +++ b/recipes-extended/diffutils/diffutils-2.8.1/0003-context-fix-compilation-with-64bit-time_t-on-32bit-a.patch @@ -0,0 +1,46 @@ +From 07c75310fecbaec62a24a3ee98b4209e1bf9ff62 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= +Date: Mon, 6 Jan 2020 13:31:50 +0000 +Subject: [PATCH] context: fix compilation with 64bit time_t on 32bit arches +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +In file included from ../../diffutils-2.8.1/src/diff.h:23, + from ../../diffutils-2.8.1/src/context.c:23: +../../diffutils-2.8.1/src/context.c: In function 'print_context_label': +../../diffutils-2.8.1/src/system.h:41:52: error: size of array 'a' is negative + 41 | #define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; } + | ^ +../../diffutils-2.8.1/src/context.c:65:4: note: in expansion of macro 'verify' + 65 | verify (info_preserved, sizeof inf->stat.st_mtime <= sizeof sec); + | ^~~~~~ + +struct stat::st_mtime is a time_t and will not fit into a +long (when 64bit time_t has been requested on a 32bit machine). + +Signed-off-by: André Draszik +Upstream-Status: Inappropriate [fixing an old version] +--- + src/context.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/context.c b/src/context.c +index 18d7023..d41efde 100644 +--- a/src/context.c ++++ b/src/context.c +@@ -61,9 +61,9 @@ print_context_label (char const *mark, + int nsec = TIMESPEC_NS (inf->stat.st_mtim); + if (! (tm && nstrftime (buf, sizeof buf, time_format, tm, 0, nsec))) + { +- long sec = inf->stat.st_mtime; ++ time_t sec = inf->stat.st_mtime; + verify (info_preserved, sizeof inf->stat.st_mtime <= sizeof sec); +- sprintf (buf, "%ld.%.9d", sec, nsec); ++ sprintf (buf, "%lld.%.9d", (long long) sec, nsec); + } + fprintf (outfile, "%s %s\t%s\n", mark, inf->name, buf); + } +-- +2.23.0.rc1 + diff --git a/recipes-extended/diffutils/diffutils_2.8.1.bb b/recipes-extended/diffutils/diffutils_2.8.1.bb index 5a71c94..4aad28f 100644 --- a/recipes-extended/diffutils/diffutils_2.8.1.bb +++ b/recipes-extended/diffutils/diffutils_2.8.1.bb @@ -10,6 +10,7 @@ SRC_URI = "${GNU_MIRROR}/diffutils/diffutils-${PV}.tar.gz \ file://fix_gcc6.patch \ file://0001-Make-it-build-with-compile-time-hardening-enabled.patch \ file://0002-included-libc-use-mempcpy-instead-of.patch \ + file://0003-context-fix-compilation-with-64bit-time_t-on-32bit-a.patch \ " SRC_URI[md5sum] = "71f9c5ae19b60608f6c7f162da86a428" -- cgit v1.2.3-54-g00ecf