Subject: Re: ntp_gettime(): sysctl binary compatibility, binary emul support
To: None <>
From: Christos Zoulas <>
List: tech-kern
Date: 05/18/2006 17:40:31
In article <>,
Matthias Drochner  <> wrote:
>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
I don't think that we need binary compatibility for the sysctl,
but we need binary compatibility for the syscall and the clockctl
ioctl so that ntpd binaries don't break. I don't think that the
emulations need/use the syscall so it should probably be removed.