From owner-freebsd-current@FreeBSD.ORG Mon Sep 9 13:51:54 2013 Return-Path: Delivered-To: freebsd-current@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 22364880; Mon, 9 Sep 2013 13:51:54 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mho-02-ewr.mailhop.org (mho-02-ewr.mailhop.org [204.13.248.72]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E891B2769; Mon, 9 Sep 2013 13:51:53 +0000 (UTC) Received: from c-24-8-230-52.hsd1.co.comcast.net ([24.8.230.52] helo=damnhippie.dyndns.org) by mho-02-ewr.mailhop.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1VJ1sZ-000IfQ-IJ; Mon, 09 Sep 2013 13:51:47 +0000 Received: from [172.22.42.240] (revolution.hippie.lan [172.22.42.240]) by damnhippie.dyndns.org (8.14.3/8.14.3) with ESMTP id r89Dpikk001798; Mon, 9 Sep 2013 07:51:44 -0600 (MDT) (envelope-from ian@FreeBSD.org) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 24.8.230.52 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX18pKb028NyEYjWkLZKYb7pI Subject: Re: ports/181913: devel/qt4-script: /usr/include/c++/v1/type_traits:3175:22: error: call to 'swap' is ambiguous From: Ian Lepore To: Stefan Esser In-Reply-To: <522D7162.5090806@freebsd.org> References: <201309072249.r87MnsLP052803@freefall.freebsd.org> <20130908081445.242f77c7@thor.walstatt.dyndns.org> <522D7162.5090806@freebsd.org> Content-Type: text/plain; charset="us-ascii" Date: Mon, 09 Sep 2013 07:51:44 -0600 Message-ID: <1378734704.1111.558.camel@revolution.hippie.lan> Mime-Version: 1.0 X-Mailer: Evolution 2.32.1 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit Cc: kde@FreeBSD.org, freebsd-current@FreeBSD.org, "O. Hartmann" , freebsd-ports@FreeBSD.org X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Sep 2013 13:51:54 -0000 On Mon, 2013-09-09 at 08:57 +0200, Stefan Esser wrote: > Am 08.09.2013 08:14, schrieb O. Hartmann: > > On Sat, 7 Sep 2013 22:49:54 GMT rakuco@FreeBSD.org wrote: > > > >> Synopsis: devel/qt4-script: > >> /usr/include/c++/v1/type_traits:3175:22: error: call to 'swap' is > >> ambiguous > >> > >> State-Changed-From-To: open->patched State-Changed-By: rakuco > >> State-Changed-When: Sat Sep 7 22:47:43 UTC 2013 > >> State-Changed-Why: I don't think the previous version worked. > >> > >> From your description, it looks like you've switched to building > >> with libc++ whereas libstdc++ was being used before. > >> > >> The upcoming Qt 4.8.5 plus a few patches which only made it to > >> 4.8.6 (but we've backported) will finally make Qt build with > >> libc++. > >> > >> We've just sent an exp-run request for Qt 4.8.5, and will > >> hopefully fix all these errors once it is committed. > >> > >> http://www.freebsd.org/cgi/query-pr.cgi?pr=181913 > > > > > > I build the world/kernel since early this year with > > > > CXXFLAGS+= -stdlib=libc++ CXXFLAGS+= > > -std=c++11 > > > > > > in /etc/src.conf. I do not use those flags in /etc/make.conf! > > /etc/src.conf is supposed to target ONLY the /usr/src world, not > > the ports - this is as I interpret the man page for /etc/src.conf > > and it would be logical. But this rule/thinking seems to be broken > > by some includes from /usr/ports/Mk ingredients. > > There are ports that use bsd.prog.mk instead of the Makefile supplied > with the source files. Just grep for bsd.port.mk in the port's "files" > sub directory, if you find that /etc/src.conf settings affect a port. > > I think these ports are in violation of POLA and had a longer mail > exchange with a port maintainer, who told me that use of bsd.prog.mk > was the preferred method to build binaries on FreeBSD, for base and > for ports. > > So no file under /usr/ports/Mk is to blame, but some ports do > implicitly reference /etc/src.conf via their use of bsd.prog.mk. > > Regards, STefan > > NB: I just performed the grep suggested above and found that the > following ports mention bsd.prog.mk in files/*: > > If those ports .include before bsd.prog.mk, I think everything should work properly. It looks like src.conf is an "opt-out" system, and bsd.port.mk sets the variable to opt out. I don't especially like this (opt-in would be better), but I don't see an easy fix either. We use bsd.prog.mk at $work (I'd better go add the opt-out now), it seems like others probably do the same. It would be much better if the base build opted in, but the only way I can see to do that would be to install a "makefile.up" system where a makefile.up in every directory under the base src allows "walking up" to the top of the src hierarchy no matter where the build is started from, so that you can always get some top-level file to do the opt-in. -- Ian