From patchwork Tue Sep 12 12:34:32 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Gabriel F. T. Gomes" X-Patchwork-Id: 812821 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-84489-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="gyEE6Xoo"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3xs45r6qTyz9t6Y for ; Tue, 12 Sep 2017 22:35:43 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-type; q=dns; s=default; b=FUYh6 pWh8CGY5DvdUw/BU2KWFjRxEZeQ2Qgic1v6y2AXZO6t85x2/6/Gt1a5Zne2DH/By K+y0hssqnipveckxoRQUcDYpJU1fQiNbCS/PAVCOAFwRY20Aesy+1se4gTXHg6Ed l43nqD3doixY2ylXzZXOmBHcn9uowf4rSJ6pEs= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-type; s=default; bh=ijqc5r8DodN BqWOgAvjhxj8k4GI=; b=gyEE6XoozlCxRhEt6n4FrM/0x2sAKkclZl22/+nx3et SBfF8RSIVRDC5nXjiHavBaEk7yV3NXJ3kOOVfVRu7ejeWTCTQ8GdUNEdk5GzX2hA +aQf+q+hL7o9rM8QH0kJ8HBpDy4p4NkgupOgsiifLTagFSUZRIZJPciNlRDvr/qc = Received: (qmail 1455 invoked by alias); 12 Sep 2017 12:34:51 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 1369 invoked by uid 89); 12 Sep 2017 12:34:50 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-23.9 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_LAZY_DOMAIN_SECURITY, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 spammy=Hx-languages-length:4569, H*F:D*br X-HELO: mo20.mail-out.ovh.net From: "Gabriel F. T. Gomes" To: Subject: [PATCH v3 2/5] powerpc: Add redirection for finitef128, isinf128, and isnanf128 Date: Tue, 12 Sep 2017 09:34:32 -0300 Message-ID: <20170912123435.6592-3-gabriel@inconstante.eti.br> In-Reply-To: <20170912123435.6592-1-gabriel@inconstante.eti.br> References: <20170912123435.6592-1-gabriel@inconstante.eti.br> MIME-Version: 1.0 X-ClientProxiedBy: EX2.emp.local (172.16.2.2) To EX2.emp.local (172.16.2.2) X-Ovh-Tracer-Id: 15304920387387510467 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeelledrgedvgdehudcutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemuceftddtnecu No changes since v2. Changes since v1: - Added comments to explain the need to redefine __finitef, __finitel, and __finitef128 in s_finite.c. Likewise for isinf and isnan. -- 8< -- On powerpc64le, compiler support for float128 is not enabled by default on gcc. To enable it, the flag -mfloat128 must be passed as a command line option to the compiler. This means that only the few files that actively have -mfloat128 passed as an argument get compiler support for float128, whereas all other files don't. When -mfloat128 becomes enabled by default on powerpc [1], all the files that do not currently have compiler support for float128 enabled during their compilation, will start to have it. This will lead to build errors in s_finite.c, s_isinf.c, and s_isnan.c. The errors are due to the unintended macro expansion of __finitef128 to __redirect_finitef128 in math/bits/mathcalls-helper-functions.h. In that header, __MATHDECL_1 takes '__finite' and 'f128' as arguments and concatenates them, but '__finite' has been redefined in s_finite.c. This effect was already true for the 'float' and 'long double' versions and is now true for float128. Likewise for isinsff128 and isnanf128. This patch defines __finitef128 as __redirect___finitef128 in sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c, similarly to what's done for the float and long double versions of these functions, to get rid of the build error. Likewise for isinff128 and isnanf128. [1] https://gcc.gnu.org/ml/gcc-patches/2017-08/msg01028.html Tested for powerpc64 and powerpc64le. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c (__finitef128): Define to __redirect___finitef128. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c (__isinff128): Define to __redirect___isinff128. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c (__isnanf128): Define to __redirect___isnanf128. --- sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c | 7 +++++++ sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c | 7 +++++++ sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c | 7 +++++++ 3 files changed, 21 insertions(+) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c index a5ec36b72f..0382bfb95c 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c @@ -17,8 +17,15 @@ . */ #define __finite __redirect___finite + +/* The following definitions, although not related to the 'double' + version of 'finite', are required to compensate for the unintended + macro expansion of __finitef to __redirect___finitef, etc. in + math/bits/mathcalls-helper-functions.h. */ #define __finitef __redirect___finitef #define __finitel __redirect___finitel +#define __finitef128 __redirect___finitef128 + #include #include #include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c index 9c6789c7bd..43827557a3 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c @@ -17,8 +17,15 @@ . */ #define __isinf __redirect___isinf + +/* The following definitions, although not related to the 'double' + version of 'isinf', are required to compensate for the unintended + macro expansion of __isinff to __redirect___isinff, etc. in + math/bits/mathcalls-helper-functions.h. */ #define __isinff __redirect___isinff #define __isinfl __redirect___isinfl +#define __isinff128 __redirect___isinff128 + #include #include #include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c index 3cfe1793da..bbc59808a4 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c @@ -17,8 +17,15 @@ . */ #define __isnan __redirect___isnan + +/* The following definitions, although not related to the 'double' + version of 'isnan', are required to compensate for the unintended + macro expansion of __isnanf to __redirect___isnanf, etc. in + math/bits/mathcalls-helper-functions.h. */ #define __isnanf __redirect___isnanf #define __isnanl __redirect___isnanl +#define __isnanf128 __redirect___isnanf128 + #include #include #include