From patchwork Mon Sep 11 01:16:51 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: 812199 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-84431-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="ysArIocm"; 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 3xr95P1hQ4z9s76 for ; Mon, 11 Sep 2017 11:17:29 +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=s+cWd x+1aBnAyYV7CyG1hhTMniJ13kyddrWx1luW2ZTrrOCTr53nNqJIjl2tUKWGJm2Bt UJMn//QbmHAkoUkAv3DSHDq59pkSZ3guvhaNkM3TAtISma2tKLaZNPVvNj83HlG2 fdaouYAjxIsv2FbHmAWiCFnAcEnLx8RGFZn3RA= 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=q0LAZTFYcMr KTlMi2vzHXVOPBiY=; b=ysArIocmWkIz3hGULcoaN/mYH7QchsHXlsQcaRRuXHr 8rTy10Bnk0Htl9/FjAOW9ZcWj8HyvNkkl/tpLgrrtbTlZhDwU3mWpESK03iK4A17 IqpLJgSpKjSDtg6xsAZq73p7HtCu5qt55sYwlDYvrkEUVXlzRh6oPSWzi/dSZIQ0 = Received: (qmail 38787 invoked by alias); 11 Sep 2017 01:17:15 -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 38488 invoked by uid 89); 11 Sep 2017 01:17:14 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.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=H*F:D*br X-HELO: mo20.mail-out.ovh.net From: "Gabriel F. T. Gomes" To: Subject: [PATCH v2 2/5] powerpc: Add redirection for finitef128, isinf128, and isnanf128 Date: Sun, 10 Sep 2017 22:16:51 -0300 Message-ID: <20170911011654.28743-3-gabriel@inconstante.eti.br> In-Reply-To: <20170911011654.28743-1-gabriel@inconstante.eti.br> References: <20170911011654.28743-1-gabriel@inconstante.eti.br> MIME-Version: 1.0 X-ClientProxiedBy: EX1.emp.local (172.16.2.1) To EX2.emp.local (172.16.2.2) X-Ovh-Tracer-Id: 16435605369161764547 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeelledrfeelgddtfecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemuceftddtnecu 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