diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-10-15 01:15:31 +0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-10-15 01:15:31 +0200 |
commit | 9a979af1d3bf92e7ebe85332852b2c95bdf0aa04 (patch) | |
tree | 80c416e12db1734f5ca36e80e3b9d255369b97b8 /pkgs/stdenv/darwin | |
parent | d7abe3badad3df08e99ee63f11c8b9be62c57101 (diff) | |
download | nixlib-9a979af1d3bf92e7ebe85332852b2c95bdf0aa04.tar nixlib-9a979af1d3bf92e7ebe85332852b2c95bdf0aa04.tar.gz nixlib-9a979af1d3bf92e7ebe85332852b2c95bdf0aa04.tar.bz2 nixlib-9a979af1d3bf92e7ebe85332852b2c95bdf0aa04.tar.lz nixlib-9a979af1d3bf92e7ebe85332852b2c95bdf0aa04.tar.xz nixlib-9a979af1d3bf92e7ebe85332852b2c95bdf0aa04.tar.zst nixlib-9a979af1d3bf92e7ebe85332852b2c95bdf0aa04.zip |
stdenv-darwin: Revert to clang 3.3
In 3.3, a C++ class defined in a header will get a typeinfo symbol like this (e.g. in Nix's src/libutil/util.o): (__DATA,__datacoal_nt) weak external typeinfo for nix::BaseError But in 3.4, this has changed to: (__DATA,__datacoal_nt) weak external automatically hidden typeinfo for nix::BaseError This causes the linker to change the symbol to: (__DATA,__data) non-external (was signed char private external) typeinfo for nix::BaseError i.e. losing its weak linkage. But without weak linkage, dynamic_cast and other RTTI-based mechanisms (such as catching an exception of a certain type) don't work across shared libraries / executables. The clang compiler in the SDK doesn't have this behaviour, but it's not clear exactly which version it is (it just says "based on LLVM 3.4svn").
Diffstat (limited to 'pkgs/stdenv/darwin')
-rw-r--r-- | pkgs/stdenv/darwin/default.nix | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix index 26114d2726e1..cbc9a38b77de 100644 --- a/pkgs/stdenv/darwin/default.nix +++ b/pkgs/stdenv/darwin/default.nix @@ -1,6 +1,6 @@ { stdenv, pkgs, config , haveLibCxx ? true -, useClang33 ? false }: +, useClang33 ? true }: import ../generic rec { inherit config; |