]> git.ipfire.org Git - thirdparty/glibc.git/commit - sysdeps/generic/math-type-macros-float.h
Use generic macros for lgamma_r function aliases.
authorJoseph Myers <joseph@codesourcery.com>
Mon, 9 Oct 2017 22:04:18 +0000 (22:04 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Mon, 9 Oct 2017 22:04:18 +0000 (22:04 +0000)
commita8dce6197a646fcf870dd2e87069eba3c99099e1
tree07c054c4700a120114b5e3edbb9d09d5bc8f499d
parentbedac136717a1c26fa579aca82124ce3c22254bf
Use generic macros for lgamma_r function aliases.

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-<type>.h.  Rather than
providing an unused default in math-type-macros.h, that header is made
to give an error if math-type-macros-<type>.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).

* 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 <libm-alias-double.h>.
(lgamma_r): Define using libm_alias_double_r.
* math/w_lgammaf_r_compat.c: Include <libm-alias-float.h>.
(lgammaf_r): Define using libm_alias_float_r.
* math/w_lgammal_r_compat.c: Include <libm-alias-ldouble.h>.
(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.
12 files changed:
ChangeLog
math/w_lgamma_r_compat.c
math/w_lgamma_r_template.c
math/w_lgammaf_r_compat.c
math/w_lgammal_r_compat.c
sysdeps/generic/math-type-macros-double.h
sysdeps/generic/math-type-macros-float.h
sysdeps/generic/math-type-macros-float128.h
sysdeps/generic/math-type-macros-ldouble.h
sysdeps/generic/math-type-macros.h
sysdeps/ieee754/ldbl-opt/w_lgamma_r_compat.c [deleted file]
sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c [deleted file]