Branch: refs/heads/darwin-clang-stdenv
Home: https://github.com/NixOS/nixpkgs
Commit: 7aacca25df57e83ce1e211747802763d3075ba6a
https://github.com/NixOS/nixpkgs/commit/7aacca25df57e83ce1e211747802763d3075ba6a
Author: Eelco Dolstra <[email protected]>
Date: 2014-10-14 (Tue, 14 Oct 2014)
Changed paths:
M pkgs/stdenv/darwin/default.nix
Log Message:
-----------
stdenv-darwin: Pass through libcxx/libcxxabi
Commit: d7abe3badad3df08e99ee63f11c8b9be62c57101
https://github.com/NixOS/nixpkgs/commit/d7abe3badad3df08e99ee63f11c8b9be62c57101
Author: Eelco Dolstra <[email protected]>
Date: 2014-10-14 (Tue, 14 Oct 2014)
Changed paths:
M pkgs/development/libraries/libc++abi/default.nix
Log Message:
-----------
libc++abi: Enable _LIBCXX_DYNAMIC_FALLBACK
Without this, the C++ dynamic_cast<> operator does not work
reliably in conjunction with dynamic linking. See
http://www.russellmcc.com/posts/2013-08-03-rtti.html
(That article suggests that Apple builds libc++abi without
_LIBCXX_DYNAMIC_FALLBACK, but "strings /usr/lib/libc++abi.dylib"
shows that it *is* enabled.)
Commit: 9a979af1d3bf92e7ebe85332852b2c95bdf0aa04
https://github.com/NixOS/nixpkgs/commit/9a979af1d3bf92e7ebe85332852b2c95bdf0aa04
Author: Eelco Dolstra <[email protected]>
Date: 2014-10-15 (Wed, 15 Oct 2014)
Changed paths:
M pkgs/stdenv/darwin/default.nix
M pkgs/top-level/all-packages.nix
Log Message:
-----------
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").
Compare: https://github.com/NixOS/nixpkgs/compare/2c65f3fa664c...9a979af1d3bf_______________________________________________
nix-commits mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-commits