9a979af1d3
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"). |
||
---|---|---|
.. | ||
all-packages.nix | ||
guile-2-test.nix | ||
haskell-defaults.nix | ||
haskell-packages.nix | ||
lua-packages.nix | ||
make-tarball.nix | ||
node-packages-generated.nix | ||
node-packages.json | ||
node-packages.nix | ||
perl-packages.nix | ||
php-packages.nix | ||
platforms.nix | ||
python-packages-generated.nix | ||
python-packages.json | ||
python-packages.nix | ||
release-cross.nix | ||
release-lib.nix | ||
release-python.nix | ||
release-small.nix | ||
release.nix |