All of lore.kernel.org
 help / color / mirror / Atom feed
* [yocto][meta-gplv2][PATCH 1/2] coreutils: fix build with 64bit time_t on 32bit arches
@ 2020-01-10 17:15 Andr? Draszik
  2020-01-10 17:15 ` [yocto][meta-gplv2][PATCH 2/2] coreutils: set some more autotools / m4 test results Andr? Draszik
       [not found] ` <15E895F472611D11.20149@lists.yoctoproject.org>
  0 siblings, 2 replies; 4+ messages in thread
From: Andr? Draszik @ 2020-01-10 17:15 UTC (permalink / raw)
  To: yocto

From: André Draszik <git@andred.net>

| ../../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>
---
 recipes-core/coreutils/coreutils_6.9.bb | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

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"
 SRC_URI[sha256sum] = "89c2895ad157de50e53298b22d91db116ee4e1dd3fdf4019260254e2e31497b0"
 
 EXTRA_OECONF += "ac_cv_func_getgroups_works=yes \
-                 ac_cv_func_strcoll_works=yes"
+                 ac_cv_func_strcoll_works=yes \
+                 ac_cv_func_working_mktime=yes \
+                 "
 
 # acl is not a default feature
 #
-- 
2.23.0.rc1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-01-27 11:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-01-10 17:15 [yocto][meta-gplv2][PATCH 1/2] coreutils: fix build with 64bit time_t on 32bit arches Andr? Draszik
2020-01-10 17:15 ` [yocto][meta-gplv2][PATCH 2/2] coreutils: set some more autotools / m4 test results Andr? Draszik
     [not found] ` <15E895F472611D11.20149@lists.yoctoproject.org>
2020-01-20  9:02   ` André Draszik
     [not found]   ` <15EB8CDD7696F9CF.25959@lists.yoctoproject.org>
2020-01-27 11:25     ` André Draszik

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.