Bug 209094

Summary: science/veusz: Fix build with libc++ 3.8.0
Product: Ports & Packages Reporter: Dimitry Andric <dim>
Component: Individual Port(s)Assignee: Kurt Jaeger <pi>
Status: Closed FIXED    
Severity: Affects Some People CC: devel, pi
Priority: --- Flags: pi: maintainer-feedback-
Version: Latest   
Hardware: Any   
OS: Any   
Bug Depends on:    
Bug Blocks: 208158    
Description Flags
Use plain isfinite() in science/veusz none

Description Dimitry Andric freebsd_committer 2016-04-27 12:03:30 UTC
Created attachment 169753 [details]
Use plain isfinite() in science/veusz

During the exp-run in bug 208158, it was found that science/veusz gives errors with libc++ 3.8.0 [1]:

veusz/helpers/src/qtloops/qtloops.cpp:354:10: error: no member named 'isfinite' in namespace 'std'; did you mean simply 'isfinite'?
          if( ! isFinite(val) )
veusz/helpers/src/qtloops/isnan.h:58:24: note: expanded from macro 'isFinite'
# define isFinite(_a) (std::isfinite(_a))

This is because the file includes <math.h>, not <cmath>, and the isnan.h header checks whether isfinite() is a macro.  Since it is a function in libc++, it attempts to use std::isfinite(), which is only defined if you include <cmath>.

Fix this by letting isnan.h always use the plain isfinite() for FreeBSD.  This is similar to how it always selects the plain isnan() for FreeBSD, just above that definition.

[1] http://package18.nyi.freebsd.org/data/headamd64PR208158-default/2016-03-22_18h30m05s/logs/errors/veusz-1.19.1_2.log
Comment 1 Kurt Jaeger freebsd_committer 2016-05-13 18:28:28 UTC
testbuilds are fine.
Comment 2 commit-hook freebsd_committer 2016-05-13 18:30:13 UTC
A commit references this bug:

Author: pi
Date: Fri May 13 18:29:13 UTC 2016
New revision: 415127
URL: https://svnweb.freebsd.org/changeset/ports/415127

  science/veusz: Fix build with libc++ 3.8.0

  PR:		209094
  Submitted by:	dom
  Approved by:	devel@stasyan.com (maintainer timeout)

Comment 3 Kurt Jaeger freebsd_committer 2016-05-13 18:30:26 UTC
Committed, thanks!