Merged in r259939. Cheers, Hans
On Fri, Feb 5, 2016 at 2:06 PM, Ulrich Weigand <ulrich.weig...@de.ibm.com> wrote: > Hans, > > this is one more patch that should go into 3.8 -- it fixes miscompiles of > code using GCC-provided C++11 system headers like <thread>. > > With this patch, the test suite is now clean also with a bootstrapped clang. > > > >>Author: uweigand >>Date: Fri Feb 5 15:34:28 2016 >>New Revision: 259931 >> >>URL: http://llvm.org/viewvc/llvm-project?rev=259931&view=rev >>Log: [SystemZ] Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP macros >> >>Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_[1248] macros on SystemZ. >> >>This fixes a miscompile of GCC C++11 standard library headers >>due to use of those macros in an ABI-changing manner. >> >>See e.g. /usr/include/c++/4.8.5/ext/concurrence.h: >> >> // Compile time constant that indicates prefered locking policy in >> // the current configuration. >> static const _Lock_policy __default_lock_policy = >>#ifdef __GTHREADS >>#if (defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2) \ >> && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4)) >> _S_atomic; >>#else >> _S_mutex; >>#endif >>#else >> _S_single; >>#endif >> >>A different choice of __default_lock_policy causes different >>sizes of several of the C++11 data structures, which are then >>incompatible when inlined in clang-compiled code with what the >>(GCC-compiled) external library expects. >> >>This in turn leads to various crashes when using std::thread >>in code compiled with clang, as see e.g. via the ThreadPool >>unit tests. See PR 26473 for an example. >> >> >>Modified: >> cfe/trunk/lib/Basic/Targets.cpp >> cfe/trunk/test/Preprocessor/predefined-arch-macros.c > > > Mit freundlichen Gruessen / Best Regards > > Ulrich Weigand > > -- > Dr. Ulrich Weigand | Phone: +49-7031/16-3727 > STSM, GNU/Linux compilers and toolchain > IBM Deutschland Research & Development GmbH > Vorsitzende des Aufsichtsrats: Martina Koederitz | Geschäftsführung: Dirk > Wittkopp > Sitz der Gesellschaft: Böblingen | Registergericht: Amtsgericht Stuttgart, > HRB 243294 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits