diff mbox series

Use libm_alias_double for ia64 [committed]

Message ID alpine.DEB.2.20.1711290123460.16480@digraph.polyomino.org.uk
State New
Headers show
Series Use libm_alias_double for ia64 [committed] | expand

Commit Message

Joseph Myers Nov. 29, 2017, 1:24 a.m. UTC
Continuing the preparation for additional _FloatN / _FloatNx function
aliases, this patch makes ia64 libm function implementations use
libm_alias_double to define function aliases.  The same approach is
followed as with the corresponding long double patch: the
ia64-specific macros are left unchanged, with calls to
libm_alias_double_other being added in most cases and
libm_alias_double itself being used in only a few places.

Tested with build-many-glibcs.py for ia64-linux-gnu that installed
stripped shared libraries are unchanged by the patch.  Committed.

2017-11-29  Joseph Myers  <joseph@codesourcery.com>

	* sysdeps/ia64/fpu/libm-symbols.h: Include <libm-alias-double.h>.
	* sysdeps/ia64/fpu/e_acos.S (acos): Use libm_alias_double_other.
	* sysdeps/ia64/fpu/e_acosh.S (acosh): Likewise.
	* sysdeps/ia64/fpu/e_asin.S (asin): Likewise.
	* sysdeps/ia64/fpu/e_atan2.S (atan2): Likewise.
	* sysdeps/ia64/fpu/e_atanh.S (atanh): Likewise.
	* sysdeps/ia64/fpu/e_cosh.S (cosh): Likewise.
	* sysdeps/ia64/fpu/e_exp.S (exp): Likewise.
	* sysdeps/ia64/fpu/e_exp10.S (exp10): Likewise.
	* sysdeps/ia64/fpu/e_exp2.S (exp2): Likewise.
	* sysdeps/ia64/fpu/e_fmod.S (fmod): Likewise.
	* sysdeps/ia64/fpu/e_hypot.S (hypot): Likewise.
	* sysdeps/ia64/fpu/e_lgamma_r.c (lgamma_r): Define using
	libm_alias_double_r.
	* sysdeps/ia64/fpu/e_log.S (log10): Use libm_alias_double_other.
	(log): Likewise.
	* sysdeps/ia64/fpu/e_log2.S (log2): Likewise.
	* sysdeps/ia64/fpu/e_pow.S (pow): Likewise.
	* sysdeps/ia64/fpu/e_remainder.S (remainder): Likewise.
	* sysdeps/ia64/fpu/e_sinh.S (sinh): Likewise.
	* sysdeps/ia64/fpu/e_sqrt.S (sqrt): Likewise.
	* sysdeps/ia64/fpu/libm_sincos.S (sincos): Likewise.
	* sysdeps/ia64/fpu/s_asinh.S (asinh): Likewise.
	* sysdeps/ia64/fpu/s_atan.S (atan): Likewise.
	* sysdeps/ia64/fpu/s_cbrt.S (cbrt): Likewise.
	* sysdeps/ia64/fpu/s_ceil.S (ceil): Likewise.
	* sysdeps/ia64/fpu/s_copysign.S (copysign): Define using
	libm_alias_double.
	* sysdeps/ia64/fpu/s_cos.S (sin): Use libm_alias_double_other.
	(cos): Likewise.
	* sysdeps/ia64/fpu/s_erf.S (erf): Likewise.
	* sysdeps/ia64/fpu/s_erfc.S (erfc): Likewise.
	* sysdeps/ia64/fpu/s_expm1.S (expm1): Likewise.
	* sysdeps/ia64/fpu/s_fabs.S (fabs): Likewise.
	* sysdeps/ia64/fpu/s_fdim.S (fdim): Likewise.
	* sysdeps/ia64/fpu/s_floor.S (floor): Likewise.
	* sysdeps/ia64/fpu/s_fma.S (fma): Likewise.
	* sysdeps/ia64/fpu/s_fmax.S (fmax): Likewise.
	* sysdeps/ia64/fpu/s_frexp.c (frexp): Likewise.
	* sysdeps/ia64/fpu/s_ldexp.c (ldexp): Likewise.
	* sysdeps/ia64/fpu/s_log1p.S (log1p): Likewise.
	* sysdeps/ia64/fpu/s_logb.S (logb): Likewise.
	* sysdeps/ia64/fpu/s_modf.S (modf): Likewise.
	* sysdeps/ia64/fpu/s_nearbyint.S (nearbyint): Likewise.
	* sysdeps/ia64/fpu/s_nextafter.S (nextafter): Likewise.
	* sysdeps/ia64/fpu/s_rint.S (rint): Likewise.
	* sysdeps/ia64/fpu/s_round.S (round): Likewise.
	* sysdeps/ia64/fpu/s_scalbn.c (scalbn): Define using
	libm_alias_double.
	* sysdeps/ia64/fpu/s_tan.S (tan): Use libm_alias_double_other.
	* sysdeps/ia64/fpu/s_tanh.S (tanh): Likewise.
	* sysdeps/ia64/fpu/s_trunc.S (trunc): Likewise.
	* sysdeps/ia64/fpu/w_lgamma_main.c
	[BUILD_LGAMMA && !USE_AS_COMPAT] (lgamma): Likewise.
	* sysdeps/ia64/fpu/w_tgamma_compat.S (tgamma): Likewise.
