pan-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Pan-users] pan could not compiled with Xcode 5


From: Rhialto
Subject: Re: [Pan-users] pan could not compiled with Xcode 5
Date: Sat, 8 Mar 2014 12:41:45 +0100
User-agent: Mutt/1.5.22 (2013-10-16)

On Sat 08 Mar 2014 at 01:21:17 +0000, Duncan wrote:
> FritzS - gmx posted on Fri, 07 Mar 2014 19:00:10 +0100 as excerpted:
> 
> > Hi,
> > I use Mavericks 10.9.2, Xcode 5 and Homebrew.
> > 
> > I could not compile pan.
> > 
> > jacknagel tells me:
> >> Issues with clang 5/libc++. It compiles against libstdc++, but since
> >> all of its dependencies are built against libc++, that's a non-starter.
> >> 
> >> Upstream will have to address this if they want to maintain
> >> compatibility with OS X.
> > 
> > Please look for more information:
> > https://github.com/Homebrew/homebrew/issues/24171

From there I looked at the link
https://gist.github.com/macuserguru/a4d685790e34505e6acd . I hope that's
still the latest version of the errors that you get.

The first error looks to be

 CXX log.o
In file included from log.cc:24:
In file included from ./log.h:26:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/deque:906:49:
 error: invalid application of 'sizeof' to
an incomplete type 'value_type' (aka 'pan::Log::Entry')
static const difference_type __block_size = sizeof(value_type) < 256 ? 4096 / 
sizeof(value_type) : 16;
^~~~~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/deque:1170:15:
 note: in instantiation of template class
'std::__1::__deque_base<pan::Log::Entry, std::__1::allocator<pan::Log::Entry> 
>' requested here
: private __deque_base<_Tp, _Allocator>
^
./log.h:52:27: note: in instantiation of template class 
'std::__1::deque<pan::Log::Entry, std::__1::allocator<pan::Log::Entry> >' 
requested here
std::deque<Entry> messages;
^
./log.h:49:14: note: definition of 'pan::Log::Entry' is not complete until the 
closing '}'

That's very similar to an error I reported before and that got fixed in git.
However after that there was another like it.

It happens because libstc++ is stricter in enforcing that if you use a
collection class like std::deque<Something>, then the type Something
must have a complete definition before that point. The library with g++
doesn't actually enforce that, and so such things ended up in Pan's
source code by accident.

The same people who reported these issues to me also came up with some
patches, but (I think, my memory is a bit vague) they caused a crash for
me. Nevertheless you can try them, I may misremember. Here they are:
http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/news/pan/patches/
You probably need only the ones that mention "Add patches from joerg to
fix build with clang/libc++".
Those apply to Pan 0.139.

Git commit b1af29b364aacc9766b816b3a5c5da457cec4d98 has different fixes
for the same thing from Heinrich.

The current git version seemingly has a new case of the same thing, but
to my knowledge those haven't been fixed yet. Again, here are some
proposed patches for that:
http://pkgsrc-wip.cvs.sourceforge.net/viewvc/pkgsrc-wip/wip/pan2-git/patches/
but again my vague memory seems to come up with "crashes".

I do have clang installed but not its C++ library, so I can't really check
which set of patches does what exactly :-(

-Olaf.
-- 
___ Olaf 'Rhialto' Seibert  -- The Doctor: No, 'eureka' is Greek for
\X/ rhialto/at/xs4all.nl    -- 'this bath is too hot.'

Attachment: pgpfE6ZSOGgoQ.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]