about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-09-05 23:35:55 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-09-05 23:35:55 +0000
commit4f3647e46e3f645c6516faa299efc6e89d520d7b (patch)
treeb2fb27343f3825d5da1c29ba173aa71fabcf24c1
parent05b38d64b1a3451d1fa10794b01dbc9bebe6a398 (diff)
downloadglibc-4f3647e46e3f645c6516faa299efc6e89d520d7b.tar.gz
glibc-4f3647e46e3f645c6516faa299efc6e89d520d7b.tar.xz
glibc-4f3647e46e3f645c6516faa299efc6e89d520d7b.zip
Prefer new libm function wrappers for !LIBM_SVID_COMPAT.
The initial obsoletion of SVID libm error handling left the old
wrappers and __kernel_standard still being used for new ports and
static linking, just with macro definitions of _LIB_VERSION and
matherr that meant symbols with those names were never actually used
and the code for different error handling variants could be optimized
out.

This patch cleans things up further by eliminating the
__kernel_standard use for new ports and static linking.  Now, the old
wrappers no longer generate any code in the !LIBM_SVID_COMPAT case,
while the new errno-only wrappers that were added for float128 support
are now also used for float, double and long double in that case.

The changes are generally straightforward.  The w_scalb*_compat
wrappers continue to be used (scalb is obsolescent in the sense of not
being supported for float128, but is present in supported standards -
the 2001 edition of POSIX and earlier XSI versions - so remains
supported for static linking and new ports, as do the float and long
double variants that are existing GNU extensions).  Those wrappers
would only call __kernel_standard in the _LIB_VERSION == _SVID_ case.
Since we would like to be able to compile most of glibc without
optimization, relying on a static function whose only use is under an
if (0) condition being optimized away to avoid an undefined
__kernel_standard reference may not be a good idea.  Thus, the
relevant code in the scalb wrappers has LIBM_SVID_COMPAT conditionals
added to guarantee it's not built at all in the case where
__kernel_standard does not exist.

Just as i386 has its own w_sqrt_compat.c, so w_sqrt.c is also added.
ia64 gets dummy w_*.c to prevent those files being built where they
would conflict with the ia64 libm, as with its existing w_*_compat.c.

Conditions disabling code for !LIBM_SVID_COMPAT are needed in both the
math/ wrappers and in the long double wrappers in ldbl-opt (to avoid
them setting up aliases and symbol versions for undefined symbols).  I
hope that future cleanups to how libm function aliases and symbol
versioning are done will eliminate the need for most of the ldbl-opt
wrappers.