diff mbox series

Patch

diff --git a/sysdeps/ia64/fpu/e_acos.S b/sysdeps/ia64/fpu/e_acos.S
index c2b31ab..ad79016 100644
--- a/sysdeps/ia64/fpu/e_acos.S
+++ b/sysdeps/ia64/fpu/e_acos.S
@@ -822,6 +822,7 @@  acos_abs_gt_1:
 }
 ;;
 GLOBAL_LIBM_END(acos)
+libm_alias_double_other (acos, acos)
 
 
 
diff --git a/sysdeps/ia64/fpu/e_acosh.S b/sysdeps/ia64/fpu/e_acosh.S
index fb25fa0..f8c75e4 100644
--- a/sysdeps/ia64/fpu/e_acosh.S
+++ b/sysdeps/ia64/fpu/e_acosh.S
@@ -1139,6 +1139,7 @@  ACOSH_LESS_ONE:
 ;;
 
 GLOBAL_LIBM_END(acosh)
+libm_alias_double_other (acosh, acosh)
 
 
 LOCAL_LIBM_ENTRY(__libm_error_region)
diff --git a/sysdeps/ia64/fpu/e_asin.S b/sysdeps/ia64/fpu/e_asin.S
index f995c59..4de08e5 100644
--- a/sysdeps/ia64/fpu/e_asin.S
+++ b/sysdeps/ia64/fpu/e_asin.S
@@ -798,6 +798,7 @@  asin_abs_gt_1:
 }
 ;;
 GLOBAL_LIBM_END(asin)
+libm_alias_double_other (asin, asin)
 
 
 
diff --git a/sysdeps/ia64/fpu/e_atan2.S b/sysdeps/ia64/fpu/e_atan2.S
index 7a17fbf..1786794 100644
--- a/sysdeps/ia64/fpu/e_atan2.S
+++ b/sysdeps/ia64/fpu/e_atan2.S
@@ -985,6 +985,7 @@  ATAN2_ERROR:
 ;;
 }
 GLOBAL_IEEE754_END(atan2)
+libm_alias_double_other (__atan2, atan2)
 
 
 LOCAL_LIBM_ENTRY(__libm_error_region)
diff --git a/sysdeps/ia64/fpu/e_atanh.S b/sysdeps/ia64/fpu/e_atanh.S
index 4ae5ee6..45760af 100644
--- a/sysdeps/ia64/fpu/e_atanh.S
+++ b/sysdeps/ia64/fpu/e_atanh.S
@@ -1008,6 +1008,7 @@  atanh_ge_one:
 ;;
 
 GLOBAL_LIBM_END(atanh)
+libm_alias_double_other (atanh, atanh)
 
 
 LOCAL_LIBM_ENTRY(__libm_error_region)
diff --git a/sysdeps/ia64/fpu/e_cosh.S b/sysdeps/ia64/fpu/e_cosh.S
index 885456b..dbac180 100644
--- a/sysdeps/ia64/fpu/e_cosh.S
+++ b/sysdeps/ia64/fpu/e_cosh.S
@@ -811,6 +811,7 @@  COSH_UNORM:
 ;;
 
 GLOBAL_IEEE754_END(cosh)
