<pre style='margin:0'>
tobypeterson pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/515c6c7c39ab32047865a3dca076e8ca8831c468">https://github.com/macports/macports-ports/commit/515c6c7c39ab32047865a3dca076e8ca8831c468</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 515c6c7  ntpsec: new port
</span>515c6c7 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 515c6c7c39ab32047865a3dca076e8ca8831c468
</span>Author: Leonardo Brondani Schenkel <leonardo@schenkel.net>
AuthorDate: Tue Feb 14 15:57:08 2017 +0100

<span style='display:block; white-space:pre;color:#404040;'>    ntpsec: new port
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    From the homepage <https://www.ntpsec.org>:
</span><span style='display:block; white-space:pre;color:#404040;'>    > NTPsec project - a secure, hardened, and improved implementation of Network
</span><span style='display:block; white-space:pre;color:#404040;'>    > Time Protocol derived from NTP Classic, Dave Mills’s original.
</span><span style='display:block; white-space:pre;color:#404040;'>    >
</span><span style='display:block; white-space:pre;color:#404040;'>    > NTPsec, as its name implies, is a more secure NTP. Our goal is to deliver
</span><span style='display:block; white-space:pre;color:#404040;'>    > code that can be used with confidence in deployments with the most stringent
</span><span style='display:block; white-space:pre;color:#404040;'>    > security, availability, and assurance requirements.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    This port is a drop-in replacement for ntp, with hardened internals. It should
</span><span style='display:block; white-space:pre;color:#404040;'>    behave identically in most circumstances, except that obsolete and/or insecure
</span><span style='display:block; white-space:pre;color:#404040;'>    features have been removed.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    The current version of this port incorporates two newer patches from upstream
</span><span style='display:block; white-space:pre;color:#404040;'>    to fix a compilation error when leap second smearing is enabled.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    The example file included in this port is the same example file included in
</span><span style='display:block; white-space:pre;color:#404040;'>    the ntp port, but with small adaptations for changes in ntpsec.
</span>---
 sysutils/ntpsec/Portfile                |  83 +++++++
 sysutils/ntpsec/files/ntp.conf          |   9 +
 sysutils/ntpsec/files/patch-macros.diff | 370 ++++++++++++++++++++++++++++++++
 sysutils/ntpsec/files/patch-smear.diff  |  27 +++
 4 files changed, 489 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/ntpsec/Portfile b/sysutils/ntpsec/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..9fec7ea
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/ntpsec/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,83 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem          1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           waf 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           python 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name                ntpsec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             0.9.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories          sysutils net
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         {schenkel.net:leonardo @lbschenkel} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         A secure, hardened, and improved implementation of NTP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license             BSD-2-Clause BSD-3-Clause CC-BY-4.0 NTP MIT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms           darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description    A secure, hardened, and improved implementation of Network \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    Time Protocol derived from NTP Classic, Dave Mills’s original.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage            https://www.ntpsec.org/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+conflicts           ntp openntpd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+master_sites        ftp://ftp.ntpsec.org/pub/releases/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  9527cc6bc78f1a02c868fbb6a1fb583461b8fa81 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  9d15ac59b67911eb1b42fe5916e8d00ded8b71ba34f1ab4fc0f251fc0d90d5e5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build       port:bison
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib         path:lib/libssl.dylib:openssl port:python${python.version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          patch-macros.diff patch-smear.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patch.pre_args      -p1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_configure       yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args      --alltests \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --define=CONFIG_FILE=${prefix}/etc/ntp.conf \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --disable-manpage \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --pythondir=${python.pkgd}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+destroot.cmd        ${build.cmd}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default_variants    +crypto +doc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant classic description {Enable classic mode} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append   --enable-classic-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant crypto description {Enable crypto support (depends on OpenSSL)} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_build-append    path:lib/libssl.dylib:openssl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append   --enable-crypto
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant doc description {Build manpages and HTML documentation} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_build-append    port:asciidoc port:docbook-xsl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append   --enable-doc --htmldir=${prefix}/share/doc/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-delete   --disable-manpage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant refclock description {Enable all reference clocks} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append   --refclock=all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant smear description {Enable smearing of leap seconds} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append   --enable-leap-smear
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # build is not respecting --mandir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace -W ${worksrcpath}/wafhelpers \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        "s|\${PREFIX}/man/|\${PREFIX}/share/man/|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        asciidoc.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -o root -m 644 ${filespath}/ntp.conf \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${destroot}${prefix}/etc/ntp.conf.dist
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 755 -d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${destroot}${prefix}/var/db \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${destroot}${prefix}/var/run
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    destroot.keepdirs \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${destroot}${prefix}/var/db \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${destroot}${prefix}/var/run
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-activate {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {![file exists ${prefix}/etc/ntp.conf]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        file copy ${prefix}/etc/ntp.conf.dist ${prefix}/etc/ntp.conf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+startupitem.create      yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+startupitem.netchange   yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+startupitem.executable  ${prefix}/sbin/ntpd -n -g -p ${prefix}/var/run/ntpd.pid -f ${prefix}/var/db/ntp.drift -c ${prefix}/etc/ntp.conf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/ntpsec/files/ntp.conf b/sysutils/ntpsec/files/ntp.conf
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..82c9057
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/ntpsec/files/ntp.conf
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Limit network machines to time queries only
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+restrict default kod limited nomodify nopeer noquery
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+restrict -6 default kod limited nomodify nopeer noquery
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# localhost is unrestricted
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+restrict 127.0.0.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+restrict -6 ::1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+server time.apple.com
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/ntpsec/files/patch-macros.diff b/sysutils/ntpsec/files/patch-macros.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..c3dbf32
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/ntpsec/files/patch-macros.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,370 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/include/ntp_fp.h b/include/ntp_fp.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 82d88a9..5098508 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/include/ntp_fp.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/include/ntp_fp.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -188,72 +188,79 @@ typedef uint32_t u_fp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <math.h>   /* ldexp() */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define M_DTOLFP(d, r_ui, r_uf)           /* double to l_fp */    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  do {                                                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          double  d_tmp;                                  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          uint64_t        q_tmp;                                  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          int     M_isneg;                                        \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                                          \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          d_tmp = (d);                                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          M_isneg = (d_tmp < 0.);                              \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          if (M_isneg) {                                  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  d_tmp = -d_tmp;                         \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          }                                               \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          q_tmp = (uint64_t)ldexp(d_tmp, 32);             \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          if (M_isneg) {                                  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  q_tmp = ~q_tmp + 1;                     \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          }                                               \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          (r_uf) = (uint32_t)q_tmp;                       \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          (r_ui) = (uint32_t)(q_tmp >> 32);         \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  } while (false)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static inline l_fp dtolfp(double d)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* double to l_fp */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  double  d_tmp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  uint64_t        q_tmp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int     M_isneg;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  l_fp    r;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  d_tmp = (d);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  M_isneg = (d_tmp < 0.);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (M_isneg) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          d_tmp = -d_tmp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  q_tmp = (uint64_t)ldexp(d_tmp, 32);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (M_isneg) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          q_tmp = ~q_tmp + 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  setlfpfrac(r, (uint32_t)q_tmp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  setlfpuint(r, (uint32_t)(q_tmp >> 32));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return r;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define M_LFPTOD(r_ui, r_uf, d)   /* l_fp to double */    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  do {                                                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          double  d_tmp;                                  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          uint64_t        q_tmp;                                  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          int     M_isneg;                                \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                                          \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          q_tmp = ((uint64_t)(r_ui) << 32) + (r_uf);        \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          M_isneg = M_ISNEG(r_ui);                        \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          if (M_isneg) {                                  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  q_tmp = ~q_tmp + 1;                     \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          }                                               \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          d_tmp = ldexp((double)q_tmp, -32);              \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          if (M_isneg) {                                  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  d_tmp = -d_tmp;                         \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          }                                               \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          (d) = d_tmp;                                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  } while (false)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static inline double lfptod(l_fp r)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* l_fp to double */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  double  d;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  uint64_t        q_tmp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int     M_isneg;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  q_tmp = ((uint64_t)lfpuint(r) << 32) + lfpfrac(r);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  M_isneg = M_ISNEG(lfpuint(r));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (M_isneg) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          q_tmp = ~q_tmp + 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  d = ldexp((double)q_tmp, -32);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (M_isneg) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          d = -d;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return d;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else /* use only 32 bit unsigned values */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define M_DTOLFP(d, r_ui, r_uf)           /* double to l_fp */ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  do { \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          double d_tmp; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          if ((d_tmp = (d)) < 0) { \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  (r_ui) = (uint32_t)(-d_tmp); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  (r_uf) = (uint32_t)(-(d_tmp + (double)(r_ui)) * FRAC); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  M_NEG((r_ui), (r_uf)); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          } else { \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  (r_ui) = (uint32_t)d_tmp; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  (r_uf) = (uint32_t)((d_tmp - (double)(r_ui)) * FRAC); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          } \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  } while (0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define M_LFPTOD(r_ui, r_uf, d)           /* l_fp to double */ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  do { \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          uint32_t l_thi, l_tlo; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          l_thi = (r_ui); l_tlo = (r_uf); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          if (M_ISNEG(l_thi)) { \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  M_NEG(l_thi, l_tlo); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  (d) = -((double)l_thi + (double)l_tlo / FRAC); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          } else { \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  (d) = (double)l_thi + (double)l_tlo / FRAC; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          } \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  } while (0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static inline l_fp dtolfp(double d)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* double to l_fp */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  double d_tmp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  l_fp r;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if ((d_tmp = (d)) < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          setlfpuint(r, (uint32_t)(-d_tmp));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          setlfpfrac(r, (uint32_t)(-(d_tmp + (double)lfpuint(r)) * FRAC));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          M_NEG((r_ui), (r_uf));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  } else { \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          setlfpuint(r, (uint32_t)d_tmp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          setlfpfrac(r, (uint32_t)((d_tmp - (double)lfpuint(r)) * FRAC));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return r;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define DTOLFP(d, v)      M_DTOLFP((d), lfpuint(*v), lfpfrac(*v))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define LFPTOD(v, d)      M_LFPTOD(lfpuint(*v), lfpfrac(*v), (d))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static inline double lfptod(l_fp r)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* l_fp to double */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  uint32_t l_thi, l_tlo;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  l_thi = lfpuint(r); l_tlo = lfpfrac(r);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (M_ISNEG(l_thi)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          M_NEG(l_thi, l_tlo);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          (d) = -((double)l_thi + (double)l_tlo / FRAC);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          (d) = (double)l_thi + (double)l_tlo / FRAC;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return d;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * Prototypes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/libntp/systime.c b/libntp/systime.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 24a1c5c..6179d77 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/libntp/systime.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/libntp/systime.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -187,7 +187,7 @@ normalize_time(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * Add in the fuzz.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   dfuzz = rand * 2. / FRAC * sys_fuzz;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DTOLFP(dfuzz, &lfpfuzz);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  lfpfuzz = dtolfp(dfuzz);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   L_ADD(&result, &lfpfuzz);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -208,7 +208,7 @@ normalize_time(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           dfuzz);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   lfpdelta = lfp_prev;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   L_SUB(&lfpdelta, &result);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  LFPTOD(&lfpdelta, ddelta);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  ddelta = lfptod(lfpdelta);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   msyslog(LOG_ERR,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           "prev get_systime 0x%x.%08x is %.9f later than 0x%x.%08x",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           lfpuint(lfp_prev), lfpfrac(lfp_prev),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -362,8 +362,8 @@ step_systime(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* get the complete jump distance as l_fp */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DTOLFP(sys_residual, &fp_sys);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DTOLFP(step,         &fp_ofs);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  fp_sys = dtolfp(sys_residual);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  fp_ofs = dtolfp(step);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   L_ADD(&fp_ofs, &fp_sys);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* ---> time-critical path starts ---> */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ntpd/ntp_control.c b/ntpd/ntp_control.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index adca6c3..439c727 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ntpd/ntp_control.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ntpd/ntp_control.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1757,7 +1757,7 @@ ctl_putsys(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   case CS_AUTHDELAY:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          LFPTOD(&sys_authdelay, dtemp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          dtemp = lfptod(sys_authdelay);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ctl_putdbl(sys_var[varid].text, dtemp * 1e3);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ntpd/ntp_packetstamp.c b/ntpd/ntp_packetstamp.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fc1948c..e176348 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ntpd/ntp_packetstamp.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ntpd/ntp_packetstamp.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -190,7 +190,7 @@ fetch_packetstamp(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif  /* USE_SCM_TIMESTAMP */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   fuzz = ntp_random() * 2. / FRAC * sys_fuzz;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  DTOLFP(fuzz, &lfpfuzz);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  lfpfuzz = dtolfp(fuzz);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   L_ADD(&nts, &lfpfuzz);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef ENABLE_DEBUG_TIMING
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   dts = ts;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ntpd/ntp_proto.c b/ntpd/ntp_proto.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0782fe7..a925da8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ntpd/ntp_proto.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ntpd/ntp_proto.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2670,7 +2670,7 @@ measure_tick_fuzz(void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   max_repeats = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   repeats = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   changes = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DTOLFP(MINSTEP, &minstep);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  minstep = dtolfp(MINSTEP);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   get_systime(&last);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   for (i = 0; i < MAXLOOPS && changes < MINCHANGES; i++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           get_systime(&val);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2681,7 +2681,7 @@ measure_tick_fuzz(void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   max_repeats = max(repeats, max_repeats);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   repeats = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   changes++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  LFPTOD(&ldiff, diff);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  diff = lfptod(ldiff);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   tick = min(diff, tick);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   repeats++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ntpd/ntp_refclock.c b/ntpd/ntp_refclock.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 82c6827..eb426b7 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ntpd/ntp_refclock.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ntpd/ntp_refclock.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -364,7 +364,7 @@ refclock_process_offset(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   pp->lastrec = lastrec;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   lftemp = lasttim;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   L_SUB(&lftemp, &lastrec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  LFPTOD(&lftemp, doffset);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  doffset = lfptod(lftemp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SAMPLE(doffset + fudge);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -408,7 +408,7 @@ refclock_process_f(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   setlfpuint(offset, sec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   setlfpfrac(offset, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DTOLFP(pp->nsec / 1e9, &ltemp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ltemp = dtolfp(pp->nsec / 1e9);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   L_ADD(&offset, &ltemp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   refclock_process_offset(pp, offset, pp->lastrec, fudge);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ntpd/refclock_gpsd.c b/ntpd/refclock_gpsd.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 09e3229..5afa6fc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ntpd/refclock_gpsd.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ntpd/refclock_gpsd.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -772,13 +772,13 @@ gpsd_control(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UNUSED_ARG(out_st);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (peer == up->pps_peer) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          DTOLFP(pp->fudgetime1, &up->pps_fudge2);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          up->pps_fudge2 = dtolfp(pp->fudgetime1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if ( ! (pp->sloppyclockflag & CLK_FLAG1))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   peer->flags &= ~FLAG_PPS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           /* save preprocessed fudge times */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          DTOLFP(pp->fudgetime1, &up->pps_fudge);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          DTOLFP(pp->fudgetime2, &up->ibt_fudge);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          up->pps_fudge = dtolfp(pp->fudgetime1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          up->ibt_fudge = dtolfp(pp->fudgetime2);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (MODE_OP_MODE(up->mode ^ peer->ttl)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   leave_opmode(peer, up->mode);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ntpd/refclock_jupiter.c b/ntpd/refclock_jupiter.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c6f79ab..ce3cb60 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ntpd/refclock_jupiter.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ntpd/refclock_jupiter.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -714,7 +714,7 @@ jupiter_control(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   pp = peer->procptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   instance = pp->unitptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DTOLFP(pp->fudgetime2, &instance->limit);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  instance->limit = dtolfp(pp->fudgetime2);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Force positive value. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (L_ISNEG(&instance->limit))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           L_NEG(&instance->limit);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ntpd/refclock_nmea.c b/ntpd/refclock_nmea.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 74e5f8e..cc93831 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ntpd/refclock_nmea.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ntpd/refclock_nmea.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -721,7 +721,7 @@ refclock_ppsrelate(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   pp_stamp = tspec_stamp_to_lfp(timeout);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   pp_delta = *rd_stamp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   L_SUB(&pp_delta, &pp_stamp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  LFPTOD(&pp_delta, delta);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  delta = lfptod(pp_delta);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   delta += pp_fudge - *rd_fudge;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (fabs(delta) > 1.5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return PPS_RELATE_NONE; /* PPS timeout control */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -744,7 +744,7 @@ refclock_ppsrelate(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* check against reftime if PPS PLL can be used */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   pp_delta = *reftime;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   L_SUB(&pp_delta, &pp_stamp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  LFPTOD(&pp_delta, delta);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  delta = lfptod(pp_delta);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   delta += pp_fudge;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (fabs(delta) > 0.45)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return PPS_RELATE_EDGE; /* cannot PLL with PPS code */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ntpd/refclock_oncore.c b/ntpd/refclock_oncore.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6dceab8..46c79a7 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ntpd/refclock_oncore.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ntpd/refclock_oncore.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1765,7 +1765,7 @@ oncore_get_timestamp(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ts_tmp = ts;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   setlfpuint(ts_tmp, 0);  /* zero integer part */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  LFPTOD(&ts_tmp, dmy);       /* convert fractional part to a double */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  dmy = lfptod(ts_tmp);   /* convert fractional part to a double */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   j = 1.0e9*dmy;          /* then to integer ns */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   Rsm = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ntpfrob/jitter.c b/ntpfrob/jitter.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b48656d..2d93505 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ntpfrob/jitter.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ntpfrob/jitter.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -84,7 +84,7 @@ void jitter(const iomode mode)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   for (i = 0; i < NBUF; i ++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           get_clocktime(&tr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          LFPTOD(&tr, gtod[i]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          gtod[i] = lfptod(tr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/tests/libntp/lfpfunc.c b/tests/libntp/lfpfunc.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c768663..3266c91 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tests/libntp/lfpfunc.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tests/libntp/lfpfunc.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -131,20 +131,6 @@ static int l_fp_signum(const l_fp first)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return (lfpuint(first) || lfpfrac(first));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static double l_fp_convert_to_double(const l_fp first)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  double res;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  LFPTOD(&first, res);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return res;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static l_fp l_fp_init_from_double( double rhs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  l_fp temp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DTOLFP(rhs, &temp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return temp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void l_fp_swap(l_fp * first, l_fp *second)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   l_fp temp = *second;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -372,11 +358,11 @@ TEST(lfpfunc, FDF_RoundTrip) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   for (idx = 0; idx < addsub_cnt; ++idx) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           l_fp op1 = l_fp_init(addsub_tab[idx][0].h, addsub_tab[idx][0].l);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          double op2 = l_fp_convert_to_double(op1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          l_fp op3 = l_fp_init_from_double(op2); 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          double op2 = lfptod(op1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          l_fp op3 = dtolfp(op2);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           l_fp temp = l_fp_subtract(op1, op3);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          double d = l_fp_convert_to_double(temp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          double d = lfptod(temp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           TEST_ASSERT_DOUBLE_WITHIN(eps(op2), 0.0, fabs(d));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/ntpsec/files/patch-smear.diff b/sysutils/ntpsec/files/patch-smear.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..e009547
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/ntpsec/files/patch-smear.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,27 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ntpd/ntp_proto.c b/ntpd/ntp_proto.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f753534..3ab6b0e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ntpd/ntp_proto.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ntpd/ntp_proto.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2298,7 +2298,7 @@ fast_xmit(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   xpkt.refid = convertLFPToRefID(leap_smear.offset);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   DPRINTF(2, ("fast_xmit: leap_smear.in_progress: refid %8x, smear %s\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ntohl(xpkt.refid),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          lfptoa(&leap_smear.offset, 8)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          lfptoa(leap_smear.offset, 8)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           xpkt.reftime = htonl_fp(this_ref_time);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ntpd/ntp_timer.c b/ntpd/ntp_timer.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 05f2a00..2b9a302 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ntpd/ntp_timer.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ntpd/ntp_timer.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -479,7 +479,7 @@ check_leapsec(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            * Update the current leap smear offset, eventually 0.0 if outside smear interval.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          DTOLFP(leap_smear.doffset, &leap_smear.offset);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          leap_smear.offset = dtolfp(leap_smear.doffset);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif    /* ENABLE_LEAP_SMEAR */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           /* Full hit. Eventually step the clock, but always
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>

</pre>