It was not clear from any of the documentation that Xcode 5.0.1 for 10.8 and for 10.9 use (by default) essentially separate C++ toolchains.

Both are based on clang++ "3.3svn" which is Apple parlance for 'some version less than 3.3 and lacking some 3.2 features'. But they have different headers and C++ libraries.

- 10.8 is using those from g++ 4.2.1
- 10.9 is using those from libcxx.

This means that they are not completely ABI-compatible, and any package with C++ linkage (e.g. packages rgdal and rzmq) may need the external software recompiled. [NB: clang++ vs g++ were ABI compatible in 10.8. And 'may' not 'will'.]

10.9 contains a back-compatibility libstdc++, and most binary packages using C++ still work. However, at least for me JAGS (and hence packages rjags and runjags) and BioC package mzR segfault. I successfully re-compiled JAGS and rjags from their sources, but mzR will not compile.

There are about 35 C++-based CRAN packages which do not compile using clang++ plus libcxx. The usual issues: g++ headers include other headers not required by the standards which other implementations do not, g++ uses 'tr1' for headers where libcxx does not, and more comprehensive implementations result in ambiguous matches.

--
Brian D. Ripley,                  [email protected]
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

_______________________________________________
R-SIG-Mac mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-mac

Reply via email to