+libm_alias_double_other (__cosh, cosh)
 
 
 LOCAL_LIBM_ENTRY(__libm_error_region)
diff --git a/sysdeps/ia64/fpu/e_exp.S b/sysdeps/ia64/fpu/e_exp.S
index f17bc26..c8cebeb 100644
--- a/sysdeps/ia64/fpu/e_exp.S
+++ b/sysdeps/ia64/fpu/e_exp.S
@@ -738,6 +738,7 @@  EXP_UNDERFLOW_ZERO:
 ;;
 
 GLOBAL_IEEE754_END(exp)
+libm_alias_double_other (__exp, exp)
 
 
 LOCAL_LIBM_ENTRY(__libm_error_region)
diff --git a/sysdeps/ia64/fpu/e_exp10.S b/sysdeps/ia64/fpu/e_exp10.S
index 7b07371..f12344b 100644
--- a/sysdeps/ia64/fpu/e_exp10.S
+++ b/sysdeps/ia64/fpu/e_exp10.S
@@ -536,6 +536,7 @@  OUT_RANGE_exp10:
 ;;
 
 GLOBAL_IEEE754_END(exp10)
+libm_alias_double_other (__exp10, exp10)
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)
 compat_symbol (libm, exp10, pow10, GLIBC_2_2)
 #endif
diff --git a/sysdeps/ia64/fpu/e_exp2.S b/sysdeps/ia64/fpu/e_exp2.S
index 54f652e..1871186 100644
--- a/sysdeps/ia64/fpu/e_exp2.S
+++ b/sysdeps/ia64/fpu/e_exp2.S
@@ -494,6 +494,7 @@  OUT_RANGE_exp2:
 ;;
 
 GLOBAL_LIBM_END(exp2)
+libm_alias_double_other (exp2, exp2)
 
 
 LOCAL_LIBM_ENTRY(__libm_error_region)
diff --git a/sysdeps/ia64/fpu/e_fmod.S b/sysdeps/ia64/fpu/e_fmod.S
index c29056e..3eaaf49 100644
--- a/sysdeps/ia64/fpu/e_fmod.S
+++ b/sysdeps/ia64/fpu/e_fmod.S
@@ -499,6 +499,7 @@  FMOD_Y_ZERO:
 }
 
 GLOBAL_IEEE754_END(fmod)
+libm_alias_double_other (__fmod, fmod)
 
 LOCAL_LIBM_ENTRY(__libm_error_region)
 .prologue
diff --git a/sysdeps/ia64/fpu/e_hypot.S b/sysdeps/ia64/fpu/e_hypot.S
index 146bb2f..34c2761 100644
--- a/sysdeps/ia64/fpu/e_hypot.S
+++ b/sysdeps/ia64/fpu/e_hypot.S
@@ -385,6 +385,7 @@  GLOBAL_IEEE754_ENTRY(hypot)
 (p9) br.ret.sptk b0;;
 }
 GLOBAL_IEEE754_END(hypot)
+libm_alias_double_other (__hypot, hypot)
 
 LOCAL_LIBM_ENTRY(__libm_error_region)
 .prologue
diff --git a/sysdeps/ia64/fpu/e_lgamma_r.c b/sysdeps/ia64/fpu/e_lgamma_r.c
index cb9efbf..8ae6df3 100644
--- a/sysdeps/ia64/fpu/e_lgamma_r.c
+++ b/sysdeps/ia64/fpu/e_lgamma_r.c
@@ -60,7 +60,7 @@  double __ieee754_lgamma_r(double x, int* signgam)
 {
     return __libm_lgamma(x, signgam, sizeof(*signgam));
 }
-weak_alias (__ieee754_lgamma_r, lgamma_r)
+libm_alias_double_r (__ieee754_lgamma, lgamma, _r)
 
 #ifndef _LIBC
 double __ieee754_gamma_r(double x, int* signgam)
