On Fri, Nov 30, 2018 at 5:38 PM Deepa Dinamani deepa.kernel@gmail.com wrote:
On Sat, Nov 24, 2018 at 7:59 PM Willem de Bruijn willemdebruijn.kernel@gmail.com wrote:
On Sat, Nov 24, 2018 at 3:58 AM Deepa Dinamani deepa.kernel@gmail.com wrote:
SO_TIMESTAMP, SO_TIMESTAMPNS and SO_TIMESTAMPING options, the way they are currently defined, are not y2038 safe. Subsequent patches in the series add new y2038 safe versions of these options which provide 64 bit timestamps on all architectures uniformly. Hence, rename existing options with OLD tag suffixes.
Why do the existing interfaces have to be renamed when new interfaces are added?
Existing options need to be renamed because of the macro below:
#define SO_TIMESTAMP (sizeof(time_t) == sizeof(__kernel_long_t) ? \ SO_TIMESTAMP_OLD : SO_TIMESTAMP_NEW)
SO_TIMESTAMP is now dependent on size of time_t because of the libc flag.
Yes, I understand the mechanism based on libc's definition of time_t after Arnd's explanation. Please do capture that in the commit message, for possible future readers who stumble upon the code with git blame.