Tested for x86_64 and x86, and with build-many-glibcs.py.

	* sysdeps/generic/math-type-macros-double.h: Include
	<math-svid-compat.h>.
	(__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT.
	* sysdeps/generic/math-type-macros-float.h: Include
	<math-svid-compat.h>.
	(__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT.
	* sysdeps/generic/math-type-macros-ldouble.h: Include
	<math-svid-compat.h>.
	(__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT.
	* math/lgamma-compat.h (BUILD_LGAMMA): Include LIBM_SVID_COMPAT
	condition.
	* math/w_acos_compat.c: Condition contents on [LIBM_SVID_COMPAT].
	* math/w_acosf_compat.c: Likewise.
	* math/w_acosh_compat.c: Likewise.
	* math/w_acoshf_compat.c: Likewise.
	* math/w_acoshl_compat.c: Likewise.
	* math/w_acosl_compat.c: Likewise.
	* math/w_asin_compat.c: Likewise.
	* math/w_asinf_compat.c: Likewise.
	* math/w_asinl_compat.c: Likewise.
	* math/w_atan2_compat.c: Likewise.
	* math/w_atan2f_compat.c: Likewise.
	* math/w_atan2l_compat.c: Likewise.
	* math/w_atanh_compat.c: Likewise.
	* math/w_atanhf_compat.c: Likewise.
	* math/w_atanhl_compat.c: Likewise.
	* math/w_cosh_compat.c: Likewise.
	* math/w_coshf_compat.c: Likewise.
	* math/w_coshl_compat.c: Likewise.
	* math/w_exp10_compat.c: Likewise.
	* math/w_exp10f_compat.c: Likewise.
	* math/w_exp10l_compat.c: Likewise.
	* math/w_exp2_compat.c: Likewise.
	* math/w_exp2f_compat.c: Likewise.
	* math/w_exp2l_compat.c: Likewise.
	* math/w_fmod_compat.c: Likewise.
	* math/w_fmodf_compat.c: Likewise.
	* math/w_fmodl_compat.c: Likewise.
	* math/w_hypot_compat.c: Likewise.
	* math/w_hypotf_compat.c: Likewise.
	* math/w_hypotl_compat.c: Likewise.
	* math/w_j0_compat.c: Likewise.
	* math/w_j0f_compat.c: Likewise.
	* math/w_j0l_compat.c: Likewise.
	* math/w_j1_compat.c: Likewise.
	* math/w_j1f_compat.c: Likewise.
	* math/w_j1l_compat.c: Likewise.
	* math/w_jn_compat.c: Likewise.
	* math/w_jnf_compat.c: Likewise.
	* math/w_jnl_compat.c: Likewise.
	* math/w_lgamma_r_compat.c: Likewise.
	* math/w_lgammaf_r_compat.c: Likewise.
	* math/w_lgammal_r_compat.c: Likewise.
	* math/w_log10_compat.c: Likewise.
	* math/w_log10f_compat.c: Likewise.
	* math/w_log10l_compat.c: Likewise.
	* math/w_log2_compat.c: Likewise.
	* math/w_log2f_compat.c: Likewise.
	* math/w_log2l_compat.c: Likewise.
	* math/w_log_compat.c: Likewise.
	* math/w_logf_compat.c: Likewise.
	* math/w_logl_compat.c: Likewise.
	* math/w_pow_compat.c: Likewise.
	* math/w_powf_compat.c: Likewise.
	* math/w_powl_compat.c: Likewise.
	* math/w_remainder_compat.c: Likewise.
	* math/w_remainderf_compat.c: Likewise.
	* math/w_remainderl_compat.c: Likewise.
	* math/w_sinh_compat.c: Likewise.
	* math/w_sinhf_compat.c: Likewise.
	* math/w_sinhl_compat.c: Likewise.
	* math/w_sqrt_compat.c: Likewise.
	* math/w_sqrtf_compat.c: Likewise.
	* math/w_sqrtl_compat.c: Likewise.
	* math/w_tgamma_compat.c: Likewise.
	* math/w_tgammaf_compat.c: Likewise.
	* math/w_tgammal_compat.c: Likewise.
	* math/w_scalb_compat.c (sysv_scalb): Condition definition on
	[LIBM_SVID_COMPAT].
	(__scalb): Condition call to sysv_scalb on [LIBM_SVID_COMPAT].
	* math/w_scalbf_compat.c (sysv_scalbf): Condition definition on
	[LIBM_SVID_COMPAT].
	(__scalbf): Condition call to sysv_scalbf on [LIBM_SVID_COMPAT].
	* math/w_scalbl_compat.c (sysv_scalbl): Condition definition on
	[LIBM_SVID_COMPAT].
	(__scalbl): Condition call to sysv_scalbl on [LIBM_SVID_COMPAT].
	* sysdeps/i386/fpu/w_sqrt.c: New file.
	* sysdeps/ia64/fpu/w_acos.c: Likewise.
	* sysdeps/ia64/fpu/w_acosf.c: Likewise.
	* sysdeps/ia64/fpu/w_acosh.c: Likewise.
	* sysdeps/ia64/fpu/w_acoshf.c: Likewise.
	* sysdeps/ia64/fpu/w_acoshl.c: Likewise.
	* sysdeps/ia64/fpu/w_acosl.c: Likewise.
	* sysdeps/ia64/fpu/w_asin.c: Likewise.
	* sysdeps/ia64/fpu/w_asinf.c: Likewise.
	* sysdeps/ia64/fpu/w_asinl.c: Likewise.
	* sysdeps/ia64/fpu/w_atan2.c: Likewise.
	* sysdeps/ia64/fpu/w_atan2f.c: Likewise.
	* sysdeps/ia64/fpu/w_atan2l.c: Likewise.
	* sysdeps/ia64/fpu/w_atanh.c: Likewise.
	* sysdeps/ia64/fpu/w_atanhf.c: Likewise.
	* sysdeps/ia64/fpu/w_atanhl.c: Likewise.
	* sysdeps/ia64/fpu/w_cosh.c: Likewise.
	* sysdeps/ia64/fpu/w_coshf.c: Likewise.
	* sysdeps/ia64/fpu/w_coshl.c: Likewise.
	* sysdeps/ia64/fpu/w_exp.c: Likewise.
	* sysdeps/ia64/fpu/w_exp10.c: Likewise.
	* sysdeps/ia64/fpu/w_exp10f.c: Likewise.
	* sysdeps/ia64/fpu/w_exp10l.c: Likewise.
	* sysdeps/ia64/fpu/w_exp2.c: Likewise.
	* sysdeps/ia64/fpu/w_exp2f.c: Likewise.
	* sysdeps/ia64/fpu/w_exp2l.c: Likewise.
	* sysdeps/ia64/fpu/w_expf.c: Likewise.
	* sysdeps/ia64/fpu/w_expl.c: Likewise.
	* sysdeps/ia64/fpu/w_fmod.c: Likewise.
	* sysdeps/ia64/fpu/w_fmodf.c: Likewise.
	* sysdeps/ia64/fpu/w_fmodl.c: Likewise.
	* sysdeps/ia64/fpu/w_hypot.c: Likewise.
	* sysdeps/ia64/fpu/w_hypotf.c: Likewise.
	* sysdeps/ia64/fpu/w_hypotl.c: Likewise.
	* sysdeps/ia64/fpu/w_lgamma_r.c: Likewise.
	* sysdeps/ia64/fpu/w_lgammaf_r.c: Likewise.
	* sysdeps/ia64/fpu/w_lgammal_r.c: Likewise.
	* sysdeps/ia64/fpu/w_log.c: Likewise.
	* sysdeps/ia64/fpu/w_log10.c: Likewise.
	* sysdeps/ia64/fpu/w_log10f.c: Likewise.
	* sysdeps/ia64/fpu/w_log10l.c: Likewise.
	* sysdeps/ia64/fpu/w_log2.c: Likewise.
	* sysdeps/ia64/fpu/w_log2f.c: Likewise.
	* sysdeps/ia64/fpu/w_log2l.c: Likewise.
	* sysdeps/ia64/fpu/w_logf.c: Likewise.
	* sysdeps/ia64/fpu/w_logl.c: Likewise.
	* sysdeps/ia64/fpu/w_pow.c: Likewise.
	* sysdeps/ia64/fpu/w_powf.c: Likewise.
	* sysdeps/ia64/fpu/w_powl.c: Likewise.
	* sysdeps/ia64/fpu/w_remainder.c: Likewise.
	* sysdeps/ia64/fpu/w_remainderf.c: Likewise.
	* sysdeps/ia64/fpu/w_remainderl.c: Likewise.
	* sysdeps/ia64/fpu/w_sinh.c: Likewise.
	* sysdeps/ia64/fpu/w_sinhf.c: Likewise.
	* sysdeps/ia64/fpu/w_sinhl.c: Likewise.
	* sysdeps/ia64/fpu/w_sqrt.c: Likewise.
	* sysdeps/ia64/fpu/w_sqrtf.c: Likewise.
	* sysdeps/ia64/fpu/w_sqrtl.c: Likewise.
	* sysdeps/ia64/fpu/w_tgamma.c: Likewise.
	* sysdeps/ia64/fpu/w_tgammaf.c: Likewise.
	* sysdeps/ia64/fpu/w_tgammal.c: Likewise.
	* sysdeps/ieee754/dbl-64/w_exp_compat.c: Condition contents on
	[LIBM_SVID_COMPAT].
	* sysdeps/ieee754/flt-32/w_expf_compat.c: Likewise.
	* sysdeps/ieee754/k_standard.c: Likewise.
	* sysdeps/ieee754/k_standardf.c: Likewise.
	* sysdeps/ieee754/k_standardl.c: Likewise.
	* sysdeps/ieee754/ldbl-128/w_expl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-96/w_expl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-64-128/w_expl_compat.c: Condition
	long_double_symbol call on [LIBM_SVID_COMPAT].
	* sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_acosl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_asinl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_coshl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_j0l_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_j1l_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_jnl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_log10l_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_log2l_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_logl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_powl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c: Condition
	long_double_symbol and compat_symbol calls on [LIBM_SVID_COMPAT].
-rw-r--r--ChangeLog183
-rw-r--r--math/lgamma-compat.h3
-rw-r--r--math/w_acos_compat.c4
-rw-r--r--math/w_acosf_compat.c2
-rw-r--r--math/w_acosh_compat.c4
-rw-r--r--math/w_acoshf_compat.c2
-rw-r--r--math/w_acoshl_compat.c2
-rw-r--r--math/w_acosl_compat.c2
-rw-r--r--math/w_asin_compat.c4
-rw-r--r--math/w_asinf_compat.c2
-rw-r--r--math/w_asinl_compat.c2
-rw-r--r--math/w_atan2_compat.c4
-rw-r--r--math/w_atan2f_compat.c2
-rw-r--r--math/w_atan2l_compat.c2
-rw-r--r--math/w_atanh_compat.c4
-rw-r--r--math/w_atanhf_compat.c2
-rw-r--r--math/w_atanhl_compat.c2
-rw-r--r--math/w_cosh_compat.c4
-rw-r--r--math/w_coshf_compat.c2
-rw-r--r--math/w_coshl_compat.c2
-rw-r--r--math/w_exp10_compat.c10
-rw-r--r--math/w_exp10f_compat.c4
-rw-r--r--math/w_exp10l_compat.c4
-rw-r--r--math/w_exp2_compat.c4
-rw-r--r--math/w_exp2f_compat.c2
-rw-r--r--math/w_exp2l_compat.c2
-rw-r--r--math/w_fmod_compat.c4
-rw-r--r--math/w_fmodf_compat.c2
-rw-r--r--math/w_fmodl_compat.c2
-rw-r--r--math/w_hypot_compat.c4
-rw-r--r--math/w_hypotf_compat.c2
-rw-r--r--math/w_hypotl_compat.c2
-rw-r--r--math/w_j0_compat.c8
-rw-r--r--math/w_j0f_compat.c2
-rw-r--r--math/w_j0l_compat.c2
-rw-r--r--math/w_j1_compat.c8
-rw-r--r--math/w_j1f_compat.c2
-rw-r--r--math/w_j1l_compat.c2
-rw-r--r--math/w_jn_compat.c8
-rw-r--r--math/w_jnf_compat.c2
-rw-r--r--math/w_jnl_compat.c14
-rw-r--r--math/w_lgamma_r_compat.c4
-rw-r--r--math/w_lgammaf_r_compat.c2
-rw-r--r--math/w_lgammal_r_compat.c2
-rw-r--r--math/w_log10_compat.c4
-rw-r--r--math/w_log10f_compat.c2
-rw-r--r--math/w_log10l_compat.c2
-rw-r--r--math/w_log2_compat.c4
-rw-r--r--math/w_log2f_compat.c2
-rw-r--r--math/w_log2l_compat.c2
-rw-r--r--math/w_log_compat.c4
-rw-r--r--math/w_logf_compat.c2
-rw-r--r--math/w_logl_compat.c2
-rw-r--r--math/w_pow_compat.c4
-rw-r--r--math/w_powf_compat.c2
-rw-r--r--math/w_powl_compat.c2
-rw-r--r--math/w_remainder_compat.c4
-rw-r--r--math/w_remainderf_compat.c2
-rw-r--r--math/w_remainderl_compat.c2
-rw-r--r--math/w_scalb_compat.c4
-rw-r--r--math/w_scalbf_compat.c4
-rw-r--r--math/w_scalbl_compat.c4
-rw-r--r--math/w_sinh_compat.c4
-rw-r--r--math/w_sinhf_compat.c2
-rw-r--r--math/w_sinhl_compat.c2
-rw-r--r--math/w_sqrt_compat.c4
-rw-r--r--math/w_sqrtf_compat.c2
-rw-r--r--math/w_sqrtl_compat.c2
-rw-r--r--math/w_tgamma_compat.c4
-rw-r--r--math/w_tgammaf_compat.c2
-rw-r--r--math/w_tgammal_compat.c2
-rw-r--r--sysdeps/generic/math-type-macros-double.h6
-rw-r--r--sysdeps/generic/math-type-macros-float.h6
-rw-r--r--sysdeps/generic/math-type-macros-ldouble.h6
-rw-r--r--sysdeps/i386/fpu/w_sqrt.c9
-rw-r--r--sysdeps/ia64/fpu/w_acos.c1
-rw-r--r--sysdeps/ia64/fpu/w_acosf.c1
-rw-r--r--sysdeps/ia64/fpu/w_acosh.c1
-rw-r--r--sysdeps/ia64/fpu/w_acoshf.c1
-rw-r--r--sysdeps/ia64/fpu/w_acoshl.c1
-rw-r--r--sysdeps/ia64/fpu/w_acosl.c1
-rw-r--r--sysdeps/ia64/fpu/w_asin.c1
-rw-r--r--sysdeps/ia64/fpu/w_asinf.c1
-rw-r--r--sysdeps/ia64/fpu/w_asinl.c1
-rw-r--r--sysdeps/ia64/fpu/w_atan2.c1
-rw-r--r--sysdeps/ia64/fpu/w_atan2f.c1
-rw-r--r--sysdeps/ia64/fpu/w_atan2l.c1
-rw-r--r--sysdeps/ia64/fpu/w_atanh.c1
-rw-r--r--sysdeps/ia64/fpu/w_atanhf.c1
-rw-r--r--sysdeps/ia64/fpu/w_atanhl.c1
-rw-r--r--sysdeps/ia64/fpu/w_cosh.c1
-rw-r--r--sysdeps/ia64/fpu/w_coshf.c1
-rw-r--r--sysdeps/ia64/fpu/w_coshl.c1
-rw-r--r--sysdeps/ia64/fpu/w_exp.c1
-rw-r--r--sysdeps/ia64/fpu/w_exp10.c1
-rw-r--r--sysdeps/ia64/fpu/w_exp10f.c1
-rw-r--r--sysdeps/ia64/fpu/w_exp10l.c1
-rw-r--r--sysdeps/ia64/fpu/w_exp2.c1
-rw-r--r--sysdeps/ia64/fpu/w_exp2f.c1
-rw-r--r--sysdeps/ia64/fpu/w_exp2l.c1
-rw-r--r--sysdeps/ia64/fpu/w_expf.c1
-rw-r--r--sysdeps/ia64/fpu/w_expl.c1
-rw-r--r--sysdeps/ia64/fpu/w_fmod.c1
-rw-r--r--sysdeps/ia64/fpu/w_fmodf.c1
-rw-r--r--sysdeps/ia64/fpu/w_fmodl.c1
-rw-r--r--sysdeps/ia64/fpu/w_hypot.c1
-rw-r--r--sysdeps/ia64/fpu/w_hypotf.c1
-rw-r--r--sysdeps/ia64/fpu/w_hypotl.c1
-rw-r--r--sysdeps/ia64/fpu/w_lgamma_r.c1
-rw-r--r--sysdeps/ia64/fpu/w_lgammaf_r.c1
-rw-r--r--sysdeps/ia64/fpu/w_lgammal_r.c1
-rw-r--r--sysdeps/ia64/fpu/w_log.c1
-rw-r--r--sysdeps/ia64/fpu/w_log10.c1
-rw-r--r--sysdeps/ia64/fpu/w_log10f.c1
-rw-r--r--sysdeps/ia64/fpu/w_log10l.c1
-rw-r--r--sysdeps/ia64/fpu/w_log2.c1
-rw-r--r--sysdeps/ia64/fpu/w_log2f.c1
-rw-r--r--sysdeps/ia64/fpu/w_log2l.c1
-rw-r--r--sysdeps/ia64/fpu/w_logf.c1
-rw-r--r--sysdeps/ia64/fpu/w_logl.c1
-rw-r--r--sysdeps/ia64/fpu/w_pow.c1
-rw-r--r--sysdeps/ia64/fpu/w_powf.c1
-rw-r--r--sysdeps/ia64/fpu/w_powl.c1
-rw-r--r--sysdeps/ia64/fpu/w_remainder.c1
-rw-r--r--sysdeps/ia64/fpu/w_remainderf.c1
-rw-r--r--sysdeps/ia64/fpu/w_remainderl.c1
-rw-r--r--sysdeps/ia64/fpu/w_sinh.c1
-rw-r--r--sysdeps/ia64/fpu/w_sinhf.c1
-rw-r--r--sysdeps/ia64/fpu/w_sinhl.c1
-rw-r--r--sysdeps/ia64/fpu/w_sqrt.c1
-rw-r--r--sysdeps/ia64/fpu/w_sqrtf.c1
-rw-r--r--sysdeps/ia64/fpu/w_sqrtl.c1
-rw-r--r--sysdeps/ia64/fpu/w_tgamma.c1
-rw-r--r--sysdeps/ia64/fpu/w_tgammaf.c1
-rw-r--r--sysdeps/ia64/fpu/w_tgammal.c1
-rw-r--r--sysdeps/ieee754/dbl-64/w_exp_compat.c4
-rw-r--r--sysdeps/ieee754/flt-32/w_expf_compat.c2
-rw-r--r--sysdeps/ieee754/k_standard.c37
-rw-r--r--sysdeps/ieee754/k_standardf.c2
-rw-r--r--sysdeps/ieee754/k_standardl.c3
-rw-r--r--sysdeps/ieee754/ldbl-128/w_expl_compat.c8
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-64-128/w_expl_compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/w_expl_compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_acosl_compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_asinl_compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_coshl_compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c8
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_j0l_compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_j1l_compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_jnl_compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_log10l_compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_log2l_compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_logl_compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_powl_compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c2
165 files changed, 535 insertions, 70 deletions
diff --git a/ChangeLog b/ChangeLog
index 92110bd671..5e3bc26421 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,186 @@
+2017-09-05  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/generic/math-type-macros-double.h: Include
+	<math-svid-compat.h>.
+	(__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT.
+	* sysdeps/generic/math-type-macros-float.h: Include
+	<math-svid-compat.h>.
+	(__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT.
+	* sysdeps/generic/math-type-macros-ldouble.h: Include
+	<math-svid-compat.h>.
+	(__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT.
+	* math/lgamma-compat.h (BUILD_LGAMMA): Include LIBM_SVID_COMPAT
+	condition.
+	* math/w_acos_compat.c: Condition contents on [LIBM_SVID_COMPAT].
+	* math/w_acosf_compat.c: Likewise.
+	* math/w_acosh_compat.c: Likewise.
+	* math/w_acoshf_compat.c: Likewise.
+	* math/w_acoshl_compat.c: Likewise.
+	* math/w_acosl_compat.c: Likewise.
+	* math/w_asin_compat.c: Likewise.
+	* math/w_asinf_compat.c: Likewise.
+	* math/w_asinl_compat.c: Likewise.
+	* math/w_atan2_compat.c: Likewise.
+	* math/w_atan2f_compat.c: Likewise.
+	* math/w_atan2l_compat.c: Likewise.
+	* math/w_atanh_compat.c: Likewise.
+	* math/w_atanhf_compat.c: Likewise.
+	* math/w_atanhl_compat.c: Likewise.
+	* math/w_cosh_compat.c: Likewise.
+	* math/w_coshf_compat.c: Likewise.
+	* math/w_coshl_compat.c: Likewise.
+	* math/w_exp10_compat.c: Likewise.
+	* math/w_exp10f_compat.c: Likewise.
+	* math/w_exp10l_compat.c: Likewise.
+	* math/w_exp2_compat.c: Likewise.
+	* math/w_exp2f_compat.c: Likewise.
+	* math/w_exp2l_compat.c: Likewise.
+	* math/w_fmod_compat.c: Likewise.
+	* math/w_fmodf_compat.c: Likewise.
+	* math/w_fmodl_compat.c: Likewise.
+	* math/w_hypot_compat.c: Likewise.
+	* math/w_hypotf_compat.c: Likewise.
+	* math/w_hypotl_compat.c: Likewise.
+	* math/w_j0_compat.c: Likewise.
+	* math/w_j0f_compat.c: Likewise.
+	* math/w_j0l_compat.c: Likewise.
+	* math/w_j1_compat.c: Likewise.
+	* math/w_j1f_compat.c: Likewise.
+	* math/w_j1l_compat.c: Likewise.
+	* math/w_jn_compat.c: Likewise.
+	* math/w_jnf_compat.c: Likewise.
+	* math/w_jnl_compat.c: Likewise.
+	* math/w_lgamma_r_compat.c: Likewise.
+	* math/w_lgammaf_r_compat.c: Likewise.
+	* math/w_lgammal_r_compat.c: Likewise.
+	* math/w_log10_compat.c: Likewise.
+	* math/w_log10f_compat.c: Likewise.
+	* math/w_log10l_compat.c: Likewise.
+	* math/w_log2_compat.c: Likewise.
+	* math/w_log2f_compat.c: Likewise.
+	* math/w_log2l_compat.c: Likewise.
+	* math/w_log_compat.c: Likewise.
+	* math/w_logf_compat.c: Likewise.
+	* math/w_logl_compat.c: Likewise.
+	* math/w_pow_compat.c: Likewise.
+	* math/w_powf_compat.c: Likewise.
+	* math/w_powl_compat.c: Likewise.
+	* math/w_remainder_compat.c: Likewise.
+	* math/w_remainderf_compat.c: Likewise.
+	* math/w_remainderl_compat.c: Likewise.
+	* math/w_sinh_compat.c: Likewise.
+	* math/w_sinhf_compat.c: Likewise.
+	* math/w_sinhl_compat.c: Likewise.
+	* math/w_sqrt_compat.c: Likewise.
+	* math/w_sqrtf_compat.c: Likewise.
+	* math/w_sqrtl_compat.c: Likewise.
+	* math/w_tgamma_compat.c: Likewise.
+	* math/w_tgammaf_compat.c: Likewise.
+	* math/w_tgammal_compat.c: Likewise.
+	* math/w_scalb_compat.c (sysv_scalb): Condition definition on
+	[LIBM_SVID_COMPAT].
+	(__scalb): Condition call to sysv_scalb on [LIBM_SVID_COMPAT].
+	* math/w_scalbf_compat.c (sysv_scalbf): Condition definition on
+	[LIBM_SVID_COMPAT].
+	(__scalbf): Condition call to sysv_scalbf on [LIBM_SVID_COMPAT].
+	* math/w_scalbl_compat.c (sysv_scalbl): Condition definition on
+	[LIBM_SVID_COMPAT].
+	(__scalbl): Condition call to sysv_scalbl on [LIBM_SVID_COMPAT].
+	* sysdeps/i386/fpu/w_sqrt.c: New file.
+	* sysdeps/ia64/fpu/w_acos.c: Likewise.
+	* sysdeps/ia64/fpu/w_acosf.c: Likewise.
+	* sysdeps/ia64/fpu/w_acosh.c: Likewise.
+	* sysdeps/ia64/fpu/w_acoshf.c: Likewise.
+	* sysdeps/ia64/fpu/w_acoshl.c: Likewise.
+	* sysdeps/ia64/fpu/w_acosl.c: Likewise.
+	* sysdeps/ia64/fpu/w_asin.c: Likewise.
+	* sysdeps/ia64/fpu/w_asinf.c: Likewise.
+	* sysdeps/ia64/fpu/w_asinl.c: Likewise.
+	* sysdeps/ia64/fpu/w_atan2.c: Likewise.
+	* sysdeps/ia64/fpu/w_atan2f.c: Likewise.
+	* sysdeps/ia64/fpu/w_atan2l.c: Likewise.
+	* sysdeps/ia64/fpu/w_atanh.c: Likewise.
+	* sysdeps/ia64/fpu/w_atanhf.c: Likewise.
+	* sysdeps/ia64/fpu/w_atanhl.c: Likewise.
+	* sysdeps/ia64/fpu/w_cosh.c: Likewise.
+	* sysdeps/ia64/fpu/w_coshf.c: Likewise.
+	* sysdeps/ia64/fpu/w_coshl.c: Likewise.
+	* sysdeps/ia64/fpu/w_exp.c: Likewise.
+	* sysdeps/ia64/fpu/w_exp10.c: Likewise.
+	* sysdeps/ia64/fpu/w_exp10f.c: Likewise.
+	* sysdeps/ia64/fpu/w_exp10l.c: Likewise.
+	* sysdeps/ia64/fpu/w_exp2.c: Likewise.
+	* sysdeps/ia64/fpu/w_exp2f.c: Likewise.
+	* sysdeps/ia64/fpu/w_exp2l.c: Likewise.
+	* sysdeps/ia64/fpu/w_expf.c: Likewise.
+	* sysdeps/ia64/fpu/w_expl.c: Likewise.
+	* sysdeps/ia64/fpu/w_fmod.c: Likewise.
+	* sysdeps/ia64/fpu/w_fmodf.c: Likewise.
+	* sysdeps/ia64/fpu/w_fmodl.c: Likewise.
+	* sysdeps/ia64/fpu/w_hypot.c: Likewise.
+	* sysdeps/ia64/fpu/w_hypotf.c: Likewise.
+	* sysdeps/ia64/fpu/w_hypotl.c: Likewise.
+	* sysdeps/ia64/fpu/w_lgamma_r.c: Likewise.
+	* sysdeps/ia64/fpu/w_lgammaf_r.c: Likewise.
+	* sysdeps/ia64/fpu/w_lgammal_r.c: Likewise.
+	* sysdeps/ia64/fpu/w_log.c: Likewise.
+	* sysdeps/ia64/fpu/w_log10.c: Likewise.
+	* sysdeps/ia64/fpu/w_log10f.c: Likewise.
+	* sysdeps/ia64/fpu/w_log10l.c: Likewise.
+	* sysdeps/ia64/fpu/w_log2.c: Likewise.
+	* sysdeps/ia64/fpu/w_log2f.c: Likewise.
+	* sysdeps/ia64/fpu/w_log2l.c: Likewise.
+	* sysdeps/ia64/fpu/w_logf.c: Likewise.
+	* sysdeps/ia64/fpu/w_logl.c: Likewise.
+	* sysdeps/ia64/fpu/w_pow.c: Likewise.
+	* sysdeps/ia64/fpu/w_powf.c: Likewise.
+	* sysdeps/ia64/fpu/w_powl.c: Likewise.
+	* sysdeps/ia64/fpu/w_remainder.c: Likewise.
+	* sysdeps/ia64/fpu/w_remainderf.c: Likewise.
+	* sysdeps/ia64/fpu/w_remainderl.c: Likewise.
+	* sysdeps/ia64/fpu/w_sinh.c: Likewise.
+	* sysdeps/ia64/fpu/w_sinhf.c: Likewise.
+	* sysdeps/ia64/fpu/w_sinhl.c: Likewise.
+	* sysdeps/ia64/fpu/w_sqrt.c: Likewise.
+	* sysdeps/ia64/fpu/w_sqrtf.c: Likewise.
+	* sysdeps/ia64/fpu/w_sqrtl.c: Likewise.
+	* sysdeps/ia64/fpu/w_tgamma.c: Likewise.
+	* sysdeps/ia64/fpu/w_tgammaf.c: Likewise.
+	* sysdeps/ia64/fpu/w_tgammal.c: Likewise.
+	* sysdeps/ieee754/dbl-64/w_exp_compat.c: Condition contents on
+	[LIBM_SVID_COMPAT].
+	* sysdeps/ieee754/flt-32/w_expf_compat.c: Likewise.
+	* sysdeps/ieee754/k_standard.c: Likewise.
+	* sysdeps/ieee754/k_standardf.c: Likewise.
+	* sysdeps/ieee754/k_standardl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/w_expl_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/w_expl_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-64-128/w_expl_compat.c: Condition
+	long_double_symbol call on [LIBM_SVID_COMPAT].
+	* sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/w_acosl_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/w_asinl_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/w_coshl_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/w_j0l_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/w_j1l_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/w_jnl_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/w_log10l_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/w_log2l_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/w_logl_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/w_powl_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c: Condition
+	long_double_symbol and compat_symbol calls on [LIBM_SVID_COMPAT].
+
 2017-09-05  Steve Ellcey  <sellcey@cavium.com>
 
 	* include/shlib-compat.h (TEST_COMPAT): New Macro.
diff --git a/math/lgamma-compat.h b/math/lgamma-compat.h
index 189d126882..b7b6b36d16 100644
--- a/math/lgamma-compat.h
+++ b/math/lgamma-compat.h
@@ -41,7 +41,8 @@
 #define HAVE_LGAMMA_COMPAT SHLIB_COMPAT (libm, LGAMMA_OLD_VER, LGAMMA_NEW_VER)
 
 /* Whether to build this version at all.  */
-#define BUILD_LGAMMA (HAVE_LGAMMA_COMPAT || !USE_AS_COMPAT)
+#define BUILD_LGAMMA \
+  (LIBM_SVID_COMPAT && (HAVE_LGAMMA_COMPAT || !USE_AS_COMPAT))
 
 /* The name to use for this version.  */
 #if USE_AS_COMPAT
diff --git a/math/w_acos_compat.c b/math/w_acos_compat.c
index 5115732a83..1930105153 100644
--- a/math/w_acos_compat.c
+++ b/math/w_acos_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper acos */
 double
 __acos (double x)
@@ -37,7 +38,8 @@ __acos (double x)
   return __ieee754_acos (x);
 }
 weak_alias (__acos, acos)
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 strong_alias (__acos, __acosl)
 weak_alias (__acos, acosl)
+# endif
 #endif
diff --git a/math/w_acosf_compat.c b/math/w_acosf_compat.c
index 0bf557c9c5..97cac13cd6 100644
--- a/math/w_acosf_compat.c
+++ b/math/w_acosf_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper acosf */
 float
 __acosf (float x)
@@ -37,3 +38,4 @@ __acosf (float x)
   return __ieee754_acosf (x);
 }
 weak_alias (__acosf, acosf)
+#endif
diff --git a/math/w_acosh_compat.c b/math/w_acosh_compat.c
index 31251ce760..f6d298e17b 100644
--- a/math/w_acosh_compat.c
+++ b/math/w_acosh_compat.c
@@ -21,6 +21,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper acosh */
 double
 __acosh (double x)
@@ -32,7 +33,8 @@ __acosh (double x)
   return __ieee754_acosh (x);
 }
 weak_alias (__acosh, acosh)
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 strong_alias (__acosh, __acoshl)
 weak_alias (__acosh, acoshl)
+# endif
 #endif
diff --git a/math/w_acoshf_compat.c b/math/w_acoshf_compat.c
index 6a4482e534..7a8c87bf4f 100644
--- a/math/w_acoshf_compat.c
+++ b/math/w_acoshf_compat.c
@@ -21,6 +21,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper acoshf */
 float
 __acoshf (float x)
@@ -32,3 +33,4 @@ __acoshf (float x)
   return __ieee754_acoshf (x);
 }
 weak_alias (__acoshf, acoshf)
+#endif
diff --git a/math/w_acoshl_compat.c b/math/w_acoshl_compat.c
index b9f66c53ef..79d0370eb3 100644
--- a/math/w_acoshl_compat.c
+++ b/math/w_acoshl_compat.c
@@ -21,6 +21,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper acosl */
 long double
 __acoshl (long double x)
@@ -32,3 +33,4 @@ __acoshl (long double x)
   return __ieee754_acoshl (x);
 }
 weak_alias (__acoshl, acoshl)
+#endif
diff --git a/math/w_acosl_compat.c b/math/w_acosl_compat.c
index 66600b5d38..7d2f1835ae 100644
--- a/math/w_acosl_compat.c
+++ b/math/w_acosl_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper acosl */
 long double
 __acosl (long double x)
@@ -37,3 +38,4 @@ __acosl (long double x)
   return __ieee754_acosl (x);
 }
 weak_alias (__acosl, acosl)
