Hi Everyone Change r191397 affected the libcxx test suite results on my windows machine for g++ and mingw (and possibly eventually VS) builds.
The comment is: "Make the guard for external ABI libraries include the guard for libsupc++ in typeinfo.cpp, bringing it into agreement with exception.cpp. This fixes link errors due to duplicate symbols from this translation unit." I don't know that r191397 is wrong but after applying that change I noticed some additional test suite failures. One example: c:\libcxx\test\language.support\support.rtti\bad.cast\bad_cast.pass.cpp which now results in a linker error where it previously compiled. The linker error is: "undefined reference to std::bad_cast::bad_cast()" Another test case may be similarly effected is: /libcxx/test/language.support/support.rtti/bad.typeid/bad_typeid.pass.cpp Looking at the change, it's because libcxx/src/type_info.cpp was changed from this: #if !(defined(_LIBCPPABI_VERSION) || defined(LIBCXXRT)) to this: #if !defined(LIBCXXRT) && !defined(_LIBCPPABI_VERSION) && !defined(__GLIBCXX__) and on my builds this now blocks out the definitions for bad_cast and type_info constructors etc. This would account for the linker error, as on my machine LIBCXXRT is not defined && LIBCPPABI_VERSION is not defined either. A grep of _LIBCPPABI_VERSION in the libcxx code base shows a few references to other code that may be of interest here. My machine has cxxabi.h which appears possibly also of interest. Does anyone know what should be linked in to the above mentioned test cases to restore the bad_cast and type_info definitions for g++/mingw/vs if they are not to be provided by libcxx, so as to make the libcxx test cases compile again? Alternatively if r191397 is incorrect / insufficient, what should be changed in libcxx or the changed guard mentioned above, that will re-enable libcxx to again provide these definitions if it should? Thanks
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
