This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.26-338-g620ff9e


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  620ff9eea68d8edf0cdfb1e5cbb653993002484e (commit)
      from  a891caff7a911227627eb147e9bfcb7737b2bc2b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=620ff9eea68d8edf0cdfb1e5cbb653993002484e

commit 620ff9eea68d8edf0cdfb1e5cbb653993002484e
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Wed Sep 13 01:13:30 2017 +0000

    Define and use libm_alias_double.
    
    Continuing the process of setting up common macros for libm function
    aliases, with a view to using them to define _FloatN / _FloatNx
    aliases in future, this patch adds a libm_alias_double macro and uses
    it in the type-generic templates.
    
    This macro handles defining aliases for double, and for long double in
    the NO_LONG_DOUBLE case.  It also handles defining compat symbols for
    long double = double for architectures that changed their long double
    format.  By so doing, it eliminates the need for the
    M_LIBM_NEED_COMPAT and declare_mgen_libm_compat macros; the single
    declare_mgen_alias call in each template now suffices to define all
    required compat symbols.  When used for more double functions (not
    based on type-generic templates), I expect it will eliminate the need
    for most ldbl-opt wrappers for such functions.
    
    A few special cases are needed.  __clog10l is a public symbol (for
    historical reasons) so needs to be given appropriate compat versions
    for architectures that changed their long double format, but is not
    defined as an alias using the normal macros since __clog10* are *not*
    public symbols for _FloatN / _FloatNx types.  For scalbn, scalbln and
    log1p, the changes adding errno setting support for those functions
    left compat symbols pointing directly to the non-errno-setting
    implementations.  There is no requirement for the compat symbols not
    to set errno; that just made for the simplest patches at that time.
    Now, with these common macros, it's natural to redirect the compat
    symbols to the errno-setting wrappers, which I intend to do in a
    separate patch.
    
    Tested for x86_64, and with build-many-glibcs.py.  For ldbl-opt
    platforms the stripped libm.so binaries are changed (disassembly
    unchanged) because the details of how the clog10l compat symbol is
    created mean it ceases to be weak as it was before; for other
    platforms, stripped libm.so binaries are unchanged.
    
    2017-09-13  Joseph Myers  <joseph@codesourcery.com>
    
    	* sysdeps/generic/libm-alias-double.h: New file.
    	* sysdeps/ieee754/ldbl-opt/libm-alias-double.h: Likewise.
    	* sysdeps/generic/math-type-macros-double.h: Include
    	<libm-alias-double.h>.
    	[declare_mgen_alias] (declare_mgen_alias): Define to use
    	libm_alias_double.
    	* sysdeps/generic/math-type-macros.h [!M_LIBM_NEED_COMPAT]
    	(M_LIBM_NEED_COMPAT): Remove macro.
    	[!M_LIBM_NEED_COMPAT] (declare_mgen_libm_compat): Likewise.
    	* sysdeps/ieee754/ldbl-opt/math-type-macros-double.h: Remove.
    	* math/cabs_template.c [M_LIBM_NEED_COMPAT]: Remove conditional
    	code.
    	* math/carg_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/cimag_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/conj_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/creal_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/s_cacos_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/s_cacosh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/s_casin_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/s_casinh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/s_catan_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/s_catanh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/s_ccos_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/s_ccosh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/s_cexp_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/s_clog10_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/s_clog_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/s_cpow_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/s_cproj_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/s_csin_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/s_csinh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/s_csqrt_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/s_ctan_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/s_ctanh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/s_fdim_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/s_fmax_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/s_fmin_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/s_nan_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* math/w_ilogb_template.c [M_LIBM_NEED_COMPAT]: Likewise.
    	* sysdeps/ieee754/ldbl-opt/s_clog10.c: New file.
    	* sysdeps/ieee754/ldbl-opt/s_ldexp.c (M_LIBM_NEED_COMPAT): Remove
    	macro.
    	(declare_mgen_alias): New macro.
    	* sysdeps/ieee754/ldbl-opt/w_log1p.c: New file.
    	* sysdeps/ieee754/ldbl-opt/w_scalbln.c: Likewise.
    	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c
    	(M_LIBM_NEED_COMPAT): Remove macro.
    	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c
    	[HAVE_AS_VIS3_SUPPORT]: Include <math_ldbl_opt.h> and
    	<first-versions.h>.
    	[HAVE_AS_VIS3_SUPPORT && LONG_DOUBLE_COMPAT (libm,
    	FIRST_VERSION_libm_fdiml)]: Define fdiml as compat symbol.

