From patchwork Thu May 24 04:35:49 2018 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: 919548 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-92733-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=inconstante.eti.br Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="W0m32VGy"; 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 40rxR71w7pz9s0x for ; Thu, 24 May 2018 14:36:19 +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=rhp76 WNfnpBnCgCGozg1BLNrGLjTDMhwBI2ydCcMKqlTjyMdK5e8ODkcwXXiKzUKrwF3J wHL6J9iiyEjspjLIp+G+9zP24gls4LnRFcOoFNUHwyqNNggFxh/cxJWeGw4OCVLu tj7VO0d/CtKVtp+YQZPpDWBkUxJ63ds/YgsTq4= 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=C1sP6XtvHJK 4xgWyH0bRMyheSDo=; b=W0m32VGy07Y9JREI/k8jKOdYxum8mgJIG5iwK0XSPUW nac/1MwQwYmbrkG5tzigl2PA/mKGXvlbDbR0te2zg+A32CWW4mDrw2RSWByeZPED 0o3NHgdkGvRDFYDytRxO4eTMxmAsLjW9C9Gu8Th4xQkd5HXQkaUs0GlldjMuxty8 = Received: (qmail 26404 invoked by alias); 24 May 2018 04:36:10 -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 26256 invoked by uid 89); 24 May 2018 04:36:09 -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=D*br, 128bits, H*F:D*br X-HELO: mo20.mail-out.ovh.net From: "Gabriel F. T. Gomes" To: Subject: [RFC PATCH 1/5] powerpc: Move around math-related Implies Date: Thu, 24 May 2018 01:35:49 -0300 Message-ID: <20180524043553.23569-2-gabriel@inconstante.eti.br> In-Reply-To: <20180524043553.23569-1-gabriel@inconstante.eti.br> References: <20180524043553.23569-1-gabriel@inconstante.eti.br> MIME-Version: 1.0 X-ClientProxiedBy: EX1.emp.local (172.16.2.1) To EX4.emp.local (172.16.2.4) X-Ovh-Tracer-Id: 4698661787301170883 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedthedrgeeigddugecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemuceftddtnecu From: Tulio Magno Quites Machado Filho Currently, powerpc, powerpc64, and powerpc64le imply the same set of subdirectories from sysdeps/ieee754: flt-32, dbl-64, ldbl-128ibm, and ldbl-opt. In preparation for the transition of the long double format - from IBM Extended Precision to IEEE 754 128-bits floating-point - on powerpc64le, this patch splits the shared Implies file into three separate files (one for each of the powerpc architectures), without changing their contents. Future patches will modify powerpc64le. 2018-05-11 Tulio Magno Quites Machado Filho Gabriel F. T. Gomes * sysdeps/powerpc/Implies: Removed. Previous contents copied to... * sysdeps/powerpc/powerpc32/Implies-after: ... here. * sysdeps/powerpc/powerpc64/be/Implies-after: ... here. * sysdeps/powerpc/powerpc64/le/Implies-before: ... and here. --- sysdeps/powerpc/{Implies => powerpc32/Implies-after} | 0 sysdeps/powerpc/powerpc64/be/Implies-after | 5 +++++ sysdeps/powerpc/powerpc64/le/Implies-before | 5 +++++ 3 files changed, 10 insertions(+) rename sysdeps/powerpc/{Implies => powerpc32/Implies-after} (100%) create mode 100644 sysdeps/powerpc/powerpc64/be/Implies-after diff --git a/sysdeps/powerpc/Implies b/sysdeps/powerpc/powerpc32/Implies-after similarity index 100% rename from sysdeps/powerpc/Implies rename to sysdeps/powerpc/powerpc32/Implies-after diff --git a/sysdeps/powerpc/powerpc64/be/Implies-after b/sysdeps/powerpc/powerpc64/be/Implies-after new file mode 100644 index 0000000000..78dba9510c --- /dev/null +++ b/sysdeps/powerpc/powerpc64/be/Implies-after @@ -0,0 +1,5 @@ +# On PowerPC we use the IBM extended long double format. +ieee754/ldbl-128ibm +ieee754/ldbl-opt +ieee754/dbl-64 +ieee754/flt-32 diff --git a/sysdeps/powerpc/powerpc64/le/Implies-before b/sysdeps/powerpc/powerpc64/le/Implies-before index 48065141a9..7c20db4e97 100644 --- a/sysdeps/powerpc/powerpc64/le/Implies-before +++ b/sysdeps/powerpc/powerpc64/le/Implies-before @@ -1 +1,6 @@ +# On PowerPC we use the IBM extended long double format. +ieee754/ldbl-128ibm +ieee754/ldbl-opt +ieee754/dbl-64 +ieee754/flt-32 ieee754/float128 From patchwork Thu May 24 04:35:50 2018 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: 919550 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-92734-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=inconstante.eti.br Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="Qpo8GV+Z"; 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 40rxRH5XPcz9s0q for ; Thu, 24 May 2018 14:36:27 +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=rlOt5 BY7PFPwBCu6V33UpdRarDtk4AS4IGywHt/N3n0TyVgsaPcy3QSoEqIFTmIzBldUc wvUx1bwfopwaIj+YrQiQY9UvQIsAfwmuAXQvGleKowk1BVkRW1M71AbmSMbBj5qc WNojQgX/tP9TwDHRtYy0QTbryG++8Rdq4cimaM= 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=CmTYs4WPRBb RSUf7Dv69mlSadvI=; b=Qpo8GV+ZdHad5dOtEPoYFbkvfwvrF7mTKX+bQDYl+SI eTUd4EhaQGCqcxG9BcMVGQoiEljpoTS0z5Q72gP9rBim1zxu+I7MH7FWwGf5GgsD eB2V9NoNHyjt0FW24fqCz9uYS8MJKjcwO1V+itrsUphZtt5R3UYG+0mHXEGbVrgU = Received: (qmail 27089 invoked by alias); 24 May 2018 04:36: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 26945 invoked by uid 89); 24 May 2018 04:36: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=thousands, H*F:D*br X-HELO: mo19.mail-out.ovh.net From: "Gabriel F. T. Gomes" To: Subject: [RFC PATCH 2/5] Do not define and undefine vfprintf in vfprintf.c Date: Thu, 24 May 2018 01:35:50 -0300 Message-ID: <20180524043553.23569-3-gabriel@inconstante.eti.br> In-Reply-To: <20180524043553.23569-1-gabriel@inconstante.eti.br> References: <20180524043553.23569-1-gabriel@inconstante.eti.br> MIME-Version: 1.0 X-ClientProxiedBy: EX1.emp.local (172.16.2.1) To EX4.emp.local (172.16.2.4) X-Ovh-Tracer-Id: 4700350636932845251 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedthedrgeeigddugecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemuceftddtnecu In preparation for the transition of the long double format on powerpc64le, this patch replaces the uses of 'vfprintf' with '___vfprintf', thus avoiding the need to '#undef vfprintf' before creating the externally visible symbols. In a future, powerpc64le specific patch, a new file will define 'vfprintf' to an alternate name to be used by the long double implementation with binary128 format. Tested for powerpc64le. * stdio-common/vfprintf.c (vfprintf): Rename function name to ___vfprintf, which is redefined to _IO_vfprintf or _IO_vfprintf_internal, depending on whether support for wide or regular characters is being built. --- stdio-common/vfprintf.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c index ae412e4b84..0ab7ade1d6 100644 --- a/stdio-common/vfprintf.c +++ b/stdio-common/vfprintf.c @@ -78,7 +78,7 @@ } while (0) #ifndef COMPILE_WPRINTF -# define vfprintf _IO_vfprintf_internal +# define ___vfprintf _IO_vfprintf_internal # define CHAR_T char # define UCHAR_T unsigned char # define INT_T int @@ -105,7 +105,7 @@ typedef const char *THOUSANDS_SEP_T; # define ORIENT if (_IO_vtable_offset (s) == 0 && _IO_fwide (s, -1) != -1)\ return -1 #else -# define vfprintf _IO_vfwprintf +# define ___vfprintf _IO_vfwprintf # define CHAR_T wchar_t /* This is a hack!!! There should be a type uwchar_t. */ # define UCHAR_T unsigned int /* uwchar_t */ @@ -1235,7 +1235,7 @@ static CHAR_T *group_number (CHAR_T *, CHAR_T *, CHAR_T *, const char *, /* The function itself. */ int -vfprintf (FILE *s, const CHAR_T *format, va_list ap) +___vfprintf (FILE *s, const CHAR_T *format, va_list ap) { /* The character used as thousands separator. */ THOUSANDS_SEP_T thousands_sep = 0; @@ -2321,7 +2321,7 @@ buffered_vfprintf (FILE *s, const CHAR_T *format, va_list args) #ifndef COMPILE_WPRINTF result = _IO_vfprintf (hp, format, args); #else - result = vfprintf (hp, format, args); + result = _IO_vfwprintf (hp, format, args); #endif /* Lock stream. */ @@ -2352,7 +2352,6 @@ buffered_vfprintf (FILE *s, const CHAR_T *format, va_list args) return result; } -#undef vfprintf #ifdef COMPILE_WPRINTF strong_alias (_IO_vfwprintf, __vfwprintf); ldbl_weak_alias (_IO_vfwprintf, vfwprintf); From patchwork Thu May 24 04:35:51 2018 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: 919551 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-92735-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=inconstante.eti.br Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="ykVp8XBO"; 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 40rxRT0sNGz9s0q for ; Thu, 24 May 2018 14:36:36 +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=g1TMu BOT0nsR16M6AVk9t1KZAX29g0qZyWZK0YtyGRYJpAoH3vpqkDS0lhgbnCv7ETneR U6IWHNpqWi0io52DJBeeeDH6g1RZaY8Z8TgOGZNiTrEO3c4hk/tqmRoJi0/eL+CA MlBsyeC5zv8BPnLxBBR4XaIxC16DcNp6E5yuVo= 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=sOJ7pReHCyS z7EVYM7WISWnRpgg=; b=ykVp8XBO1FFnaJXGenAZn5yen/yJ48Gf5p73Db5ponb 10qANMHDDSryB9NG9YYTJPFuTQo1DZHPNeMG3pi2wTe+KmQemwD3nLGXp/Tbs0hO JJvW4hqR/24TjSOSBlYnDawjvrLd/sU3w4IEazF4NfKmy0QNAwwnKylwQx/tyh0c = Received: (qmail 28472 invoked by alias); 24 May 2018 04:36:26 -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 28390 invoked by uid 89); 24 May 2018 04:36:26 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.2 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: [RFC PATCH 3/5] Do not declare __mpn_extract_float128 when long double has binary128 format Date: Thu, 24 May 2018 01:35:51 -0300 Message-ID: <20180524043553.23569-4-gabriel@inconstante.eti.br> In-Reply-To: <20180524043553.23569-1-gabriel@inconstante.eti.br> References: <20180524043553.23569-1-gabriel@inconstante.eti.br> MIME-Version: 1.0 X-ClientProxiedBy: EX1.emp.local (172.16.2.1) To EX4.emp.local (172.16.2.4) X-Ovh-Tracer-Id: 4703446862251806403 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedthedrgeeigddugecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemuceftddtnecu In the internal header include/gmp.h, __mpn_extract_float128 is declared whenever the float128 API is being built, but only when long double is not ABI-compatible with _Float128 (i.e.: when __HAVE_DISTINCT_FLOAT128). Checking for __HAVE_DISTINCT_FLOAT128 is currently enough for building glibc for all platforms. However, when powerpc64le adds support for long double with a third format (binary128), __mpn_extract_float128 will be used by the implementation of some long double functions, such as vfprintf/__printf_fp (at a first glance, it could seem illogical to use a float128 function for long double, but this design choice reduces the changes to the ABI, by reusing functions that are already exported). The reuse of this internal function will be achieve (in a later patch) with the redefinition of __mpn_extract_long_double to __mpn_extract_float128, similarly to what float128_private.h does. However, since __mpn_extract_long_double is redefined, it would get declared twice by include/gmp.h, with mismatching parameters. This patch adds a check for __HAVE_FLOAT128_UNLIKE_LDBL, which avoids the second declaration of __mpn_extract_float128. Tested for powerpc64le. * include/gmp.h (__mpn_extract_float128): Only declare when __HAVE_DISTINCT_FLOAT128 and __HAVE_FLOAT128_UNLIKE_LDBL. --- include/gmp.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/gmp.h b/include/gmp.h index 657c7a0148..aa9299c67e 100644 --- a/include/gmp.h +++ b/include/gmp.h @@ -19,7 +19,7 @@ extern mp_size_t __mpn_extract_long_double (mp_ptr res_ptr, mp_size_t size, long double value) attribute_hidden; -#if __HAVE_DISTINCT_FLOAT128 +#if __HAVE_DISTINCT_FLOAT128 && __HAVE_FLOAT128_UNLIKE_LDBL extern mp_size_t __mpn_extract_float128 (mp_ptr res_ptr, mp_size_t size, int *expt, int *is_neg, _Float128 value) From patchwork Thu May 24 04:35:52 2018 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: 919552 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-92736-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=inconstante.eti.br Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="Qm1mGTrp"; 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 40rxRf0TB5z9s0q for ; Thu, 24 May 2018 14:36:45 +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=cmX3X mb2GHZO3TVwMy7tfu29Yhy2H3y+xQbEwexXlBoIYQvX72cVHpuwddQxgeQg81TOC y9drujGvv74izMBarSRy2159AcJViLkfncV00Cv9vlkH9GxQyWw4ez83NJx4+6VZ hk6qvVhaF5VGE4qQ8eswv3Z0L/TYwNbTifFIXI= 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=4pCfBZ37IMP zIk2lEFOaUacRgSA=; b=Qm1mGTrpQD8UHhzpwwB6AQAQFXnrPEIpP4n5cYTynlW HcVdvfIl1E+SOwMTkftJIMxMUAy31CQQgiYZ2dGKjnTJdwiKDIMqFRpdjm5VpJsF 4vd/j+r1zoWwr+rk8IKIYgWfwr0M0JkJbMb0lriTCfo/KQsROPGjYOMvTp4BRsPg = Received: (qmail 29085 invoked by alias); 24 May 2018 04:36:31 -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 28793 invoked by uid 89); 24 May 2018 04:36:29 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.4 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_LAZY_DOMAIN_SECURITY, KAM_SHORT, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 spammy=eases, rework, mfloat128, anyhow X-HELO: mo20.mail-out.ovh.net From: "Gabriel F. T. Gomes" To: Subject: [RFC PATCH 4/5] RFC: Two vfprintf implementations (IBM and IEEE 128) Date: Thu, 24 May 2018 01:35:52 -0300 Message-ID: <20180524043553.23569-5-gabriel@inconstante.eti.br> In-Reply-To: <20180524043553.23569-1-gabriel@inconstante.eti.br> References: <20180524043553.23569-1-gabriel@inconstante.eti.br> MIME-Version: 1.0 X-ClientProxiedBy: EX1.emp.local (172.16.2.1) To EX4.emp.local (172.16.2.4) X-Ovh-Tracer-Id: 4703728337242934979 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedthedrgeeigddugecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemuceftddtnecu This RFC exemplifies what I have planned for the *printf and *scanf family of functions, with respect to the second transition of the long double format on powerpc64le... In the light of what's been discussed in a previous thread [1], more specifically, the explanation about the unnecessary increase in the number of exported symbols [2] (quotes are indented): [..] using new *l symbol versions and new exported names for ibm128 functions (which seems to me to increase the number of exported symbols unnecessarily). And taking into account that new exported symbols are needed for those functions that are not part of the TS 18661-3 API: [..] obsolescent functions with no public *f128 names which shouldn't get such names, but are part of the *l API so need to be available for long double in the -mabi=ieeelongdouble case, so you may actually want to call new __*f128 names instead I adjusted the implementation that I have been working on (for *printf functions), so that there are no new exported functions for ibm128. Instead, there are only new exported functions for binary128 and header redirections (in stdio.h) from *l functions to these new exports (this RFC only contains the rework for vfprintf and for the functions it depends on, i.e.: __printf_fp and __printf_fphex. I haven't reworked the other functions, that's why I omitted them from this RFC (I hope that's OK and I believe it even eases the review)). I tried to add as many comments as possible to the changes, so as to avoid an overly long commit message. Anyhow, an overview: * The redirections for user code are provided by the following files: * libio/stdio.h * sysdeps/ieee754/ldbl-128ibm-compat/bits/stdio-ieee128.h. * The following files, which are compiled with -mabi=ieeelongdouble, redefine function names before including the implementation from stdio-common: * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_fp.c * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_fphex.c * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf.c * Exported symbols (Versions) and their correct versions (math_ldbl_opt.h) are defined by these files: * sysdeps/ieee754/ldbl-128ibm-compat/Versions * sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/ldbl-128ibm-compat-abi.h * For the remaining files, I don't have any special comments. Any feedback is highly appreciated. Thanks, Gabriel [1] https://sourceware.org/ml/libc-alpha/2018-05/msg00509.html [2] https://sourceware.org/ml/libc-alpha/2018-05/msg00519.html --- libio/stdio.h | 9 ++++ sysdeps/ieee754/ldbl-128ibm-compat/Makefile | 20 +++++++++ sysdeps/ieee754/ldbl-128ibm-compat/Versions | 12 +++++ .../ldbl-128ibm-compat/bits/stdio-ieee128.h | 30 +++++++++++++ .../ieee754/ldbl-128ibm-compat/ieee128-printf_fp.c | 16 +++++++ .../ldbl-128ibm-compat/ieee128-printf_fphex.c | 16 +++++++ .../ieee754/ldbl-128ibm-compat/ieee128-vfprintf.c | 13 ++++++ .../ldbl-128ibm-compat/test-printf-ibm128.c | 1 + .../ldbl-128ibm-compat/test-printf-ieee128.c | 1 + .../ldbl-128ibm-compat/test-printf-ldbl-compat.c | 51 ++++++++++++++++++++++ sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h | 27 +++++++++++- .../powerpc/powerpc64/le/ldbl-128ibm-compat-abi.h | 8 ++++ 12 files changed, 202 insertions(+), 2 deletions(-) create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/Makefile create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/Versions create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/bits/stdio-ieee128.h create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_fp.c create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_fphex.c create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf.c create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ibm128.c create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ieee128.c create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/le/ldbl-128ibm-compat-abi.h diff --git a/libio/stdio.h b/libio/stdio.h index 731f8e56f4..6d6b3e6062 100644 --- a/libio/stdio.h +++ b/libio/stdio.h @@ -864,6 +864,15 @@ extern int __overflow (FILE *, int); # include #endif +/* For platforms where long double had double format, then was converted + to some non-IEEE format, then finally to IEEE binary128 format, add + redirections to the correct implementation of stdio.h functions. */ +#include +#if __HAVE_DISTINCT_FLOAT128 && __LDBL_MANT_DIG__ == 113 && \ + ! defined __BUILDING_EXTRA_LDBL_FORMAT +# include +#endif + __END_DECLS #endif /* included. */ diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile new file mode 100644 index 0000000000..ef04cbb67f --- /dev/null +++ b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile @@ -0,0 +1,20 @@ +ifeq ($(subdir),stdio-common) +routines += ieee128-printf_fp ieee128-printf_fphex +CFLAGS-ieee128-printf_fp.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi +CFLAGS-ieee128-printf_fphex.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi + +routines += ieee128-vfprintf +CFLAGS-ieee128-vfprintf.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi + +tests-internal += test-printf-ieee128 +CFLAGS-test-printf-ieee128.c := $(filter-out -mlong-double-128, \ + $(CFLAGS-test-printf-ieee128.c)) +CFLAGS-test-printf-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi + +tests-internal += test-printf-ibm128 +CFLAGS-test-printf-ibm128.c := $(filter-out -mlong-double-128, \ + $(CFLAGS-test-printf-ibm128.c)) +CFLAGS-test-printf-ibm128.c += -mabi=ibmlongdouble -Wno-psabi + +headers += bits/stdio-ieee128.h +endif diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Versions b/sysdeps/ieee754/ldbl-128ibm-compat/Versions new file mode 100644 index 0000000000..ea4e096cce --- /dev/null +++ b/sysdeps/ieee754/ldbl-128ibm-compat/Versions @@ -0,0 +1,12 @@ +%include +%ifndef LDBL_IBM128_VERSION +% error "ldbl-128ibm-compat-abi.h must define LDBL_IBM128_VERSION" +%endif + +libc { + LDBL_IBM128_VERSION { + __ieee128___printf_fp; + __ieee128__IO_vfprintf; + __ieee128_vfprintf; + } +} diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/bits/stdio-ieee128.h b/sysdeps/ieee754/ldbl-128ibm-compat/bits/stdio-ieee128.h new file mode 100644 index 0000000000..a393c0b209 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128ibm-compat/bits/stdio-ieee128.h @@ -0,0 +1,30 @@ +/* Redirections for stdio functions for -mabi=ieeelongdouble. + Copyright (C) 2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _STDIO_H +# error "Never include directly; use instead." +#endif + +#include + +#define __IBM128_REDIR(name) \ + extern __typeof (name) __ieee128_##name; \ + extern __typeof (name) name __asm (__ASMNAME ("__ieee128_" #name)); + +__IBM128_REDIR (vfprintf) +/* To be completed with the other functions. */ diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_fp.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_fp.c new file mode 100644 index 0000000000..813315f8b0 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_fp.c @@ -0,0 +1,16 @@ +/* Redefine the names of the functions in printf_fp.c before including it. */ +#define __printf_fp __ieee128___printf_fp +#define __printf_fp_l __ieee128___printf_fp_l +#define ___printf_fp __ieee128____printf_fp +#define __guess_grouping __ieee128___guess_grouping + +/* Use __mpn_extract_float128 since it handles the floating-point + parameter as a floating-point value with binary128 format. */ +#define __mpn_extract_long_double __mpn_extract_float128 + +/* Skip the inclusion of the redirections of *l functions to __ieee128_* + functions during the build of glibc (these redirections would + conflict with the internal redirections to __GL_* symbols). */ +#define __BUILDING_EXTRA_LDBL_FORMAT + +#include diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_fphex.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_fphex.c new file mode 100644 index 0000000000..e3da570a16 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_fphex.c @@ -0,0 +1,16 @@ +/* Redefine the name of the function in printf_fphex.c before including it. */ +#define __printf_fphex __ieee128___printf_fphex + +/* Skip the inclusion of the redirections of *l functions to __ieee128_* + functions during the build of glibc (these redirections would + conflict with the internal redirections to __GL_* symbols). */ +#define __BUILDING_EXTRA_LDBL_FORMAT + +/* Explicitly include ieee754.h from the ldbl-128 directory, since this + file is building __printf_fphex for long double with IEEE binary128 + format (implicitly, this header would be included from ldbl-128ibm, + which has definitions for long double with IBM Extended Precision + format for floating-point). */ +#include + +#include diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf.c new file mode 100644 index 0000000000..db9cd79b24 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf.c @@ -0,0 +1,13 @@ +/* Redefine the names of the functions in vfprintf.c before including it. */ +#define _IO_vfprintf_internal __ieee128__IO_vfprintf_internal +#define __printf_fp __ieee128___printf_fp +#define __printf_fphex __ieee128___printf_fphex +#define vfprintf __ieee128_vfprintf +#define _IO_vfprintf __ieee128__IO_vfprintf + +/* Skip the inclusion of the redirections of *l functions to __ieee128_* + functions during the build of glibc (these redirections would + conflict with the internal redirections to __GL_* symbols). */ +#define __BUILDING_EXTRA_LDBL_FORMAT + +#include diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ibm128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ibm128.c new file mode 100644 index 0000000000..5de4ea3e7f --- /dev/null +++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ibm128.c @@ -0,0 +1 @@ +#include diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ieee128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ieee128.c new file mode 100644 index 0000000000..5de4ea3e7f --- /dev/null +++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ieee128.c @@ -0,0 +1 @@ +#include diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c new file mode 100644 index 0000000000..03014507b4 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c @@ -0,0 +1,51 @@ +/* Test for the long double variants of *printf functions. + Copyright (C) 2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include +#include +#include + +#include + +static void +do_test_call_varg (FILE *stream, const char *format, ...) +{ + va_list args; + + printf ("%20s", "vfprintf: "); + va_start (args, format); + vfprintf (stream, format, args); + va_end (args); + printf ("\n"); +} + +static int +do_test (void) +{ + long double ld = -1; + + /* Print in decimal notation. */ + do_test_call_varg (stdout, "%.60Lf", ld); + + /* Print in hexadecimal notation. */ + do_test_call_varg (stdout, "%.60La", ld); + + return 0; +} + +#include diff --git a/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h b/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h index 61ba784f86..78e5d4b496 100644 --- a/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h +++ b/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h @@ -5,14 +5,35 @@ # error "nldbl-abi.h must define LONG_DOUBLE_COMPAT_VERSION" #endif +/* On powerpc64le, a third format for long double is supported since the + version described in ldbl-128ibm-compat-abi.h. */ +#include +#if __HAVE_DISTINCT_FLOAT128 && __LDBL_MANT_DIG__ == 113 +# include +# ifndef LDBL_IBM128_COMPAT_VERSION +# error "ldbl-128ibm-compat-abi.h must define LDBL_IBM128_COMPAT_VERSION" +# endif +#endif + #include #define LONG_DOUBLE_COMPAT(lib, introduced) \ SHLIB_COMPAT(lib, introduced, LONG_DOUBLE_COMPAT_VERSION) -#define long_double_symbol(lib, local, symbol) \ +/* When building long double with IEEE long double format on + powerpc64le, exposed the symbols with the version defined in + ldbl-128ibm-compat-abi.h. */ +#if __HAVE_DISTINCT_FLOAT128 && __LDBL_MANT_DIG__ == 113 +# define long_double_symbol(lib, local, symbol) \ + long_double_symbol_1 (lib, local, symbol, LDBL_IBM128_COMPAT_VERSION) +/* Otherwise, expose the symbols with the version from nldbl-abi.h. */ +#else +# define long_double_symbol(lib, local, symbol) \ long_double_symbol_1 (lib, local, symbol, LONG_DOUBLE_COMPAT_VERSION) +#endif #ifdef SHARED # define ldbl_hidden_def(local, name) libc_hidden_ver (local, name) # define ldbl_strong_alias(name, aliasname) \ + ldbl_strong_alias_x (name, aliasname) +# define ldbl_strong_alias_x(name, aliasname) \ strong_alias (name, __GL_##name##_##aliasname) \ long_double_symbol (libc, __GL_##name##_##aliasname, aliasname); # define ldbl_weak_alias(name, aliasname) \ @@ -22,7 +43,9 @@ versioned_symbol (lib, local, symbol, version) #else # define ldbl_hidden_def(local, name) libc_hidden_def (name) -# define ldbl_strong_alias(name, aliasname) strong_alias (name, aliasname) +# define ldbl_strong_alias(name, aliasname) \ + ldbl_strong_alias_x (name, aliasname) +# define ldbl_strong_alias_x(name, aliasname) strong_alias (name, aliasname) # define ldbl_weak_alias(name, aliasname) weak_alias (name, aliasname) # ifndef __ASSEMBLER__ /* Note that weak_alias cannot be used - it is defined to nothing diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/ldbl-128ibm-compat-abi.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/ldbl-128ibm-compat-abi.h new file mode 100644 index 0000000000..6eb0e72b07 --- /dev/null +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/ldbl-128ibm-compat-abi.h @@ -0,0 +1,8 @@ +/* ABI version for long double switch to IEEE 128-bit floating point.. + This is used by the Versions and math_ldbl_opt.h files in + sysdeps/ieee754/ldbl-128ibm-compat/. It gives the ABI version where + long double == ibm128 was replaced with long double == _Float128 + for libm *l functions and libc functions using long double. */ + +#define LDBL_IBM128_VERSION GLIBC_2.28 +#define LDBL_IBM128_COMPAT_VERSION GLIBC_2_28 From patchwork Thu May 24 04:35:53 2018 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: 919553 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-92737-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=inconstante.eti.br Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="sR6FDe8v"; 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 40rxRp5fRqz9s0q for ; Thu, 24 May 2018 14:36:54 +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=qVvuF iQ26OULr0FmwP87UMAQ/Re3Oew/Fq2Lg4KGCzVyN8Cq4ECVzKfJO3wMp6tO8dwdZ fjk6O7BrKbJgwptAw9Ub8AWNCj7A28YegZ2+sEBl2FtLyPQ5KDBjhywzP5z08KTY zzOs/acUF6bw+MuB5R9EkYDqcfbAKCPUHxpe4Y= 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=vQeX5E/zNIA QSKbPktzkSMnCoJ8=; b=sR6FDe8vPs4jkez+jKnZVbWQ4ks6kPhflswmRUAzxwi 0/l5kTZWokc1Zrsa6cnc3BW03/ujeDKgV3TobdCRBDgvfhwvAerripyXWA7Hcwoh uBpQZj9AcJWcoJxNEsZlXf8ED9HaIfn6W6naY07RCagOIFjPLYnGKanoDfw2b31w = Received: (qmail 29287 invoked by alias); 24 May 2018 04:36:32 -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 29140 invoked by uid 89); 24 May 2018 04:36:31 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.1 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_LAZY_DOMAIN_SECURITY, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 spammy=wishes, H*F:D*br X-HELO: mo20.mail-out.ovh.net From: "Gabriel F. T. Gomes" To: Subject: [RFC PATCH 5/5] RFC: powerpc64le: Convert default long double format to IEEE binary128 Date: Thu, 24 May 2018 01:35:53 -0300 Message-ID: <20180524043553.23569-6-gabriel@inconstante.eti.br> In-Reply-To: <20180524043553.23569-1-gabriel@inconstante.eti.br> References: <20180524043553.23569-1-gabriel@inconstante.eti.br> MIME-Version: 1.0 X-ClientProxiedBy: EX1.emp.local (172.16.2.1) To EX4.emp.local (172.16.2.4) X-Ovh-Tracer-Id: 4705135712447090371 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedthedrgeeigddugecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemuceftddtnecu A commit with this change would be added only when all other changes are ready. I'm sending this in the RFC in case someone wishes to test the previous patches. --- sysdeps/powerpc/powerpc64/le/Implies-before | 1 + sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist | 3 +++ 2 files changed, 4 insertions(+) diff --git a/sysdeps/powerpc/powerpc64/le/Implies-before b/sysdeps/powerpc/powerpc64/le/Implies-before index 7c20db4e97..2139f4dae8 100644 --- a/sysdeps/powerpc/powerpc64/le/Implies-before +++ b/sysdeps/powerpc/powerpc64/le/Implies-before @@ -1,4 +1,5 @@ # On PowerPC we use the IBM extended long double format. +ieee754/ldbl-128ibm-compat ieee754/ldbl-128ibm ieee754/ldbl-opt ieee754/dbl-64 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index 9869feb56b..d495b5852f 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2221,3 +2221,6 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 __ieee128___printf_fp F +GLIBC_2.28 __ieee128__IO_vfprintf F +GLIBC_2.28 __ieee128_vfprintf F