| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This creates a header for os_compat.c, and moves the related
prototypes into it from gpsd_config.h (as created by SConstruct),
after adding references to it to gpsd.h (via gpsd.h-tail) and a few
other sources that need it but don't include gpsd.h.
It also removes includes of <time.h> in the places where they were
only needed for the code now removed from gpsd_config.h.
TESTED:
Ran "scons build-all check" on OSX 10.9 (with strlcat/strlcpy but no
clock_gettime), OSX 10.12 (with strlcat/strlcpy and clock_gettime),
and Ubuntu 14 (with clock_gettime but no strlcat/strlcpy). Also
verified that fallback versions were not being included where
unnecessary.
|
| |
|
|
|
|
|
|
| |
Promote scan-build to be onere of the stock pre-release checks.
Fix one minor cppcheck nit.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The proximate cause was that we've been seing emission of error
messages that were randomly and disturbingly variable across different
environments - notably Raspbian and Gentoo splint gave nontrivially
different results than Ubuntu 14.10 splint. And this was *not* due to
Ubuntu patches! A pristine splint built from the 3.1.2 tarball on
Ubuntu didn't match the Raspbian and Gentoo results either.
But this has been coming for a while. Easy access to more modern
static analyzers such as coverity, scan-build and cppcheck has been
decreasing the utility of splint, which is unmaintained and somewhat
buggy and not easy to use.
Only file not cleaned is ppsthread.c, because Gary has been working
on it during this cleanup.
All regression tests pass. PPS observed live on GR601-W.
|
| |
|
| |
|
|
|
|
|
|
| |
It's not used on the client side, and it's needed separately for ntplib.
All regression tesrs pass. PPS is live.
|
|
|
|
|
|
|
| |
On Mac OS X it will get proper nanosecond precision; elsewhere, only
microseconds. Hides the conformance failure from the rest of the code.
All regression tests pass.
|
|
|
|
|
|
|
| |
All callers ignore value returned by timespec_str. Additionally, the
function returns simply the result of snprintf(), which is not
necessarily the number of chars written to the buffer (if the buffer
provided by the caller was too small).
|
| |
|
|
|
|
|
| |
It can be as short as 12 chars: "-0.123456789"
Or as long as 21 chars: "-2147483647.123456789"
|
| |
|
|
|
|
|
| |
Converting a timespec to a printable string is odd, so
placed in a new function for ease of use.
|
|
|
|
| |
timestamp() should not be used where nanoSec count.
|
|
|
|
|
|
| |
The experiments since then have failed.
All regression tests pass.
|
| |
|
|
|
|
| |
All regression tests pass.
|
| |
|
|
|
|
|
|
|
|
| |
Initialize struct tm before passing it to strptime
The issue is that mktime uses tm_isdst but some versions of strptime
don't actually set tm_isdst so you get an uninitialized memory behavior
at that point
|
|
|
|
|
|
|
| |
Returns us to something amost identical to the original code.
Sigh. Timezones are a swamp.
All regression tests pass.
|
|
|
|
|
|
| |
Fortunately, there's a much simpler way to do the computation correctly.
All regression tests pass,
|
|
|
|
| |
Dependency soon to be fixed. All regression tests pass.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Cygwin GCC complains about code like isprint(c), where c is of type char.
The isX() and toX() functions/macros (ISO C allows either) all accept an
int, whose value should be either that of an unsigned char, or the
special value EOF (== -1).
So cast to unsigned char each argument to isprint, tolower, etc.
Silences several warnings of the form:
gpsutils.c: In function 'safe_atof':
gpsutils.c:90:5: warning: array subscript has type 'char'
[-Wchar-subscripts]
while (isspace(*p)) {
^
gpsutils.c:188:2: warning: array subscript has type 'char'
[-Wchar-subscripts]
while (isdigit(*p)) {
^
|
|
|
|
| |
All regression tests pass. PPS is live.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Building with recent glibc versions fails in gpsutils.c due to missing
definitions related to clock_gettime. This is because we define the
_XOPEN_SOURCE macro, but not to a new enough value. So set it to a
recent spec value that satisfies both strptime and clock_gettime.
Example build failure with glibc-2.15:
gpsutils.c: In function 'timestamp':
gpsutils.c:299:22: error: storage size of 'ts' isn't known
gpsutils.c:300:14: warning: implicit declaration of function 'clock_gettime' [-Wimplicit-function-declaration]
gpsutils.c:300:34: error: 'CLOCK_REALTIME' undeclared (first use in this function)
gpsutils.c:300:34: note: each undeclared identifier is reported only once for each function it appears in
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
|
| |
|
|
|
|
|
|
| |
So add the define that POSIX says to to avoid.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
|
|
| |
Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
|
|
|
|
|
|
|
|
|
| |
1. Tag "week" must be unsigned integer.
gpsprof -f instrumented works again.
2. Removed tag "uxtime" duplication "time".
3. Used a more precise timestamp.
Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
|
|
|
|
| |
All regression tests pass. All three exports work in gpxlogger.
|
|
|
|
| |
All regression tests pass.
|
| |
|
|
|
|
|
|
| |
It hasn't actually worked since we switched protocols to JSON. This diff
puts the framework in place for new machinery using timing attributes in the
TPV sentence.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Required so clients looking at flag masks in data exported via the shared-memory
interface will see the right thing.
These were separated originally in order to avoid pushing the reqyuired width
of the gpsdata.set flag mask over 32 bits. It became 64 bits in the Version 5
API change, so that constraint went away.
All regression tests pass.
|
|
|
|
| |
Required a regression-test rebuild.
|
|
|
|
| |
All regression tests pass, splint and cppcheck pass.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Protocol version number is bumped. Python and C test clients are known
to work; interfaces of the C and Python client bindings are
unchanged. Third-party client-side bindings which rely on naively
copying JSON members will break (implementers have been repeatedly
warned not to do this).
|