https://bugs.kde.org/show_bug.cgi?id=416753

--- Comment #2 from Mark Wielaard <m...@klomp.org> ---
The patch works, but it does catch some issues with uninitialized fields in the
new timespec64 (but that proves it works!). That is because glibc uses its own
definition of timespec64:

/* The glibc Y2038-proof struct __timespec64 structure for a time value.
   To keep things Posix-ish, we keep the nanoseconds field a 32-bit
   signed long, but since the Linux field is a 64-bit signed int, we
   pad our tv_nsec with a 32-bit unnamed bit-field padding.

   As a general rule the Linux kernel is ignoring upper 32 bits of
   tv_nsec field.  */
struct __timespec64
{
  __time64_t tv_sec;         /* Seconds */
# if BYTE_ORDER == BIG_ENDIAN
  __int32_t :32;             /* Padding */
  __int32_t tv_nsec;         /* Nanoseconds */
# else
  __int32_t tv_nsec;         /* Nanoseconds */
  __int32_t :32;             /* Padding */
# endif
};

We'll have to use the same layout as glibc uses here and only check the tv_sec
and tv_nsec field, not the whole struct, to avoid warning for the uninitialized
padding.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to