Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Jul 2013 17:40:29 +0200
From:      Ulrich =?utf-8?B?U3DDtnJsZWlu?= <uqs@FreeBSD.org>
To:        "O. Hartmann" <ohartman@zedat.fu-berlin.de>
Cc:        FreeBSD CURRENT <freebsd-current@freebsd.org>, FreeBSD Ports <freebsd-ports@freebsd.org>
Subject:   Re: CURRENT: Changes in lib/msun/math.h make ports to fail
Message-ID:  <20130712154029.GA2198@acme.spoerlein.net>
In-Reply-To: <20130712090231.3ccf1f08@thor.walstatt.dyndns.org>
References:  <20130712090231.3ccf1f08@thor.walstatt.dyndns.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 2013-07-12 at 09:02:31 +0200, O. Hartmann wrote:
> 
> Updating CURRENT from r253216 to r253252 triggers an updating of
> several ports to fail, namely, for instance,
> 
> www/firefox
> graphiks/webkit-gtk2
> deskuitls/fbreader
> graphics/gdal
> 
> The error is in all ports when compiled with CLANG 3.3 -std=c++11
> -stdlib=libc++ similar, routing to math.h. I will show the error for
> www/firefox:
> 
> [...]
> In file included from ./../../dist/include/mozilla/MathAlgorithms.h:15:
> /usr/include/c++/4.2/cmath:468:44: error: __builtin_types_compatible_p
> is not valid in C++ __capture_fpclassify(_Tp __f) { return
> fpclassify(__f); } ^~~~~~~~~~~~~~~
> /usr/include/math.h:104:2: note: expanded from macro 'fpclassify'
>         __fp_type_select(x, __fpclassifyf, __fpclassifyd, __fpclassifyl)
>         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /usr/include/math.h:91:2: note: expanded from macro '__fp_type_select'
>         __builtin_types_compatible_p(__typeof(x), long double),
>         ld(x),
> 
> 
> [...]
> 
> I was wondering why /usr/include/c++/4.2/cmath gets included and not
> the header provided for CLANG. I guess this is a typo/bug. I did do dig
> deeper into it.
> 
> Hope someone can fix this.

It also breaks a simple buildworld. Coverity Scan broke like this:

===> gnu/lib/libstdc++ (all)
c++   -O2 -pipe -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H -I/data/src/freebsd-head/gnu/lib/libstdc++ -I/data/src/freebsd-head/gnu/lib/libstdc++/../../../contrib/libstdc++/libsupc++ -I/data/src/freebsd-head/gnu/lib/libstdc++/../../../contrib/gcc -I/data/src/fre
c++   -O2 -pipe -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H -I/data/src/freebsd-head/gnu/lib/libstdc++ -I/data/src/freebsd-head/gnu/lib/libstdc++/../../../contrib/libstdc++/libsupc++ -I/data/src/freebsd-head/gnu/lib/libstdc++/../../../contrib/gcc -I/data/src/fre
c++   -O2 -pipe -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H -I/data/src/freebsd-head/gnu/lib/libstdc++ -I/data/src/freebsd-head/gnu/lib/libstdc++/../../../contrib/libstdc++/libsupc++ -I/data/src/freebsd-head/gnu/lib/libstdc++/../../../contrib/gcc -I/data/src/fre
c++   -O2 -pipe -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H -I/data/src/freebsd-head/gnu/lib/libstdc++ -I/data/src/freebsd-head/gnu/lib/libstdc++/../../../contrib/libstdc++/libsupc++ -I/data/src/freebsd-head/gnu/lib/libstdc++/../../../contrib/gcc -I/data/src/fre
c++   -O2 -pipe -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H -I/data/src/freebsd-head/gnu/lib/libstdc++ -I/data/src/freebsd-head/gnu/lib/libstdc++/../../../contrib/libstdc++/libsupc++ -I/data/src/freebsd-head/gnu/lib/libstdc++/../../../contrib/gcc -I/data/src/fre
In file included from /data/src/freebsd-head/gnu/lib/libstdc++/../../../contrib/libstdc++/src/compatibility.cc:53:
/usr/obj/data/src/freebsd-head/tmp/usr/include/c++/4.2/cmath:468:44: error: __builtin_types_compatible_p is not valid in C++
    __capture_fpclassify(_Tp __f) { return fpclassify(__f); }
                                           ^~~~~~~~~~~~~~~
/usr/obj/data/src/freebsd-head/tmp/usr/include/math.h:104:2: note: expanded from macro 'fpclassify'
        __fp_type_select(x, __fpclassifyf, __fpclassifyd, __fpclassifyl)
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/obj/data/src/freebsd-head/tmp/usr/include/math.h:91:2: note: expanded from macro '__fp_type_select'
        __builtin_types_compatible_p(__typeof(x), long double), ld(x),    \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /data/src/freebsd-head/gnu/lib/libstdc++/../../../contrib/libstdc++/src/compatibility.cc:53:
/usr/obj/data/src/freebsd-head/tmp/usr/include/c++/4.2/cmath:472:42: error: __builtin_types_compatible_p is not valid in C++
    __capture_isfinite(_Tp __f) { return isfinite(__f); }
                                         ^~~~~~~~~~~~~
/usr/obj/data/src/freebsd-head/tmp/usr/include/math.h:105:21: note: expanded from macro 'isfinite'
#define isfinite(x) __fp_type_select(x, __isfinitef, __isfinite, __isfinitel)
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/obj/data/src/freebsd-head/tmp/usr/include/math.h:91:2: note: expanded from macro '__fp_type_select'
        __builtin_types_compatible_p(__typeof(x), long double), ld(x),    \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


and many more.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130712154029.GA2198>