From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@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: Mon, 11 Sep 2017 01:17:00 -0000 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 Content-Type: text/plain 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 X-SW-Source: 2017-09/txt/msg00429.txt.bz2 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 -- 2.13.5