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/development/python-modules/httpserver | |
| parent | d7abe3badad3df08e99ee63f11c8b9be62c57101 (diff) | |
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/development/python-modules/httpserver')
0 files changed, 0 insertions, 0 deletions
