TextMate2 on Lion

Mojca Miklavec mojca at macports.org
Tue Oct 29 11:51:09 PDT 2013


On Tue, Oct 29, 2013 at 6:57 PM, Ryan Schmidt wrote:
> On Oct 29, 2013, at 06:32, Mojca Miklavec wrote:
>
>> (I wonder why other clangs compiled with
>> macports don't work - I didn't test, I just read the comments),
>
> Where?

Here (devel/capnproto/Portfile):

# clang 3.2 - clang-3.4 and all clangs from Xcode < 5 crash while
compiling this.
compiler.blacklist-append \
                        {clang < 500.2.75} \
                        macports-clang-3.2 \
                        macports-clang-3.3 \
                        macports-clang-3.4 \
                        *gcc*

First of all, blacklisting all gcc compilers seems wrong (while it is
true that they might not be particularly useful for the reasons of
mixing C++ runtimes that you mentioned, gcc 4.7 seems to work OK, and
probably all later versions do as well). It is true that
-stdlib=libc++ doesn't seem to work with gcc though, so the Portfile
would need some slight modifications if gcc was allowed.

But I have no idea why macports-clang-3.2 was blacklisted for example
(it is true that I didn't try yet whether it works). From the website:
    http://kentonv.github.io/capnproto/install.html#clang_32_on_mac_osx

~~~~~     ~~~~~
As of this writing, Mac OSX 10.8 with Xcode 4.6 command-line tools is
not quite good enough to compile Cap’n Proto. The included version of
GCC is ancient. The included version of Clang – which mysteriously
advertises itself as version 4.2 – was actually cut from LLVM SVN
somewhere between versions 3.1 and 3.2; it is not sufficient to build
Cap’n Proto.

There are two options:

- Use Macports, Fink, or Homebrew to get an up-to-date GCC.
- Obtain Clang 3.2 directly from the LLVM project. (Unfortunately,
Clang 3.3 apparently does NOT work, because the libc++ headers shipped
with XCode contain bugs that Clang 3.3 refuses to compile.)
~~~~~     ~~~~~

>> but
>> then it throws errors when including capnproto libraries when
>> compiling TextMate:
>>
>> /opt/local/include/kj/common.h:47:8: warning:
>> "This library requires at least Clang 3.2. XCode 4.6's Clang, which
>> claims to be "
>> "version 4.2 (wat?),
>
> All clangs claim to be GCC 4.2.1, for presumably the same reason that all browsers today claim to be Mozilla 5.0.

This is the explanation that should go to the developers of Cap'n
Proto, not to me.

>> is actually built from some random SVN revision
>> between 3.1 "
>> "and 3.2. Unfortunately, it is insufficient for compiling this
>> library. You can "
>> "download the real Clang 3.2 (or newer) from the Clang web site. Step-by-step "
>> "instructions can be found in Cap'n Proto's documentation: "
>> "http://kentonv.github.io/capnproto/install.html#clang_32_on_mac_osx"
>> [-W#warnings] #warning "This library requires at least Clang 3.2.
>> XCode 4.6's Clang, which claims to be "\ ^
>
> No need to build clang manually, since MacPorts has ports for them.
>
> If there is a bug compiling capnproto with the default compiler, file a bug in the issue tracker so that we can blacklist unsuitable compilers and find one that works. Though I see the port already blacklists MacPorts clangs, and Xcode clang < 500 (in other words, clang from Xcode < 5.0, and Xcode 5.0 doesn’t work on Lion).

Exactly. There is no single compiler left for Lion to use.

> So we need to figure out why MacPorts clang 3.3 or 3.4 is not acceptable and make it acceptable.

... and probably also do a similar blacklisting for TextMate.

Mojca


More information about the macports-dev mailing list