glibc/sysdeps
Joseph Myers 0fc56478a9 Clear up log1p, ldexp, scalbn, scalbln compat handling.
This patch cleans up how compat symbols / long double versioning are
handled for log1p, ldexp, scalbn and scalbln functions.

The general principle is to do as much as possible through the
type-generic templates.  Previously, when errno-setting wrappers were
added the compat long double symbols were left pointing directly to
the underlying implementations; they are moved to point to the
errno-setting wrappers.  For the functions also present in libc,
compat symbol handling for the libc copies needs to go in ldbl-opt
wrappers, but the type-generic templates can handle it for the libm
copies.  There is no need for w_scalbln_template.c to disable the
creation of an unused internal alias (such code made sense in the
context of patches trying to avoid any changes to generated code for
ease of comparison, but can be removed in a change that specifically
does intend to change details of where symbols point).

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

	* math/w_scalbln_template.c (strong_alias): Do not undefine and
	redefine.
	* sysdeps/ieee754/ldbl-opt/s_ldexp.c (declare_mgen_alias): Remove
	macro.
	(ldexpl): Only define as compat symbol for libc, not libm.
	(scalbnl): Define as compat symbol for libc here.
	* sysdeps/ieee754/ldbl-opt/s_ldexpl.c (declare_mgen_alias): Only
	define for [IS_IN (libc)].
	(__ldexpl_2): Remove alias.
	(ldexpl): Only define with long_double_symbol if [IS_IN (libc)].
	(scalbnl): Likewise.  Use __wrap_scalbnl not __ldexpl_2 as base
	name in long_double_symbol call.
	* sysdeps/ieee754/ldbl-opt/s_log1p.c: Remove file.
	* sysdeps/ieee754/ldbl-opt/s_scalbln.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_scalbn.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_log1p.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_scalbln.c (declare_mgen_alias):
	Remove macro.
	[IS_IN (libc) && LONG_DOUBLE_COMPAT (libc, GLIBC_2_1)] (scalblnl):
	Define as compat symbol.
2017-09-13 15:47:26 +00:00
..
aarch64 Obsolete pow10 functions. 2017-09-01 21:13:18 +00:00
alpha Obsolete pow10 functions. 2017-09-01 21:13:18 +00:00
arm Obsolete pow10 functions. 2017-09-01 21:13:18 +00:00
generic Define and use libm_alias_double. 2017-09-13 01:13:30 +00:00
gnu posix: Sync glob with gnulib [BZ #1062] 2017-09-08 09:39:13 +02:00
hppa Obsolete pow10 functions. 2017-09-01 21:13:18 +00:00
i386 Remove remaining _HAVE_STRING_ARCH_* definitions (BZ #18858) 2017-09-06 14:35:23 -03:00
ia64 Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
ieee754 Clear up log1p, ldexp, scalbn, scalbln compat handling. 2017-09-13 15:47:26 +00:00
init_array Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
m68k Simplify HUGE_VAL definitions. 2017-08-31 15:50:50 +00:00
mach hurd: Fix build without NO_HIDDEN 2017-09-12 01:34:19 +02:00
microblaze Obsolete pow10 functions. 2017-09-01 21:13:18 +00:00
mips Obsolete pow10 functions. 2017-09-01 21:13:18 +00:00
nios2 Obsolete pow10 functions. 2017-09-01 21:13:18 +00:00
nptl Remove extra semicolons in struct pthread_mutex (bug 21804) 2017-07-24 12:22:05 +02:00
posix hurd: Fix libc link 2017-09-03 04:36:29 +02:00
powerpc Obsolete pow10 functions. 2017-09-01 21:13:18 +00:00
pthread aio: Remove internal_function function attribute 2017-08-31 15:59:06 +02:00
s390 Obsolete pow10 functions. 2017-09-01 21:13:18 +00:00
sh Obsolete pow10 functions. 2017-09-01 21:13:18 +00:00
sparc Define and use libm_alias_double. 2017-09-13 01:13:30 +00:00
tile Obsolete pow10 functions. 2017-09-01 21:13:18 +00:00
unix posix: Fix compat glob code on s390 and alpha 2017-09-13 09:24:12 -03:00
wordsize-32 Build divdi3 only for architecture that required it 2017-04-06 15:14:34 -03:00
wordsize-64 posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
x86 x86: Add MathVec_Prefer_No_AVX512 to cpu-features [BZ #21967] 2017-09-12 07:54:47 -07:00
x86_64 x86: Add MathVec_Prefer_No_AVX512 to cpu-features [BZ #21967] 2017-09-12 07:54:47 -07:00