From owner-freebsd-ports@FreeBSD.ORG Fri Jul 12 15:40:32 2013 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 1F072180; Fri, 12 Jul 2013 15:40:32 +0000 (UTC) (envelope-from uqs@FreeBSD.org) Received: from acme.spoerlein.net (acme.spoerlein.net [IPv6:2a01:4f8:131:23c2::1]) by mx1.freebsd.org (Postfix) with ESMTP id A62571CB2; Fri, 12 Jul 2013 15:40:31 +0000 (UTC) Received: from localhost (acme.spoerlein.net [IPv6:2a01:4f8:131:23c2::1]) by acme.spoerlein.net (8.14.7/8.14.7) with ESMTP id r6CFeTbP020785 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 12 Jul 2013 17:40:30 +0200 (CEST) (envelope-from uqs@FreeBSD.org) Date: Fri, 12 Jul 2013 17:40:29 +0200 From: Ulrich =?utf-8?B?U3DDtnJsZWlu?= To: "O. Hartmann" Subject: Re: CURRENT: Changes in lib/msun/math.h make ports to fail Message-ID: <20130712154029.GA2198@acme.spoerlein.net> Mail-Followup-To: "O. Hartmann" , FreeBSD Ports , FreeBSD CURRENT References: <20130712090231.3ccf1f08@thor.walstatt.dyndns.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130712090231.3ccf1f08@thor.walstatt.dyndns.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: FreeBSD CURRENT , FreeBSD Ports X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jul 2013 15:40:32 -0000 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.