From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 122685 invoked by alias); 3 Jun 2015 10:05:33 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 122666 invoked by uid 89); 3 Jun 2015 10:05:31 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.1 required=5.0 tests=AWL,BAYES_50,RCVD_IN_SORBS_WEB,SPF_PASS autolearn=no version=3.3.2 X-HELO: shepard.synsport.net Received: from mail.synsport.com (HELO shepard.synsport.net) (208.69.230.148) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Wed, 03 Jun 2015 10:05:29 +0000 Received: from [10.31.9.193] (unknown [213.225.137.129]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by shepard.synsport.net (Postfix) with ESMTP id E8E3443BF4; Wed, 3 Jun 2015 05:05:26 -0500 (CDT) Message-ID: <556ED165.20507@marino.st> Date: Wed, 03 Jun 2015 10:46:00 -0000 From: John Marino User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Thomas Quinot , Eric Botcazou , Arnaud Charlet CC: gcc-patches@gcc.gnu.org Subject: Re: [patch] Implement Ada support for DragonFly, improve it for FreeBSD References: <20150603093924.GC47219@melamine.cuivre.fr.eu.org> In-Reply-To: <20150603093924.GC47219@melamine.cuivre.fr.eu.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-SW-Source: 2015-06/txt/msg00297.txt.bz2 On 6/3/2015 11:39, Thomas Quinot wrote: > Patch looks good to me. The story with floats is that on FreeBSD, the > i386 FPU is set to 53-bit floats, but the GNAT runtime library always > issues a "finit" instruction to reset it to full precision, so we need > to reset TARGET_96_ROUND_53_LONG_DOUBLE to 0. I have this fixed in an interesting way on gnat-aux. I found that setting TARGET_96_ROUND_53_LONG_DOUBLE affects other front ends, so you have to choose which one you want to be correct, GNAT or the C (or whatever, can't remember which ones were affected now) My solution was to create two common backends, one for gnat and one for the others. An example of the main patch is here: https://raw.githubusercontent.com/jrmarino/draco/master/misc/flux5/patch-gcc_Makefile.in (note the new s-modes-ada target) and then this patch is needed: https://raw.githubusercontent.com/jrmarino/draco/master/misc/flux5/patch-gcc_ada_gcc-interface_Make-lang.in With those modifications, all the ACATS tests pass on i386 and the other front ends work as expected. I don't know if such a modification would ever be considered for GCC but I've been running it for a couple of years with no reported problems. John