On Thu, Dec 21, 2023, at 08:56, Antonios Salios wrote: > On Tue, 2023-12-19 at 13:53 +0000, Arnd Bergmann wrote: >> On Tue, Dec 19, 2023, at 02:50, Dmitry Torokhov wrote: > > The header is included from the sysroot of the toolchain, using version > 6.5.6. > I'm using glibc 2.37 with a toolchain built from Buildroot. > > The problem seems to be, that __USE_TIME_BITS64 is not defined even > though riscv32 uses 64-bit time. That sounds like a libc bug. Which C library are you using? > __BITS_PER_LONG is set to 32 & __KERNEL__ is (of course) undefined in > userspace. > The userspace therefore uses 64-bit values as opposed to the kernel, > which uses 32-bit values. > > __USE_TIME_BITS64 is only set when __TIMESIZE is set to 32. [1] > Under riscv32, the default value of 64 is used. [2] I don't know what __TIMESIZE is, this is not part of the kernel ABI as far as I can tell. __USE_TIME_BITS64 should be set by any 32-bit architecture if the C library defines a 64-bit time_t, otherwise the kernel headers have no way of picking the correct definitions based on preprocessor logic. Arnd