• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

stedolan / jq / 445
84%
master: 84%

Build:
Build:
LAST BUILD BRANCH: doc-repeat
DEFAULT BRANCH: master
Ran 12 Oct 2018 07:21PM UTC
Jobs 2
Files 252
Run time 1102841min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

pending completion
445

Pull #3

travis-ci

wtlangford
Bugfix: Math function checking

We had config machinery that determined which math functions are
available in libc. If a c math function was missing on the host system,
then the corresponding jq function would be removed from the source,
enabling the build to proceed anyway. The detection machinery was broken
in a subtle way, as was shown after glibc updated to 2.27, dropping the
`pow10` function. This caused compilation to fail.

The essential problem was that we detected whether a math function was
available by compiling and linking a small program evaluating that
function on constants. However, since gcc's optimization machinery has
special knowledge of some math functions (e.g. `pow10`), it can
optimize them away, even if they don't exist in the library and are not
linkable. That is, the following example compiles and links against
glibc 2.27, even though `pow10` has been removed:
```
int main () {
  printf("%f", pow10(0.5));
  return 0;
}
```

What?!
On the other hand, this program does not link:
```

int main () {
  double f;
  printf("%f", &f);
  printf("%f", pow10(f));
  return 0;
}
```

In the first program the call to `pow10` can be optimized away as a
constant expression. This requires GCC to know about `pow10` (which it
does!), but it does not require `pow10` to be in the library (and
actually linkable).

The solution is to use autoconf's machinery for detecting function
presence, instead of our own (buggy) machinery. This has the added
benefit of simplifying the code.

The bug was reported in issue #1659
Pull Request #3:

5153 of 6104 relevant lines covered (84.42%)

6923128.96 hits per line

Jobs
ID Job ID Ran Files Coverage
3 445.3 (COVERAGE="--disable-valgrind --enable-gcov") 12 Oct 2018 07:21PM UTC 0
84.42
Travis Job 445.3
6 445.6 16 Nov 2020 04:02PM UTC 0
98.94
Travis Job 445.6
Source Files on build 445
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #445
  • Pull Request #3
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc