From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1282 invoked by alias); 5 May 2009 21:44:54 -0000 Received: (qmail 1255 invoked by alias); 5 May 2009 21:44:44 -0000 Date: Tue, 05 May 2009 21:44:00 -0000 Message-ID: <20090505214444.1254.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug libstdc++/39909] non-TLS version of std::call_once causes terminate In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "redi at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2009-05/txt/msg00385.txt.bz2 ------- Comment #8 from redi at gcc dot gnu dot org 2009-05-05 21:44 ------- Subject: Bug 39909 Author: redi Date: Tue May 5 21:44:27 2009 New Revision: 147138 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=147138 Log: 2009-05-05 Jonathan Wakely PR libstdc++/39909 * include/std/mutex (__get_once_functor_lock, __get_once_mutex, __set_once_functor_lock_ptr): Replace global lock object with local locks on global mutex. * src/mutex.cc (__get_once_functor_lock, __get_once_mutex, __set_once_functor_lock_ptr): Likewise, keeping old function to preserve ABI. (__once_proxy): Use pointer to local lock if set, global lock otherwise. * config/abi/pre/gnu.ver: Add new symbols to new ABI version. * testsuite/util/testsuite_abi.cc: Add GLIBCX_3.4.12 version. * testsuite/30_threads/call_once/39909.cc: New. Added: branches/gcc-4_4-branch/libstdc++-v3/testsuite/30_threads/call_once/39909.cc Modified: branches/gcc-4_4-branch/libstdc++-v3/ChangeLog branches/gcc-4_4-branch/libstdc++-v3/config/abi/pre/gnu.ver branches/gcc-4_4-branch/libstdc++-v3/include/std/mutex branches/gcc-4_4-branch/libstdc++-v3/src/mutex.cc branches/gcc-4_4-branch/libstdc++-v3/testsuite/util/testsuite_abi.cc -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39909