l_fp, time, calendar

Gary E. Miller gem at rellim.com
Sun Mar 26 00:42:48 UTC 2017


Yo Eric!

On Sat, 25 Mar 2017 19:26:40 -0400
"Eric S. Raymond" <esr at thyrsus.com> wrote:

> This is not what is actually happening out there. Modern Unixes on
> 64-bit machines have already moved to 64-bit timespec members long
> since.

To confirm what Eric said.

On current Linux, timespec is defined as:

struct timespec
  {
    __time_t tv_sec;            /* Seconds.  */
    __syscall_slong_t tv_nsec;  /* Nanoseconds.  */
  };

slong is below.  time_t is defined as __time_t:

/usr/include/time.h:typedef __time_t time_t;

__time_t is defined as __TIME_T_TYPE:

/usr/include/bits/types.h:__STD_TYPE __TIME_T_TYPE __time_t;	/* Seconds since the Epoch.  */

__TIME_T_TYPE is a __SYSCALL_SLONG_TYPE:

/usr/include/bits/typesizes.h:#define __TIME_T_TYPE		__SYSCALL_SLONG_TYPE

For X86_64 and X32 the __SYSCALL_SLONG_TYPE:

    # define __SYSCALL_SLONG_TYPE   __SQUAD_TYPE

But for some 32 Linux it is still:

    # define __SYSCALL_SLONG_TYPE   __SLONGWORD_TYPE

I'll spare you the rest of the nested macros: SQUAD is a long long int (64
bits or more), and SLONGWORD is a long int (32 bits or more).

So the problem is all those pesky 32 bit OS still out there.  But as you
see above, Linux X32 has already moved to 64 bit ints at the syscall
interface.  I expect other actively maintened 32 bit OS to do so as
well.

RGDS
GARY
---------------------------------------------------------------------------
Gary E. Miller Rellim 109 NW Wilmington Ave., Suite E, Bend, OR 97703
	gem at rellim.com  Tel:+1 541 382 8588

	    Veritas liberabit vos. -- Quid est veritas?
    "If you can’t measure it, you can’t improve it." - Lord Kelvin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ntpsec.org/pipermail/devel/attachments/20170325/1765ed76/attachment.bin>


More information about the devel mailing list