From patchwork Tue Jul 6 16:29:21 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aldy Hernandez X-Patchwork-Id: 58049 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 49014B6EEC for ; Wed, 7 Jul 2010 03:35:02 +1000 (EST) Received: (qmail 27200 invoked by alias); 6 Jul 2010 17:35:00 -0000 Received: (qmail 27191 invoked by uid 22791); 6 Jul 2010 17:35:00 -0000 X-SWARE-Spam-Status: No, hits=-5.5 required=5.0 tests=AWL, BAYES_05, RCVD_IN_DNSWL_HI, SPF_HELO_PASS, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 06 Jul 2010 17:34:50 +0000 Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o66HYiUp019185 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 6 Jul 2010 13:34:47 -0400 Received: from redhat.com (vpn-8-15.rdu.redhat.com [10.11.8.15]) by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o66GTLtK001045 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Tue, 6 Jul 2010 12:29:23 -0400 Date: Tue, 6 Jul 2010 12:29:21 -0400 From: Aldy Hernandez To: Patrick Marlier Cc: Richard Henderson , FELBER Pascal , gcc-patches@gcc.gnu.org Subject: Re: [trans-mem] issue with openmp Message-ID: <20100706162920.GA20816@redhat.com> References: <4C04C24A.4080103@unine.ch> <20100618153140.GB7343@redhat.com> <4C221F08.2020403@unine.ch> <20100623172043.GB19259@redhat.com> <4C225BC3.9010301@unine.ch> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <4C225BC3.9010301@unine.ch> User-Agent: Mutt/1.5.20 (2009-08-17) Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org > >>- libitm : I think it is useful to add _ITM_malloc, _ITM_free, > >>_ITM_calloc into libitm.h and also to add ITM_REGPARM because I had > >>problems when I wanted to use directly the library. Patrick found a problem while calling the _ITM_malloc/etc functions directly (instead of through the wrappers). I've added prototypes for them. OK for branch? Patrick, please verify that this fixes any problems on your end. * libitm.h (ITM_PURE): Define. Declare _ITM_malloc, _ITM_calloc, and _ITM_free. Index: libitm.h =================================================================== --- libitm.h (revision 161512) +++ libitm.h (working copy) @@ -43,6 +43,7 @@ extern "C" { #endif #define ITM_NORETURN __attribute__((noreturn)) +#define ITM_PURE __attribute__((transaction_pure)) /* The following are externally visible definitions and functions, though only very few of these should be called by user code. */ @@ -152,8 +153,13 @@ extern void _ITM_addUserUndoAction(_ITM_ extern int _ITM_getThreadnum(void) ITM_REGPARM; -__attribute__((transaction_pure)) -extern void _ITM_dropReferences (void *, size_t) ITM_REGPARM; +extern void _ITM_dropReferences (void *, size_t) ITM_REGPARM ITM_PURE; + +__attribute__((__malloc__)) ITM_REGPARM ITM_PURE +extern void *_ITM_malloc (size_t); +__attribute__((__malloc__)) ITM_REGPARM ITM_PURE +extern void *_ITM_calloc (size_t, size_t); +extern void _ITM_free (void *) ITM_REGPARM ITM_PURE; /* The following typedefs exist to make the macro expansions below work