NTP and uClibc
michael at talamasca.ocis.net
Thu Dec 4 22:52:33 UTC 2008
One of the new configure options in uClibc-0.9.30, UCLIBC_NTP_LEGACY,
controls the ntp_gettime() and ntp_adjtime() calls, which are only used by
the NTP daemon.
You should be aware that stock ntp-4.2.4p5, the current version, will in
fact not compile on uClibc no matter how that flag is set.
The problem is that ntp requires the call "__adjtimex". If __adjtimex is
not detected, the "tickadj" utility will fail to build on Linux. (It
falls back to a hack it uses on non-Linux kernels, and uClibc doesn't
supply the headers it would need for that.)
uClibc has "adjtimex", which has identical semantics (so far as I know),
but NTP and its configure script won't use that. The two underscores are
mandatory. So to get ntpd to work on uClibc, I have to supply a shim
library that translates __adjtimex() to adjtimex().
The good news is that if __adjtimex() is available, NTP can be fully
functional without the ntp_???time() calls.
So, in the next version of uClibc, I recommend changing "adjtimex" to
"__adjtimex", and removing the ntp_???time calls entirely.
---- Michael Deutschmann <michael at talamasca.ocis.net>
More information about the uClibc