+#endif
diff --git a/math/w_asin_compat.c b/math/w_asin_compat.c
index 59beea817d..7780f85883 100644
--- a/math/w_asin_compat.c
+++ b/math/w_asin_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper asin */
 double
 __asin (double x)
@@ -37,7 +38,8 @@ __asin (double x)
   return __ieee754_asin (x);
 }
 weak_alias (__asin, asin)
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 strong_alias (__asin, __asinl)
 weak_alias (__asin, asinl)
+# endif
 #endif
diff --git a/math/w_asinf_compat.c b/math/w_asinf_compat.c
index 0eb20b10b5..10ee32328e 100644
--- a/math/w_asinf_compat.c
+++ b/math/w_asinf_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper asinf */
 float
 __asinf (float x)
@@ -37,3 +38,4 @@ __asinf (float x)
   return __ieee754_asinf (x);
 }
 weak_alias (__asinf, asinf)
+#endif
diff --git a/math/w_asinl_compat.c b/math/w_asinl_compat.c
index c8f4d150c6..c9e1a340cc 100644
--- a/math/w_asinl_compat.c
+++ b/math/w_asinl_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper asinl */
 long double
 __asinl (long double x)
@@ -37,3 +38,4 @@ __asinl (long double x)
   return __ieee754_asinl (x);
 }
 weak_alias (__asinl, asinl)