diff --git a/ChangeLog b/ChangeLog
index e77d24c..e7b77ce 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,58 @@
+2017-09-13  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/generic/libm-alias-double.h: New file.
+	* sysdeps/ieee754/ldbl-opt/libm-alias-double.h: Likewise.
+	* sysdeps/generic/math-type-macros-double.h: Include
+	<libm-alias-double.h>.
+	[declare_mgen_alias] (declare_mgen_alias): Define to use
+	libm_alias_double.
+	* sysdeps/generic/math-type-macros.h [!M_LIBM_NEED_COMPAT]
+	(M_LIBM_NEED_COMPAT): Remove macro.
+	[!M_LIBM_NEED_COMPAT] (declare_mgen_libm_compat): Likewise.
+	* sysdeps/ieee754/ldbl-opt/math-type-macros-double.h: Remove.
+	* math/cabs_template.c [M_LIBM_NEED_COMPAT]: Remove conditional
+	code.
+	* math/carg_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/cimag_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/conj_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/creal_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/s_cacos_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/s_cacosh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/s_casin_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/s_casinh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/s_catan_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/s_catanh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/s_ccos_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/s_ccosh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/s_cexp_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/s_clog10_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/s_clog_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/s_cpow_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/s_cproj_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/s_csin_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/s_csinh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/s_csqrt_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/s_ctan_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/s_ctanh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/s_fdim_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/s_fmax_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/s_fmin_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/s_nan_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* math/w_ilogb_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+	* sysdeps/ieee754/ldbl-opt/s_clog10.c: New file.
+	* sysdeps/ieee754/ldbl-opt/s_ldexp.c (M_LIBM_NEED_COMPAT): Remove
+	macro.
+	(declare_mgen_alias): New macro.
+	* sysdeps/ieee754/ldbl-opt/w_log1p.c: New file.
+	* sysdeps/ieee754/ldbl-opt/w_scalbln.c: Likewise.
+	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c
+	(M_LIBM_NEED_COMPAT): Remove macro.
+	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c
+	[HAVE_AS_VIS3_SUPPORT]: Include <math_ldbl_opt.h> and
+	<first-versions.h>.
+	[HAVE_AS_VIS3_SUPPORT && LONG_DOUBLE_COMPAT (libm,
+	FIRST_VERSION_libm_fdiml)]: Define fdiml as compat symbol.
+
 2017-09-12  Joseph Myers  <joseph@codesourcery.com>
 
 	* sysdeps/generic/math-type-macros.h [!declare_mgen_alias_2]
diff --git a/math/cabs_template.c b/math/cabs_template.c
index c9592c1..21b8506 100644
--- a/math/cabs_template.c
+++ b/math/cabs_template.c
@@ -27,7 +27,3 @@ M_DECL_FUNC (__cabs) (CFLOAT z)
 }
 
 declare_mgen_alias (__cabs, cabs)
-
-#if M_LIBM_NEED_COMPAT (cabs)
-declare_mgen_libm_compat (__cabs, cabs)
-#endif
diff --git a/math/carg_template.c b/math/carg_template.c
index 5d60663..9f7ad14 100644
--- a/math/carg_template.c
+++ b/math/carg_template.c
@@ -27,7 +27,3 @@ M_DECL_FUNC (__carg) (CFLOAT x)
 }
 
 declare_mgen_alias (__carg, carg)
-
-#if M_LIBM_NEED_COMPAT (carg)
-declare_mgen_libm_compat (__carg, carg)
-#endif
diff --git a/math/cimag_template.c b/math/cimag_template.c
index 6284b57..b24f001 100644
--- a/math/cimag_template.c
+++ b/math/cimag_template.c
@@ -26,7 +26,3 @@ M_DECL_FUNC (__cimag) (CFLOAT z)
 }
 
 declare_mgen_alias (__cimag, cimag)
-
-#if M_LIBM_NEED_COMPAT (cimag)
-declare_mgen_libm_compat (__cimag, cimag)
-#endif
diff --git a/math/conj_template.c b/math/conj_template.c
index b71f338..c21a1f1 100644
--- a/math/conj_template.c
+++ b/math/conj_template.c
@@ -26,7 +26,3 @@ M_DECL_FUNC (__conj) (CFLOAT z)
 }
 
 declare_mgen_alias (__conj, conj)
