From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 47203 invoked by alias); 8 Nov 2019 20:22:50 -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 47194 invoked by uid 89); 8 Nov 2019 20:22:49 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-22.3 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_SHORT,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.1 spammy= X-HELO: mx0a-001b2d01.pphosted.com Subject: Re: [PATCH v2 10/30] ldbl-128ibm-compat: Add err.h functions To: "Gabriel F. T. Gomes" , libc-alpha@sourceware.org References: <20191025153410.15405-1-gabriel@inconstante.net.br> <20191025153410.15405-11-gabriel@inconstante.net.br> From: Paul E Murphy Message-ID: <24bd169d-65d8-98bf-baec-f67d97f46548@linux.ibm.com> Date: Fri, 08 Nov 2019 20:22:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.0 MIME-Version: 1.0 In-Reply-To: <20191025153410.15405-11-gabriel@inconstante.net.br> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2019-11/txt/msg00319.txt.bz2 On 10/25/19 10:33 AM, Gabriel F. T. Gomes wrote: > From: "Gabriel F. T. Gomes" > > No changes since v1. > > -- 8< -- > Use the recently added, internal functions, __vwarnx_internal and > __vwarn_internal, to provide err.h functions that can take long double > arguments with IEEE binary128 format on platforms where long double can > also take double format or some non-IEEE format (currently, this means > powerpc64le). > > Tested for powerpc64le. > --- > misc/errP.h | 28 ++++++ > sysdeps/ieee754/ldbl-128ibm-compat/Makefile | 4 + > sysdeps/ieee754/ldbl-128ibm-compat/Versions | 9 ++ > .../ieee754/ldbl-128ibm-compat/ieee128-err.c | 93 +++++++++++++++++++ > 4 files changed, 134 insertions(+) > create mode 100644 misc/errP.h > create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-err.c > > diff --git a/misc/errP.h b/misc/errP.h These are also declared in includes/err.h. Is there a subtle configury that prevents their usage? > diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Versions b/sysdeps/ieee754/ldbl-128ibm-compat/Versions OK. > diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-err.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-err.c > new file mode 100644 > index 0000000000..8a34508e5e > --- /dev/null > +++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-err.c > @@ -0,0 +1,93 @@ > +/* Wrappers for err.h functions. IEEE128 version. > + Copyright (C) 2018 Free Software Foundation, Inc. Trivial nit, I think the year needs updated in a few places, and likely for the previous patches too. > + 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 > + > +#define VA(call) \ > +{ \ > + va_list ap; \ > + va_start (ap, format); \ > + IEEE128_CALL (call); \ > + va_end (ap); \ > +} > + > +#define IEEE128_ALIAS(name) \ > + strong_alias (___ieee128_##name, __##name##ieee128) > + > +#define IEEE128_DECL(name) ___ieee128_##name > +#define IEEE128_CALL(name) ___ieee128_##name > + > +void > +IEEE128_DECL (vwarn) (const char *format, __gnuc_va_list ap) > +{ > + __vwarn_internal (format, ap, PRINTF_LDBL_USES_FLOAT128); > +} > +IEEE128_ALIAS (vwarn) > + > +void > +IEEE128_DECL (vwarnx) (const char *format, __gnuc_va_list ap) > +{ > + __vwarnx_internal (format, ap, PRINTF_LDBL_USES_FLOAT128); > +} > +IEEE128_ALIAS (vwarnx) > + > +void > +IEEE128_DECL (warn) (const char *format, ...) > +{ > + VA (vwarn (format, ap)) > +} > +IEEE128_ALIAS (warn) > + > +void > +IEEE128_DECL (warnx) (const char *format, ...) > +{ > + VA (vwarnx (format, ap)) > +} > +IEEE128_ALIAS (warnx) OK > + > +void > +IEEE128_DECL (verr) (int status, const char *format, __gnuc_va_list ap) > +{ > + IEEE128_CALL (vwarn) (format, ap); > + exit (status); > +} > +IEEE128_ALIAS (verr) > + > +void > +IEEE128_DECL (verrx) (int status, const char *format, __gnuc_va_list ap) > +{ > + IEEE128_CALL (vwarnx) (format, ap); > + exit (status); > +} > +IEEE128_ALIAS (verrx) I notice the nldbl wrappers call __vwarn{,x}_internal directly with the respective mode option. I think it is OK as is. > + > +void > +IEEE128_DECL (err) (int status, const char *format, ...) > +{ > + VA (verr (status, format, ap)) > +} > +IEEE128_ALIAS (err) > + > +void > +IEEE128_DECL (errx) (int status, const char *format, ...) > +{ > + VA (verrx (status, format, ap)) > +} > +IEEE128_ALIAS (errx) > OK.