+#endif
diff --git a/math/w_atan2_compat.c b/math/w_atan2_compat.c
index fa098ffeb7..1ca3349207 100644
--- a/math/w_atan2_compat.c
+++ b/math/w_atan2_compat.c
@@ -26,6 +26,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 double
 __atan2 (double y, double x)
 {
@@ -40,7 +41,8 @@ __atan2 (double y, double x)
   return z;
 }
 weak_alias (__atan2, atan2)
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 strong_alias (__atan2, __atan2l)
 weak_alias (__atan2, atan2l)
+# endif
 #endif
diff --git a/math/w_atan2f_compat.c b/math/w_atan2f_compat.c
index 15e05d8253..8d7ad71b70 100644
--- a/math/w_atan2f_compat.c
+++ b/math/w_atan2f_compat.c
@@ -26,6 +26,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 float
 __atan2f (float y, float x)
 {
@@ -40,3 +41,4 @@ __atan2f (float y, float x)
   return z;
 }
 weak_alias (__atan2f, atan2f)
+#endif
diff --git a/math/w_atan2l_compat.c b/math/w_atan2l_compat.c
index 87b73948da..9dc2b144ea 100644
--- a/math/w_atan2l_compat.c
+++ b/math/w_atan2l_compat.c
@@ -26,6 +26,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 long double
 __atan2l (long double y, long double x)
 {
@@ -40,3 +41,4 @@ __atan2l (long double y, long double x)
   return z;
 }
 weak_alias (__atan2l, atan2l)
+#endif
diff --git a/math/w_atanh_compat.c b/math/w_atanh_compat.c
index f7a43beb09..c2cbb2ee5f 100644
--- a/math/w_atanh_compat.c
+++ b/math/w_atanh_compat.c
@@ -21,6 +21,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper atanh */
 double
 __atanh (double x)
@@ -35,7 +36,8 @@ __atanh (double x)
   return __ieee754_atanh (x);
 }
 weak_alias (__atanh, atanh)
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 strong_alias (__atanh, __atanhl)
 weak_alias (__atanh, atanhl)
+# endif
 #endif
diff --git a/math/w_atanhf_compat.c b/math/w_atanhf_compat.c
index c9d2c3a3ae..6045188bd8 100644
--- a/math/w_atanhf_compat.c
+++ b/math/w_atanhf_compat.c
@@ -21,6 +21,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper atanhf */
 float
 __atanhf (float x)
@@ -35,3 +36,4 @@ __atanhf (float x)
   return __ieee754_atanhf (x);
 }
 weak_alias (__atanhf, atanhf)
+#endif
diff --git a/math/w_atanhl_compat.c b/math/w_atanhl_compat.c
index 56f9f1ed61..837a6652b8 100644
--- a/math/w_atanhl_compat.c
+++ b/math/w_atanhl_compat.c
@@ -21,6 +21,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper atanhl */
 long double
 __atanhl (long double x)
@@ -35,3 +36,4 @@ __atanhl (long double x)
   return __ieee754_atanhl (x);
 }
 weak_alias (__atanhl, atanhl)
+#endif
diff --git a/math/w_cosh_compat.c b/math/w_cosh_compat.c
index fd16436520..d0cb6b165f 100644
--- a/math/w_cosh_compat.c
+++ b/math/w_cosh_compat.c
@@ -18,6 +18,7 @@
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 double
 __cosh (double x)
 {
@@ -29,7 +30,8 @@ __cosh (double x)
 	return z;
 }
 weak_alias (__cosh, cosh)
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 strong_alias (__cosh, __coshl)
 weak_alias (__cosh, coshl)
+# endif
 #endif
diff --git a/math/w_coshf_compat.c b/math/w_coshf_compat.c
index dd62281693..b5d53168f2 100644
--- a/math/w_coshf_compat.c
+++ b/math/w_coshf_compat.c
@@ -22,6 +22,7 @@
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 float
 __coshf (float x)
 {
@@ -33,3 +34,4 @@ __coshf (float x)
 	return z;
 }
 weak_alias (__coshf, coshf)
+#endif
diff --git a/math/w_coshl_compat.c b/math/w_coshl_compat.c
index 5fa32bea88..4dab6eff67 100644
--- a/math/w_coshl_compat.c
+++ b/math/w_coshl_compat.c
@@ -23,6 +23,7 @@
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 long double
 __coshl (long double x)
 {
@@ -34,3 +35,4 @@ __coshl (long double x)
 	return z;
 }
 weak_alias (__coshl, coshl)
+#endif
diff --git a/math/w_exp10_compat.c b/math/w_exp10_compat.c
index 5256f5b06f..42dc312ee8 100644
--- a/math/w_exp10_compat.c
+++ b/math/w_exp10_compat.c
@@ -25,6 +25,7 @@
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 double
 __exp10 (double x)
 {
@@ -37,15 +38,16 @@ __exp10 (double x)
   return z;
 }
 weak_alias (__exp10, exp10)
-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)
+# if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)
 strong_alias (__exp10, __pow10)
 compat_symbol (libm, __pow10, pow10, GLIBC_2_1);
-#endif
-#ifdef NO_LONG_DOUBLE
+# endif
+# ifdef NO_LONG_DOUBLE
 strong_alias (__exp10, __exp10l)
 weak_alias (__exp10, exp10l)
-# if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)
+#  if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)
 strong_alias (__exp10l, __pow10l)
 compat_symbol (libm, __pow10l, pow10l, GLIBC_2_1);
+#  endif
 # endif
 #endif
diff --git a/math/w_exp10f_compat.c b/math/w_exp10f_compat.c
index c559e6a629..bacf2eb9d2 100644
--- a/math/w_exp10f_compat.c
+++ b/math/w_exp10f_compat.c
@@ -25,6 +25,7 @@
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 float
 __exp10f (float x)
 {
@@ -37,7 +38,8 @@ __exp10f (float x)
   return z;
 }
 weak_alias (__exp10f, exp10f)
-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)
+# if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)
 strong_alias (__exp10f, __pow10f)
 compat_symbol (libm, __pow10f, pow10f, GLIBC_2_1);
+# endif
 #endif
diff --git a/math/w_exp10l_compat.c b/math/w_exp10l_compat.c
index 03b7ce9b6b..3d7d66d5af 100644
--- a/math/w_exp10l_compat.c
+++ b/math/w_exp10l_compat.c
@@ -25,6 +25,7 @@
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 long double
 __exp10l (long double x)
 {
@@ -37,7 +38,8 @@ __exp10l (long double x)
   return z;
 }
 weak_alias (__exp10l, exp10l)
-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)
+# if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)
 strong_alias (__exp10l, __pow10l)
 compat_symbol (libm, __pow10l, pow10l, GLIBC_2_1);
+# endif
 #endif
diff --git a/math/w_exp2_compat.c b/math/w_exp2_compat.c
index a4d4653708..5739547859 100644
--- a/math/w_exp2_compat.c
+++ b/math/w_exp2_compat.c
@@ -6,6 +6,7 @@
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 double
 __exp2 (double x)
 {
@@ -18,7 +19,8 @@ __exp2 (double x)
   return z;
 }
 weak_alias (__exp2, exp2)
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 strong_alias (__exp2, __exp2l)
 weak_alias (__exp2, exp2l)
+# endif
 #endif
diff --git a/math/w_exp2f_compat.c b/math/w_exp2f_compat.c
index b21fe36903..b058daed30 100644
--- a/math/w_exp2f_compat.c
+++ b/math/w_exp2f_compat.c
@@ -6,6 +6,7 @@
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 float
 __exp2f (float x)
 {
@@ -18,3 +19,4 @@ __exp2f (float x)
   return z;
 }
 weak_alias (__exp2f, exp2f)
+#endif
diff --git a/math/w_exp2l_compat.c b/math/w_exp2l_compat.c
index 04cd666b68..96d4b96c11 100644
--- a/math/w_exp2l_compat.c
+++ b/math/w_exp2l_compat.c
@@ -6,6 +6,7 @@
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 long double
 __exp2l (long double x)
 {
@@ -18,3 +19,4 @@ __exp2l (long double x)
   return z;
 }
 weak_alias (__exp2l, exp2l)
+#endif
diff --git a/math/w_fmod_compat.c b/math/w_fmod_compat.c
index 1079d3a603..f75b8615d0 100644
--- a/math/w_fmod_compat.c
+++ b/math/w_fmod_compat.c
@@ -20,6 +20,7 @@
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 /* wrapper fmod */
 double
 __fmod (double x, double y)
@@ -32,7 +33,8 @@ __fmod (double x, double y)
   return __ieee754_fmod (x, y);
 }
 weak_alias (__fmod, fmod)
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 strong_alias (__fmod, __fmodl)
 weak_alias (__fmod, fmodl)
+# endif
 #endif
diff --git a/math/w_fmodf_compat.c b/math/w_fmodf_compat.c
index 88b64a24bd..a2739d856a 100644
--- a/math/w_fmodf_compat.c
+++ b/math/w_fmodf_compat.c
@@ -20,6 +20,7 @@
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 /* wrapper fmodf */
 float
 __fmodf (float x, float y)
@@ -32,3 +33,4 @@ __fmodf (float x, float y)
   return __ieee754_fmodf (x, y);
 }
 weak_alias (__fmodf, fmodf)
+#endif
diff --git a/math/w_fmodl_compat.c b/math/w_fmodl_compat.c
index 23422fa652..3136e82d65 100644
--- a/math/w_fmodl_compat.c
+++ b/math/w_fmodl_compat.c
@@ -20,6 +20,7 @@
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 /* wrapper fmodl */
 long double
 __fmodl (long double x, long double y)
@@ -32,3 +33,4 @@ __fmodl (long double x, long double y)
   return __ieee754_fmodl (x, y);
 }
 weak_alias (__fmodl, fmodl)
+#endif
diff --git a/math/w_hypot_compat.c b/math/w_hypot_compat.c
index ff3774cf62..21c7e65c5e 100644
--- a/math/w_hypot_compat.c
+++ b/math/w_hypot_compat.c
@@ -19,6 +19,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 double
 __hypot (double x, double y)
 {
@@ -30,7 +31,8 @@ __hypot (double x, double y)
 	return z;
 }
 weak_alias (__hypot, hypot)
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 strong_alias (__hypot, __hypotl)
 weak_alias (__hypot, hypotl)
+# endif
 #endif
diff --git a/math/w_hypotf_compat.c b/math/w_hypotf_compat.c
index 0a43d90a00..8e6d2343eb 100644
--- a/math/w_hypotf_compat.c
+++ b/math/w_hypotf_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 float
 __hypotf(float x, float y)
 {
@@ -34,3 +35,4 @@ __hypotf(float x, float y)
 	return z;
 }
 weak_alias (__hypotf, hypotf)