-
-#if M_LIBM_NEED_COMPAT (conj)
-declare_mgen_libm_compat (__conj, conj)
-#endif
diff --git a/math/creal_template.c b/math/creal_template.c
index c658966..8ccbe6f 100644
--- a/math/creal_template.c
+++ b/math/creal_template.c
@@ -26,7 +26,3 @@ M_DECL_FUNC (__creal) (CFLOAT z)
 }
 
 declare_mgen_alias (__creal, creal)
-
-#if M_LIBM_NEED_COMPAT (creal)
-declare_mgen_libm_compat (__creal, creal)
-#endif
diff --git a/math/s_cacos_template.c b/math/s_cacos_template.c
index 7629e55..29cac62 100644
--- a/math/s_cacos_template.c
+++ b/math/s_cacos_template.c
@@ -53,7 +53,3 @@ M_DECL_FUNC (__cacos) (CFLOAT x)
 }
 
 declare_mgen_alias (__cacos, cacos);
-
-#if M_LIBM_NEED_COMPAT (carg)
-declare_mgen_libm_compat (__cacos, cacos)
-#endif
diff --git a/math/s_cacosh_template.c b/math/s_cacosh_template.c
index 1fe0f4f..14f0b2a 100644
--- a/math/s_cacosh_template.c
+++ b/math/s_cacosh_template.c
@@ -90,7 +90,3 @@ M_DECL_FUNC (__cacosh) (CFLOAT x)
 }
 
 declare_mgen_alias (__cacosh, cacosh)
-
-#if M_LIBM_NEED_COMPAT (cacosh)
-declare_mgen_libm_compat (__cacosh, cacosh)
-#endif
diff --git a/math/s_casin_template.c b/math/s_casin_template.c
index faa2f6b..c61c880 100644
--- a/math/s_casin_template.c
+++ b/math/s_casin_template.c
@@ -61,7 +61,3 @@ M_DECL_FUNC (__casin) (CFLOAT x)
 }
 
 declare_mgen_alias (__casin, casin)
-
-#if M_LIBM_NEED_COMPAT (casin)
-declare_mgen_libm_compat (__casin, casin)
-#endif
diff --git a/math/s_casinh_template.c b/math/s_casinh_template.c
index 8d7cc5c..440e639 100644
--- a/math/s_casinh_template.c
+++ b/math/s_casinh_template.c
@@ -69,7 +69,3 @@ M_DECL_FUNC (__casinh) (CFLOAT x)
 }
 
 declare_mgen_alias (__casinh, casinh)
-
-#if M_LIBM_NEED_COMPAT (casinh)
-declare_mgen_libm_compat (__casinh, casinh)
-#endif
diff --git a/math/s_catan_template.c b/math/s_catan_template.c
index dce613f..2434870 100644
--- a/math/s_catan_template.c
+++ b/math/s_catan_template.c
@@ -139,7 +139,3 @@ M_DECL_FUNC (__catan) (CFLOAT x)
 }
 
 declare_mgen_alias (__catan, catan)
-
-#if M_LIBM_NEED_COMPAT (catan)
-declare_mgen_libm_compat (__catan, catan)
-#endif
diff --git a/math/s_catanh_template.c b/math/s_catanh_template.c
index 21e06f5..f4f5605 100644
--- a/math/s_catanh_template.c
+++ b/math/s_catanh_template.c
@@ -133,7 +133,3 @@ M_DECL_FUNC (__catanh) (CFLOAT x)
 }
 
 declare_mgen_alias (__catanh, catanh)
-
-#if M_LIBM_NEED_COMPAT (catanh)
-declare_mgen_libm_compat (__catanh, catanh)
-#endif
diff --git a/math/s_ccos_template.c b/math/s_ccos_template.c
index 01cbae3..6584450 100644
--- a/math/s_ccos_template.c
+++ b/math/s_ccos_template.c
@@ -34,7 +34,3 @@ M_DECL_FUNC (__ccos) (CFLOAT x)
 }
 
 declare_mgen_alias (__ccos, ccos);
