Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Mar 2016 12:38:29 +0100
From:      Christoph Moench-Tegeder <cmt@burggraben.net>
To:        Dimitry Andric <dim@FreeBSD.org>
Cc:        freebsd-toolchain@freebsd.org
Subject:   Re: c++/libc++ help needed for chromium update
Message-ID:  <20160317113829.GA1752@squirrel.exwg.net>
In-Reply-To: <458AB9BF-4D4F-4F72-B2D7-79ACC8E19108@FreeBSD.org>
References:  <20160316212749.GA1426@squirrel.exwg.net> <458AB9BF-4D4F-4F72-B2D7-79ACC8E19108@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
## Dimitry Andric (dim@FreeBSD.org):

> In r261801 [1], we turned off the _LIBCPP_TRIVIAL_PAIR_COPY_CTOR option
> in libc++, because it made the ABI incompatible with the version of
> libc++ we had shipped before that time.  However, this option makes the
> std::pair copy constructor non-trivial, and this is a possible cause for
> your compilation error.

Ah, that sounds plausible. Let's see what the compiler says :)

> Another thing you could try is to change the definition of scoped_ptr,
> and comment out the deletion of its copy constructor.  However, I'm
> unsure what side effects this may cause, as it is probably unwise to
> copy scoped_ptrs.

Additionally, the scoped_ptrs are used widely throughout chromium,
I'm not sure I'd be able to "fix" all the places.

> Last but not least, please ask about this on the Chromium mailing lists.
> There must be lots of C++ libraries out there with non-trivial std::pair
> copy constructors, and they must have some sort of workaround for those.

It's in the nature of chromium that it's Open Source, but the list of
target platforms is rather short - officially supported are Windows
(and I don't know how many people build their own chromium there),
OS X and Linux. Chromium tends to bundle a lot of dependencies, I
believe the default build process on Linux even brings it's own
private clang installation if you don't stop it. The only other
"special" build I'm aware of is OpenBSD, and they use gcc 4.9
with it's bundled libstdc++ (their base system uses the old gcc).
So I guess we're the odd ones with our libc++...

Regards,
Christoph

-- 
Spare Space



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