+#endif
diff --git a/math/w_hypotl_compat.c b/math/w_hypotl_compat.c
index 13060f74a7..bc56d29a04 100644
--- a/math/w_hypotl_compat.c
+++ b/math/w_hypotl_compat.c
@@ -23,6 +23,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 long double
 __hypotl(long double x, long double y)
 {
@@ -35,3 +36,4 @@ __hypotl(long double x, long double y)
 	return z;
 }
 weak_alias (__hypotl, hypotl)
+#endif
diff --git a/math/w_j0_compat.c b/math/w_j0_compat.c
index 80d21acde1..3df71e0b7b 100644
--- a/math/w_j0_compat.c
+++ b/math/w_j0_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper j0 */
 double
 j0 (double x)
@@ -33,9 +34,9 @@ j0 (double x)
 
   return __ieee754_j0 (x);
 }
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 weak_alias (j0, j0l)
-#endif
+# endif
 
 
 /* wrapper y0 */
@@ -64,6 +65,7 @@ y0 (double x)
 
   return __ieee754_y0 (x);
 }
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 weak_alias (y0, y0l)
+# endif
 #endif
diff --git a/math/w_j0f_compat.c b/math/w_j0f_compat.c
index 36fc4f9443..e9ac74f23a 100644
--- a/math/w_j0f_compat.c
+++ b/math/w_j0f_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper j0f */
 float
 j0f (float x)
@@ -62,3 +63,4 @@ y0f (float x)
 
   return __ieee754_y0f (x);
 }
+#endif
diff --git a/math/w_j0l_compat.c b/math/w_j0l_compat.c
index ff7e1b1456..76ec812729 100644
--- a/math/w_j0l_compat.c
+++ b/math/w_j0l_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper j0l */
 long double
 __j0l (long double x)
@@ -63,3 +64,4 @@ __y0l (long double x)
   return __ieee754_y0l (x);
 }
 weak_alias (__y0l, y0l)
+#endif
diff --git a/math/w_j1_compat.c b/math/w_j1_compat.c
index f7a76c10d5..be788f9864 100644
--- a/math/w_j1_compat.c
+++ b/math/w_j1_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper j1 */
 double
 j1 (double x)
@@ -33,9 +34,9 @@ j1 (double x)
 
   return __ieee754_j1 (x);
 }
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 weak_alias (j1, j1l)
-#endif
+# endif
 
 
 /* wrapper y1 */
@@ -64,6 +65,7 @@ y1 (double x)
 
   return __ieee754_y1 (x);
 }
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 weak_alias (y1, y1l)
+# endif
 #endif
diff --git a/math/w_j1f_compat.c b/math/w_j1f_compat.c
index 9aa5c8c4fd..c3222bbc8d 100644
--- a/math/w_j1f_compat.c
+++ b/math/w_j1f_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper j1f */
 float
 j1f (float x)
@@ -62,3 +63,4 @@ y1f (float x)
 
   return __ieee754_y1f (x);
 }
+#endif
diff --git a/math/w_j1l_compat.c b/math/w_j1l_compat.c
index 7e6d9f57f2..c3acfdfe76 100644
--- a/math/w_j1l_compat.c
+++ b/math/w_j1l_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper j1l */
 long double
 __j1l (long double x)
@@ -63,3 +64,4 @@ __y1l (long double x)
   return __ieee754_y1l (x);
 }
 weak_alias (__y1l, y1l)
+#endif
diff --git a/math/w_jn_compat.c b/math/w_jn_compat.c
index 7c49992cf4..496c779e8c 100644
--- a/math/w_jn_compat.c
+++ b/math/w_jn_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper jn */
 double
 jn (int n, double x)
@@ -33,9 +34,9 @@ jn (int n, double x)
 
   return __ieee754_jn (n, x);
 }
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 weak_alias (jn, jnl)
-#endif
+# endif
 
 
 /* wrapper yn */
@@ -64,6 +65,7 @@ yn (int n, double x)
 
   return __ieee754_yn (n, x);
 }
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 weak_alias (yn, ynl)
+# endif
 #endif
diff --git a/math/w_jnf_compat.c b/math/w_jnf_compat.c
index ead40e7a60..440d53d13e 100644
--- a/math/w_jnf_compat.c
+++ b/math/w_jnf_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper jnf */
 float
 jnf (int n, float x)
@@ -62,3 +63,4 @@ ynf (int n, float x)
 
   return __ieee754_ynf (n, x);
 }
+#endif
diff --git a/math/w_jnl_compat.c b/math/w_jnl_compat.c
index bc416359c2..7298c73a3b 100644
--- a/math/w_jnl_compat.c
+++ b/math/w_jnl_compat.c
@@ -48,11 +48,12 @@ static char rcsid[] = "$NetBSD: $";
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 long double __jnl(int n, long double x)	/* wrapper jnl */
 {
-#ifdef _IEEE_LIBM
+# ifdef _IEEE_LIBM
 	return __ieee754_jnl(n,x);
-#else
+# else
 	long double z;
 	z = __ieee754_jnl(n,x);
 	if (_LIB_VERSION == _IEEE_
@@ -63,15 +64,15 @@ long double __jnl(int n, long double x)	/* wrapper jnl */
 	    return __kernel_standard_l((double)n,x,238); /* jn(|x|>X_TLOSS,n) */
 	} else
 	    return z;
-#endif
+# endif
 }
 weak_alias (__jnl, jnl)
 
 long double __ynl(int n, long double x)	/* wrapper ynl */
 {
-#ifdef _IEEE_LIBM
+# ifdef _IEEE_LIBM
 	return __ieee754_ynl(n,x);
-#else
+# else
 	long double z;
 	z = __ieee754_ynl(n,x);
 	if(_LIB_VERSION == _IEEE_ || isnan(x) ) return z;
@@ -87,6 +88,7 @@ long double __ynl(int n, long double x)	/* wrapper ynl */
 	    return __kernel_standard_l((double)n,x,239); /* yn(x>X_TLOSS,n) */
 	} else
 	    return z;
-#endif
+# endif
 }
 weak_alias (__ynl, ynl)
+#endif
diff --git a/math/w_lgamma_r_compat.c b/math/w_lgamma_r_compat.c
index 3f7fbce62b..f88a5df6a5 100644
--- a/math/w_lgamma_r_compat.c
+++ b/math/w_lgamma_r_compat.c
@@ -19,6 +19,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 double
 __lgamma_r(double x, int *signgamp)
 {
@@ -33,7 +34,8 @@ __lgamma_r(double x, int *signgamp)
 	return y;
 }
 weak_alias (__lgamma_r, lgamma_r)
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 strong_alias (__lgamma_r, __lgammal_r)
 weak_alias (__lgamma_r, lgammal_r)
+# endif
 #endif
diff --git a/math/w_lgammaf_r_compat.c b/math/w_lgammaf_r_compat.c
index d9601f45d7..86003de59a 100644
--- a/math/w_lgammaf_r_compat.c
+++ b/math/w_lgammaf_r_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 float
 __lgammaf_r(float x, int *signgamp)
 {
@@ -36,3 +37,4 @@ __lgammaf_r(float x, int *signgamp)
 	return y;
 }
 weak_alias (__lgammaf_r, lgammaf_r)
+#endif
diff --git a/math/w_lgammal_r_compat.c b/math/w_lgammal_r_compat.c
index d1b58e42dd..781bfa45e7 100644
--- a/math/w_lgammal_r_compat.c
+++ b/math/w_lgammal_r_compat.c
@@ -23,6 +23,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 long double
 __lgammal_r(long double x, int *signgamp)
 {
@@ -37,3 +38,4 @@ __lgammal_r(long double x, int *signgamp)
 	return y;
 }
 weak_alias (__lgammal_r, lgammal_r)
+#endif
diff --git a/math/w_log10_compat.c b/math/w_log10_compat.c
index 6f3eb3408c..b8247aa886 100644
--- a/math/w_log10_compat.c
+++ b/math/w_log10_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper log10(x) */
 double
 __log10 (double x)
@@ -43,7 +44,8 @@ __log10 (double x)
   return  __ieee754_log10 (x);
 }
 weak_alias (__log10, log10)
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 strong_alias (__log10, __log10l)
 weak_alias (__log10, log10l)
+# endif
 #endif
diff --git a/math/w_log10f_compat.c b/math/w_log10f_compat.c
index 2cb5c9a1bb..151c94b4dc 100644
--- a/math/w_log10f_compat.c
+++ b/math/w_log10f_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper log10f(x) */
 float
 __log10f (float x)
@@ -43,3 +44,4 @@ __log10f (float x)
   return  __ieee754_log10f (x);
 }
 weak_alias (__log10f, log10f)
+#endif
diff --git a/math/w_log10l_compat.c b/math/w_log10l_compat.c
index 0063c50778..88d9c40354 100644
--- a/math/w_log10l_compat.c
+++ b/math/w_log10l_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper log10l(x) */
 long double
 __log10l (long double x)
@@ -43,3 +44,4 @@ __log10l (long double x)
   return  __ieee754_log10l (x);
 }
 weak_alias (__log10l, log10l)
+#endif
diff --git a/math/w_log2_compat.c b/math/w_log2_compat.c
index 252fc0d86a..6d1f9f2159 100644
--- a/math/w_log2_compat.c
+++ b/math/w_log2_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper log2(x) */
 double
 __log2 (double x)
@@ -43,7 +44,8 @@ __log2 (double x)
   return  __ieee754_log2 (x);
 }
 weak_alias (__log2, log2)
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 strong_alias (__log2, __log2l)
 weak_alias (__log2, log2l)
+# endif
 #endif
diff --git a/math/w_log2f_compat.c b/math/w_log2f_compat.c
index 6adaff6c72..82085d5222 100644
--- a/math/w_log2f_compat.c
+++ b/math/w_log2f_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper log2f(x) */
 float
 __log2f (float x)
@@ -43,3 +44,4 @@ __log2f (float x)
   return  __ieee754_log2f (x);
 }
 weak_alias (__log2f, log2f)
+#endif
diff --git a/math/w_log2l_compat.c b/math/w_log2l_compat.c
index f496c3630e..cd367f2f51 100644
--- a/math/w_log2l_compat.c
+++ b/math/w_log2l_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper log2l(x) */
 long double
 __log2l (long double x)
@@ -43,3 +44,4 @@ __log2l (long double x)
   return  __ieee754_log2l (x);
 }
 weak_alias (__log2l, log2l)
+#endif
diff --git a/math/w_log_compat.c b/math/w_log_compat.c
index 82f3ff4eec..80750b4371 100644
--- a/math/w_log_compat.c
+++ b/math/w_log_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper log(x) */
 double
 __log (double x)
@@ -43,7 +44,8 @@ __log (double x)
   return  __ieee754_log (x);
 }
 weak_alias (__log, log)
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 strong_alias (__log, __logl)
 weak_alias (__log, logl)
+# endif
 #endif
diff --git a/math/w_logf_compat.c b/math/w_logf_compat.c
index ac18b65c5e..4423bd527a 100644
--- a/math/w_logf_compat.c
+++ b/math/w_logf_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper logf(x) */
 float
 __logf (float x)
@@ -43,3 +44,4 @@ __logf (float x)
   return  __ieee754_logf (x);
 }
 weak_alias (__logf, logf)
+#endif
diff --git a/math/w_logl_compat.c b/math/w_logl_compat.c
index ba65830b67..e37a17475e 100644
--- a/math/w_logl_compat.c
+++ b/math/w_logl_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper logl(x) */
 long double
 __logl (long double x)
@@ -43,3 +44,4 @@ __logl (long double x)
   return  __ieee754_logl (x);
 }
 weak_alias (__logl, logl)
+#endif
diff --git a/math/w_pow_compat.c b/math/w_pow_compat.c
index 367f609dc2..4865f4d0d6 100644
--- a/math/w_pow_compat.c
+++ b/math/w_pow_compat.c
@@ -21,6 +21,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper pow */
 double
 __pow (double x, double y)