-
-#if M_LIBM_NEED_COMPAT (carg)
-declare_mgen_libm_compat (__ccos, ccos)
-#endif
diff --git a/math/s_ccosh_template.c b/math/s_ccosh_template.c
index 1ee6014..d3ee8fc 100644
--- a/math/s_ccosh_template.c
+++ b/math/s_ccosh_template.c
@@ -135,7 +135,3 @@ M_DECL_FUNC (__ccosh) (CFLOAT x)
 }
 
 declare_mgen_alias (__ccosh, ccosh);
-
-#if M_LIBM_NEED_COMPAT (carg)
-declare_mgen_libm_compat (__ccosh, ccosh)
-#endif
diff --git a/math/s_cexp_template.c b/math/s_cexp_template.c
index b2c77c1..6290aca 100644
--- a/math/s_cexp_template.c
+++ b/math/s_cexp_template.c
@@ -148,7 +148,3 @@ M_DECL_FUNC (__cexp) (CFLOAT x)
   return retval;
 }
 declare_mgen_alias (__cexp, cexp)
-
-#if M_LIBM_NEED_COMPAT (cexp)
-declare_mgen_libm_compat (__cexp, cexp)
-#endif
diff --git a/math/s_clog10_template.c b/math/s_clog10_template.c
index 30d87b5..1b004d1 100644
--- a/math/s_clog10_template.c
+++ b/math/s_clog10_template.c
@@ -120,9 +120,3 @@ M_DECL_FUNC (__clog10) (CFLOAT x)
 }
 
 declare_mgen_alias (__clog10, clog10)
-
-#if M_LIBM_NEED_COMPAT (clog10)
-/* __clog10 is also a public symbol.  */
-declare_mgen_libm_compat (__clog10, __clog10)
-declare_mgen_libm_compat (clog10, clog10)
-#endif
diff --git a/math/s_clog_template.c b/math/s_clog_template.c
index feb801f..37746a0 100644
--- a/math/s_clog_template.c
+++ b/math/s_clog_template.c
@@ -113,7 +113,3 @@ M_DECL_FUNC (__clog) (CFLOAT x)
 }
 
 declare_mgen_alias (__clog, clog)
-
-#if M_LIBM_NEED_COMPAT (clog)
-declare_mgen_libm_compat (__clog, clog)
-#endif
diff --git a/math/s_cpow_template.c b/math/s_cpow_template.c
index 604d095..dd1d08d 100644
--- a/math/s_cpow_template.c
+++ b/math/s_cpow_template.c
@@ -27,7 +27,3 @@ M_DECL_FUNC (__cpow) (CFLOAT x, CFLOAT c)
 }
 
 declare_mgen_alias (__cpow, cpow)
-
-#if M_LIBM_NEED_COMPAT (cpow)
-declare_mgen_libm_compat (__cpow, cpow)
-#endif
diff --git a/math/s_cproj_template.c b/math/s_cproj_template.c
index 7f9e9f0..0ab2727 100644
--- a/math/s_cproj_template.c
+++ b/math/s_cproj_template.c
@@ -39,7 +39,3 @@ M_DECL_FUNC (__cproj) (CFLOAT x)
 }
 
 declare_mgen_alias (__cproj, cproj)
-
-#if M_LIBM_NEED_COMPAT (cproj)
-declare_mgen_libm_compat (__cproj, cproj)
-#endif
diff --git a/math/s_csin_template.c b/math/s_csin_template.c
index d52beb9..5a38bf7 100644
--- a/math/s_csin_template.c
+++ b/math/s_csin_template.c
@@ -159,7 +159,3 @@ M_DECL_FUNC (__csin) (CFLOAT x)
 }
 
 declare_mgen_alias (__csin, csin)
-
-#if M_LIBM_NEED_COMPAT (csin)
-declare_mgen_libm_compat (__csin, csin)
-#endif
diff --git a/math/s_csinh_template.c b/math/s_csinh_template.c
index d5ef5ae..ecea37c 100644
--- a/math/s_csinh_template.c
+++ b/math/s_csinh_template.c
@@ -154,7 +154,3 @@ M_DECL_FUNC (__csinh) (CFLOAT x)
 }
 
 declare_mgen_alias (__csinh, csinh)
-
-#if M_LIBM_NEED_COMPAT (csinh)
-declare_mgen_libm_compat (__csinh, csinh)
-#endif
diff --git a/math/s_csqrt_template.c b/math/s_csqrt_template.c
index 69cf77c..a94195a 100644
--- a/math/s_csqrt_template.c
+++ b/math/s_csqrt_template.c
@@ -158,7 +158,3 @@ M_DECL_FUNC (__csqrt) (CFLOAT x)
   return res;
 }
 declare_mgen_alias (__csqrt, csqrt)
