From patchwork Thu Sep 2 09:48:20 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Iain Sandoe X-Patchwork-Id: 63465 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 482F3B715F for ; Thu, 2 Sep 2010 19:49:01 +1000 (EST) Received: (qmail 15332 invoked by alias); 2 Sep 2010 09:48:58 -0000 Received: (qmail 15316 invoked by uid 22791); 2 Sep 2010 09:48:57 -0000 X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE, TW_ZJ X-Spam-Check-By: sourceware.org Received: from c2bthomr01.btconnect.com (HELO c2bthomr01.btconnect.com) (213.123.20.119) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 02 Sep 2010 09:48:50 +0000 Received: from thor.office (host81-138-1-83.in-addr.btopenworld.com [81.138.1.83]) by c2bthomr01.btconnect.com with ESMTP id NPR56782; Thu, 2 Sep 2010 10:48:22 +0100 (BST) X-Mirapoint-IP-Reputation: reputation=Fair-1, source=Queried, refid=0001.0A0B0302.4C7F72E6.01CE, actions=tag Cc: Gerald Pfeifer , gcc patches , Dave Korn , Kai Tietz , FX , Mike Stump Message-Id: From: IainS To: Uros Bizjak In-Reply-To: <1283404103.2331.2.camel@localhost.localdomain> Mime-Version: 1.0 (Apple Message framework v936) Subject: Re: [PATCH, RFA]: cygming, darwin, freebsd: Build libgcc2 TCmode complex functions Date: Thu, 2 Sep 2010 10:48:20 +0100 References: <1283404103.2331.2.camel@localhost.localdomain> X-IsSubscribed: yes 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 On 2 Sep 2010, at 06:08, Uros Bizjak wrote: >> The testsuite is still running, but so far things look good. Do you >> expect to see any new PASSes? > > No, since TCmode tests in gcc.target/i386 are currently limited to > linux > targets only. I will enable them for other __float128 capable targets > once Darwin catches up with TCmode libgcc2 support. well, there are differences in approach; In the system levels, Darwin uses fat libraries rather than separating m32 and m64 into different directories. The 'old' symbol exports for a build of gcc to run on Darwin* have to agree with those in the relevant system version of libgcc_s - which are defined by common export lists. For 'new' symbols this is immaterial. However, some of the relevant symbols are not 'new' - we've been exporting them for years (via the LIB2_SIDITI_CONV_FUNCS mechanism) - so we must accommodate that. It turns out that the libgcc Makefile does not honor LIB2FUNCS_EXCLUDE for these functions in the case of LIB2_SIDITI_CONV_FUNCS=yes. I suspect that this an oversight - since it does honor it otherwise. the patch below bootstrapped on i686-darwin9 (currently reg-testing) and has passed stage1 on i686-darwin8 and x86_64-darwin10 AFAICT the only targets using LIB2_SIDITI_CONV_FUNCS are MIPS and Darwin. cheers, Iain Index: libgcc/Makefile.in =================================================================== --- libgcc/Makefile.in (revision 163732) +++ libgcc/Makefile.in (working copy) @@ -384,9 +384,9 @@ ifneq ($(LIB2_SIDITI_CONV_FUNCS),) # functions are built with a wordsize of 4; the TImode functions are # built with the same labels, but a wordsize of 8. -sifuncs = $(subst XX,si,$(swfloatfuncs)) -difuncs = $(subst XX,di,$(dwfloatfuncs)) -tifuncs = $(subst XX,ti,$(dwfloatfuncs)) +sifuncs := $(filter-out $(LIB2FUNCS_EXCLUDE),$(subst XX,si,$ (swfloatfuncs))) +difuncs := $(filter-out $(LIB2FUNCS_EXCLUDE),$(subst XX,di,$ (dwfloatfuncs))) +tifuncs := $(filter-out $(LIB2FUNCS_EXCLUDE),$(subst XX,ti,$ (dwfloatfuncs))) iter-items := $(sifuncs) $(difuncs) $(tifuncs) iter-labels := $(sifuncs) $(difuncs) $(difuncs) Index: gcc/config/i386/t-darwin =================================================================== --- gcc/config/i386/t-darwin (revision 163732) +++ gcc/config/i386/t-darwin (working copy) @@ -2,3 +2,4 @@ MULTILIB_OPTIONS = m64 MULTILIB_DIRNAMES = x86_64 LIB2_SIDITI_CONV_FUNCS=yes LIB2FUNCS_EXTRA = $(srcdir)/config/darwin-64.c +LIB2FUNCS_EXCLUDE = _fixtfdi _fixunstfdi _floatditf _floatunditf