@@ -59,7 +60,8 @@ __pow (double x, double y)
   return z;
 }
 weak_alias (__pow, pow)
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 strong_alias (__pow, __powl)
 weak_alias (__pow, powl)
+# endif
 #endif
diff --git a/math/w_powf_compat.c b/math/w_powf_compat.c
index afc3fced80..ce1235baee 100644
--- a/math/w_powf_compat.c
+++ b/math/w_powf_compat.c
@@ -21,6 +21,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper powf */
 float
 __powf (float x, float y)
@@ -59,3 +60,4 @@ __powf (float x, float y)
   return z;
 }
 weak_alias (__powf, powf)
+#endif
diff --git a/math/w_powl_compat.c b/math/w_powl_compat.c
index b25dad870d..9159f610d2 100644
--- a/math/w_powl_compat.c
+++ b/math/w_powl_compat.c
@@ -21,6 +21,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper powl */
 long double
 __powl (long double x, long double y)
@@ -59,3 +60,4 @@ __powl (long double x, long double y)
   return z;
 }
 weak_alias (__powl, powl)
+#endif
diff --git a/math/w_remainder_compat.c b/math/w_remainder_compat.c
index 6bf5d1ff2e..68e322efdc 100644
--- a/math/w_remainder_compat.c
+++ b/math/w_remainder_compat.c
@@ -21,6 +21,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper remainder */
 double
 __remainder (double x, double y)
@@ -34,8 +35,9 @@ __remainder (double x, double y)
 }
 weak_alias (__remainder, remainder)
 weak_alias (__remainder, drem)
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 strong_alias (__remainder, __remainderl)
 weak_alias (__remainder, remainderl)
 weak_alias (__remainder, dreml)
+# endif
 #endif
diff --git a/math/w_remainderf_compat.c b/math/w_remainderf_compat.c
index 3ffefde83d..39ff3b4468 100644
--- a/math/w_remainderf_compat.c
+++ b/math/w_remainderf_compat.c
@@ -21,6 +21,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper remainderf */
 float
 __remainderf (float x, float y)
@@ -34,3 +35,4 @@ __remainderf (float x, float y)
 }
 weak_alias (__remainderf, remainderf)
 weak_alias (__remainderf, dremf)
+#endif
diff --git a/math/w_remainderl_compat.c b/math/w_remainderl_compat.c
index b01b0b1365..c11ba24a8a 100644
--- a/math/w_remainderl_compat.c
+++ b/math/w_remainderl_compat.c
@@ -21,6 +21,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper remainderl */
 long double
 __remainderl (long double x, long double y)
@@ -34,3 +35,4 @@ __remainderl (long double x, long double y)
 }
 weak_alias (__remainderl, remainderl)
 weak_alias (__remainderl, dreml)
+#endif
diff --git a/math/w_scalb_compat.c b/math/w_scalb_compat.c
index a31e54dd78..277e724415 100644
--- a/math/w_scalb_compat.c
+++ b/math/w_scalb_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 static double
 __attribute__ ((noinline))
 sysv_scalb (double x, double fn)
@@ -40,15 +41,18 @@ sysv_scalb (double x, double fn)
 
   return z;
 }
+#endif
 
 
 /* Wrapper scalb */
 double
 __scalb (double x, double fn)
 {
+#if LIBM_SVID_COMPAT
   if (__glibc_unlikely (_LIB_VERSION == _SVID_))
     return sysv_scalb (x, fn);
   else
+#endif
     {
       double z = __ieee754_scalb (x, fn);
 
diff --git a/math/w_scalbf_compat.c b/math/w_scalbf_compat.c
index 2b96df0cbf..79798aef1e 100644
--- a/math/w_scalbf_compat.c
+++ b/math/w_scalbf_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 static float
 __attribute__ ((noinline))
 sysv_scalbf (float x, float fn)
@@ -40,15 +41,18 @@ sysv_scalbf (float x, float fn)
 
   return z;
 }
+#endif
 
 
 /* Wrapper scalbf */
 float
 __scalbf (float x, float fn)
 {
+#if LIBM_SVID_COMPAT
   if (__glibc_unlikely (_LIB_VERSION == _SVID_))
     return sysv_scalbf (x, fn);
   else
+#endif
     {
       float z = __ieee754_scalbf (x, fn);
 
diff --git a/math/w_scalbl_compat.c b/math/w_scalbl_compat.c
index a4a0f8e942..4c73e6b180 100644
--- a/math/w_scalbl_compat.c
+++ b/math/w_scalbl_compat.c
@@ -22,6 +22,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 static long double
 __attribute__ ((noinline))
 sysv_scalbl (long double x, long double fn)
@@ -40,15 +41,18 @@ sysv_scalbl (long double x, long double fn)
 
   return z;
 }
+#endif
 
 
 /* Wrapper scalbl */
 long double
 __scalbl (long double x, long double fn)
 {
+#if LIBM_SVID_COMPAT
   if (__glibc_unlikely (_LIB_VERSION == _SVID_))
     return sysv_scalbl (x, fn);
   else
+#endif
     {
       long double z = __ieee754_scalbl (x, fn);
 
diff --git a/math/w_sinh_compat.c b/math/w_sinh_compat.c
index 121edfc892..e5c3724763 100644
--- a/math/w_sinh_compat.c
+++ b/math/w_sinh_compat.c
@@ -18,6 +18,7 @@
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 double
 __sinh (double x)
 {
@@ -29,7 +30,8 @@ __sinh (double x)
 	return z;
 }
 weak_alias (__sinh, sinh)
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 strong_alias (__sinh, __sinhl)
 weak_alias (__sinh, sinhl)
+# endif
 #endif
diff --git a/math/w_sinhf_compat.c b/math/w_sinhf_compat.c
index 2103b06253..1310ccf93b 100644
--- a/math/w_sinhf_compat.c
+++ b/math/w_sinhf_compat.c
@@ -21,6 +21,7 @@
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 float
 __sinhf (float x)
 {
@@ -32,3 +33,4 @@ __sinhf (float x)
 	return z;
 }
 weak_alias (__sinhf, sinhf)
+#endif
diff --git a/math/w_sinhl_compat.c b/math/w_sinhl_compat.c
index 57f08e7ecc..348209860a 100644
--- a/math/w_sinhl_compat.c
+++ b/math/w_sinhl_compat.c
@@ -22,6 +22,7 @@
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 long double
 __sinhl (long double x)
 {
@@ -33,3 +34,4 @@ __sinhl (long double x)
 	return z;
 }
 weak_alias (__sinhl, sinhl)
+#endif
diff --git a/math/w_sqrt_compat.c b/math/w_sqrt_compat.c
index 743df321d5..aeead2e49c 100644
--- a/math/w_sqrt_compat.c
+++ b/math/w_sqrt_compat.c
@@ -21,6 +21,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper sqrt */
 double
 __sqrt (double x)
@@ -31,7 +32,8 @@ __sqrt (double x)
   return __ieee754_sqrt (x);
 }
 weak_alias (__sqrt, sqrt)
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 strong_alias (__sqrt, __sqrtl)
 weak_alias (__sqrt, sqrtl)
+# endif
 #endif
diff --git a/math/w_sqrtf_compat.c b/math/w_sqrtf_compat.c
index 0689b4bb1a..bd3d5048fc 100644
--- a/math/w_sqrtf_compat.c
+++ b/math/w_sqrtf_compat.c
@@ -21,6 +21,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper sqrtf */
 float
 __sqrtf (float x)
@@ -31,3 +32,4 @@ __sqrtf (float x)
   return __ieee754_sqrtf (x);
 }
 weak_alias (__sqrtf, sqrtf)
+#endif
diff --git a/math/w_sqrtl_compat.c b/math/w_sqrtl_compat.c
index 43e81acf0a..b0afd1171c 100644
--- a/math/w_sqrtl_compat.c
+++ b/math/w_sqrtl_compat.c
@@ -21,6 +21,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* wrapper sqrtl */
 long double
 __sqrtl (long double x)
@@ -31,3 +32,4 @@ __sqrtl (long double x)
   return __ieee754_sqrtl (x);
 }
 weak_alias (__sqrtl, sqrtl)
+#endif
diff --git a/math/w_tgamma_compat.c b/math/w_tgamma_compat.c
index 93bd48fd3f..f843475f10 100644
--- a/math/w_tgamma_compat.c
+++ b/math/w_tgamma_compat.c
@@ -20,6 +20,7 @@
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 double
 __tgamma(double x)
 {
@@ -41,7 +42,8 @@ __tgamma(double x)
 	return local_signgam < 0 ? -y : y;
 }
 weak_alias (__tgamma, tgamma)
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 strong_alias (__tgamma, __tgammal)
 weak_alias (__tgamma, tgammal)
+# endif
 #endif
diff --git a/math/w_tgammaf_compat.c b/math/w_tgammaf_compat.c
index e6ae48c1f5..796850b4d9 100644
--- a/math/w_tgammaf_compat.c
+++ b/math/w_tgammaf_compat.c
@@ -18,6 +18,7 @@
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 float
 __tgammaf(float x)
 {
@@ -43,3 +44,4 @@ __tgammaf(float x)
 	return local_signgam < 0 ? - y : y;
 }
 weak_alias (__tgammaf, tgammaf)
+#endif
diff --git a/math/w_tgammal_compat.c b/math/w_tgammal_compat.c
index 306f672077..c0e442955b 100644
--- a/math/w_tgammal_compat.c
+++ b/math/w_tgammal_compat.c
@@ -23,6 +23,7 @@
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 long double
 __tgammal(long double x)
 {
@@ -44,3 +45,4 @@ __tgammal(long double x)
 	return local_signgam < 0 ? - y : y;
 }
 weak_alias (__tgammal, tgammal)
+#endif
diff --git a/sysdeps/generic/math-type-macros-double.h b/sysdeps/generic/math-type-macros-double.h
index 6116f7f32f..a755699190 100644
--- a/sysdeps/generic/math-type-macros-double.h
+++ b/sysdeps/generic/math-type-macros-double.h
@@ -47,7 +47,9 @@
 /* Supply the generic macros.  */
 #include <math-type-macros.h>
 
-/* Do not use the type-generic wrapper templates.  */
-#define __USE_WRAPPER_TEMPLATE 0
+/* Do not use the type-generic wrapper templates if compatibility with
+   SVID error handling is needed.  */
+#include <math-svid-compat.h>
+#define __USE_WRAPPER_TEMPLATE !LIBM_SVID_COMPAT
 
 #endif
diff --git a/sysdeps/generic/math-type-macros-float.h b/sysdeps/generic/math-type-macros-float.h
index 712e517a81..cc8c4b0bcd 100644
--- a/sysdeps/generic/math-type-macros-float.h
+++ b/sysdeps/generic/math-type-macros-float.h
@@ -33,7 +33,9 @@
 /* Supply the generic macros.  */
 #include <math-type-macros.h>
 
-/* Do not use the type-generic wrapper templates.  */
-#define __USE_WRAPPER_TEMPLATE 0
+/* Do not use the type-generic wrapper templates if compatibility with
+   SVID error handling is needed.  */
+#include <math-svid-compat.h>
+#define __USE_WRAPPER_TEMPLATE !LIBM_SVID_COMPAT
 
 #endif
diff --git a/sysdeps/generic/math-type-macros-ldouble.h b/sysdeps/generic/math-type-macros-ldouble.h
index 4e02e53f70..7dbd559249 100644
--- a/sysdeps/generic/math-type-macros-ldouble.h
+++ b/sysdeps/generic/math-type-macros-ldouble.h
@@ -30,7 +30,9 @@
 /* Supply the generic macros.  */
 #include <math-type-macros.h>
 
-/* Do not use the type-generic wrapper templates.  */
-#define __USE_WRAPPER_TEMPLATE 0
+/* Do not use the type-generic wrapper templates if compatibility with
+   SVID error handling is needed.  */
+#include <math-svid-compat.h>
+#define __USE_WRAPPER_TEMPLATE !LIBM_SVID_COMPAT
 
 #endif
diff --git a/sysdeps/i386/fpu/w_sqrt.c b/sysdeps/i386/fpu/w_sqrt.c
new file mode 100644
index 0000000000..d37a5d55bf
--- /dev/null
+++ b/sysdeps/i386/fpu/w_sqrt.c
@@ -0,0 +1,9 @@
+/* The inline __ieee754_sqrt is not correctly rounding; it's OK for
+   most internal uses in glibc, but not for sqrt itself.  */
+#define __ieee754_sqrt __avoid_ieee754_sqrt
+#include <math.h>
+#include <math_private.h>
+#undef __ieee754_sqrt
+extern double __ieee754_sqrt (double);
+#include <math-type-macros-double.h>
+#include <w_sqrt_template.c>
diff --git a/sysdeps/ia64/fpu/w_acos.c b/sysdeps/ia64/fpu/w_acos.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_acos.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_acosf.c b/sysdeps/ia64/fpu/w_acosf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_acosf.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_acosh.c b/sysdeps/ia64/fpu/w_acosh.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_acosh.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_acoshf.c b/sysdeps/ia64/fpu/w_acoshf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_acoshf.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_acoshl.c b/sysdeps/ia64/fpu/w_acoshl.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_acoshl.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_acosl.c b/sysdeps/ia64/fpu/w_acosl.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_acosl.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_asin.c b/sysdeps/ia64/fpu/w_asin.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_asin.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_asinf.c b/sysdeps/ia64/fpu/w_asinf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_asinf.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_asinl.c b/sysdeps/ia64/fpu/w_asinl.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_asinl.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_atan2.c b/sysdeps/ia64/fpu/w_atan2.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_atan2.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_atan2f.c b/sysdeps/ia64/fpu/w_atan2f.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_atan2f.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_atan2l.c b/sysdeps/ia64/fpu/w_atan2l.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_atan2l.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_atanh.c b/sysdeps/ia64/fpu/w_atanh.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_atanh.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_atanhf.c b/sysdeps/ia64/fpu/w_atanhf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_atanhf.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_atanhl.c b/sysdeps/ia64/fpu/w_atanhl.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_atanhl.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_cosh.c b/sysdeps/ia64/fpu/w_cosh.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_cosh.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_coshf.c b/sysdeps/ia64/fpu/w_coshf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_coshf.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_coshl.c b/sysdeps/ia64/fpu/w_coshl.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_coshl.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_exp.c b/sysdeps/ia64/fpu/w_exp.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_exp.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_exp10.c b/sysdeps/ia64/fpu/w_exp10.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_exp10.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_exp10f.c b/sysdeps/ia64/fpu/w_exp10f.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_exp10f.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_exp10l.c b/sysdeps/ia64/fpu/w_exp10l.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_exp10l.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_exp2.c b/sysdeps/ia64/fpu/w_exp2.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_exp2.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_exp2f.c b/sysdeps/ia64/fpu/w_exp2f.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_exp2f.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_exp2l.c b/sysdeps/ia64/fpu/w_exp2l.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_exp2l.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_expf.c b/sysdeps/ia64/fpu/w_expf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_expf.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_expl.c b/sysdeps/ia64/fpu/w_expl.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_expl.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_fmod.c b/sysdeps/ia64/fpu/w_fmod.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_fmod.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_fmodf.c b/sysdeps/ia64/fpu/w_fmodf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_fmodf.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_fmodl.c b/sysdeps/ia64/fpu/w_fmodl.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_fmodl.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_hypot.c b/sysdeps/ia64/fpu/w_hypot.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_hypot.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_hypotf.c b/sysdeps/ia64/fpu/w_hypotf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_hypotf.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_hypotl.c b/sysdeps/ia64/fpu/w_hypotl.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_hypotl.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_lgamma_r.c b/sysdeps/ia64/fpu/w_lgamma_r.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_lgamma_r.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_lgammaf_r.c b/sysdeps/ia64/fpu/w_lgammaf_r.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_lgammaf_r.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_lgammal_r.c b/sysdeps/ia64/fpu/w_lgammal_r.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_lgammal_r.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_log.c b/sysdeps/ia64/fpu/w_log.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_log.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_log10.c b/sysdeps/ia64/fpu/w_log10.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_log10.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_log10f.c b/sysdeps/ia64/fpu/w_log10f.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_log10f.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_log10l.c b/sysdeps/ia64/fpu/w_log10l.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_log10l.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_log2.c b/sysdeps/ia64/fpu/w_log2.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_log2.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_log2f.c b/sysdeps/ia64/fpu/w_log2f.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_log2f.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_log2l.c b/sysdeps/ia64/fpu/w_log2l.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_log2l.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_logf.c b/sysdeps/ia64/fpu/w_logf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_logf.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_logl.c b/sysdeps/ia64/fpu/w_logl.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_logl.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_pow.c b/sysdeps/ia64/fpu/w_pow.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_pow.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_powf.c b/sysdeps/ia64/fpu/w_powf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_powf.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_powl.c b/sysdeps/ia64/fpu/w_powl.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_powl.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_remainder.c b/sysdeps/ia64/fpu/w_remainder.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_remainder.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_remainderf.c b/sysdeps/ia64/fpu/w_remainderf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_remainderf.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_remainderl.c b/sysdeps/ia64/fpu/w_remainderl.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_remainderl.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_sinh.c b/sysdeps/ia64/fpu/w_sinh.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_sinh.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_sinhf.c b/sysdeps/ia64/fpu/w_sinhf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_sinhf.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_sinhl.c b/sysdeps/ia64/fpu/w_sinhl.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_sinhl.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_sqrt.c b/sysdeps/ia64/fpu/w_sqrt.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_sqrt.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_sqrtf.c b/sysdeps/ia64/fpu/w_sqrtf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_sqrtf.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_sqrtl.c b/sysdeps/ia64/fpu/w_sqrtl.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_sqrtl.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_tgamma.c b/sysdeps/ia64/fpu/w_tgamma.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_tgamma.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_tgammaf.c b/sysdeps/ia64/fpu/w_tgammaf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_tgammaf.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ia64/fpu/w_tgammal.c b/sysdeps/ia64/fpu/w_tgammal.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/w_tgammal.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/ieee754/dbl-64/w_exp_compat.c b/sysdeps/ieee754/dbl-64/w_exp_compat.c
index 69ec0a1ebc..98aa5b76a0 100644
--- a/sysdeps/ieee754/dbl-64/w_exp_compat.c
+++ b/sysdeps/ieee754/dbl-64/w_exp_compat.c
@@ -20,6 +20,7 @@
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 /* wrapper exp */
 double
 __exp (double x)
@@ -33,7 +34,8 @@ __exp (double x)
 }
 hidden_def (__exp)
 weak_alias (__exp, exp)