diff --git a/sysdeps/ia64/fpu/e_log.S b/sysdeps/ia64/fpu/e_log.S
index 50eed95..0b63ec4 100644
--- a/sysdeps/ia64/fpu/e_log.S
+++ b/sysdeps/ia64/fpu/e_log.S
@@ -1386,6 +1386,7 @@  GLOBAL_IEEE754_ENTRY(log10)
       br.cond.sptk  log_log10_common
 };;
 GLOBAL_IEEE754_END(log10)
+libm_alias_double_other (__log10, log10)
 
 
 GLOBAL_IEEE754_ENTRY(log)
@@ -1668,6 +1669,7 @@  log_libm_err:
       nop.i         0
 };;
 GLOBAL_IEEE754_END(log)
+libm_alias_double_other (__log, log)
 
 
 LOCAL_LIBM_ENTRY(__libm_error_region)
diff --git a/sysdeps/ia64/fpu/e_log2.S b/sysdeps/ia64/fpu/e_log2.S
index c2b37a6..17893a2 100644
--- a/sysdeps/ia64/fpu/e_log2.S
+++ b/sysdeps/ia64/fpu/e_log2.S
@@ -654,6 +654,7 @@  SPECIAL_LOG2:
 }
 
 GLOBAL_LIBM_END(log2)
+libm_alias_double_other (log2, log2)
 
 
 LOCAL_LIBM_ENTRY(__libm_error_region)
diff --git a/sysdeps/ia64/fpu/e_pow.S b/sysdeps/ia64/fpu/e_pow.S
index 765f509..3b402f3 100644
--- a/sysdeps/ia64/fpu/e_pow.S
+++ b/sysdeps/ia64/fpu/e_pow.S
@@ -2234,6 +2234,7 @@  POW_OVER_UNDER_ERROR:
 ;;
 
 GLOBAL_LIBM_END(pow)
+libm_alias_double_other (pow, pow)
 
 
 LOCAL_LIBM_ENTRY(__libm_error_region)
diff --git a/sysdeps/ia64/fpu/e_remainder.S b/sysdeps/ia64/fpu/e_remainder.S
index 3cd5aac..acefe7b 100644
--- a/sysdeps/ia64/fpu/e_remainder.S
+++ b/sysdeps/ia64/fpu/e_remainder.S
@@ -529,6 +529,7 @@  EXP_ERROR_RETURN:
 }
 
 GLOBAL_IEEE754_END(remainder)
+libm_alias_double_other (__remainder, remainder)
 weak_alias (__remainder, drem)
 
 
diff --git a/sysdeps/ia64/fpu/e_sinh.S b/sysdeps/ia64/fpu/e_sinh.S
index f60907b..2167c78 100644
--- a/sysdeps/ia64/fpu/e_sinh.S
+++ b/sysdeps/ia64/fpu/e_sinh.S
@@ -850,6 +850,7 @@  SINH_UNORM:
 ;;
 
 GLOBAL_IEEE754_END(sinh)
+libm_alias_double_other (__sinh, sinh)
 
 
 LOCAL_LIBM_ENTRY(__libm_error_region)
diff --git a/sysdeps/ia64/fpu/e_sqrt.S b/sysdeps/ia64/fpu/e_sqrt.S
index da4e8cc..38d8a50 100644
--- a/sysdeps/ia64/fpu/e_sqrt.S
+++ b/sysdeps/ia64/fpu/e_sqrt.S
@@ -252,6 +252,7 @@  GLOBAL_IEEE754_ENTRY(sqrt)
 }
 // END DOUBLE PRECISION MINIMUM LATENCY SQUARE ROOT ALGORITHM
 GLOBAL_IEEE754_END(sqrt)
+libm_alias_double_other (__sqrt, sqrt)
 
 // Stack operations when calling error support.
 //       (1)               (2)                          (3) (call)              (4)
diff --git a/sysdeps/ia64/fpu/libm-symbols.h b/sysdeps/ia64/fpu/libm-symbols.h
index fbc8405..fe6451b 100644
--- a/sysdeps/ia64/fpu/libm-symbols.h
+++ b/sysdeps/ia64/fpu/libm-symbols.h
@@ -2,6 +2,7 @@ 
 # include <sysdep.h>
 # undef ret	/* get rid of the stupid "ret" macro; it breaks br.ret */
 
+# include <libm-alias-double.h>
 # include <libm-alias-ldouble.h>
 
 /* Support for compatible assembler handling.  */
