glibc/sysdeps/ia64/fpu
Florian Weimer e88b9f0e5c stdio-common: Convert vfprintf and related functions to buffers
vfprintf is entangled with vfwprintf (of course), __printf_fp,
__printf_fphex, __vstrfmon_l_internal, and the strfrom family of
functions.  The latter use the internal snprintf functionality,
so vsnprintf is converted as well.

The simples conversion is __printf_fphex, followed by
__vstrfmon_l_internal and __printf_fp, and finally
__vfprintf_internal and __vfwprintf_internal.  __vsnprintf_internal
and strfrom* are mostly consuming the new interfaces, so they
are comparatively simple.

__printf_fp is a public symbol, so the FILE *-based interface
had to preserved.

The __printf_fp rewrite does not change the actual binary-to-decimal
conversion algorithm, and digits are still not emitted directly to
the target buffer.  However, the staging buffer now uses bytes
instead of wide characters, and one buffer copy is eliminated.

The changes are at least performance-neutral in my testing.
Floating point printing and snprintf improved measurably, so that
this Lua script

  for i=1,5000000 do
      print(i, i * math.pi)
  end

runs about 5% faster for me.  To preserve fprintf performance for
a simple "%d" format, this commit has some logic changes under
LABEL (unsigned_number) to avoid additional function calls.  There
are certainly some very easy performance improvements here: binary,
octal and hexadecimal formatting can easily avoid the temporary work
buffer (the number of digits can be computed ahead-of-time using one
of the __builtin_clz* built-ins). Decimal formatting can use a
specialized version of _itoa_word for base 10.

The existing (inconsistent) width handling between strfmon and printf
is preserved here.  __print_fp_buffer_1 would have to use
__translated_number_width to achieve ISO conformance for printf.

Test expectations in libio/tst-vtables-common.c are adjusted because
the internal staging buffer merges all virtual function calls into
one.