-#ifdef NO_LONG_DOUBLE
+# ifdef NO_LONG_DOUBLE
 strong_alias (__exp, __expl)
 weak_alias (__exp, expl)
+# endif
 #endif
diff --git a/sysdeps/ieee754/flt-32/w_expf_compat.c b/sysdeps/ieee754/flt-32/w_expf_compat.c
index 8a1fa51e46..a38ff4082d 100644
--- a/sysdeps/ieee754/flt-32/w_expf_compat.c
+++ b/sysdeps/ieee754/flt-32/w_expf_compat.c
@@ -20,6 +20,7 @@
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 /* wrapper expf */
 float
 __expf (float x)
@@ -33,3 +34,4 @@ __expf (float x)
 }
 hidden_def (__expf)
 weak_alias (__expf, expf)
+#endif
diff --git a/sysdeps/ieee754/k_standard.c b/sysdeps/ieee754/k_standard.c
index 8f906bd604..f74f9c712e 100644
--- a/sysdeps/ieee754/k_standard.c
+++ b/sysdeps/ieee754/k_standard.c
@@ -21,23 +21,25 @@ static char rcsid[] = "$NetBSD: k_standard.c,v 1.6 1995/05/10 20:46:35 jtc Exp $
 
 #include <assert.h>
 
-#ifndef _USE_WRITE
-#include <stdio.h>			/* fputs(), stderr */
-#define	WRITE2(u,v)	fputs(u, stderr)
-#else	/* !defined(_USE_WRITE) */
-#include <unistd.h>			/* write */
-#define	WRITE2(u,v)	write(2, u, v)
-#undef fflush
-#endif	/* !defined(_USE_WRITE) */
+#if LIBM_SVID_COMPAT
+
+# ifndef _USE_WRITE
+#  include <stdio.h>			/* fputs(), stderr */
+#  define	WRITE2(u,v)	fputs(u, stderr)
+# else	/* !defined(_USE_WRITE) */
+#  include <unistd.h>			/* write */
+#  define	WRITE2(u,v)	write(2, u, v)
+#  undef fflush
+# endif	/* !defined(_USE_WRITE) */
 
 /* XXX gcc versions until now don't delay the 0.0/0.0 division until
    runtime but produce NaN at compile time.  This is wrong since the
    exceptions are not set correctly.  */
-#if 0
+# if 0
 static const double zero = 0.0;	/* used as const */
-#else
+# else
 static double zero = 0.0;	/* used as const */
-#endif
+# endif
 
 /*
  * Standard conformance (non-IEEE) on exception cases.
@@ -97,21 +99,21 @@ double
 __kernel_standard(double x, double y, int type)
 {
 	struct exception exc;
-#ifndef HUGE_VAL	/* this is the only routine that uses HUGE_VAL */
-#define HUGE_VAL inf
+# ifndef HUGE_VAL	/* this is the only routine that uses HUGE_VAL */
+# define HUGE_VAL inf
 	double inf = 0.0;
 
 	SET_HIGH_WORD(inf,0x7ff00000);	/* set inf to infinite */
-#endif
+# endif
 
 	/* The SVID struct exception uses a field "char *name;".  */
-#define CSTR(func) ((char *) (type < 100				\
+# define CSTR(func) ((char *) (type < 100				\
 			      ? func					\
 			      : (type < 200 ? func "f" : func "l")))
 
-#ifdef _USE_WRITE
+# ifdef _USE_WRITE
 	(void) fflush(stdout);
-#endif
+# endif
 	exc.arg1 = x;
 	exc.arg2 = y;
 	switch(type) {
@@ -945,3 +947,4 @@ __kernel_standard(double x, double y, int type)
 	}
 	return exc.retval;
 }
+#endif
diff --git a/sysdeps/ieee754/k_standardf.c b/sysdeps/ieee754/k_standardf.c
index 85b2003daf..62d25d22db 100644
--- a/sysdeps/ieee754/k_standardf.c
+++ b/sysdeps/ieee754/k_standardf.c
@@ -21,6 +21,7 @@
 #include <math-svid-compat.h>
 
 
+#if LIBM_SVID_COMPAT
 /* Handle errors for a libm function as specified by TYPE (see
    comments in k_standard.c for details), with arguments X and Y,
    returning the appropriate return value for that function.  */
@@ -30,3 +31,4 @@ __kernel_standard_f (float x, float y, int type)
 {
   return __kernel_standard (x, y, type);
 }
+#endif
diff --git a/sysdeps/ieee754/k_standardl.c b/sysdeps/ieee754/k_standardl.c
index 783fd0b87d..484ec91354 100644
--- a/sysdeps/ieee754/k_standardl.c
+++ b/sysdeps/ieee754/k_standardl.c
@@ -38,6 +38,8 @@
 #include <errno.h>
 
 
+#if LIBM_SVID_COMPAT
+
 static double zero = 0.0;
 
 /* Handle errors for a libm function as specified by TYPE (see
@@ -106,3 +108,4 @@ __kernel_standard_l (long double x, long double y, int type)
       return __kernel_standard (dx, dy, type);
     }
 }
+#endif
diff --git a/sysdeps/ieee754/ldbl-128/w_expl_compat.c b/sysdeps/ieee754/ldbl-128/w_expl_compat.c
index e0fa9e3501..ec076deaad 100644
--- a/sysdeps/ieee754/ldbl-128/w_expl_compat.c
+++ b/sysdeps/ieee754/ldbl-128/w_expl_compat.c
@@ -26,18 +26,20 @@ static char rcsid[] = "$NetBSD: $";
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 long double __expl(long double x)	/* wrapper exp */
 {
-#ifdef _IEEE_LIBM
+# ifdef _IEEE_LIBM
 	return __ieee754_expl(x);
-#else
+# else
 	long double z = __ieee754_expl (x);
 	if (__glibc_unlikely (!isfinite (z) || z == 0)
 	    && isfinite (x) && _LIB_VERSION != _IEEE_)
 	  return __kernel_standard_l (x, x, 206 + !!signbit (x));
 
 	return z;
-#endif
+# endif
 }
 hidden_def (__expl)
 weak_alias (__expl, expl)
