Regression in OpenBSD

Fred Wright fw at fwright.net
Sat Dec 23 03:02:12 UTC 2023


On Thu, 21 Dec 2023, Hal Murray wrote:

> Let's put that stuff on the back burner until the release is out.

Agreed for OpenBSD per se, though it might be worth trying to determine 
whether the apparent fencepost error with OPENSSL_VERSION_NUMBER is really 
OpenBSD-specific, or a more general problem that happens to show up here 
only in OpenBSD.  All the conditionals for it seem to be either '<' or 
'>', leaving the '==' case to fall through a crack.  Unless the intent is 
actually tri-valued behavior, one or the other should include the '==' 
case.  Admittedly, it's weird that the '==' case seems to want to be 
included in the '<' case rather than the '>' case.

I'll probably look into the additional warnings at some point, but not 
worry about it until after the release.

>> Ntpsec doesn't fully support OpenBSD anyway, due to the lack of "timex"
>> (though my Mac patches fix that), and the fact that OpenBSD provides
>> LibreSSL rather than OpenSSL, but the 1.2.2a "Mac" version did build with
>> --disable-nts.
>
> Please say more about your Mac patches?

The patches come in two categories:

Fallback for missing clock_gettime() and clock_settime().  This is fairly 
straightforwardly implemented as inlines in ntp_machine.h.  Then some 
miscellaneous programs that use clock_gettime() and don't include 
ntp_machine.h need to be fixed to do so.

Allowing the "timex" stuff to be optional, as it once was.  Originally I 
just reverted the two commits that caused the problem, but then 
subsequently have had to fix conflicts with other changes from time to 
time.  It could probably be refactored to better localize the relevant 
stuff, but fixing the conflicts is always incrementally easier.

The first category would probably be acceptable for inclusion in mainline, 
but by itself it doesn't expand the compatibility range.  The second 
category as it is would probably be too much code clutter.

> Does ntpd work?

Yes, it works, except in one weird case that I haven't taken the time to 
investigate.  In 10.5 x86_64, it builds and passes the tests, but looking 
with "ntpq -p", it shows all the initial peers but no actual exchanges 
happening.  10.5 ppc and 10.5 i386 work fine, as do all the other cases I 
can test.

If I ever get around to fixing that, it will probably suggest some 
deficiency in the tests that's probably worth fixing.

Fred Wright


More information about the devel mailing list