diff --git a/sysdeps/ia64/fpu/libm_sincos.S b/sysdeps/ia64/fpu/libm_sincos.S
index c2a9f72..85ccd5f 100644
--- a/sysdeps/ia64/fpu/libm_sincos.S
+++ b/sysdeps/ia64/fpu/libm_sincos.S
@@ -425,6 +425,7 @@  GLOBAL_IEEE754_ENTRY(sincos)
       br.cond.sptk  _CIS_COMMON
 };;
 GLOBAL_IEEE754_END(sincos)
+libm_alias_double_other (__sincos, sincos)
 
 GLOBAL_LIBM_ENTRY(__libm_sincos)
 // cis_GR_sig_inv_pi_by_16 = significand of 16/pi
diff --git a/sysdeps/ia64/fpu/s_asinh.S b/sysdeps/ia64/fpu/s_asinh.S
index c5aaee7..b57c015 100644
--- a/sysdeps/ia64/fpu/s_asinh.S
+++ b/sysdeps/ia64/fpu/s_asinh.S
@@ -1135,3 +1135,4 @@  ASINH_UNORM:
 ;;
 
 GLOBAL_LIBM_END(asinh)
+libm_alias_double_other (asinh, asinh)
diff --git a/sysdeps/ia64/fpu/s_atan.S b/sysdeps/ia64/fpu/s_atan.S
index 720ecad..598b42a 100644
--- a/sysdeps/ia64/fpu/s_atan.S
+++ b/sysdeps/ia64/fpu/s_atan.S
@@ -751,3 +751,4 @@  GLOBAL_LIBM_ENTRY(atan)
 }
 
 GLOBAL_LIBM_END(atan)
+libm_alias_double_other (atan, atan)
diff --git a/sysdeps/ia64/fpu/s_cbrt.S b/sysdeps/ia64/fpu/s_cbrt.S
index 7a74ac1..7832123 100644
--- a/sysdeps/ia64/fpu/s_cbrt.S
+++ b/sysdeps/ia64/fpu/s_cbrt.S
@@ -765,3 +765,4 @@  GLOBAL_LIBM_ENTRY(cbrt)
 
 
 GLOBAL_LIBM_END(cbrt)
+libm_alias_double_other (cbrt, cbrt)
diff --git a/sysdeps/ia64/fpu/s_ceil.S b/sysdeps/ia64/fpu/s_ceil.S
index d1d2980..9380608 100644
--- a/sysdeps/ia64/fpu/s_ceil.S
+++ b/sysdeps/ia64/fpu/s_ceil.S
@@ -222,3 +222,4 @@  CEIL_UNORM:
 ;;
 
 GLOBAL_LIBM_END(ceil)
+libm_alias_double_other (ceil, ceil)
diff --git a/sysdeps/ia64/fpu/s_copysign.S b/sysdeps/ia64/fpu/s_copysign.S
index db62a57..5628a5d 100644
--- a/sysdeps/ia64/fpu/s_copysign.S
+++ b/sysdeps/ia64/fpu/s_copysign.S
@@ -32,6 +32,6 @@  strong_alias (__copysign, __libm_copysign)
 strong_alias (__copysign, __libm_copysignf)
 strong_alias (__copysign, __libm_copysignl)
 
-weak_alias (__copysign, copysign)
+libm_alias_double (__copysign, copysign)
 weak_alias (__copysignf, copysignf)
 libm_alias_ldouble (__copysign, copysign)
diff --git a/sysdeps/ia64/fpu/s_cos.S b/sysdeps/ia64/fpu/s_cos.S
index 5f5cdc1..1c54b7e 100644
--- a/sysdeps/ia64/fpu/s_cos.S
+++ b/sysdeps/ia64/fpu/s_cos.S
@@ -420,6 +420,7 @@  GLOBAL_IEEE754_ENTRY(sin)
 ;;
 
 GLOBAL_IEEE754_END(sin)
+libm_alias_double_other (__sin, sin)
 
 GLOBAL_IEEE754_ENTRY(cos)
 
@@ -707,6 +708,7 @@  _SINCOS_UNORM:
 };;
 
 GLOBAL_IEEE754_END(cos)
