Bug 208469

Summary: databases/firebird25-client: 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: pi
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   
Bug Depends on:    
Bug Blocks: 208158    
Attachments:
Description Flags
Disable custom isinf declaration in firebird25 none

Description Dimitry Andric freebsd_committer 2016-04-02 18:02:48 UTC
Created attachment 168904 [details]
Disable custom isinf declaration in firebird25

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

../src/common/cvt.cpp:1214:8: error: call to 'isinf' is ambiguous
                        if (isinf(value))
                            ^~~~~
/usr/include/c++/v1/math.h:404:1: note: candidate function [with _A1 = double]
isinf(_A1 __lcpp_x) _NOEXCEPT
^
../src/common/../common/classes/FpeControl.h:228:13: note: candidate function [with F = double]
inline bool isinf(F x)
            ^

This is because the FpeControl.h only checks whether there is a macro called isinf, but libc++ has a *function* isinf() instead.  The fix is to not attempt to redefine isinf() on FreeBSD, like in the attached patch.

[1] http://package18.nyi.freebsd.org/data/headamd64PR208158-default/2016-03-22_18h30m05s/logs/errors/firebird25-client-2.5.4_3.log
Comment 1 Kurt Jaeger freebsd_committer 2016-04-12 17:20:11 UTC
testbuilds@work
Comment 2 Kurt Jaeger freebsd_committer 2016-04-12 17:38:33 UTC
Committed, thanks!
Comment 3 commit-hook freebsd_committer 2016-04-12 17:39:07 UTC
A commit references this bug:

Author: pi
Date: Tue Apr 12 17:38:21 UTC 2016
New revision: 413148
URL: https://svnweb.freebsd.org/changeset/ports/413148

Log:
  databases/firebird25-server: fix build with libc++ 3.8.0

  PR:		208469
  Submitted by:	dom

Changes:
  head/databases/firebird25-server/Makefile
  head/databases/firebird25-server/files/patch-src-common-classes-FpeControl.h