Subject: ntp_gettime(): sysctl binary compatibility, binary emul support
To: None <>
From: Matthias Drochner <>
List: tech-kern
Date: 05/18/2006 13:13:31
Hi -
the upcoming timecounter code (on the simonb-timecounters branch)
introduces a binary incompatible change to the NTP API: The layout
of "struct ntptimeval" changes. This struct is only used by the
ntp_gettime() syscall and the kern.ntptime sysctl.
The only userland program which uses the syscall is "ntptime"
(which is thought to be a replacement for "ntpdc -c kerninfo");
the sysctl isn't used at all afaict.

The syscall can be versioned as usual, no problem here.
Do we need binary compatibility for the sysctl? This could
be partly done by allocating a new KERN_NTPTIME number, but it
would still be incomplete: Programs which do a dynamic lookup
(eg "/sbin/sysctl -r kern.ntptime") would get the new one.
Does anybody consider this a problem?

Second problem: Things would be simpler if we just removed
support for ntp_gettime() from binary emulations (except
perhaps netbsd32). It is currently in svr4, pecoff and aoutm68k,
and I'm not even sure this is done correctly because the ways
errors are returned differ. (Actually, NetBSD's manpage and
implementation differ too.)
Would that be OK?

best regards