+libm_alias_double_other (__cos, cos)
 
 //////////// x >= 2^27 - large arguments routine call ////////////
 LOCAL_LIBM_ENTRY(__libm_callout_sincos)
diff --git a/sysdeps/ia64/fpu/s_erf.S b/sysdeps/ia64/fpu/s_erf.S
index 2ae2874..8e2355d 100644
--- a/sysdeps/ia64/fpu/s_erf.S
+++ b/sysdeps/ia64/fpu/s_erf.S
@@ -922,3 +922,4 @@  erf_denormal:
 ;;
 
 GLOBAL_LIBM_END(erf)
+libm_alias_double_other (erf, erf)
diff --git a/sysdeps/ia64/fpu/s_erfc.S b/sysdeps/ia64/fpu/s_erfc.S
index cd26545..95fa0ab 100644
--- a/sysdeps/ia64/fpu/s_erfc.S
+++ b/sysdeps/ia64/fpu/s_erfc.S
@@ -1136,6 +1136,7 @@  GLOBAL_LIBM_ENTRY(erfc)
 };;
 
 GLOBAL_LIBM_END(erfc)
+libm_alias_double_other (erfc, erfc)
 
 // call via (p15) br.cond.spnt   __libm_error_region
 //          for  x > ARG_ASYMP = 28.0
diff --git a/sysdeps/ia64/fpu/s_expm1.S b/sysdeps/ia64/fpu/s_expm1.S
index f0b911e..18d07e5 100644
--- a/sysdeps/ia64/fpu/s_expm1.S
+++ b/sysdeps/ia64/fpu/s_expm1.S
@@ -831,6 +831,7 @@  EXPM1_CERTAIN_MINUS_ONE:
 ;;
 
 GLOBAL_IEEE754_END(expm1)
+libm_alias_double_other (__expm1, expm1)
 
 
 LOCAL_LIBM_ENTRY(__libm_error_region)
diff --git a/sysdeps/ia64/fpu/s_fabs.S b/sysdeps/ia64/fpu/s_fabs.S
index 8bbdf9b..f168a04 100644
--- a/sysdeps/ia64/fpu/s_fabs.S
+++ b/sysdeps/ia64/fpu/s_fabs.S
@@ -80,3 +80,4 @@  GLOBAL_IEEE754_ENTRY(fabs)
 }
 
 GLOBAL_IEEE754_END(fabs)
+libm_alias_double_other (__fabs, fabs)
diff --git a/sysdeps/ia64/fpu/s_fdim.S b/sysdeps/ia64/fpu/s_fdim.S
index a6bdf1f..d962a7f 100644
--- a/sysdeps/ia64/fpu/s_fdim.S
+++ b/sysdeps/ia64/fpu/s_fdim.S
@@ -163,6 +163,7 @@  FDIM_OVERFLOW:
 ;;
 
 GLOBAL_LIBM_END(fdim)
+libm_alias_double_other (fdim, fdim)
 
 
 LOCAL_LIBM_ENTRY(__libm_error_region)
diff --git a/sysdeps/ia64/fpu/s_floor.S b/sysdeps/ia64/fpu/s_floor.S
index 9ed9d6d..35fa41b 100644
--- a/sysdeps/ia64/fpu/s_floor.S
+++ b/sysdeps/ia64/fpu/s_floor.S
@@ -214,3 +214,4 @@  FLOOR_UNORM:
 ;;
 
 GLOBAL_IEEE754_END(floor)
+libm_alias_double_other (__floor, floor)
diff --git a/sysdeps/ia64/fpu/s_fma.S b/sysdeps/ia64/fpu/s_fma.S
index 556f82a..49e8059 100644
--- a/sysdeps/ia64/fpu/s_fma.S
+++ b/sysdeps/ia64/fpu/s_fma.S
@@ -69,3 +69,4 @@  GLOBAL_LIBM_ENTRY(fma)
 ;;
 
 GLOBAL_LIBM_END(fma)
+libm_alias_double_other (fma, fma)
diff --git a/sysdeps/ia64/fpu/s_fmax.S b/sysdeps/ia64/fpu/s_fmax.S
index bf08974..a572451 100644
--- a/sysdeps/ia64/fpu/s_fmax.S
+++ b/sysdeps/ia64/fpu/s_fmax.S
@@ -112,3 +112,4 @@  GLOBAL_LIBM_ENTRY(fmax)
 ;;
 
 GLOBAL_LIBM_END(fmax)
