diff options
author | André Draszik <git@andred.net> | 2020-01-10 17:15:40 +0000 |
---|---|---|
committer | Ross Burton <ross.burton@intel.com> | 2020-02-03 17:46:01 +0000 |
commit | 2068a5c60cef0d14d048381c6164a5ba8ee1d292 (patch) | |
tree | e74878afbfb2c911235cca74f69b75720f5270ec /recipes-core | |
parent | d8d6fda1756b68f3c63dcc52f92a514568863137 (diff) | |
download | meta-gplv2-2068a5c60cef0d14d048381c6164a5ba8ee1d292.tar.gz |
coreutils: fix build with 64bit time_t on 32bit arches
| ../../coreutils-6.9/lib/mktime.c: In function 'ydhms_diff':
| ../../coreutils-6.9/lib/mktime.c:105:52: error: size of array 'a' is negative
| 105 | #define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; }
| | ^
| ../../coreutils-6.9/lib/mktime.c:168:3: note: in expansion of macro 'verify'
| 168 | verify (long_int_year_and_yday_are_wide_enough,
| | ^~~~~~
coreutils tries to determine of mktime() from the c-library
works fine, but when cross-compiling, it unconditionally
assumes buggy behaviour, in which case it will use its own
replacement implementation. These basically are tests for
(g)libc implementation bugs that have existed in ancient
times but aren't relevant anymore.
The alternative implementation makes various assumptions which
don't hold true (and doesn't compile anymore). While more recent
versions of coreutils have fixed those assumptions, it's quite
hard to update the code here without potential licensing issues.
Given mktime() works fine in musl and glibc these days, we can
work-around the issues by simply relying on the c-libraries
mktime() implementation, avoiding all problems with coreutils'
alternative implementation.
I've veryfied this by running the tests both on my musl target,
and my glibc (v2.29) host.
This also reduces code-size slightly.
The ac_cv_func_working_mktime variable here corresponds to the
gl_cv_func_working_mktime variable in more recent versions of
coreutils (gnulib), which is being set in oe-core in meta/site.
Signed-off-by: André Draszik <git@andred.net>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'recipes-core')
-rw-r--r-- | recipes-core/coreutils/coreutils_6.9.bb | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/recipes-core/coreutils/coreutils_6.9.bb b/recipes-core/coreutils/coreutils_6.9.bb index 080100d..f6017ec 100644 --- a/recipes-core/coreutils/coreutils_6.9.bb +++ b/recipes-core/coreutils/coreutils_6.9.bb | |||
@@ -33,7 +33,9 @@ SRC_URI[md5sum] = "c9607d8495f16e98906e7ed2d9751a06" | |||
33 | SRC_URI[sha256sum] = "89c2895ad157de50e53298b22d91db116ee4e1dd3fdf4019260254e2e31497b0" | 33 | SRC_URI[sha256sum] = "89c2895ad157de50e53298b22d91db116ee4e1dd3fdf4019260254e2e31497b0" |
34 | 34 | ||
35 | EXTRA_OECONF += "ac_cv_func_getgroups_works=yes \ | 35 | EXTRA_OECONF += "ac_cv_func_getgroups_works=yes \ |
36 | ac_cv_func_strcoll_works=yes" | 36 | ac_cv_func_strcoll_works=yes \ |
37 | ac_cv_func_working_mktime=yes \ | ||
38 | " | ||
37 | 39 | ||
38 | # acl is not a default feature | 40 | # acl is not a default feature |
39 | # | 41 | # |