>>>>> "Alistair" == Alistair Francis <[email protected]> writes:
> Some 32-bit architectures no longer have the 32-bit time_t syscalls. > Instead they have suffixed syscalls that returns a 64-bit time_t. If > the architecture doesn't have the non-suffixed syscall and is using a > 64-bit time_t let's use the suffixed syscall instead. > This fixes build issues when building for RISC-V 32-bit with 5.1+ kernel > headers. > If an architecture only supports the suffixed syscalls, but is still > using a 32-bit time_t fall back to the libc call. > Signed-off-by: Alistair Francis <[email protected]> > --- > coreutils/date.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > diff --git a/coreutils/date.c b/coreutils/date.c > index feb400430..4ef1cbf4a 100644 > --- a/coreutils/date.c > +++ b/coreutils/date.c > @@ -36,7 +36,7 @@ > //config:# defaults to "no": stat's nanosecond field is a bit non-portable > //config:config FEATURE_DATE_NANO > //config: bool "Support %[num]N nanosecond format specifier" > -//config: default n # syscall(__NR_clock_gettime) > +//config: default n # syscall(__NR_clock_gettime) or > syscall(__NR_clock_gettime64) > //config: depends on DATE > //config: select PLATFORM_LINUX > //config: help > @@ -271,10 +271,17 @@ int date_main(int argc UNUSED_PARAM, char **argv) > */ > #endif > } else { > -#if ENABLE_FEATURE_DATE_NANO > +#if ENABLE_FEATURE_DATE_NANO && defined(__NR_clock_gettime) > /* libc has incredibly messy way of doing this, > * typically requiring -lrt. We just skip all this mess */ > syscall(__NR_clock_gettime, CLOCK_REALTIME, &ts); > +#elif ENABLE_FEATURE_DATE_NANO && __TIMESIZE == 64 > + /* Let's only suppor the 64 suffix syscalls for 64-bit time_t. s/suppor/support/ -- Bye, Peter Korsgaard _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
