From patchwork Mon Oct 9 22:04:55 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joseph Myers X-Patchwork-Id: 823538 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-85562-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="rQ5ZyjcU"; 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 3y9vSC2X7gz9t4V for ; Tue, 10 Oct 2017 09:05:14 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:date:from:to:subject:message-id:mime-version :content-type; q=dns; s=default; b=aJ6lh2E5c2IzGOudduGPmisb0EKf9 b1jmnmOVoSMDFs2xWvQy5SOTmSQLuiMkj4sfAfEm8PviqYMWI1RIXRAj/e7f587X tRKEMV70SYnU8rzBSLIJ3ohOwxN4jIRSUmiMcgjKm+CqSQvGmE1KgydRFkHvBKgc WUw2UWajVm6yrE= 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:date:from:to:subject:message-id:mime-version :content-type; s=default; bh=fMXritDvj/Rf5rqxRWukt5Bn0/M=; b=rQ5 ZyjcUO5R2nLrzlaZ89bfhtTA6Cz1ktre7ZPdyhjR61U9tXEVgxhzKCvK/Z+qVka4 eu4/IugMXPk82Azml0uvPhxxcR6U5ED4E2jM0OZ/fcbH/Z0U4EgDNq+V9F6Y8VbM nmQSulVfaFT6YzA+FgFFYlz/PE/Je+72e/62jtnU= Received: (qmail 67163 invoked by alias); 9 Oct 2017 22:05:08 -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 67153 invoked by uid 89); 9 Oct 2017 22:05:07 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.5 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS, URIBL_RED autolearn=ham version=3.3.2 spammy= X-HELO: relay1.mentorg.com Date: Mon, 9 Oct 2017 22:04:55 +0000 From: Joseph Myers To: Subject: Use generic macros for lgamma_r function aliases [committed] Message-ID: User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 X-ClientProxiedBy: svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) To svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) Continuing the use of generic macros for defining libm function aliases, in preparation for adding more _FloatN / _FloatNx function names, this patch makes the lgamma_r functions use such macros. declare_mgen_alias_r becomes a standard macro in math-type-macros.h instead of being locally defined in w_lgamma_r_templace.c. This in turn must be defined by each math-type-macros-.h. Rather than providing an unused default in math-type-macros.h, that header is made to give an error if math-type-macros-.h failed to define declare_mgen_alias or declare_mgen_alias_r. The compat lgamma_r wrappers are updated similarly. The ldbl-opt versions are removed as no longer needed. Tested for x86_64, and with build-many-glibcs.py. Installed stripped shared libraries are unchanged except for powerpc64le (where the usual issue applies that an ldbl-opt long double function previously used long_double_symbol unconditionally and now the symbol versions on powerpc64le mean weak_alias is used instead, resulting in the same symbol versions in the final shared library but still enough difference in the input objects for that library not to be byte-identical). Committed. 2017-10-09 Joseph Myers * sysdeps/generic/math-type-macros.h [!declare_mgen_alias]: Give error. Remove default definition of declare_mgen_alias. [!declare_mgen_alias_r]: Likewise. * sysdeps/generic/math-type-macros-double.h [!declare_mgen_alias_r] (declare_mgen_alias_r): New macro. * sysdeps/generic/math-type-macros-float.h [!declare_mgen_alias_r] (declare_mgen_alias_r): Likewise. * sysdeps/generic/math-type-macros-float128.h [!declare_mgen_alias_r] (declare_mgen_alias_r): Likewise. * sysdeps/generic/math-type-macros-ldouble.h [!declare_mgen_alias_r] (declare_mgen_alias_r): Likewise. * math/w_lgamma_r_template.c (declare_mgen_alias_r_x): Remove macro. (declare_mgen_alias_r_s): Likewise. (declare_mgen_alias_r): Likewise. * math/w_lgamma_r_compat.c: Include . (lgamma_r): Define using libm_alias_double_r. * math/w_lgammaf_r_compat.c: Include . (lgammaf_r): Define using libm_alias_float_r. * math/w_lgammal_r_compat.c: Include . (lgammal_r): Define using libm_alias_ldouble_r. * sysdeps/ieee754/ldbl-opt/w_lgamma_r_compat.c: Remove file. * sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c: Likewise. diff --git a/math/w_lgamma_r_compat.c b/math/w_lgamma_r_compat.c index f88a5df..5b3ceaa 100644 --- a/math/w_lgamma_r_compat.c +++ b/math/w_lgamma_r_compat.c @@ -17,6 +17,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT @@ -33,9 +34,5 @@ __lgamma_r(double x, int *signgamp) return y; } -weak_alias (__lgamma_r, lgamma_r) -# ifdef NO_LONG_DOUBLE -strong_alias (__lgamma_r, __lgammal_r) -weak_alias (__lgamma_r, lgammal_r) -# endif +libm_alias_double_r (__lgamma, lgamma, _r) #endif diff --git a/math/w_lgamma_r_template.c b/math/w_lgamma_r_template.c index 5610db1..57c285b 100644 --- a/math/w_lgamma_r_template.c +++ b/math/w_lgamma_r_template.c @@ -34,12 +34,6 @@ #define M_CALL_FUNC_R_S(x) M_CALL_FUNC_R_X (x) #define M_CALL_FUNC_R(x) M_CALL_FUNC_R_S (M_SUF (x)) -#define declare_mgen_alias_r_x(from, to) weak_alias (from ## _r, to ## _r) -#define declare_mgen_alias_r_s(from, to) \ - declare_mgen_alias_r_x (from, to) -#define declare_mgen_alias_r(from, to) \ - declare_mgen_alias_r_s (M_SUF (from), M_SUF (to)) - FLOAT M_DECL_FUNC_R (__lgamma) (FLOAT x, int *signgamp) { diff --git a/math/w_lgammaf_r_compat.c b/math/w_lgammaf_r_compat.c index 86003de..c7751f1 100644 --- a/math/w_lgammaf_r_compat.c +++ b/math/w_lgammaf_r_compat.c @@ -20,6 +20,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT @@ -36,5 +37,5 @@ __lgammaf_r(float x, int *signgamp) return y; } -weak_alias (__lgammaf_r, lgammaf_r) +libm_alias_float_r (__lgamma, lgamma, _r) #endif diff --git a/math/w_lgammal_r_compat.c b/math/w_lgammal_r_compat.c index 781bfa4..09a8070 100644 --- a/math/w_lgammal_r_compat.c +++ b/math/w_lgammal_r_compat.c @@ -21,6 +21,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT @@ -37,5 +38,5 @@ __lgammal_r(long double x, int *signgamp) return y; } -weak_alias (__lgammal_r, lgammal_r) +libm_alias_ldouble_r (__lgamma, lgamma, _r) #endif diff --git a/sysdeps/generic/math-type-macros-double.h b/sysdeps/generic/math-type-macros-double.h index e978f90..a02c034 100644 --- a/sysdeps/generic/math-type-macros-double.h +++ b/sysdeps/generic/math-type-macros-double.h @@ -33,6 +33,10 @@ # define declare_mgen_alias(from, to) libm_alias_double (from, to) #endif +#ifndef declare_mgen_alias_r +# define declare_mgen_alias_r(from, to) libm_alias_double_r (from, to, _r) +#endif + /* Supply the generic macros. */ #include diff --git a/sysdeps/generic/math-type-macros-float.h b/sysdeps/generic/math-type-macros-float.h index b23789f..53616cd 100644 --- a/sysdeps/generic/math-type-macros-float.h +++ b/sysdeps/generic/math-type-macros-float.h @@ -36,6 +36,10 @@ # define declare_mgen_alias(from, to) libm_alias_float (from, to) #endif +#ifndef declare_mgen_alias_r +# define declare_mgen_alias_r(from, to) libm_alias_float_r (from, to, _r) +#endif + /* Supply the generic macros. */ #include diff --git a/sysdeps/generic/math-type-macros-float128.h b/sysdeps/generic/math-type-macros-float128.h index 3e69c17..a66f5b6 100644 --- a/sysdeps/generic/math-type-macros-float128.h +++ b/sysdeps/generic/math-type-macros-float128.h @@ -38,6 +38,10 @@ # define declare_mgen_alias(from, to) libm_alias_float128 (from, to) #endif +#ifndef declare_mgen_alias_r +# define declare_mgen_alias_r(from, to) libm_alias_float128_r (from, to, _r) +#endif + /* Supply the generic macros. */ #include diff --git a/sysdeps/generic/math-type-macros-ldouble.h b/sysdeps/generic/math-type-macros-ldouble.h index 750bae7..234e33e 100644 --- a/sysdeps/generic/math-type-macros-ldouble.h +++ b/sysdeps/generic/math-type-macros-ldouble.h @@ -33,6 +33,10 @@ # define declare_mgen_alias(from, to) libm_alias_ldouble (from, to) #endif +#ifndef declare_mgen_alias_r +# define declare_mgen_alias_r(from, to) libm_alias_ldouble_r (from, to, _r) +#endif + /* Supply the generic macros. */ #include diff --git a/sysdeps/generic/math-type-macros.h b/sysdeps/generic/math-type-macros.h index 6aaa233..bbd9c0e 100644 --- a/sysdeps/generic/math-type-macros.h +++ b/sysdeps/generic/math-type-macros.h @@ -34,12 +34,13 @@ converts a string into the appropriate FLOAT nan value. - Optionally, these headers may inject a non-standard - definition for the following: - declare_mgen_alias(from,to) This exposes the appropriate symbol(s) for a - function f of type FLOAT. */ + function f of type FLOAT. + + declare_mgen_alias_r(from,to) + This exposes the appropriate symbol(s) for a + function f_r of type FLOAT. */ #ifndef M_PFX # error "M_PFX must be defined." @@ -59,6 +60,12 @@ #ifndef CFLOAT # error "CFLOAT must be defined." #endif +#ifndef declare_mgen_alias +# error "declare_mgen_alias must be defined." +#endif +#ifndef declare_mgen_alias_r +# error "declare_mgen_alias_r must be defined." +#endif #define __M_CONCAT(a,b) a ## b #define __M_CONCATX(a,b) __M_CONCAT(a,b) @@ -102,9 +109,4 @@ # define M_DECL_FUNC(f) M_SUF (f) #endif -/* If the type does not declare special aliasing, use the default. */ -#ifndef declare_mgen_alias -# define declare_mgen_alias(from, to) weak_alias (M_SUF (from), M_SUF (to)) -#endif - #endif /* _MATH_TYPE_MACROS */ diff --git a/sysdeps/ieee754/ldbl-opt/w_lgamma_r_compat.c b/sysdeps/ieee754/ldbl-opt/w_lgamma_r_compat.c deleted file mode 100644 index 673954c..0000000 --- a/sysdeps/ieee754/ldbl-opt/w_lgamma_r_compat.c +++ /dev/null @@ -1,5 +0,0 @@ -#include -#include -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __lgamma_r, lgammal_r, GLIBC_2_0); -#endif diff --git a/sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c b/sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c deleted file mode 100644 index 431aa5d..0000000 --- a/sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c +++ /dev/null @@ -1,7 +0,0 @@ -#include -#undef weak_alias -#define weak_alias(n,a) -#include -#if LIBM_SVID_COMPAT -long_double_symbol (libm, __lgammal_r, lgammal_r); -#endif