From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sourceware.org (Postfix) with ESMTPS id 7B667389FC20 for ; Fri, 18 Dec 2020 06:36:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 7B667389FC20 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=inria.fr Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=Paul.Zimmermann@inria.fr X-IronPort-AV: E=Sophos;i="5.78,429,1599516000"; d="scan'208";a="483656147" Received: from tomate.loria.fr (HELO tomate) ([152.81.10.51]) by mail2-relais-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Dec 2020 07:36:40 +0100 Date: Fri, 18 Dec 2020 07:36:40 +0100 Message-Id: From: Paul Zimmermann To: Jeff Johnston Cc: keithp@keithp.com, newlib@sourceware.org In-Reply-To: (message from Jeff Johnston on Thu, 17 Dec 2020 16:28:12 -0500) Subject: Re: regression in tgamma? References: <871rfo76mw.fsf@keithp.com> <87v9d05jkl.fsf@keithp.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-9.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: newlib@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Newlib mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Dec 2020 06:36:43 -0000 Hi Jeff, > I have modified er_lgamma.c, erf_lgamma.c, w_tgamma.c, wf_tgamma.c based on > code changes in picolibc. > I did not add the new ___ieee754_ sub-functions and instead modified the > existing code assuming that the function > was called with *signgam = 0. We can always do a merge from picolibc in the > future. > > With the new code, the test runs as expected. > > Paul, please confirm before tomorrow. version b2f3d59 fails to compile on my x86_64 machine: ../../../../../newlib/libm/math/w_tgamma.c: In function ‘tgamma’: ../../../../../newlib/libm/math/w_tgamma.c:38:6: error: ‘errno’ undeclared (first use in this function) 38 | errno = EDOM; | ^~~~~ ../../../../../newlib/libm/math/w_tgamma.c:19:1: note: ‘errno’ is defined in header ‘’; did you forget to ‘#include ’? 18 | #include "fdlibm.h" +++ |+#include ../../../../../newlib/libm/math/w_tgamma.c:38:6: note: each undeclared identifier is reported only once for each function it appears in 38 | errno = EDOM; | ^~~~~ ../../../../../newlib/libm/math/w_tgamma.c:38:14: error: ‘EDOM’ undeclared (first use in this function) 38 | errno = EDOM; | ^~~~ ../../../../../newlib/libm/math/w_tgamma.c:40:14: error: ‘ERANGE’ undeclared (first use in this function) 40 | errno = ERANGE; | ^~~~~~ It does after the following changes: diff --git a/newlib/libm/math/w_tgamma.c b/newlib/libm/math/w_tgamma.c index 0f90dd4c6..52d5d71d3 100644 --- a/newlib/libm/math/w_tgamma.c +++ b/newlib/libm/math/w_tgamma.c @@ -16,6 +16,7 @@ */ #include "fdlibm.h" +#include #ifndef _DOUBLE_IS_32BITS diff --git a/newlib/libm/math/wf_tgamma.c b/newlib/libm/math/wf_tgamma.c index 80aacf757..504cb4c29 100644 --- a/newlib/libm/math/wf_tgamma.c +++ b/newlib/libm/math/wf_tgamma.c @@ -15,6 +15,7 @@ #include "math.h" #include "fdlibm.h" +#include #ifdef __STDC__ float tgammaf(float x) @@ -34,7 +35,6 @@ errno = EDOM; else if (finite(x)) errno = ERANGE; - } return y; #endif } and my small test program gives: zimmerma@tomate:/tmp/newlib-cygwin$ ./a.out x=-0x0p+0 y=-inf x=-0x1.53f198fe3b278p+7 y=0x1.fd6d312572d9cp-1015 which is ok. I'll do some further tests. Paul