On Sun, 6 Jun 2021 at 01:10, Richard Purdie < richard.purdie@linuxfoundation.org> wrote: > I tried again with the autobuilder, still fails: > > https://autobuilder.yoctoproject.org/typhoon/#/builders/48/builds/3516 > > so whatever it is, it is still "live". > I did some digging. The issue happens when: - host is centos8 - SDKMACHINE is i686 (e.g. cmake is 32 bit) Then there's a failing syscall attempting to set file times: utimensat_time64(AT_FDCWD, "../install/usr/local/lib/cmake/assimp-4.1/assimp-config.cmake", [{tv_sec=1622966723, tv_nsec=6319439026193432576}, {tv_sec=1622966579, tv_nsec=17840053692309438464}], 0) = -1 EINVAL (Invalid argument) On latest Fedora, there's no issue: utimensat_time64(AT_FDCWD, "../install2/usr/local/lib/cmake/assimp-4.1/assimp-config.cmake", [{tv_sec=1623002886, tv_nsec=6369724778172907520}, {tv_sec=1623002886, tv_nsec=17839174083007217664}], 0) = 0 utimensat_time64 only appeared with 5.1 kernels, however, 4.18 should be returning ENOSYS in that case probably? i686 SDK is using its own libc, and from what I can tell that libc is trying to be Y2038 compatible, e.g. calling the 64 bit version first, and if that returns ENOSYS, it falls through to the 32 bit version. But because centos kernel returns EINVAL, the 32 bit version is never attempted: https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/utimensat.c;h=909a29762b504091a4e32487d8bc4cc68d34c508;hb=HEAD I also tried this in Ubuntu 18.04 (kernel 4.15), the fall-through works correctly: syscall_0x19c(0xffffff9c, 0x579e4260, 0xffe46590, 0, 0xf7aace3c, 0xffe46768) = -1 (errno 38) utimensat(AT_FDCWD, "../install2/usr/local/lib/cmake/assimp-4.1/assimp-config.cmake", [{tv_sec=1623008744, tv_nsec=0} /* 2021-06-06T19:45:44+0000 */, {tv_sec=1623008629, tv_nsec=0} /* 2021-06-06T19:43:49+0000 */], 0) = 0 The bottom line, this looks like a botched kernel update in Centos8 - possibly a backport of time64 calls that doesn't work with non-centos libc? Alex