In general, stack buffer usage is greatly reduced, particularly for
unbuffered input streams.  __printf_fp can still use a large buffer
in binary128 mode for %g, though.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
2022-12-19 18:56:54 +01:00
..
branred.c
doasin.c
dosincos.c
e_acos.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_acosf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_acosh.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_acoshf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_acoshl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_acosl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_asin.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_asinf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_asinl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_atan2.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_atan2f.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_atan2l.c
e_atanh.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_atanhf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_atanhl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_cosh.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_coshf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_coshl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_exp2.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_exp2f.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_exp2l.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_exp10.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_exp10f.c ia64: Use generic exp10f 2020-06-19 12:08:52 -03:00
e_exp10l.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_exp_data.c Add new exp and exp2 implementations 2018-09-05 16:22:00 +01:00
e_exp.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_expf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_expl.c
e_fmod.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_fmodf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_fmodl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_gamma_r.c
e_gammaf_r.c
e_gammal_r.c
e_hypot.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_hypotf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_hypotl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_ilogbl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_lgamma_r.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_lgammaf_r.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_lgammal_r.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_log2_data.c Add new log2 implementation 2018-09-12 17:36:33 +01:00
e_log2.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_log2f_data.c New generic log2f 2017-09-29 17:17:41 +01:00
e_log2f.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_log2l.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_log10.c
e_log10f.c
e_log10l.c
e_log_data.c Add new log implementation 2018-09-12 17:33:30 +01:00
e_log.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_logf_data.c New generic logf 2017-09-29 11:46:46 +01:00
e_logf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_logl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_pow_log_data.c Add new pow implementation 2018-09-19 10:04:51 +01:00
e_pow.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_powf_log2_data.c New generic powf 2017-09-29 17:30:53 +01:00
e_powf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_powl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_rem_pio2l.c
e_remainder.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_remainderf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_remainderl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_scalb.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_scalbf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_scalbl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_sinh.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_sinhf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_sinhl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_sqrt.S Add narrowing square root functions 2021-09-10 20:56:22 +00:00
e_sqrtf128.c Add float128 support for ia64. 2017-06-26 22:50:45 +00:00
e_sqrtf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_sqrtl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
fclrexcpt.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fedisblxcpt.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
feenablxcpt.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fegetenv.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fegetexcept.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fegetmode.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fegetround.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
feholdexcpt.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fesetenv.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fesetexcept.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fesetmode.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fesetround.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
feupdateenv.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fgetexcptflg.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fraiseexcpt.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fsetexcptflg.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
ftestexcept.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
gen_import_file_list
get-rounding-mode.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
import_check grep: egrep -> grep -E, fgrep -> grep -F 2022-06-05 12:09:02 -07:00
import_diffs
import_file.awk
import_intel_libm
lgamma-compat.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
libc_libm_error.c
libm_cpu_defs.h Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
libm_error_codes.h Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
libm_error.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
libm_frexp4.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
libm_frexp4f.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
libm_frexp4l.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
libm_frexp.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
libm_frexpf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
libm_frexpl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
libm_lgamma.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
libm_lgammaf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
libm_lgammal.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
libm_reduce.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
libm_scalblnf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
libm_sincos_large.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
libm_sincos.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
libm_sincosf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
libm_sincosl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
libm_support.h Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
libm_tan.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
libm-symbols.h Add narrowing square root functions 2021-09-10 20:56:22 +00:00
libm-test-ulps ia64: Update ulps 2021-04-05 10:11:09 -03:00
libm-test-ulps-name Do not hardcode platform names in manual/libm-err-tab.pl (bug 14139). 2016-11-04 16:49:06 +00:00
Makefile
math_err.c Add new exp and exp2 implementations 2018-09-05 16:22:00 +01:00
math_ldbl.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
mpa.c
mpatan2.c
mpatan.c
mpsqrt.c
mptan.c
printf_fphex.c stdio-common: Convert vfprintf and related functions to buffers 2022-12-19 18:56:54 +01:00
README
s_asinh.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_asinhf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_asinhl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_atan.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_atanf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_atanl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_cbrt.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_cbrtf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_cbrtl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_ceil.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_ceilf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_ceill.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_cos.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_cosf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_cosl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_erf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_erfc.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_erfcf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_erfcl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_erff.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_erfl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_expm1.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_expm1f.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_expm1l.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_fdim.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_fdimf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_fdiml.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_finite.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
s_finitef.S
s_finitel.S
s_floor.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_floorf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_floorl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_fma.S Add narrowing fma functions 2021-09-22 21:25:31 +00:00
s_fmaf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_fmal.S Add narrowing fma functions 2021-09-22 21:25:31 +00:00
s_fmax.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_fmaxf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_fmaxl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_fpclassify.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
s_fpclassifyf.S
s_fpclassifyl.S
s_frexp.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_frexpf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_frexpl.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_ilogb.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_ilogbf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_isinf.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
s_isinff.S
s_isinfl.S
s_isnan.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
s_isnanf.S
s_isnanl.S
s_ldexp.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_ldexpf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_ldexpl.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_libm_ldexp.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_libm_ldexpf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_libm_ldexpl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_libm_scalbn.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_libm_scalbnf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_libm_scalbnl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_log1p.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_log1pf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_log1pl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_logb.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_logbf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_logbl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_matherrf.c Remove unnecessary math_private.h includes. 2018-09-28 21:53:33 +00:00
s_matherrl.c Remove unnecessary math_private.h includes. 2018-09-28 21:53:33 +00:00
s_modf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_modff.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_modfl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_nearbyint.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_nearbyintf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_nearbyintl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_nextafter.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_nextafterf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_nextafterl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_nexttoward.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_nexttowardf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_nexttowardl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_rint.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_rintf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_rintl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_round.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_roundf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_roundl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_scalblnf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_scalbn.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_scalbnf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_scalbnl.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_signbit.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
s_signbitf.S
s_signbitl.S
s_significand.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_significandf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_significandl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_sin.c
s_sincos.c
s_sincosf.c
s_sincosl.c
s_sinf.c
s_sinl.c
s_tan.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_tanf.S Cleanup encoding in comments 2021-12-13 10:01:45 +05:30
s_tanh.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_tanhf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_tanhl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_tanl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_trunc.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_truncf.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_truncl.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
sfp-machine.h Add some spaces before '('. 2019-02-27 13:55:45 +00:00
sincos32.c
Versions
w_acos_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_acos.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_acosf_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_acosf.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_acosh_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_acosh.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_acoshf_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_acoshf.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_acoshl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_acoshl.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_acosl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_acosl.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_asin_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_asin.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_asinf_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_asinf.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_asinl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_asinl.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_atan2_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_atan2.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_atan2f_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_atan2f.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_atan2l_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_atan2l.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_atanh_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_atanh.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_atanhf_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_atanhf.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_atanhl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_atanhl.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_cosh_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_cosh.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_coshf_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_coshf.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_coshl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_coshl.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_exp2_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_exp2.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_exp2f_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_exp2f.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_exp2l_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_exp2l.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_exp10_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_exp10.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_exp10l_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_exp10l.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_exp_compat.c Move w_exp to libm-compat-call-auto 2017-02-08 17:44:20 -02:00
w_exp.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_expf_compat.c Move w_exp to libm-compat-call-auto 2017-02-08 17:44:20 -02:00
w_expf.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_expl_compat.c Move w_exp to libm-compat-call-auto 2017-02-08 17:44:20 -02:00
w_expl.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_fmod_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_fmod.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_fmodf_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_fmodf.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_fmodl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_fmodl.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_hypot_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_hypot.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_hypotf_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_hypotf.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_hypotl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_hypotl.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_lgamma_main.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
w_lgamma_r_compat.c Move w_lgamma_r to libm-compat-calls-auto 2017-02-08 17:36:09 -02:00
w_lgamma_r.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_lgammaf_main.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
w_lgammaf_r_compat.c Move w_lgamma_r to libm-compat-calls-auto 2017-02-08 17:36:09 -02:00
w_lgammaf_r.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_lgammal_main.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
w_lgammal_r_compat.c Move w_lgamma_r to libm-compat-calls-auto 2017-02-08 17:36:09 -02:00
w_lgammal_r.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_log1p.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
w_log1pf.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
w_log1pl.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
w_log2_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_log2.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_log2f_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_log2f.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_log2l_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_log2l.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_log10_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_log10.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_log10f_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_log10f.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_log10l_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_log10l.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_log_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_log.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_logf_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_logf.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_logl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_logl.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_pow_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_pow.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_powf_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_powf.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_powl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_powl.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_remainder_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_remainder.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_remainderf_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_remainderf.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_remainderl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_remainderl.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_scalb_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_scalbf_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_scalbl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_scalblnf.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
w_sinh_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_sinh.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_sinhf_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_sinhf.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_sinhl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_sinhl.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_sqrt_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_sqrt.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_sqrtf_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_sqrtf.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_sqrtl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_sqrtl.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_tgamma_compat.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
w_tgamma.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_tgammaf_compat.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
w_tgammaf.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_tgammal_compat.S Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
w_tgammal.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00

  ----------------------------------------------------------
  Notes on how to update libm based on Intel's libm releases
  ----------------------------------------------------------