+libm_alias_double_other (fmax, fmax)
diff --git a/sysdeps/ia64/fpu/s_frexp.c b/sysdeps/ia64/fpu/s_frexp.c
index 95421ea..43794ea 100644
--- a/sysdeps/ia64/fpu/s_frexp.c
+++ b/sysdeps/ia64/fpu/s_frexp.c
@@ -65,3 +65,4 @@  double frexp(double x, int *y)
 #endif
 
 }
+libm_alias_double_other (frexp, frexp)
diff --git a/sysdeps/ia64/fpu/s_ldexp.c b/sysdeps/ia64/fpu/s_ldexp.c
index 6cf0ffc..36e3a2d 100644
--- a/sysdeps/ia64/fpu/s_ldexp.c
+++ b/sysdeps/ia64/fpu/s_ldexp.c
@@ -59,3 +59,4 @@  double ldexp(double x, int n)
 #endif
 
 }
+libm_alias_double_other (ldexp, ldexp)
diff --git a/sysdeps/ia64/fpu/s_log1p.S b/sysdeps/ia64/fpu/s_log1p.S
index 94f9f87..02fa3ef 100644
--- a/sysdeps/ia64/fpu/s_log1p.S
+++ b/sysdeps/ia64/fpu/s_log1p.S
@@ -1047,6 +1047,7 @@  log_libm_err:
 ;;
 
 GLOBAL_IEEE754_END(log1p)
+libm_alias_double_other (__log1p, log1p)
 
 
 LOCAL_LIBM_ENTRY(__libm_error_region)
diff --git a/sysdeps/ia64/fpu/s_logb.S b/sysdeps/ia64/fpu/s_logb.S
index 7ee8987..c73db87 100644
--- a/sysdeps/ia64/fpu/s_logb.S
+++ b/sysdeps/ia64/fpu/s_logb.S
@@ -218,6 +218,7 @@  LOGB_ZERO:
 ;;
 
 GLOBAL_LIBM_END(logb)
+libm_alias_double_other (logb, logb)
 
 
 LOCAL_LIBM_ENTRY(__libm_error_region)
diff --git a/sysdeps/ia64/fpu/s_modf.S b/sysdeps/ia64/fpu/s_modf.S
index 4634acf..2b6ca8e 100644
--- a/sysdeps/ia64/fpu/s_modf.S
+++ b/sysdeps/ia64/fpu/s_modf.S
@@ -276,3 +276,4 @@  MODF_DENORM:
 }
 
 GLOBAL_LIBM_END(modf)
+libm_alias_double_other (modf, modf)
diff --git a/sysdeps/ia64/fpu/s_nearbyint.S b/sysdeps/ia64/fpu/s_nearbyint.S
index ec1ff22..91508e8 100644
--- a/sysdeps/ia64/fpu/s_nearbyint.S
+++ b/sysdeps/ia64/fpu/s_nearbyint.S
@@ -215,3 +215,4 @@  RINT_NOT_ROUND_NEAREST:
 ;;
 
 GLOBAL_LIBM_END(nearbyint)
+libm_alias_double_other (nearbyint, nearbyint)
diff --git a/sysdeps/ia64/fpu/s_nextafter.S b/sysdeps/ia64/fpu/s_nextafter.S
index 44a43c5..fa1d3f1 100644
--- a/sysdeps/ia64/fpu/s_nextafter.S
+++ b/sysdeps/ia64/fpu/s_nextafter.S
@@ -431,6 +431,7 @@  NEXT_OVERFLOW:
 ;;
 
 GLOBAL_LIBM_END(nextafter)
+libm_alias_double_other (nextafter, nextafter)
 
 
 LOCAL_LIBM_ENTRY(__libm_error_region)
diff --git a/sysdeps/ia64/fpu/s_rint.S b/sysdeps/ia64/fpu/s_rint.S
index 1735d9b..3a546d9 100644
--- a/sysdeps/ia64/fpu/s_rint.S
+++ b/sysdeps/ia64/fpu/s_rint.S
@@ -227,3 +227,4 @@  RINT_NOT_ROUND_NEAREST:
 ;;
 
 GLOBAL_IEEE754_END(rint)