-
-#if M_LIBM_NEED_COMPAT (csqrt)
-declare_mgen_libm_compat (__csqrt, csqrt)
-#endif
diff --git a/math/s_ctan_template.c b/math/s_ctan_template.c
index baf6030..723156e 100644
--- a/math/s_ctan_template.c
+++ b/math/s_ctan_template.c
@@ -124,7 +124,3 @@ M_DECL_FUNC (__ctan) (CFLOAT x)
 }
 
 declare_mgen_alias (__ctan, ctan)
-
-#if M_LIBM_NEED_COMPAT (ctan)
-declare_mgen_libm_compat (__ctan, ctan)
-#endif
diff --git a/math/s_ctanh_template.c b/math/s_ctanh_template.c
index 1c00d14..96873dd 100644
--- a/math/s_ctanh_template.c
+++ b/math/s_ctanh_template.c
@@ -124,7 +124,3 @@ M_DECL_FUNC (__ctanh) (CFLOAT x)
 }
 
 declare_mgen_alias (__ctanh, ctanh)
-
-#if M_LIBM_NEED_COMPAT (ctanh)
-declare_mgen_libm_compat (__ctanh, ctanh)
-#endif
diff --git a/math/s_fdim_template.c b/math/s_fdim_template.c
index 967777a..1fa4b7c 100644
--- a/math/s_fdim_template.c
+++ b/math/s_fdim_template.c
@@ -34,7 +34,3 @@ M_DECL_FUNC (__fdim) (FLOAT x, FLOAT y)
   return r;
 }
 declare_mgen_alias (__fdim, fdim);
-
-#if M_LIBM_NEED_COMPAT (fdim)
-declare_mgen_libm_compat (__fdim, fdim)
-#endif
diff --git a/math/s_fmax_template.c b/math/s_fmax_template.c
index 0471ab5..fe812c7 100644
--- a/math/s_fmax_template.c
+++ b/math/s_fmax_template.c
@@ -33,7 +33,3 @@ M_DECL_FUNC (__fmax) (FLOAT x, FLOAT y)
 }
 
 declare_mgen_alias (__fmax, fmax);
-
-#if M_LIBM_NEED_COMPAT (fmax)
-declare_mgen_libm_compat (__fmax, fmax)
-#endif
diff --git a/math/s_fmin_template.c b/math/s_fmin_template.c
index 5f81409..5e8460a 100644
--- a/math/s_fmin_template.c
+++ b/math/s_fmin_template.c
@@ -33,7 +33,3 @@ M_DECL_FUNC (__fmin) (FLOAT x, FLOAT y)
     return isnan (y) ? x : y;
 }
 declare_mgen_alias (__fmin, fmin);
-
-#if M_LIBM_NEED_COMPAT (fmin)
-declare_mgen_libm_compat (__fmin, fmin)
-#endif
diff --git a/math/s_nan_template.c b/math/s_nan_template.c
index 010dacb..80a9aea 100644
--- a/math/s_nan_template.c
+++ b/math/s_nan_template.c
@@ -31,7 +31,3 @@ M_DECL_FUNC (__nan) (const char *tagp)
 }
 
 declare_mgen_alias (__nan, nan)
-
-#if M_LIBM_NEED_COMPAT (nan)
-declare_mgen_libm_compat (__nan, nan)
-#endif
diff --git a/math/w_ilogb_template.c b/math/w_ilogb_template.c
index f18dd42..a611f00 100644
--- a/math/w_ilogb_template.c
+++ b/math/w_ilogb_template.c
@@ -36,7 +36,3 @@ M_DECL_FUNC (__ilogb) (FLOAT x)
   return r;
 }
 declare_mgen_alias (__ilogb, ilogb)