This source code in this directory is currently based on Intel libm
v2.1 as available from:

  http://www.intel.com/software/products/opensource/libraries/num.htm

To ease importing, fix some bugs, and simplify integration into libc,
it is also necessary to apply the patch at:

  ftp://ftp.hpl.hp.com/pub/linux-ia64/intel-libm-041228.diff.gz

The expectation is that Intel will integrate most if not all of these
changes into future releases of libm, so this patching step can
hopefully be omitted in the future.

Once the patched libm sources are extracted in a directory $LIBM, they
can be imported into the libc source tree at $LIBC with the following
step:

	$ cd $LIBC/src/sysdep/ia64/fpu
	$ ./import_intel_libm $LIBM

This should produce a number of "Importing..." messages, without
showing any errors.

At this point, you should be able to build glibc in the usual fashion.
We assume you do this in directory $OBJ.  Once the build has
completed, run "make check" to verify that all (math) checks succeed.
If these checks succeed, you should also run the following commands to
verify that the new libm doesn't pollute the name-space and has proper
size-info for the data objects:

	$ cd $LIBC/src/sysdep/ia64/fpu
	$ import_check $OBJ/math/

There should be no (unexpected) errors reported by this script.

As an optional step, you may also want to confirm that the new libm
exports the exact same global symbols as the old one.

If you want to see the changes introduced by the "import_intel_libm"
script, you can run the commands:

	$ cd $LIBC/src/sysdep/ia64/fpu
	$ import_diffs

That's it.