Boost logo

Boost :

Subject: Re: [boost] [contract] _NOEXCEPT errors in <ostream> for Clang 5.0 C++1z on Teeks Linux
From: Tom Kent (lists_at_[hidden])
Date: 2017-11-19 14:22:21


On Thu, Nov 16, 2017 at 12:03 PM, Marshall Clow via Boost <
boost_at_[hidden]> wrote:

> On Wed, Nov 15, 2017 at 8:37 PM, Lorenzo Caminiti via Boost <
> boost_at_[hidden]> wrote:
>
> > Hello all,
> >
> > On Wed, Nov 15, 2017 at 12:20 PM, Andrey Semashev via Boost
> > <boost_at_[hidden]> wrote:
> > >> On Sun, Nov 12, 2017 at 3:27 PM, Lorenzo Caminiti <
> > lorcaminiti_at_[hidden]>
> > >>
> > >> Any idea about this? I couldn't find any reference to it online...
> > >> Again, Boost.Range and Boost.IOStreams see the same errors for Clang
> > >> 5.0 on Teeks.
> > >
> > > Looks like a libc++ bug, like a missing semicolon.
> >
> > Looks like this was already marked as a Clang/Libc++ bug by Boost.RegEx:
> >
> > https://svn.boost.org/trac10/ticket/7872
> >
> > I'll go with that conclusion.
> >
> >
> This was marked (by me!) as a clang bug - that was fixed in clang trunk in
> January 2013.
> I find it hard to believe that you're running a clang built from those
> sources.
>
> -- Marshall
>

So I looked into this a bit more this weekend. The
teeks99-[d|m]c5-1z-lc-Docker-64on64 build was using ubuntu's standard
version of libc++, 3.7.0. In theory, that should work with any compiler
version, including clang 5.0....but looking at the large number of
compilation errors against that specific runner (the identical clang build
that uses libstdc++, the default, instead has none of these issues),
something is obviously not working correctly.

So on friday I updated that docker image[1] to use a ubuntu ppa with a
supposedly updated version (V5.0.0, from 2017-09-11) of libc++[2]. However
in the subsequent run with that version, I'm still seeing the same issue.

I'm guessing it might be some issue with my config? Is there some minimal
source file that produces the same error I can try running to investigate
further?

If anyone wants to look for themselves, you can pull my docker image:
docker pull teeks99/boost-cpp-docker:clang-5

There's a boost build user-config.jam file[3] in the root of that image,
the toolset that build is using is "clang-5.0~c++1z~lc".

Tom

[1]
https://github.com/teeks99/boost-cpp-docker/blob/master/clang-5/Dockerfile
[2]
https://launchpad.net/~anthony-justsoftwaresolutions/+archive/ubuntu/libcxx/+packages
[3]
https://github.com/teeks99/boost-cpp-docker/blob/master/clang-5/user-config.jam


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk