Re: ports/181913: devel/qt4-script: /usr/include/c++/v1/type_traits:3175:22: error: call to 'swap' is ambiguous

From: O. Hartmann <ohartman_at_zedat.fu-berlin.de>
Date: Sun, 8 Sep 2013 22:58:25 +0200
On Sun, 8 Sep 2013 14:57:01 +0200
Dimitry Andric <dim_at_FreeBSD.org> wrote:

> On Sep 8, 2013, at 08:14, O. Hartmann <ohartman_at_zedat.fu-berlin.de>
> wrote:
> > On Sat, 7 Sep 2013 22:49:54 GMT
> > rakuco_at_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.
> 
> Since r255321, -stdlib=libc++ is effectively the default, at least
> when you haven't set gcc as the default compiler.  So it also applies
> to ports, which unavoidably will lead to a bit of fallout.  My
> personal experience is that most C++-based ports compile fine with
> libc++ instead of libstdc++, except for a few that rely on internal
> libstdc++ details.
> 
> However, -std=c++11 is *not* yet the default, and C++11 has different
> rules here and there, so some ports might fail to compile due to this.
> For some ports, too much hacking may be required to make them work
> with C++11.  So in case of trouble, try removing -std=, or setting it
> to different values (c++0x, c++98, gnu++98, etc), to get the port to
> compile.
> 
> Note the base system should have no problems with -std=c++11, so
> please continue to use the option in src.conf, and report any
> problems if you encounter them, so we can fix them. :-)
> 
> -Dimitry
> 
Hello Dimitry,

btw, see PR ports/181932. This is definitely NOT libc++ related.

It came up since nearly all qt4-related clients (also kdelibs) fail and
drop core on r255398 - they worked prior to the last update today.

I tried recompiling qt4- and kdelibs4 to get my kdevelop environment as
well as libreoffice back (the drop core, as well as firefox, out of the
blue).

I also tried compiling those ports without any settings of CXXFLAGS
in /etc/src.conf, but it doens't help.

I can not understand why two critical changes from different branches
of the maintainig get the same time into the public (iconv/ports and
libstdc++ vanishing). Maybe I'm wrong here, but after three days, two
nights non-stop updating I'm through with this toy.

Received on Sun Sep 08 2013 - 18:58:28 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:41 UTC