-
-#if M_LIBM_NEED_COMPAT (ilogb)
-declare_mgen_libm_compat (__ilogb, ilogb)
-#endif
diff --git a/sysdeps/generic/libm-alias-double.h b/sysdeps/generic/libm-alias-double.h
new file mode 100644
index 0000000..23b5990
--- /dev/null
+++ b/sysdeps/generic/libm-alias-double.h
@@ -0,0 +1,42 @@
+/* Define aliases for libm double functions.
+   Copyright (C) 2017 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
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _LIBM_ALIAS_DOUBLE_H
+#define _LIBM_ALIAS_DOUBLE_H
+
+/* Define aliases for a double libm function that has internal name
+   FROM ## R and public names TO ## suffix ## R for each suffix of a
+   supported floating-point type with the same format as double.  This
+   should only be used for functions where such public names exist for
+   _FloatN types, not for implementation-namespace exported names
+   (where there is one name per format, not per type) or for
+   obsolescent functions not provided for _FloatN types.  */
+#ifdef NO_LONG_DOUBLE
+# define libm_alias_double_r(from, to, r)	\
+  weak_alias (from ## r, to ## r)		\
+  strong_alias (from ## r, from ## l ## r)	\
+  weak_alias (from ## r, to ## l ## r)
+#else
+# define libm_alias_double_r(from, to, r)	\
+  weak_alias (from ## r, to ## r)
+#endif
+
+/* Likewise, but without the R suffix.  */
+#define libm_alias_double(from, to) libm_alias_double_r (from, to, )
+
+#endif
diff --git a/sysdeps/generic/math-type-macros-double.h b/sysdeps/generic/math-type-macros-double.h
index f2c1bb8..e978f90 100644
--- a/sysdeps/generic/math-type-macros-double.h
+++ b/sysdeps/generic/math-type-macros-double.h
@@ -27,14 +27,10 @@
 #define CFLOAT _Complex double
 #define M_STRTO_NAN __strtod_nan
 
-/* Machines without a distinct long double type
-   alias long double functions to their double
-   equivalent.  */
-#if defined NO_LONG_DOUBLE && !defined declare_mgen_alias
-# define declare_mgen_alias(from, to)	    \
-   weak_alias (from, to)		    \
-   strong_alias (from, from ## l)	    \
-   weak_alias (from, to ## l)
+#include <libm-alias-double.h>
+
+#ifndef declare_mgen_alias
+# define declare_mgen_alias(from, to) libm_alias_double (from, to)
 #endif
 
 /* Supply the generic macros.  */
diff --git a/sysdeps/generic/math-type-macros.h b/sysdeps/generic/math-type-macros.h
index 5656724..6aaa233 100644
--- a/sysdeps/generic/math-type-macros.h
+++ b/sysdeps/generic/math-type-macros.h
@@ -39,16 +39,7 @@
 
   declare_mgen_alias(from,to)
       This exposes the appropriate symbol(s) for a
-      function f of type FLOAT.
-
-  M_LIBM_NEED_COMPAT(func)
-      This is utilized in macro context to indicate
-      whether func should declare compat symbols.
-
-  declare_mgen_libm_compat(from,to)
-      This is used in conjunction with the above macro
-      outside of macro context to paste whatever is
-      required to generate a compat symbol. */
+      function f of type FLOAT.  */
 
 #ifndef M_PFX
 # error "M_PFX must be defined."
@@ -116,10 +107,4 @@
 # define declare_mgen_alias(from, to) weak_alias (M_SUF (from), M_SUF (to))
 #endif
 
-/* Do not generate anything for compat symbols by default.  */
-#ifndef M_LIBM_NEED_COMPAT
-# define M_LIBM_NEED_COMPAT(func) 0
-# define declare_mgen_libm_compat(from, to)
-#endif
-
 #endif /* _MATH_TYPE_MACROS */
diff --git a/sysdeps/ieee754/ldbl-opt/libm-alias-double.h b/sysdeps/ieee754/ldbl-opt/libm-alias-double.h
new file mode 100644
index 0000000..5ae4c8b
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/libm-alias-double.h
@@ -0,0 +1,44 @@
+/* Define aliases for libm double functions.  ldbl-opt version.
+   Copyright (C) 2017 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
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _LIBM_ALIAS_DOUBLE_H
+#define _LIBM_ALIAS_DOUBLE_H
+
+#include <math_ldbl_opt.h>
+#include <first-versions.h>
+#include <ldbl-compat-choose.h>
+
+/* Define aliases for a double libm function that has internal name
+   FROM ## R and public names TO ## suffix ## R for each suffix of a
+   supported floating-point type with the same format as double.  This
+   should only be used for functions where such public names exist for
+   _FloatN types, not for implementation-namespace exported names
+   (where there is one name per format, not per type) or for
+   obsolescent functions not provided for _FloatN types.  */
+#define libm_alias_double_r(from, to, r)			\
+  weak_alias (from ## r, to ## r)				\
+  LONG_DOUBLE_COMPAT_CHOOSE_libm_ ## to ## l ## r		\
+    (compat_symbol (libm,					\
+		    from ## r,					\
+		    to ## l ## r,				\
+		    FIRST_VERSION_libm_ ## to ## l ## r), );
+
+/* Likewise, but without the R suffix.  */
+#define libm_alias_double(from, to) libm_alias_double_r (from, to, )
+
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/math-type-macros-double.h b/sysdeps/ieee754/ldbl-opt/math-type-macros-double.h
deleted file mode 100644
index 67b5268..0000000
--- a/sysdeps/ieee754/ldbl-opt/math-type-macros-double.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Overrides for ldbl-opt versioning for double types.
-   Copyright (C) 2016-2017 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
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _MATH_TYPE_MACROS_DOUBLE
-
-#include <math_ldbl_opt.h>
-#include <first-versions.h>
-
-/* Define compat symbols for long double on platforms
-   where it was not always a distinct type.  */
-#if !defined M_LIBM_NEED_COMPAT
-# define M_LIBM_NEED_COMPAT(f) \
-  LONG_DOUBLE_COMPAT (libm, FIRST_VERSION_libm_ ## f ## l)
-#endif
-
-#if !defined declare_mgen_libm_compat
-# define declare_mgen_libm_compat(from, to)	      \
-  compat_symbol (libm, from, to ## l,		      \
-		 FIRST_VERSION_libm_ ## to ## l);
-#endif
-
-#include_next <math-type-macros-double.h>
-#endif
diff --git a/sysdeps/ieee754/ldbl-opt/s_ldexp.c b/sysdeps/ieee754/ldbl-opt/s_clog10.c
similarity index 65%
copy from sysdeps/ieee754/ldbl-opt/s_ldexp.c
copy to sysdeps/ieee754/ldbl-opt/s_clog10.c
index 809080a..ec52218 100644
--- a/sysdeps/ieee754/ldbl-opt/s_ldexp.c
+++ b/sysdeps/ieee754/ldbl-opt/s_clog10.c
@@ -1,6 +1,5 @@
-/* ldexp alias overrides for platforms where long double
-   was previously not unique.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+/* Define __clog10l compat symbol for clog10 for ldbl-opt.
+   Copyright (C) 2017 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
@@ -17,14 +16,13 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#define M_LIBM_NEED_COMPAT(f) 0
+#include <math_ldbl_opt.h>
+#include <first-versions.h>
 #include <math-type-macros-double.h>
-#include <s_ldexp_template.c>
 
-#if IS_IN (libm)
-# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
-compat_symbol (libm, __ldexp, ldexpl, GLIBC_2_0);
-# endif
-#elif LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
-compat_symbol (libc, __ldexp, ldexpl, GLIBC_2_0);
+#include <s_clog10_template.c>
+
+#if LONG_DOUBLE_COMPAT (libm, FIRST_VERSION_libm___clog10l)
+strong_alias (__clog10, __clog10l_alias)
+compat_symbol (libm, __clog10l_alias, __clog10l, FIRST_VERSION_libm___clog10l);
 #endif
diff --git a/sysdeps/ieee754/ldbl-opt/s_ldexp.c b/sysdeps/ieee754/ldbl-opt/s_ldexp.c
index 809080a..5a875ae 100644
--- a/sysdeps/ieee754/ldbl-opt/s_ldexp.c
+++ b/sysdeps/ieee754/ldbl-opt/s_ldexp.c
@@ -17,7 +17,7 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#define M_LIBM_NEED_COMPAT(f) 0
+#define declare_mgen_alias(from, to) weak_alias (from, to)
 #include <math-type-macros-double.h>
 #include <s_ldexp_template.c>
 
diff --git a/sysdeps/ieee754/ldbl-opt/w_log1p.c b/sysdeps/ieee754/ldbl-opt/w_log1p.c
new file mode 100644
index 0000000..ad05247
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/w_log1p.c
@@ -0,0 +1,3 @@
+#define declare_mgen_alias(from, to) weak_alias (from, to)
+#include <math-type-macros-double.h>
+#include <w_log1p_template.c>
diff --git a/sysdeps/ieee754/ldbl-opt/w_scalbln.c b/sysdeps/ieee754/ldbl-opt/w_scalbln.c
new file mode 100644
index 0000000..495169f
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/w_scalbln.c
@@ -0,0 +1,3 @@
+#define declare_mgen_alias(from, to) weak_alias (from, to)
+#include <math-type-macros-double.h>
+#include <w_scalbln_template.c>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c
index 8c3666d..daa477b 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c
@@ -20,6 +20,5 @@
 
 #define __fdim __fdim_vis3
 #define declare_mgen_alias(t, f)
-#define M_LIBM_NEED_COMPAT(f) 0
 
 #include <math/s_fdim.c>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c
index 417b869..ff3acd4 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c
@@ -17,6 +17,8 @@
    <http://www.gnu.org/licenses/>.  */
 
 #ifdef HAVE_AS_VIS3_SUPPORT
+# include <math_ldbl_opt.h>
+# include <first-versions.h>
 # include <sparc-ifunc.h>
 # include <math.h>
 
@@ -25,6 +27,9 @@ extern double __fdim_generic (double, double);
 
 sparc_libm_ifunc(__fdim, hwcap & HWCAP_SPARC_VIS3 ? __fdim_vis3 : __fdim_generic);
 weak_alias (__fdim, fdim)
+# if LONG_DOUBLE_COMPAT (libm, FIRST_VERSION_libm_fdiml)
+compat_symbol (libm, __fdim, fdiml, FIRST_VERSION_libm_fdiml);
+# endif
 
 # define __fdim __fdim_generic
 # define declare_mgen_alias(t, f)

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                          |   55 ++++++++++++++++++++
 math/cabs_template.c                               |    4 --
 math/carg_template.c                               |    4 --
 math/cimag_template.c                              |    4 --
 math/conj_template.c                               |    4 --
 math/creal_template.c                              |    4 --
 math/s_cacos_template.c                            |    4 --
 math/s_cacosh_template.c                           |    4 --
 math/s_casin_template.c                            |    4 --
 math/s_casinh_template.c                           |    4 --
 math/s_catan_template.c                            |    4 --
 math/s_catanh_template.c                           |    4 --
 math/s_ccos_template.c                             |    4 --
 math/s_ccosh_template.c                            |    4 --
 math/s_cexp_template.c                             |    4 --
 math/s_clog10_template.c                           |    6 --
 math/s_clog_template.c                             |    4 --
 math/s_cpow_template.c                             |    4 --
 math/s_cproj_template.c                            |    4 --
 math/s_csin_template.c                             |    4 --
 math/s_csinh_template.c                            |    4 --
 math/s_csqrt_template.c                            |    4 --
 math/s_ctan_template.c                             |    4 --
 math/s_ctanh_template.c                            |    4 --
 math/s_fdim_template.c                             |    4 --
 math/s_fmax_template.c                             |    4 --
 math/s_fmin_template.c                             |    4 --
 math/s_nan_template.c                              |    4 --
 math/w_ilogb_template.c                            |    4 --
 sysdeps/generic/libm-alias-double.h                |   42 +++++++++++++++
 sysdeps/generic/math-type-macros-double.h          |   12 ++---
 sysdeps/generic/math-type-macros.h                 |   17 +------
 sysdeps/ieee754/ldbl-opt/libm-alias-double.h       |   44 ++++++++++++++++
 sysdeps/ieee754/ldbl-opt/math-type-macros-double.h |   38 --------------
 sysdeps/ieee754/ldbl-opt/s_clog10.c                |   28 ++++++++++
 sysdeps/ieee754/ldbl-opt/s_ldexp.c                 |    2 +-
 sysdeps/ieee754/ldbl-opt/w_log1p.c                 |    3 +
 sysdeps/ieee754/ldbl-opt/w_scalbln.c               |    3 +
 .../sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c    |    1 -
 .../sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c   |    5 ++
 40 files changed, 186 insertions(+), 178 deletions(-)
 create mode 100644 sysdeps/generic/libm-alias-double.h
 create mode 100644 sysdeps/ieee754/ldbl-opt/libm-alias-double.h
 delete mode 100644 sysdeps/ieee754/ldbl-opt/math-type-macros-double.h
 create mode 100644 sysdeps/ieee754/ldbl-opt/s_clog10.c
 create mode 100644 sysdeps/ieee754/ldbl-opt/w_log1p.c
 create mode 100644 sysdeps/ieee754/ldbl-opt/w_scalbln.c


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]