+#endif
diff --git a/sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c b/sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c
index 019a48fb0d..53948a96e6 100644
--- a/sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c
+++ b/sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c
@@ -3,6 +3,7 @@
 #include <math-svid-compat.h>
 #include <math_ldbl_opt.h>
 
+#if LIBM_SVID_COMPAT
 long double __expl(long double x)	/* wrapper exp  */
 {
   long double z;
@@ -20,3 +21,4 @@ long double __expl(long double x)	/* wrapper exp  */
 }
 hidden_def (__expl)
 long_double_symbol (libm, __expl, expl);
+#endif
diff --git a/sysdeps/ieee754/ldbl-64-128/w_expl_compat.c b/sysdeps/ieee754/ldbl-64-128/w_expl_compat.c
index 37c153e2a4..037e8bf348 100644
--- a/sysdeps/ieee754/ldbl-64-128/w_expl_compat.c
+++ b/sysdeps/ieee754/ldbl-64-128/w_expl_compat.c
@@ -2,4 +2,6 @@
 #undef weak_alias
 #define weak_alias(n,a)
 #include <sysdeps/ieee754/ldbl-128/w_expl_compat.c>
+#if LIBM_SVID_COMPAT
 long_double_symbol (libm, __expl, expl);
+#endif
diff --git a/sysdeps/ieee754/ldbl-96/w_expl_compat.c b/sysdeps/ieee754/ldbl-96/w_expl_compat.c
index c9e6003a43..ae9ab586cb 100644
--- a/sysdeps/ieee754/ldbl-96/w_expl_compat.c
+++ b/sysdeps/ieee754/ldbl-96/w_expl_compat.c
@@ -20,6 +20,7 @@
 #include <math_private.h>
 #include <math-svid-compat.h>
 
+#if LIBM_SVID_COMPAT
 /* wrapper expl */
 long double
 __expl (long double x)
@@ -33,3 +34,4 @@ __expl (long double x)
 }
 hidden_def (__expl)
 weak_alias (__expl, expl)
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c b/sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c
index df4338d9fa..f66964a138 100644
--- a/sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c
@@ -2,4 +2,6 @@
 #undef weak_alias
 #define weak_alias(n,a)
 #include <math/w_acoshl_compat.c>
+#if LIBM_SVID_COMPAT
 long_double_symbol (libm, __acoshl, acoshl);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/w_acosl_compat.c b/sysdeps/ieee754/ldbl-opt/w_acosl_compat.c
index 5efc99024c..ff33e9a9ed 100644
--- a/sysdeps/ieee754/ldbl-opt/w_acosl_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_acosl_compat.c
@@ -2,4 +2,6 @@
 #undef weak_alias
 #define weak_alias(n,a)
 #include <math/w_acosl_compat.c>
+#if LIBM_SVID_COMPAT
 long_double_symbol (libm, __acosl, acosl);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/w_asinl_compat.c b/sysdeps/ieee754/ldbl-opt/w_asinl_compat.c
index 087fab25bb..a53f1cb1f5 100644
--- a/sysdeps/ieee754/ldbl-opt/w_asinl_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_asinl_compat.c
@@ -2,4 +2,6 @@
 #undef weak_alias
 #define weak_alias(n,a)
 #include <math/w_asinl_compat.c>
+#if LIBM_SVID_COMPAT
 long_double_symbol (libm, __asinl, asinl);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c b/sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c
index 6b12209625..c70f77e4c4 100644
--- a/sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c
@@ -2,4 +2,6 @@
 #undef weak_alias
 #define weak_alias(n,a)
 #include <math/w_atan2l_compat.c>
+#if LIBM_SVID_COMPAT
 long_double_symbol (libm, __atan2l, atan2l);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c b/sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c
index 49bae1ee8f..67450c5859 100644
--- a/sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c
@@ -2,4 +2,6 @@
 #undef weak_alias
 #define weak_alias(n,a)
 #include <math/w_atanhl_compat.c>
+#if LIBM_SVID_COMPAT
 long_double_symbol (libm, __atanhl, atanhl);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/w_coshl_compat.c b/sysdeps/ieee754/ldbl-opt/w_coshl_compat.c
index a8808778ba..392511bab6 100644
--- a/sysdeps/ieee754/ldbl-opt/w_coshl_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_coshl_compat.c
@@ -2,4 +2,6 @@
 #undef weak_alias
 #define weak_alias(n,a)
 #include <math/w_coshl_compat.c>
+#if LIBM_SVID_COMPAT
 long_double_symbol (libm, __coshl, coshl);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c b/sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c
index cf154882fe..5a52a75ba5 100644
--- a/sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c
@@ -4,15 +4,17 @@
 #undef compat_symbol
 #define compat_symbol(l,n,a,v)
 #include <math/w_exp10l_compat.c>
+#if LIBM_SVID_COMPAT
 long_double_symbol (libm, __exp10l, exp10l);
-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)
+# if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)
 /* compat_symbol was undefined and redefined above to avoid the
    default pow10l compat symbol at version GLIBC_2_1 (as for ldbl-opt
    configurations, that version should have the alias to exp10).  So
    it now needs to be redefined to define the compat symbol at version
    LONG_DOUBLE_COMPAT_VERSION.  */
-# undef compat_symbol
-# define compat_symbol(lib, local, symbol, version)	\
+#  undef compat_symbol
+#  define compat_symbol(lib, local, symbol, version)	\
   compat_symbol_reference (lib, local, symbol, version)
 compat_symbol (libm, __pow10l, pow10l, LONG_DOUBLE_COMPAT_VERSION);
+# endif
 #endif
diff --git a/sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c b/sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c
index 88fe0ac4d2..12419e3060 100644
--- a/sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c
@@ -2,4 +2,6 @@
 #undef weak_alias
 #define weak_alias(n,a)
 #include <math/w_fmodl_compat.c>
+#if LIBM_SVID_COMPAT
 long_double_symbol (libm, __fmodl, fmodl);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c b/sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c
index 68e3997489..b87bac7ce8 100644
--- a/sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c
@@ -2,4 +2,6 @@
 #undef weak_alias
 #define weak_alias(n,a)
 #include <math/w_hypotl_compat.c>
+#if LIBM_SVID_COMPAT
 long_double_symbol (libm, __hypotl, hypotl);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/w_j0l_compat.c b/sysdeps/ieee754/ldbl-opt/w_j0l_compat.c
index 9050657e03..8fc865128d 100644
--- a/sysdeps/ieee754/ldbl-opt/w_j0l_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_j0l_compat.c
@@ -2,5 +2,7 @@
 #undef weak_alias
 #define weak_alias(n,a)
 #include <math/w_j0l_compat.c>
+#if LIBM_SVID_COMPAT
 long_double_symbol (libm, __j0l, j0l);
 long_double_symbol (libm, __y0l, y0l);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/w_j1l_compat.c b/sysdeps/ieee754/ldbl-opt/w_j1l_compat.c
index 4ed9e2dd12..85b3feed9f 100644
--- a/sysdeps/ieee754/ldbl-opt/w_j1l_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_j1l_compat.c
@@ -2,5 +2,7 @@
 #undef weak_alias
 #define weak_alias(n,a)
 #include <math/w_j1l_compat.c>
+#if LIBM_SVID_COMPAT
 long_double_symbol (libm, __j1l, j1l);
 long_double_symbol (libm, __y1l, y1l);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/w_jnl_compat.c b/sysdeps/ieee754/ldbl-opt/w_jnl_compat.c
index d22ee54997..9b2c998536 100644
--- a/sysdeps/ieee754/ldbl-opt/w_jnl_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_jnl_compat.c
@@ -2,5 +2,7 @@
 #undef weak_alias
 #define weak_alias(n,a)
 #include <math/w_jnl_compat.c>
+#if LIBM_SVID_COMPAT
 long_double_symbol (libm, __jnl, jnl);
 long_double_symbol (libm, __ynl, ynl);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c b/sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c
index 6fdf2bba87..431aa5d15c 100644
--- a/sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c
@@ -2,4 +2,6 @@
 #undef weak_alias
 #define weak_alias(n,a)
 #include <math/w_lgammal_r_compat.c>
+#if LIBM_SVID_COMPAT
 long_double_symbol (libm, __lgammal_r, lgammal_r);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/w_log10l_compat.c b/sysdeps/ieee754/ldbl-opt/w_log10l_compat.c
index 17de3e7856..6eb9ea7928 100644
--- a/sysdeps/ieee754/ldbl-opt/w_log10l_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_log10l_compat.c
@@ -2,4 +2,6 @@
 #undef weak_alias
 #define weak_alias(n,a)
 #include <math/w_log10l_compat.c>
+#if LIBM_SVID_COMPAT
 long_double_symbol (libm, __log10l, log10l);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/w_log2l_compat.c b/sysdeps/ieee754/ldbl-opt/w_log2l_compat.c
index 3c5e734573..1507e937b8 100644
--- a/sysdeps/ieee754/ldbl-opt/w_log2l_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_log2l_compat.c
@@ -2,4 +2,6 @@
 #undef weak_alias
 #define weak_alias(n,a)
 #include <math/w_log2l_compat.c>
+#if LIBM_SVID_COMPAT
 long_double_symbol (libm, __log2l, log2l);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/w_logl_compat.c b/sysdeps/ieee754/ldbl-opt/w_logl_compat.c
index 2b55842139..6b71ef2659 100644
--- a/sysdeps/ieee754/ldbl-opt/w_logl_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_logl_compat.c
@@ -2,4 +2,6 @@
 #undef weak_alias
 #define weak_alias(n,a)
 #include <math/w_logl_compat.c>
+#if LIBM_SVID_COMPAT
 long_double_symbol (libm, __logl, logl);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/w_powl_compat.c b/sysdeps/ieee754/ldbl-opt/w_powl_compat.c
index 1897cf1c63..c6f8d859be 100644
--- a/sysdeps/ieee754/ldbl-opt/w_powl_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_powl_compat.c
@@ -2,4 +2,6 @@
 #undef weak_alias
 #define weak_alias(n,a)
 #include <math/w_powl_compat.c>
+#if LIBM_SVID_COMPAT
 long_double_symbol (libm, __powl, powl);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c b/sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c
index b2ce5c9563..849d2db425 100644
--- a/sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c
@@ -2,6 +2,8 @@
 #undef weak_alias
 #define weak_alias(n,a)
 #include <math/w_remainderl_compat.c>
+#if LIBM_SVID_COMPAT
 long_double_symbol (libm, __remainderl, remainderl);
 strong_alias (__remainderl, __dreml)
 long_double_symbol (libm, __dreml, dreml);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c b/sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c
index 305ed82357..8fce55c74f 100644
--- a/sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c
@@ -2,4 +2,6 @@
 #undef weak_alias
 #define weak_alias(n,a)
 #include <math/w_sinhl_compat.c>
+#if LIBM_SVID_COMPAT
 long_double_symbol (libm, __sinhl, sinhl);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c b/sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c
index 1e4526f2c6..05be917772 100644
--- a/sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c
@@ -2,4 +2,6 @@
 #undef weak_alias
 #define weak_alias(n,a)
 #include <math/w_sqrtl_compat.c>
+#if LIBM_SVID_COMPAT
 long_double_symbol (libm, __sqrtl, sqrtl);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c b/sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c
index aaf5403522..8c201ca8e2 100644
--- a/sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c
@@ -2,4 +2,6 @@
 #undef weak_alias
 #define weak_alias(n,a)
 #include <math/w_tgammal_compat.c>
+#if LIBM_SVID_COMPAT
 long_double_symbol (libm, __tgammal, tgammal);
+#endif