+libm_alias_double_other (__rint, rint)
diff --git a/sysdeps/ia64/fpu/s_round.S b/sysdeps/ia64/fpu/s_round.S
index 8211875..03afb1b 100644
--- a/sysdeps/ia64/fpu/s_round.S
+++ b/sysdeps/ia64/fpu/s_round.S
@@ -231,3 +231,4 @@  ROUND_UNORM:
 ;;
 
 GLOBAL_LIBM_END(round)
+libm_alias_double_other (round, round)
diff --git a/sysdeps/ia64/fpu/s_scalbn.c b/sysdeps/ia64/fpu/s_scalbn.c
index 23e8d81..8bb7b2a 100644
--- a/sysdeps/ia64/fpu/s_scalbn.c
+++ b/sysdeps/ia64/fpu/s_scalbn.c
@@ -60,4 +60,4 @@  double __scalbn(double x, int n)
 
 }
 
-weak_alias (__scalbn, scalbn)
+libm_alias_double (__scalbn, scalbn)
diff --git a/sysdeps/ia64/fpu/s_tan.S b/sysdeps/ia64/fpu/s_tan.S
index 050b443..8305b8e 100644
--- a/sysdeps/ia64/fpu/s_tan.S
+++ b/sysdeps/ia64/fpu/s_tan.S
@@ -737,6 +737,7 @@  COMMON_PATH:
       br.ret.sptk    b0 ;;
 }
 GLOBAL_IEEE754_END(tan)
+libm_alias_double_other (__tan, tan)
 
 
 LOCAL_LIBM_ENTRY(__libm_callout)
diff --git a/sysdeps/ia64/fpu/s_tanh.S b/sysdeps/ia64/fpu/s_tanh.S
index 393af1f..56cc43d 100644
--- a/sysdeps/ia64/fpu/s_tanh.S
+++ b/sysdeps/ia64/fpu/s_tanh.S
@@ -982,3 +982,4 @@  _tanh_spec:
 };;
 
 GLOBAL_LIBM_END(tanh)
+libm_alias_double_other (tanh, tanh)
diff --git a/sysdeps/ia64/fpu/s_trunc.S b/sysdeps/ia64/fpu/s_trunc.S
index b9ad03b..e0aa3d3 100644
--- a/sysdeps/ia64/fpu/s_trunc.S
+++ b/sysdeps/ia64/fpu/s_trunc.S
@@ -164,3 +164,4 @@  TRUNC_UNORM:
 ;;
 
 GLOBAL_LIBM_END(trunc)
+libm_alias_double_other (trunc, trunc)
diff --git a/sysdeps/ia64/fpu/w_lgamma_main.c b/sysdeps/ia64/fpu/w_lgamma_main.c
index 3ad73b6..2fd6dd1 100644
--- a/sysdeps/ia64/fpu/w_lgamma_main.c
+++ b/sysdeps/ia64/fpu/w_lgamma_main.c
@@ -69,6 +69,7 @@  double LGFUNC (lgamma) (double x)
 compat_symbol (libm, __lgamma_compat, lgamma, LGAMMA_OLD_VER);
 # else
 versioned_symbol (libm, __ieee754_lgamma, lgamma, LGAMMA_NEW_VER);
+libm_alias_double_other (__ieee754_lgamma, lgamma)
 # endif
 # if GAMMA_ALIAS
 strong_alias (LGFUNC (lgamma), __ieee754_gamma)
diff --git a/sysdeps/ia64/fpu/w_tgamma_compat.S b/sysdeps/ia64/fpu/w_tgamma_compat.S
index 867815c..364c70f 100644
--- a/sysdeps/ia64/fpu/w_tgamma_compat.S
+++ b/sysdeps/ia64/fpu/w_tgamma_compat.S
@@ -1781,6 +1781,7 @@  tgamma_libm_err:
 };;
 
 GLOBAL_LIBM_END(tgamma)
+libm_alias_double_other (tgamma, tgamma)
 
 LOCAL_LIBM_ENTRY(__libm_error_region)
 .prologue