From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13427 invoked by alias); 23 Jan 2013 20:15:00 -0000 Received: (qmail 13241 invoked by uid 48); 23 Jan 2013 20:14:32 -0000 From: "iains at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug libitm/55693] [4.8 Regression] libitm.c++/eh-1.C execution test fails on darwin from r193271 Date: Wed, 23 Jan 2013 20:15:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: libitm X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: iains at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 4.8.0 X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 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: 2013-01/txt/msg02217.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55693 --- Comment #33 from Iain Sandoe 2013-01-23 20:14:26 UTC --- (In reply to comment #32) > (In reply to comment #31) > > > solution on darwin is to mark the duplicate symbols in crttme.o as weak. > > seems reasonable - can you try that? ... except that all those symbols should already be weak: /* Provide dummy functions to satisfy linkage for versions of the Darwin tool-chain that that can't handle undefined weak refs at the link stage. ??? Define these dummy functions only when !HAVE_ELF_STYLE_WEAKREF. */ extern void *__cxa_allocate_exception (size_t) WEAK; extern void __cxa_throw (void *, void *, void *) WEAK; extern void *__cxa_begin_catch (void *) WEAK; extern void *__cxa_end_catch (void) WEAK; extern void __cxa_tm_cleanup (void *, void *, unsigned int) WEAK; extern void *_ZnwX (size_t) WEAK; extern void _ZdlPv (void *) WEAK; extern void *_ZnaX (size_t) WEAK; extern void _ZdaPv (void *) WEAK; typedef const struct nothrow_t { } *c_nothrow_p; extern void *_ZnwXRKSt9nothrow_t (size_t, c_nothrow_p) WEAK; extern void _ZdlPvRKSt9nothrow_t (void *, c_nothrow_p) WEAK; extern void *_ZnaXRKSt9nothrow_t (size_t, c_nothrow_p) WEAK; extern void _ZdaPvRKSt9nothrow_t (void *, c_nothrow_p) WEAK;