about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-09-14 22:28:53 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-09-14 22:28:53 +0000
commit01f2881245eabf6daeeb8505242047ece4027c5a (patch)
treef0029f6a0e5c9c7289119ae573b4ea28508e4764
parent503c92c37a95f769762e65aff9383b302178c2bc (diff)
downloadglibc-01f2881245eabf6daeeb8505242047ece4027c5a.tar.gz
glibc-01f2881245eabf6daeeb8505242047ece4027c5a.tar.xz
glibc-01f2881245eabf6daeeb8505242047ece4027c5a.zip
Make more libm functions into weak aliases.
Many libm functions define the function as __<func> and then define
<func> as a weak alias.  This is not at all limited to cases where
there is an internal call that has namespace reasons to need to call
__<func> instead of <func>.

The common macros for creating libm function aliases work on the basis
of public function names all being aliases; that is, they define
aliases for functions using the above pattern.  Thus, where a function
just defines the public name <func> directly, changing that to be a
weak alias enables a subsequent conversion to the common macros to
retain the exact existing symbols (and so be testable by comparison of
stripped binaries).

This patch converts many existing functions to use the weak alias
pattern, as preparation for subsequent conversions to common macros.
I do expect that _FloatN/_FloatNx function aliases will end up needing
new variants of the common macros that do *not* create the original
float / double / long double name of a function - for cases where that
name is created specially to give it a particular symbol version, for
example - but for functions that can use the most common macros to
create all the public names as aliases, it makes sense for them to do
so.

Regarding the Bessel function wrappers in this patch: only float and
double wrappers are changed because the long double wrappers already
used the weak alias pattern.

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

	* include/math.h (roundeven): Change hidden_proto call to
	__roundeven.
	* math/w_j0_compat.c (j0): Rename to __j0 and define as weak
	alias.
	[NO_LONG_DOUBLE] (__j0l): New strong alias.
	(y0): Rename to __y0 and define as weak alias.
	[NO_LONG_DOUBLE] (__y0l): New strong alias.
	* math/w_j0f_compat.c (j0f): Rename to __j0f and define as weak
	alias.
	(y0f): Rename to __y0f and define as weak alias.
	* math/w_j1_compat.c (j1): Rename to __j1 and define as weak
	alias.
	[NO_LONG_DOUBLE] (__j1l): New strong alias.
	(y1): Rename to __y1 and define as weak alias.
	[NO_LONG_DOUBLE] (__y1l): New strong alias.
	* math/w_j1f_compat.c (j1f): Rename to __j1f and define as weak
	alias.
	(y1f): Rename to __y1f and define as weak alias.
	* math/w_jn_compat.c (jn): Rename to __jn and define as weak
	alias.
	[NO_LONG_DOUBLE] (__jnl): New strong alias.
	(yn): Rename to __yn and define as weak alias.
	[NO_LONG_DOUBLE] (__ynl): New strong alias.
	* math/w_jnf_compat.c (jnf): Rename to __jnf and define as weak
	alias.
	(ynf): Rename to __ynf and define as weak alias.
	* sysdeps/ieee754/dbl-64/s_fromfp.c (FUNC): Define to __fromfp.
	(fromfp): Define as weak alias.
	[NO_LONG_DOUBLE] (__fromfpl): New strong alias.
	* sysdeps/ieee754/dbl-64/s_fromfpx.c (FUNC): Define to __fromfpx.
	(fromfpx): Define as weak alias.
	[NO_LONG_DOUBLE] (__fromfpxl): New strong alias.
	* sysdeps/ieee754/dbl-64/s_getpayload.c (getpayload): Rename to
	__getpayload and define as weak alias.
	[NO_LONG_DOUBLE] (__getpayloadl): New strong alias.
	* sysdeps/ieee754/dbl-64/s_roundeven.c (roundeven): Rename to
	__roundeven and define as weak alias.
	[NO_LONG_DOUBLE] (__roundevenl): New strong alias.
	* sysdeps/ieee754/dbl-64/s_setpayload.c (FUNC): Define to
	__setpayload.
	(setpayload): Define as weak alias.
	[NO_LONG_DOUBLE] (__setpayloadl): New strong alias.
	* sysdeps/ieee754/dbl-64/s_setpayloadsig.c (FUNC): Define to
	__setpayloadsig.
	(setpayloadsig): Define as weak alias.
	[NO_LONG_DOUBLE] (__setpayloadsigl): New strong alias.
	* sysdeps/ieee754/dbl-64/s_totalorder.c (totalorder): Rename to
	__totalorder and define as weak alias.
	[NO_LONG_DOUBLE] (__totalorderl): New strong alias.
	* sysdeps/ieee754/dbl-64/s_totalordermag.c (totalordermag): Rename
	to __totalordermag and define as weak alias.
	[NO_LONG_DOUBLE] (__totalordermagl): New strong alias.
	* sysdeps/ieee754/dbl-64/s_ufromfp.c (FUNC): Define to __ufromfp.
	(ufromfp): Define as weak alias.
	[NO_LONG_DOUBLE] (__ufromfpl): New strong alias.
	* sysdeps/ieee754/dbl-64/s_ufromfpx.c (FUNC): Define to
	__ufromfpx.
	(ufromfpx): Define as weak alias.
	[NO_LONG_DOUBLE] (__ufromfpxl): New strong alias.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c (getpayload):
	Rename to __getpayload and define as weak alias.
	[NO_LONG_DOUBLE] (__getpayloadl): New strong alias.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c (roundeven):
	Rename to __roundeven and define as weak alias.
	[NO_LONG_DOUBLE] (__roundevenl): New strong alias.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c (totalorder):
	Rename to __totalorder and define as weak alias.
	[NO_LONG_DOUBLE] (__totalorderl): New strong alias.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c
	(totalordermag): Rename to __totalordermag and define as weak
	alias.
	[NO_LONG_DOUBLE] (__totalordermagl): New strong alias.
	* sysdeps/ieee754/float128/float128_private.h (__getpayloadl): New
	macro.
	(__roundevenl): Likewise.
	(__totalorderl): Likewise.
	(__totalordermagl): Likewise
	* sysdeps/ieee754/float128/s_fromfpf128.c (FUNC): Define to
	__fromfpf128.
	(fromfpf128): Define as weak alias.
	* sysdeps/ieee754/float128/s_fromfpxf128.c (FUNC): Define to
	__fromfpxf128.
	(fromfpxf128): Define as weak alias.
	* sysdeps/ieee754/float128/s_setpayloadf128.c (FUNC): Define to
	__setpayloadf128.
	(setpayloadf128): Define as weak alias.
	* sysdeps/ieee754/float128/s_setpayloadsigf128.c (FUNC): Define to
	__setpayloadsigf128.
	(setpayloadsigf128): Define as weak alias.
	* sysdeps/ieee754/float128/s_ufromfpf128.c (FUNC): Define to
	__ufromfpf128.
	(ufromfpf128): Define as weak alias.
	* sysdeps/ieee754/float128/s_ufromfpxf128.c (FUNC): Define to
	__ufromfpxf128.
	(ufromfpxf128): Define as weak alias.
	* sysdeps/ieee754/flt-32/s_fromfpf.c (FUNC): Define to __fromfpf.
	(fromfpf): Define as weak alias.
	* sysdeps/ieee754/flt-32/s_fromfpxf.c (FUNC): Define to
	__fromfpxf.
	(fromfpxf): Define as weak alias.
	* sysdeps/ieee754/flt-32/s_getpayloadf.c (getpayloadf): Rename to
	__getpayloadf and define as weak alias.
	* sysdeps/ieee754/flt-32/s_roundevenf.c (roundevenf): Rename to
	__roundevenf and define as weak alias.
	* sysdeps/ieee754/flt-32/s_setpayloadf.c (FUNC): Define to
	__setpayloadf.
	(setpayloadf): Define as weak alias.
	* sysdeps/ieee754/flt-32/s_setpayloadsigf.c (FUNC): Define to
	__setpayloadsigf.
	(setpayloadsigf): Define as weak alias.
	* sysdeps/ieee754/flt-32/s_totalorderf.c (totalorderf): Rename to
	__totalorderf and define as weak alias.
	* sysdeps/ieee754/flt-32/s_totalordermagf.c (totalordermagf):
	Rename to __totalordermagf and define as weak alias.
	* sysdeps/ieee754/flt-32/s_ufromfpf.c (FUNC): Define to
	__ufromfpf.
	(ufromfpf): Define as weak alias.
	* sysdeps/ieee754/flt-32/s_ufromfpxf.c (FUNC): Define to
	__ufromfpxf.
	(ufromfpxf): Define as weak alias.
	* sysdeps/ieee754/ldbl-128/s_fromfpl.c (FUNC): Define to
	__fromfpl.
	(fromfpl): Define as weak alias.
	* sysdeps/ieee754/ldbl-128/s_fromfpxl.c (FUNC): Define to
	__fromfpxl.
	(fromfpxl): Define as weak alias.
	* sysdeps/ieee754/ldbl-128/s_getpayloadl.c (getpayloadl): Rename
	to __getpayloadl and define as weak alias.
	* sysdeps/ieee754/ldbl-128/s_roundevenl.c (roundevenl): Rename to
	__roundevenl and define as weak alias.
	* sysdeps/ieee754/ldbl-128/s_setpayloadl.c (FUNC): Define to
	__setpayloadl.
	(setpayloadl): Define as weak alias.
	* sysdeps/ieee754/ldbl-128/s_setpayloadsigl.c (FUNC): Define to
	__setpayloadsigl.
	(setpayloadsigl): Define as weak alias.
	* sysdeps/ieee754/ldbl-128/s_totalorderl.c (totalorderl): Rename
	to __totalorderl and define as weak alias.
	* sysdeps/ieee754/ldbl-128/s_totalordermagl.c (totalordermagl):
	Rename to __totalordermagl and define as weak alias.
	* sysdeps/ieee754/ldbl-128/s_ufromfpl.c (FUNC): Define to
	__ufromfpl.
	(ufromfpl): Define as weak alias.
	* sysdeps/ieee754/ldbl-128/s_ufromfpxl.c (FUNC): Define to
	__ufromfpxl.
	(ufromfpxl): Define as weak alias.
	* sysdeps/ieee754/ldbl-128ibm/s_fromfpl.c (FUNC): Define to
	__fromfpl.
	(fromfpl): Define as weak alias.
	* sysdeps/ieee754/ldbl-128ibm/s_fromfpxl.c (FUNC): Define to
	__fromfpxl.
	(fromfpxl): Define as weak alias.
	* sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c (getpayloadl):
	Rename to __getpayloadl and define as weak alias.
	* sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c (roundevenl): Rename
	to __roundevenl and define as weak alias.  Call __roundeven
	instead of roundeven.
	* sysdeps/ieee754/ldbl-128ibm/s_setpayloadl.c (FUNC): Define to
	__setpayloadl.
	(setpayloadl): Define as weak alias.
	* sysdeps/ieee754/ldbl-128ibm/s_setpayloadsigl.c (FUNC): Define to
	__setpayloadsigl.
	(setpayloadsigl): Define as weak alias.
	* sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c (totalorderl):
	Rename to __totalorderl and define as weak alias.
	* sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c (totalordermagl):
	Rename to __totalordermagl and define as weak alias.
	* sysdeps/ieee754/ldbl-128ibm/s_ufromfpl.c (FUNC): Define to
	__ufromfpl.
	(ufromfpl): Define as weak alias.
	* sysdeps/ieee754/ldbl-128ibm/s_ufromfpxl.c (FUNC): Define to
	__ufromfpxl.
	(ufromfpxl): Define as weak alias.
	* sysdeps/ieee754/ldbl-96/s_fromfpl.c (FUNC): Define to
	__fromfpl.
	(fromfpl): Define as weak alias.
	* sysdeps/ieee754/ldbl-96/s_fromfpxl.c (FUNC): Define to
	__fromfpxl.
	(fromfpxl): Define as weak alias.
	* sysdeps/ieee754/ldbl-96/s_getpayloadl.c (getpayloadl): Rename to
	__getpayloadl and define as weak alias.
	* sysdeps/ieee754/ldbl-96/s_roundevenl.c (roundevenl): Rename to
	__roundevenl and define as weak alias.
	* sysdeps/ieee754/ldbl-96/s_setpayloadl.c (FUNC): Define to
	__setpayloadl.
	(setpayloadl): Define as weak alias.
	* sysdeps/ieee754/ldbl-96/s_setpayloadsigl.c (FUNC): Define to
	__setpayloadsigl.
	(setpayloadsigl): Define as weak alias.
	* sysdeps/ieee754/ldbl-96/s_totalorderl.c (totalorderl): Rename to
	__totalorderl and define as weak alias.
	* sysdeps/ieee754/ldbl-96/s_totalordermagl.c (totalordermagl):
	Rename to __totalordermagl and define as weak alias.
	* sysdeps/ieee754/ldbl-96/s_ufromfpl.c (FUNC): Define to
	__ufromfpl.
	(ufromfpl): Define as weak alias.
	* sysdeps/ieee754/ldbl-96/s_ufromfpxl.c (FUNC): Define to
	__ufromfpxl.
	(ufromfpxl): Define as weak alias.
-rw-r--r--ChangeLog202
-rw-r--r--include/math.h2
-rw-r--r--math/w_j0_compat.c12
-rw-r--r--math/w_j0f_compat.c6
-rw-r--r--math/w_j1_compat.c12
-rw-r--r--math/w_j1f_compat.c6
-rw-r--r--math/w_jn_compat.c12
-rw-r--r--math/w_jnf_compat.c6
-rw-r--r--sysdeps/ieee754/dbl-64/s_fromfp.c6
-rw-r--r--sysdeps/ieee754/dbl-64/s_fromfpx.c6
-rw-r--r--sysdeps/ieee754/dbl-64/s_getpayload.c6
-rw-r--r--sysdeps/ieee754/dbl-64/s_roundeven.c8
-rw-r--r--sysdeps/ieee754/dbl-64/s_setpayload.c6
-rw-r--r--sysdeps/ieee754/dbl-64/s_setpayloadsig.c6
-rw-r--r--sysdeps/ieee754/dbl-64/s_totalorder.c6
-rw-r--r--sysdeps/ieee754/dbl-64/s_totalordermag.c6
-rw-r--r--sysdeps/ieee754/dbl-64/s_ufromfp.c6
-rw-r--r--sysdeps/ieee754/dbl-64/s_ufromfpx.c6
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c6
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c8
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c6
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c6
-rw-r--r--sysdeps/ieee754/float128/float128_private.h4
-rw-r--r--sysdeps/ieee754/float128/s_fromfpf128.c3
-rw-r--r--sysdeps/ieee754/float128/s_fromfpxf128.c3
-rw-r--r--sysdeps/ieee754/float128/s_setpayloadf128.c3
-rw-r--r--sysdeps/ieee754/float128/s_setpayloadsigf128.c3
-rw-r--r--sysdeps/ieee754/float128/s_ufromfpf128.c3
-rw-r--r--sysdeps/ieee754/float128/s_ufromfpxf128.c3
-rw-r--r--sysdeps/ieee754/flt-32/s_fromfpf.c3
-rw-r--r--sysdeps/ieee754/flt-32/s_fromfpxf.c3
-rw-r--r--sysdeps/ieee754/flt-32/s_getpayloadf.c3
-rw-r--r--sysdeps/ieee754/flt-32/s_roundevenf.c3
-rw-r--r--sysdeps/ieee754/flt-32/s_setpayloadf.c3
-rw-r--r--sysdeps/ieee754/flt-32/s_setpayloadsigf.c3
-rw-r--r--sysdeps/ieee754/flt-32/s_totalorderf.c3
-rw-r--r--sysdeps/ieee754/flt-32/s_totalordermagf.c3
-rw-r--r--sysdeps/ieee754/flt-32/s_ufromfpf.c3
-rw-r--r--sysdeps/ieee754/flt-32/s_ufromfpxf.c3
-rw-r--r--sysdeps/ieee754/ldbl-128/s_fromfpl.c3
-rw-r--r--sysdeps/ieee754/ldbl-128/s_fromfpxl.c3
-rw-r--r--sysdeps/ieee754/ldbl-128/s_getpayloadl.c3
-rw-r--r--sysdeps/ieee754/ldbl-128/s_roundevenl.c3
-rw-r--r--sysdeps/ieee754/ldbl-128/s_setpayloadl.c3
-rw-r--r--sysdeps/ieee754/ldbl-128/s_setpayloadsigl.c3
-rw-r--r--sysdeps/ieee754/ldbl-128/s_totalorderl.c3
-rw-r--r--sysdeps/ieee754/ldbl-128/s_totalordermagl.c3
-rw-r--r--sysdeps/ieee754/ldbl-128/s_ufromfpl.c3
-rw-r--r--sysdeps/ieee754/ldbl-128/s_ufromfpxl.c3
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_fromfpl.c3
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_fromfpxl.c3
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c3
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c7
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_setpayloadl.c3
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_setpayloadsigl.c3
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c3
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c3
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_ufromfpl.c3
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_ufromfpxl.c3
-rw-r--r--sysdeps/ieee754/ldbl-96/s_fromfpl.c3
-rw-r--r--sysdeps/ieee754/ldbl-96/s_fromfpxl.c3
-rw-r--r--sysdeps/ieee754/ldbl-96/s_getpayloadl.c3
-rw-r--r--sysdeps/ieee754/ldbl-96/s_roundevenl.c3
-rw-r--r--sysdeps/ieee754/ldbl-96/s_setpayloadl.c3
-rw-r--r--sysdeps/ieee754/ldbl-96/s_setpayloadsigl.c3
-rw-r--r--sysdeps/ieee754/ldbl-96/s_totalorderl.c3
-rw-r--r--sysdeps/ieee754/ldbl-96/s_totalordermagl.c3
-rw-r--r--sysdeps/ieee754/ldbl-96/s_ufromfpl.c3
-rw-r--r--sysdeps/ieee754/ldbl-96/s_ufromfpxl.c3
69 files changed, 395 insertions, 97 deletions
diff --git a/ChangeLog b/ChangeLog
index 15daa370f3..97267d86c0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,205 @@
+2017-09-14  Joseph Myers  <joseph@codesourcery.com>
+
+	* include/math.h (roundeven): Change hidden_proto call to
+	__roundeven.
+	* math/w_j0_compat.c (j0): Rename to __j0 and define as weak
+	alias.
+	[NO_LONG_DOUBLE] (__j0l): New strong alias.
+	(y0): Rename to __y0 and define as weak alias.
+	[NO_LONG_DOUBLE] (__y0l): New strong alias.
+	* math/w_j0f_compat.c (j0f): Rename to __j0f and define as weak
+	alias.
+	(y0f): Rename to __y0f and define as weak alias.
+	* math/w_j1_compat.c (j1): Rename to __j1 and define as weak
+	alias.
+	[NO_LONG_DOUBLE] (__j1l): New strong alias.
+	(y1): Rename to __y1 and define as weak alias.
+	[NO_LONG_DOUBLE] (__y1l): New strong alias.
+	* math/w_j1f_compat.c (j1f): Rename to __j1f and define as weak
+	alias.
+	(y1f): Rename to __y1f and define as weak alias.
+	* math/w_jn_compat.c (jn): Rename to __jn and define as weak
+	alias.
+	[NO_LONG_DOUBLE] (__jnl): New strong alias.
+	(yn): Rename to __yn and define as weak alias.
+	[NO_LONG_DOUBLE] (__ynl): New strong alias.
+	* math/w_jnf_compat.c (jnf): Rename to __jnf and define as weak
+	alias.
+	(ynf): Rename to __ynf and define as weak alias.
+	* sysdeps/ieee754/dbl-64/s_fromfp.c (FUNC): Define to __fromfp.
+	(fromfp): Define as weak alias.
+	[NO_LONG_DOUBLE] (__fromfpl): New strong alias.
+	* sysdeps/ieee754/dbl-64/s_fromfpx.c (FUNC): Define to __fromfpx.
+	(fromfpx): Define as weak alias.
+	[NO_LONG_DOUBLE] (__fromfpxl): New strong alias.
+	* sysdeps/ieee754/dbl-64/s_getpayload.c (getpayload): Rename to
+	__getpayload and define as weak alias.
+	[NO_LONG_DOUBLE] (__getpayloadl): New strong alias.
+	* sysdeps/ieee754/dbl-64/s_roundeven.c (roundeven): Rename to
+	__roundeven and define as weak alias.
+	[NO_LONG_DOUBLE] (__roundevenl): New strong alias.
+	* sysdeps/ieee754/dbl-64/s_setpayload.c (FUNC): Define to
+	__setpayload.
+	(setpayload): Define as weak alias.
+	[NO_LONG_DOUBLE] (__setpayloadl): New strong alias.
+	* sysdeps/ieee754/dbl-64/s_setpayloadsig.c (FUNC): Define to
+	__setpayloadsig.
+	(setpayloadsig): Define as weak alias.
+	[NO_LONG_DOUBLE] (__setpayloadsigl): New strong alias.
+	* sysdeps/ieee754/dbl-64/s_totalorder.c (totalorder): Rename to
+	__totalorder and define as weak alias.
+	[NO_LONG_DOUBLE] (__totalorderl): New strong alias.
+	* sysdeps/ieee754/dbl-64/s_totalordermag.c (totalordermag): Rename
+	to __totalordermag and define as weak alias.
+	[NO_LONG_DOUBLE] (__totalordermagl): New strong alias.
+	* sysdeps/ieee754/dbl-64/s_ufromfp.c (FUNC): Define to __ufromfp.
+	(ufromfp): Define as weak alias.
+	[NO_LONG_DOUBLE] (__ufromfpl): New strong alias.
+	* sysdeps/ieee754/dbl-64/s_ufromfpx.c (FUNC): Define to
+	__ufromfpx.
+	(ufromfpx): Define as weak alias.
+	[NO_LONG_DOUBLE] (__ufromfpxl): New strong alias.
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c (getpayload):
+	Rename to __getpayload and define as weak alias.
+	[NO_LONG_DOUBLE] (__getpayloadl): New strong alias.
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c (roundeven):
+	Rename to __roundeven and define as weak alias.
+	[NO_LONG_DOUBLE] (__roundevenl): New strong alias.
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c (totalorder):
+	Rename to __totalorder and define as weak alias.
+	[NO_LONG_DOUBLE] (__totalorderl): New strong alias.
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c
+	(totalordermag): Rename to __totalordermag and define as weak
+	alias.
+	[NO_LONG_DOUBLE] (__totalordermagl): New strong alias.
+	* sysdeps/ieee754/float128/float128_private.h (__getpayloadl): New
+	macro.
+	(__roundevenl): Likewise.
+	(__totalorderl): Likewise.
+	(__totalordermagl): Likewise
+	* sysdeps/ieee754/float128/s_fromfpf128.c (FUNC): Define to
+	__fromfpf128.
+	(fromfpf128): Define as weak alias.
+	* sysdeps/ieee754/float128/s_fromfpxf128.c (FUNC): Define to
+	__fromfpxf128.
+	(fromfpxf128): Define as weak alias.
+	* sysdeps/ieee754/float128/s_setpayloadf128.c (FUNC): Define to
+	__setpayloadf128.
+	(setpayloadf128): Define as weak alias.
+	* sysdeps/ieee754/float128/s_setpayloadsigf128.c (FUNC): Define to
+	__setpayloadsigf128.
+	(setpayloadsigf128): Define as weak alias.
+	* sysdeps/ieee754/float128/s_ufromfpf128.c (FUNC): Define to
+	__ufromfpf128.
+	(ufromfpf128): Define as weak alias.
+	* sysdeps/ieee754/float128/s_ufromfpxf128.c (FUNC): Define to
+	__ufromfpxf128.
+	(ufromfpxf128): Define as weak alias.
+	* sysdeps/ieee754/flt-32/s_fromfpf.c (FUNC): Define to __fromfpf.
+	(fromfpf): Define as weak alias.
+	* sysdeps/ieee754/flt-32/s_fromfpxf.c (FUNC): Define to
+	__fromfpxf.
+	(fromfpxf): Define as weak alias.
+	* sysdeps/ieee754/flt-32/s_getpayloadf.c (getpayloadf): Rename to
+	__getpayloadf and define as weak alias.
+	* sysdeps/ieee754/flt-32/s_roundevenf.c (roundevenf): Rename to
+	__roundevenf and define as weak alias.
+	* sysdeps/ieee754/flt-32/s_setpayloadf.c (FUNC): Define to
+	__setpayloadf.
+	(setpayloadf): Define as weak alias.
+	* sysdeps/ieee754/flt-32/s_setpayloadsigf.c (FUNC): Define to
+	__setpayloadsigf.
+	(setpayloadsigf): Define as weak alias.
+	* sysdeps/ieee754/flt-32/s_totalorderf.c (totalorderf): Rename to
+	__totalorderf and define as weak alias.
+	* sysdeps/ieee754/flt-32/s_totalordermagf.c (totalordermagf):
+	Rename to __totalordermagf and define as weak alias.
+	* sysdeps/ieee754/flt-32/s_ufromfpf.c (FUNC): Define to
+	__ufromfpf.
+	(ufromfpf): Define as weak alias.
+	* sysdeps/ieee754/flt-32/s_ufromfpxf.c (FUNC): Define to
+	__ufromfpxf.
+	(ufromfpxf): Define as weak alias.
+	* sysdeps/ieee754/ldbl-128/s_fromfpl.c (FUNC): Define to
+	__fromfpl.
+	(fromfpl): Define as weak alias.
+	* sysdeps/ieee754/ldbl-128/s_fromfpxl.c (FUNC): Define to
+	__fromfpxl.
+	(fromfpxl): Define as weak alias.
+	* sysdeps/ieee754/ldbl-128/s_getpayloadl.c (getpayloadl): Rename
+	to __getpayloadl and define as weak alias.
+	* sysdeps/ieee754/ldbl-128/s_roundevenl.c (roundevenl): Rename to
+	__roundevenl and define as weak alias.
+	* sysdeps/ieee754/ldbl-128/s_setpayloadl.c (FUNC): Define to
+	__setpayloadl.
+	(setpayloadl): Define as weak alias.
+	* sysdeps/ieee754/ldbl-128/s_setpayloadsigl.c (FUNC): Define to
+	__setpayloadsigl.
+	(setpayloadsigl): Define as weak alias.
+	* sysdeps/ieee754/ldbl-128/s_totalorderl.c (totalorderl): Rename
+	to __totalorderl and define as weak alias.
+	* sysdeps/ieee754/ldbl-128/s_totalordermagl.c (totalordermagl):
+	Rename to __totalordermagl and define as weak alias.
+	* sysdeps/ieee754/ldbl-128/s_ufromfpl.c (FUNC): Define to
+	__ufromfpl.
+	(ufromfpl): Define as weak alias.
+	* sysdeps/ieee754/ldbl-128/s_ufromfpxl.c (FUNC): Define to
+	__ufromfpxl.
+	(ufromfpxl): Define as weak alias.
+	* sysdeps/ieee754/ldbl-128ibm/s_fromfpl.c (FUNC): Define to
+	__fromfpl.
+	(fromfpl): Define as weak alias.
+	* sysdeps/ieee754/ldbl-128ibm/s_fromfpxl.c (FUNC): Define to
+	__fromfpxl.
+	(fromfpxl): Define as weak alias.
+	* sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c (getpayloadl):
+	Rename to __getpayloadl and define as weak alias.
+	* sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c (roundevenl): Rename
+	to __roundevenl and define as weak alias.  Call __roundeven
+	instead of roundeven.
+	* sysdeps/ieee754/ldbl-128ibm/s_setpayloadl.c (FUNC): Define to
+	__setpayloadl.
+	(setpayloadl): Define as weak alias.
+	* sysdeps/ieee754/ldbl-128ibm/s_setpayloadsigl.c (FUNC): Define to
+	__setpayloadsigl.
+	(setpayloadsigl): Define as weak alias.
+	* sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c (totalorderl):
+	Rename to __totalorderl and define as weak alias.
+	* sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c (totalordermagl):
+	Rename to __totalordermagl and define as weak alias.
+	* sysdeps/ieee754/ldbl-128ibm/s_ufromfpl.c (FUNC): Define to
+	__ufromfpl.
+	(ufromfpl): Define as weak alias.
+	* sysdeps/ieee754/ldbl-128ibm/s_ufromfpxl.c (FUNC): Define to
+	__ufromfpxl.
+	(ufromfpxl): Define as weak alias.
+	* sysdeps/ieee754/ldbl-96/s_fromfpl.c (FUNC): Define to
+	__fromfpl.
+	(fromfpl): Define as weak alias.
+	* sysdeps/ieee754/ldbl-96/s_fromfpxl.c (FUNC): Define to
+	__fromfpxl.
+	(fromfpxl): Define as weak alias.
+	* sysdeps/ieee754/ldbl-96/s_getpayloadl.c (getpayloadl): Rename to
+	__getpayloadl and define as weak alias.
+	* sysdeps/ieee754/ldbl-96/s_roundevenl.c (roundevenl): Rename to
+	__roundevenl and define as weak alias.
+	* sysdeps/ieee754/ldbl-96/s_setpayloadl.c (FUNC): Define to
+	__setpayloadl.
+	(setpayloadl): Define as weak alias.
+	* sysdeps/ieee754/ldbl-96/s_setpayloadsigl.c (FUNC): Define to
+	__setpayloadsigl.
+	(setpayloadsigl): Define as weak alias.
+	* sysdeps/ieee754/ldbl-96/s_totalorderl.c (totalorderl): Rename to
+	__totalorderl and define as weak alias.
+	* sysdeps/ieee754/ldbl-96/s_totalordermagl.c (totalordermagl):
+	Rename to __totalordermagl and define as weak alias.
+	* sysdeps/ieee754/ldbl-96/s_ufromfpl.c (FUNC): Define to
+	__ufromfpl.
+	(ufromfpl): Define as weak alias.
+	* sysdeps/ieee754/ldbl-96/s_ufromfpxl.c (FUNC): Define to
+	__ufromfpxl.
+	(ufromfpxl): Define as weak alias.
+
 2017-09-14  Siddhesh Poyarekar  <siddhesh@sourceware.org>
 
 	* benchtests/bench-string.h (realloc_bufs): New function.
diff --git a/include/math.h b/include/math.h
index b62a388b5c..fe3ed1378d 100644
--- a/include/math.h
+++ b/include/math.h
@@ -39,7 +39,7 @@ libm_hidden_proto (__issignaling)
 libm_hidden_proto (__issignalingf)
 libm_hidden_proto (__exp)
 libm_hidden_proto (__expf)
-libm_hidden_proto (roundeven)
+libm_hidden_proto (__roundeven)
 
 # ifndef __NO_LONG_DOUBLE_MATH
 libm_hidden_proto (__fpclassifyl)
diff --git a/math/w_j0_compat.c b/math/w_j0_compat.c
index 3df71e0b7b..b08688e131 100644
--- a/math/w_j0_compat.c
+++ b/math/w_j0_compat.c
@@ -25,7 +25,7 @@
 #if LIBM_SVID_COMPAT
 /* wrapper j0 */
 double
-j0 (double x)
+__j0 (double x)
 {
   if (__builtin_expect (isgreater (fabs (x), X_TLOSS), 0)
       && _LIB_VERSION != _IEEE_ && _LIB_VERSION != _POSIX_)
@@ -34,14 +34,16 @@ j0 (double x)
 
   return __ieee754_j0 (x);
 }
+weak_alias (__j0, j0)
 # ifdef NO_LONG_DOUBLE
-weak_alias (j0, j0l)
+strong_alias (__j0, __j0l)
+weak_alias (__j0, j0l)
 # endif
 
 
 /* wrapper y0 */
 double
-y0 (double x)
+__y0 (double x)
 {
   if (__builtin_expect (islessequal (x, 0.0) || isgreater (x, X_TLOSS), 0)
       && _LIB_VERSION != _IEEE_)
@@ -65,7 +67,9 @@ y0 (double x)
 
   return __ieee754_y0 (x);
 }
+weak_alias (__y0, y0)
 # ifdef NO_LONG_DOUBLE
-weak_alias (y0, y0l)
+strong_alias (__y0, __y0l)
+weak_alias (__y0, y0l)
 # endif
 #endif
diff --git a/math/w_j0f_compat.c b/math/w_j0f_compat.c
index e9ac74f23a..0ef4179bfa 100644
--- a/math/w_j0f_compat.c
+++ b/math/w_j0f_compat.c
@@ -25,7 +25,7 @@
 #if LIBM_SVID_COMPAT
 /* wrapper j0f */
 float
-j0f (float x)
+__j0f (float x)
 {
   if (__builtin_expect (isgreater (fabsf (x), (float) X_TLOSS), 0)
       && _LIB_VERSION != _IEEE_ && _LIB_VERSION != _POSIX_)
@@ -34,11 +34,12 @@ j0f (float x)
 
   return __ieee754_j0f (x);
 }
+weak_alias (__j0f, j0f)
 
 
 /* wrapper y0f */
 float
-y0f (float x)
+__y0f (float x)
 {
   if (__builtin_expect (islessequal (x, 0.0f)
                         || isgreater (x, (float) X_TLOSS), 0)
@@ -63,4 +64,5 @@ y0f (float x)
 
   return __ieee754_y0f (x);
 }
+weak_alias (__y0f, y0f)
 #endif
diff --git a/math/w_j1_compat.c b/math/w_j1_compat.c
index be788f9864..bf0922d588 100644
--- a/math/w_j1_compat.c
+++ b/math/w_j1_compat.c
@@ -25,7 +25,7 @@
 #if LIBM_SVID_COMPAT
 /* wrapper j1 */
 double
-j1 (double x)
+__j1 (double x)
 {
   if (__builtin_expect (isgreater (fabs (x), X_TLOSS), 0)
       && _LIB_VERSION != _IEEE_ && _LIB_VERSION != _POSIX_)
@@ -34,14 +34,16 @@ j1 (double x)
 
   return __ieee754_j1 (x);
 }
+weak_alias (__j1, j1)
 # ifdef NO_LONG_DOUBLE
-weak_alias (j1, j1l)
+strong_alias (__j1, __j1l)
+weak_alias (__j1, j1l)
 # endif
 
 
 /* wrapper y1 */
 double
-y1 (double x)
+__y1 (double x)
 {
   if (__builtin_expect (islessequal (x, 0.0) || isgreater (x, X_TLOSS), 0)
       && _LIB_VERSION != _IEEE_)
@@ -65,7 +67,9 @@ y1 (double x)
 
   return __ieee754_y1 (x);
 }
+weak_alias (__y1, y1)
 # ifdef NO_LONG_DOUBLE
-weak_alias (y1, y1l)
+strong_alias (__y1, __y1l)
+weak_alias (__y1, y1l)
 # endif
 #endif
diff --git a/math/w_j1f_compat.c b/math/w_j1f_compat.c
index c3222bbc8d..d44fb12437 100644
--- a/math/w_j1f_compat.c
+++ b/math/w_j1f_compat.c
@@ -25,7 +25,7 @@
 #if LIBM_SVID_COMPAT
 /* wrapper j1f */
 float
-j1f (float x)
+__j1f (float x)
 {
   if (__builtin_expect (isgreater (fabsf (x), X_TLOSS), 0)
       && _LIB_VERSION != _IEEE_ && _LIB_VERSION != _POSIX_)
@@ -34,11 +34,12 @@ j1f (float x)
 
   return __ieee754_j1f (x);
 }
+weak_alias (__j1f, j1f)
 
 
 /* wrapper y1f */
 float
-y1f (float x)
+__y1f (float x)
 {
   if (__builtin_expect (islessequal (x, 0.0f)
 			|| isgreater (x, (float) X_TLOSS), 0)
@@ -63,4 +64,5 @@ y1f (float x)
 
   return __ieee754_y1f (x);
 }
+weak_alias (__y1f, y1f)
 #endif
diff --git a/math/w_jn_compat.c b/math/w_jn_compat.c
index 496c779e8c..955996a2e6 100644
--- a/math/w_jn_compat.c
+++ b/math/w_jn_compat.c
@@ -25,7 +25,7 @@
 #if LIBM_SVID_COMPAT
 /* wrapper jn */
 double
-jn (int n, double x)
+__jn (int n, double x)
 {
   if (__builtin_expect (isgreater (fabs (x), X_TLOSS), 0)
       && _LIB_VERSION != _IEEE_ && _LIB_VERSION != _POSIX_)
@@ -34,14 +34,16 @@ jn (int n, double x)
 
   return __ieee754_jn (n, x);
 }
+weak_alias (__jn, jn)
 # ifdef NO_LONG_DOUBLE
-weak_alias (jn, jnl)
+strong_alias (__jn, __jnl)
+weak_alias (__jn, jnl)
 # endif
 
 
 /* wrapper yn */
 double
-yn (int n, double x)
+__yn (int n, double x)
 {
   if (__builtin_expect (islessequal (x, 0.0) || isgreater (x, X_TLOSS), 0)
       && _LIB_VERSION != _IEEE_)
@@ -65,7 +67,9 @@ yn (int n, double x)
 
   return __ieee754_yn (n, x);
 }
+weak_alias (__yn, yn)
 # ifdef NO_LONG_DOUBLE
-weak_alias (yn, ynl)
+strong_alias (__yn, __ynl)
+weak_alias (__yn, ynl)
 # endif
 #endif
diff --git a/math/w_jnf_compat.c b/math/w_jnf_compat.c
index 440d53d13e..b2b416182b 100644
--- a/math/w_jnf_compat.c
+++ b/math/w_jnf_compat.c
@@ -25,7 +25,7 @@
 #if LIBM_SVID_COMPAT
 /* wrapper jnf */
 float
-jnf (int n, float x)
+__jnf (int n, float x)
 {
   if (__builtin_expect (isgreater (fabsf (x), (float) X_TLOSS), 0)
       && _LIB_VERSION != _IEEE_ && _LIB_VERSION != _POSIX_)
@@ -34,11 +34,12 @@ jnf (int n, float x)
 
   return __ieee754_jnf (n, x);
 }
+weak_alias (__jnf, jnf)
 
 
 /* wrapper ynf */
 float
-ynf (int n, float x)
+__ynf (int n, float x)
 {
   if (__builtin_expect (islessequal (x, 0.0f)
 			|| isgreater (x, (float) X_TLOSS), 0)
@@ -63,4 +64,5 @@ ynf (int n, float x)
 
   return __ieee754_ynf (n, x);
 }
+weak_alias (__ynf, ynf)
 #endif
diff --git a/sysdeps/ieee754/dbl-64/s_fromfp.c b/sysdeps/ieee754/dbl-64/s_fromfp.c
index 92fbe0c162..efc02f7481 100644
--- a/sysdeps/ieee754/dbl-64/s_fromfp.c
+++ b/sysdeps/ieee754/dbl-64/s_fromfp.c
@@ -1,7 +1,9 @@
 #define UNSIGNED 0
 #define INEXACT 0
-#define FUNC fromfp
+#define FUNC __fromfp
 #include <s_fromfp_main.c>
+weak_alias (__fromfp, fromfp)
 #ifdef NO_LONG_DOUBLE
-weak_alias (fromfp, fromfpl)
+strong_alias (__fromfp, __fromfpl)
+weak_alias (__fromfp, fromfpl)
 #endif
diff --git a/sysdeps/ieee754/dbl-64/s_fromfpx.c b/sysdeps/ieee754/dbl-64/s_fromfpx.c
index bbfb969813..4451b2d08b 100644
--- a/sysdeps/ieee754/dbl-64/s_fromfpx.c
+++ b/sysdeps/ieee754/dbl-64/s_fromfpx.c
@@ -1,7 +1,9 @@
 #define UNSIGNED 0
 #define INEXACT 1
-#define FUNC fromfpx
+#define FUNC __fromfpx
 #include <s_fromfp_main.c>
+weak_alias (__fromfpx, fromfpx)
 #ifdef NO_LONG_DOUBLE
-weak_alias (fromfpx, fromfpxl)
+strong_alias (__fromfpx, __fromfpxl)
+weak_alias (__fromfpx, fromfpxl)
 #endif
diff --git a/sysdeps/ieee754/dbl-64/s_getpayload.c b/sysdeps/ieee754/dbl-64/s_getpayload.c
index 63288e0f45..a868109e0a 100644
--- a/sysdeps/ieee754/dbl-64/s_getpayload.c
+++ b/sysdeps/ieee754/dbl-64/s_getpayload.c
@@ -22,7 +22,7 @@
 #include <stdint.h>
 
 double
-getpayload (const double *x)
+__getpayload (const double *x)
 {
   uint32_t hx, lx;
   EXTRACT_WORDS (hx, lx, *x);
@@ -32,6 +32,8 @@ getpayload (const double *x)
     return 0.0f;
   return (double) ix;
 }
+weak_alias (__getpayload, getpayload)
 #ifdef NO_LONG_DOUBLE
-weak_alias (getpayload, getpayloadl)
+strong_alias (__getpayload, __getpayloadl)
+weak_alias (__getpayload, getpayloadl)
 #endif
diff --git a/sysdeps/ieee754/dbl-64/s_roundeven.c b/sysdeps/ieee754/dbl-64/s_roundeven.c
index 78d81a070c..feb874c336 100644
--- a/sysdeps/ieee754/dbl-64/s_roundeven.c
+++ b/sysdeps/ieee754/dbl-64/s_roundeven.c
@@ -26,7 +26,7 @@
 #define MAX_EXP (2 * BIAS + 1)
 
 double
-roundeven (double x)
+__roundeven (double x)
 {
   uint32_t hx, lx, uhx;
   EXTRACT_WORDS (hx, lx, x);
@@ -100,7 +100,9 @@ roundeven (double x)
   INSERT_WORDS (x, hx, lx);
   return x;
 }
-hidden_def (roundeven)
+hidden_def (__roundeven)
+weak_alias (__roundeven, roundeven)
 #ifdef NO_LONG_DOUBLE
-weak_alias (roundeven, roundevenl)
+strong_alias (__roundeven, __roundevenl)
+weak_alias (__roundeven, roundevenl)
 #endif
diff --git a/sysdeps/ieee754/dbl-64/s_setpayload.c b/sysdeps/ieee754/dbl-64/s_setpayload.c
index 5ab70dee73..a37846aa53 100644
--- a/sysdeps/ieee754/dbl-64/s_setpayload.c
+++ b/sysdeps/ieee754/dbl-64/s_setpayload.c
@@ -1,6 +1,8 @@
 #define SIG 0
-#define FUNC setpayload
+#define FUNC __setpayload
 #include <s_setpayload_main.c>
+weak_alias (__setpayload, setpayload)
 #ifdef NO_LONG_DOUBLE
-weak_alias (setpayload, setpayloadl)
+strong_alias (__setpayload, __setpayloadl)
+weak_alias (__setpayload, setpayloadl)
 #endif
diff --git a/sysdeps/ieee754/dbl-64/s_setpayloadsig.c b/sysdeps/ieee754/dbl-64/s_setpayloadsig.c
index c3d1ba1e6e..ad1ee7a3f3 100644
--- a/sysdeps/ieee754/dbl-64/s_setpayloadsig.c
+++ b/sysdeps/ieee754/dbl-64/s_setpayloadsig.c
@@ -1,6 +1,8 @@
 #define SIG 1
-#define FUNC setpayloadsig
+#define FUNC __setpayloadsig
 #include <s_setpayload_main.c>
+weak_alias (__setpayloadsig, setpayloadsig)
 #ifdef NO_LONG_DOUBLE
-weak_alias (setpayloadsig, setpayloadsigl)
+strong_alias (__setpayloadsig, __setpayloadsigl)
+weak_alias (__setpayloadsig, setpayloadsigl)
 #endif
diff --git a/sysdeps/ieee754/dbl-64/s_totalorder.c b/sysdeps/ieee754/dbl-64/s_totalorder.c
index f229119c27..2504319319 100644
--- a/sysdeps/ieee754/dbl-64/s_totalorder.c
+++ b/sysdeps/ieee754/dbl-64/s_totalorder.c
@@ -22,7 +22,7 @@
 #include <stdint.h>
 
 int
-totalorder (double x, double y)
+__totalorder (double x, double y)
 {
   int32_t hx, hy;
   uint32_t lx, ly;
@@ -49,6 +49,8 @@ totalorder (double x, double y)
   ly ^= hy_sign;
   return hx < hy || (hx == hy && lx <= ly);
 }
+weak_alias (__totalorder, totalorder)
 #ifdef NO_LONG_DOUBLE
-weak_alias (totalorder, totalorderl)
+strong_alias (__totalorder, __totalorderl)
+weak_alias (__totalorder, totalorderl)
 #endif
diff --git a/sysdeps/ieee754/dbl-64/s_totalordermag.c b/sysdeps/ieee754/dbl-64/s_totalordermag.c
index b1bdd833db..b5f3cff67e 100644
--- a/sysdeps/ieee754/dbl-64/s_totalordermag.c
+++ b/sysdeps/ieee754/dbl-64/s_totalordermag.c
@@ -22,7 +22,7 @@
 #include <stdint.h>
 
 int
-totalordermag (double x, double y)
+__totalordermag (double x, double y)
 {
   uint32_t hx, hy;
   uint32_t lx, ly;
@@ -44,6 +44,8 @@ totalordermag (double x, double y)
 #endif
   return hx < hy || (hx == hy && lx <= ly);
 }
+weak_alias (__totalordermag, totalordermag)
 #ifdef NO_LONG_DOUBLE
-weak_alias (totalordermag, totalordermagl)
+strong_alias (__totalordermag, __totalordermagl)
+weak_alias (__totalordermag, totalordermagl)
 #endif
diff --git a/sysdeps/ieee754/dbl-64/s_ufromfp.c b/sysdeps/ieee754/dbl-64/s_ufromfp.c
index c3d9047930..f2b9537338 100644
--- a/sysdeps/ieee754/dbl-64/s_ufromfp.c
+++ b/sysdeps/ieee754/dbl-64/s_ufromfp.c
@@ -1,7 +1,9 @@
 #define UNSIGNED 1
 #define INEXACT 0
-#define FUNC ufromfp
+#define FUNC __ufromfp
 #include <s_fromfp_main.c>
+weak_alias (__ufromfp, ufromfp)
 #ifdef NO_LONG_DOUBLE
-weak_alias (ufromfp, ufromfpl)
+strong_alias (__ufromfp, __ufromfpl)
+weak_alias (__ufromfp, ufromfpl)
 #endif
diff --git a/sysdeps/ieee754/dbl-64/s_ufromfpx.c b/sysdeps/ieee754/dbl-64/s_ufromfpx.c
index dee607f8c0..f360e760e2 100644
--- a/sysdeps/ieee754/dbl-64/s_ufromfpx.c
+++ b/sysdeps/ieee754/dbl-64/s_ufromfpx.c
@@ -1,7 +1,9 @@
 #define UNSIGNED 1
 #define INEXACT 1
-#define FUNC ufromfpx
+#define FUNC __ufromfpx
 #include <s_fromfp_main.c>
+weak_alias (__ufromfpx, ufromfpx)
 #ifdef NO_LONG_DOUBLE
-weak_alias (ufromfpx, ufromfpxl)
+strong_alias (__ufromfpx, __ufromfpxl)
+weak_alias (__ufromfpx, ufromfpxl)
 #endif
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c
index fbcd75b8bd..79a62e3e63 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c
@@ -21,13 +21,15 @@
 #include <stdint.h>
 
 double
-getpayload (const double *x)
+__getpayload (const double *x)
 {
   uint64_t ix;
   EXTRACT_WORDS64 (ix, *x);
   ix &= 0x7ffffffffffffULL;
   return (double) ix;
 }
+weak_alias (__getpayload, getpayload)
 #ifdef NO_LONG_DOUBLE
-weak_alias (getpayload, getpayloadl)
+strong_alias (__getpayload, __getpayloadl)
+weak_alias (__getpayload, getpayloadl)
 #endif
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c
index d13ee25cea..3f7619b5f3 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c
@@ -26,7 +26,7 @@
 #define MAX_EXP (2 * BIAS + 1)
 
 double
-roundeven (double x)
+__roundeven (double x)
 {
   uint64_t ix, ux;
   EXTRACT_WORDS64 (ix, x);
@@ -66,7 +66,9 @@ roundeven (double x)
   INSERT_WORDS64 (x, ix);
   return x;
 }
-hidden_def (roundeven)
+hidden_def (__roundeven)
+weak_alias (__roundeven, roundeven)
 #ifdef NO_LONG_DOUBLE
-weak_alias (roundeven, roundevenl)
+strong_alias (__roundeven, __roundevenl)
+weak_alias (__roundeven, roundevenl)
 #endif
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c
index 1e8d57f32b..1d2b3d9710 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c
@@ -22,7 +22,7 @@
 #include <stdint.h>
 
 int
-totalorder (double x, double y)
+__totalorder (double x, double y)
 {
   int64_t ix, iy;
   EXTRACT_WORDS64 (ix, x);
@@ -45,6 +45,8 @@ totalorder (double x, double y)
   iy ^= iy_sign >> 1;
   return ix <= iy;
 }
+weak_alias (__totalorder, totalorder)
 #ifdef NO_LONG_DOUBLE
-weak_alias (totalorder, totalorderl)
+strong_alias (__totalorder, __totalorderl)
+weak_alias (__totalorder, totalorderl)
 #endif
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c
index 47a077f18b..94ce11ccc5 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c
@@ -22,7 +22,7 @@
 #include <stdint.h>
 
 int
-totalordermag (double x, double y)
+__totalordermag (double x, double y)
 {
   uint64_t ix, iy;
   EXTRACT_WORDS64 (ix, x);
@@ -42,6 +42,8 @@ totalordermag (double x, double y)
 #endif
   return ix <= iy;
 }
+weak_alias (__totalordermag, totalordermag)
 #ifdef NO_LONG_DOUBLE
-weak_alias (totalordermag, totalordermagl)
+strong_alias (__totalordermag, __totalordermagl)
+weak_alias (__totalordermag, totalordermagl)
 #endif
diff --git a/sysdeps/ieee754/float128/float128_private.h b/sysdeps/ieee754/float128/float128_private.h
index 5e6ed78085..8c7d2ba107 100644
--- a/sysdeps/ieee754/float128/float128_private.h
+++ b/sysdeps/ieee754/float128/float128_private.h
@@ -199,6 +199,7 @@
 #define __fpclassifyl __fpclassifyf128
 #define __frexpl __frexpf128
 #define __gammal_r_finite __gammaf128_r_finite
+#define __getpayloadl __getpayloadf128
 #define __isinfl __isinff128
 #define __isnanl __isnanf128
 #define __issignalingl __issignalingf128
@@ -217,6 +218,7 @@
 #define __nextupl __nextupf128
 #define __remquol __remquof128
 #define __rintl __rintf128
+#define __roundevenl __roundevenf128
 #define __roundl __roundf128
 #define __scalblnl __scalblnf128
 #define __scalbnl __scalbnf128
@@ -226,6 +228,8 @@
 #define __sqrtl __sqrtf128
 #define __tanhl __tanhf128
 #define __tanl __tanf128
+#define __totalorderl __totalorderf128
+#define __totalordermagl __totalordermagf128
 #define __truncl __truncf128
 #define __x2y2m1l __x2y2m1f128
 
diff --git a/sysdeps/ieee754/float128/s_fromfpf128.c b/sysdeps/ieee754/float128/s_fromfpf128.c
index 891de3d448..a7393b3c6a 100644
--- a/sysdeps/ieee754/float128/s_fromfpf128.c
+++ b/sysdeps/ieee754/float128/s_fromfpf128.c
@@ -1,5 +1,6 @@
 #define UNSIGNED 0
 #define INEXACT 0
-#define FUNC fromfpf128
+#define FUNC __fromfpf128
 #include <float128_private.h>
 #include "../ldbl-128/s_fromfpl_main.c"
+weak_alias (__fromfpf128, fromfpf128)
diff --git a/sysdeps/ieee754/float128/s_fromfpxf128.c b/sysdeps/ieee754/float128/s_fromfpxf128.c
index 21676fab03..ef05f4beac 100644
--- a/sysdeps/ieee754/float128/s_fromfpxf128.c
+++ b/sysdeps/ieee754/float128/s_fromfpxf128.c
@@ -1,5 +1,6 @@
 #define UNSIGNED 0
 #define INEXACT 1
-#define FUNC fromfpxf128
+#define FUNC __fromfpxf128
 #include <float128_private.h>
 #include "../ldbl-128/s_fromfpl_main.c"
+weak_alias (__fromfpxf128, fromfpxf128)
diff --git a/sysdeps/ieee754/float128/s_setpayloadf128.c b/sysdeps/ieee754/float128/s_setpayloadf128.c
index 63e046a269..526fc47fda 100644
--- a/sysdeps/ieee754/float128/s_setpayloadf128.c
+++ b/sysdeps/ieee754/float128/s_setpayloadf128.c
@@ -1,4 +1,5 @@
 #include <float128_private.h>
 #define SIG 0
-#define FUNC setpayloadf128
+#define FUNC __setpayloadf128
 #include "../ldbl-128/s_setpayloadl_main.c"
+weak_alias (__setpayloadf128, setpayloadf128)
diff --git a/sysdeps/ieee754/float128/s_setpayloadsigf128.c b/sysdeps/ieee754/float128/s_setpayloadsigf128.c
index 85b2c4a1a8..e81720591f 100644
--- a/sysdeps/ieee754/float128/s_setpayloadsigf128.c
+++ b/sysdeps/ieee754/float128/s_setpayloadsigf128.c
@@ -1,4 +1,5 @@
 #include <float128_private.h>
 #define SIG 1
-#define FUNC setpayloadsigf128
+#define FUNC __setpayloadsigf128
 #include "../ldbl-128/s_setpayloadl_main.c"
+weak_alias (__setpayloadsigf128, setpayloadsigf128)
diff --git a/sysdeps/ieee754/float128/s_ufromfpf128.c b/sysdeps/ieee754/float128/s_ufromfpf128.c
index 0cd2281035..e8a5ffe4de 100644
--- a/sysdeps/ieee754/float128/s_ufromfpf128.c
+++ b/sysdeps/ieee754/float128/s_ufromfpf128.c
@@ -1,5 +1,6 @@
 #define UNSIGNED 1
 #define INEXACT 0
-#define FUNC ufromfpf128
+#define FUNC __ufromfpf128
 #include <float128_private.h>
 #include "../ldbl-128/s_fromfpl_main.c"
+weak_alias (__ufromfpf128, ufromfpf128)
diff --git a/sysdeps/ieee754/float128/s_ufromfpxf128.c b/sysdeps/ieee754/float128/s_ufromfpxf128.c
index c0cd7e3bc8..c5c69664d1 100644
--- a/sysdeps/ieee754/float128/s_ufromfpxf128.c
+++ b/sysdeps/ieee754/float128/s_ufromfpxf128.c
@@ -1,5 +1,6 @@
 #define UNSIGNED 1
 #define INEXACT 1
-#define FUNC ufromfpxf128
+#define FUNC __ufromfpxf128
 #include <float128_private.h>
 #include "../ldbl-128/s_fromfpl_main.c"
+weak_alias (__ufromfpxf128, ufromfpxf128)
diff --git a/sysdeps/ieee754/flt-32/s_fromfpf.c b/sysdeps/ieee754/flt-32/s_fromfpf.c
index 68d4c80a17..66489bcf93 100644
--- a/sysdeps/ieee754/flt-32/s_fromfpf.c
+++ b/sysdeps/ieee754/flt-32/s_fromfpf.c
@@ -1,4 +1,5 @@
 #define UNSIGNED 0
 #define INEXACT 0
-#define FUNC fromfpf
+#define FUNC __fromfpf
 #include <s_fromfpf_main.c>
+weak_alias (__fromfpf, fromfpf)
diff --git a/sysdeps/ieee754/flt-32/s_fromfpxf.c b/sysdeps/ieee754/flt-32/s_fromfpxf.c
index 9d0fcbc8cc..61f3e2f461 100644
--- a/sysdeps/ieee754/flt-32/s_fromfpxf.c
+++ b/sysdeps/ieee754/flt-32/s_fromfpxf.c
@@ -1,4 +1,5 @@
 #define UNSIGNED 0
 #define INEXACT 1
-#define FUNC fromfpxf
+#define FUNC __fromfpxf
 #include <s_fromfpf_main.c>
+weak_alias (__fromfpxf, fromfpxf)
diff --git a/sysdeps/ieee754/flt-32/s_getpayloadf.c b/sysdeps/ieee754/flt-32/s_getpayloadf.c
index 90cfcc53b9..1958a3ea71 100644
--- a/sysdeps/ieee754/flt-32/s_getpayloadf.c
+++ b/sysdeps/ieee754/flt-32/s_getpayloadf.c
@@ -22,7 +22,7 @@
 #include <stdint.h>
 
 float
-getpayloadf (const float *x)
+__getpayloadf (const float *x)
 {
   uint32_t ix;
   GET_FLOAT_WORD (ix, *x);
@@ -31,3 +31,4 @@ getpayloadf (const float *x)
     return 0.0f;
   return (float) ix;
 }
+weak_alias (__getpayloadf, getpayloadf)
diff --git a/sysdeps/ieee754/flt-32/s_roundevenf.c b/sysdeps/ieee754/flt-32/s_roundevenf.c
index 4a8c2624bb..d1661569ec 100644
--- a/sysdeps/ieee754/flt-32/s_roundevenf.c
+++ b/sysdeps/ieee754/flt-32/s_roundevenf.c
@@ -26,7 +26,7 @@
 #define MAX_EXP (2 * BIAS + 1)
 
 float
-roundevenf (float x)
+__roundevenf (float x)
 {
   uint32_t ix, ux;
   GET_FLOAT_WORD (ix, x);
@@ -66,3 +66,4 @@ roundevenf (float x)
   SET_FLOAT_WORD (x, ix);
   return x;
 }
+weak_alias (__roundevenf, roundevenf)
diff --git a/sysdeps/ieee754/flt-32/s_setpayloadf.c b/sysdeps/ieee754/flt-32/s_setpayloadf.c
index 86dfda9aa6..818cd1baff 100644
--- a/sysdeps/ieee754/flt-32/s_setpayloadf.c
+++ b/sysdeps/ieee754/flt-32/s_setpayloadf.c
@@ -1,3 +1,4 @@
 #define SIG 0
-#define FUNC setpayloadf
+#define FUNC __setpayloadf
 #include <s_setpayloadf_main.c>
+weak_alias (__setpayloadf, setpayloadf)
diff --git a/sysdeps/ieee754/flt-32/s_setpayloadsigf.c b/sysdeps/ieee754/flt-32/s_setpayloadsigf.c
index f7b335dac7..a622f2db66 100644
--- a/sysdeps/ieee754/flt-32/s_setpayloadsigf.c
+++ b/sysdeps/ieee754/flt-32/s_setpayloadsigf.c
@@ -1,3 +1,4 @@
 #define SIG 1
-#define FUNC setpayloadsigf
+#define FUNC __setpayloadsigf
 #include <s_setpayloadf_main.c>
+weak_alias (__setpayloadsigf, setpayloadsigf)
diff --git a/sysdeps/ieee754/flt-32/s_totalorderf.c b/sysdeps/ieee754/flt-32/s_totalorderf.c
index f592b051db..5d65420c66 100644
--- a/sysdeps/ieee754/flt-32/s_totalorderf.c
+++ b/sysdeps/ieee754/flt-32/s_totalorderf.c
@@ -22,7 +22,7 @@
 #include <stdint.h>
 
 int
-totalorderf (float x, float y)
+__totalorderf (float x, float y)
 {
   int32_t ix, iy;
   GET_FLOAT_WORD (ix, x);
@@ -44,3 +44,4 @@ totalorderf (float x, float y)
   iy ^= iy_sign >> 1;
   return ix <= iy;
 }
+weak_alias (__totalorderf, totalorderf)
diff --git a/sysdeps/ieee754/flt-32/s_totalordermagf.c b/sysdeps/ieee754/flt-32/s_totalordermagf.c
index cac7601e12..9aaa6c4231 100644
--- a/sysdeps/ieee754/flt-32/s_totalordermagf.c
+++ b/sysdeps/ieee754/flt-32/s_totalordermagf.c
@@ -22,7 +22,7 @@
 #include <stdint.h>
 
 int
-totalordermagf (float x, float y)
+__totalordermagf (float x, float y)
 {
   uint32_t ix, iy;
   GET_FLOAT_WORD (ix, x);
@@ -42,3 +42,4 @@ totalordermagf (float x, float y)
 #endif
   return ix <= iy;
 }
+weak_alias (__totalordermagf, totalordermagf)
diff --git a/sysdeps/ieee754/flt-32/s_ufromfpf.c b/sysdeps/ieee754/flt-32/s_ufromfpf.c
index e6ffdf3374..3aafd589d9 100644
--- a/sysdeps/ieee754/flt-32/s_ufromfpf.c
+++ b/sysdeps/ieee754/flt-32/s_ufromfpf.c
@@ -1,4 +1,5 @@
 #define UNSIGNED 1
 #define INEXACT 0
-#define FUNC ufromfpf
+#define FUNC __ufromfpf
 #include <s_fromfpf_main.c>
+weak_alias (__ufromfpf, ufromfpf)
diff --git a/sysdeps/ieee754/flt-32/s_ufromfpxf.c b/sysdeps/ieee754/flt-32/s_ufromfpxf.c
index 97aa6890f0..8bcdad42d9 100644
--- a/sysdeps/ieee754/flt-32/s_ufromfpxf.c
+++ b/sysdeps/ieee754/flt-32/s_ufromfpxf.c
@@ -1,4 +1,5 @@
 #define UNSIGNED 1
 #define INEXACT 1
-#define FUNC ufromfpxf
+#define FUNC __ufromfpxf
 #include <s_fromfpf_main.c>
+weak_alias (__ufromfpxf, ufromfpxf)
diff --git a/sysdeps/ieee754/ldbl-128/s_fromfpl.c b/sysdeps/ieee754/ldbl-128/s_fromfpl.c
index e323b4c25b..f3fdba33c1 100644
--- a/sysdeps/ieee754/ldbl-128/s_fromfpl.c
+++ b/sysdeps/ieee754/ldbl-128/s_fromfpl.c
@@ -1,4 +1,5 @@
 #define UNSIGNED 0
 #define INEXACT 0
-#define FUNC fromfpl
+#define FUNC __fromfpl
 #include <s_fromfpl_main.c>
+weak_alias (__fromfpl, fromfpl)
diff --git a/sysdeps/ieee754/ldbl-128/s_fromfpxl.c b/sysdeps/ieee754/ldbl-128/s_fromfpxl.c
index 2f3189d7de..9477cc2ea7 100644
--- a/sysdeps/ieee754/ldbl-128/s_fromfpxl.c
+++ b/sysdeps/ieee754/ldbl-128/s_fromfpxl.c
@@ -1,4 +1,5 @@
 #define UNSIGNED 0
 #define INEXACT 1
-#define FUNC fromfpxl
+#define FUNC __fromfpxl
 #include <s_fromfpl_main.c>
+weak_alias (__fromfpxl, fromfpxl)
diff --git a/sysdeps/ieee754/ldbl-128/s_getpayloadl.c b/sysdeps/ieee754/ldbl-128/s_getpayloadl.c
index d384645532..a7d395940d 100644
--- a/sysdeps/ieee754/ldbl-128/s_getpayloadl.c
+++ b/sysdeps/ieee754/ldbl-128/s_getpayloadl.c
@@ -21,7 +21,7 @@
 #include <stdint.h>
 
 _Float128
-getpayloadl (const _Float128 *x)
+__getpayloadl (const _Float128 *x)
 {
   uint64_t hx, lx;
   GET_LDOUBLE_WORDS64 (hx, lx, *x);
@@ -55,3 +55,4 @@ getpayloadl (const _Float128 *x)
   SET_LDOUBLE_WORDS64 (ret, hx, lx);
   return ret;
 }
+weak_alias (__getpayloadl, getpayloadl)
diff --git a/sysdeps/ieee754/ldbl-128/s_roundevenl.c b/sysdeps/ieee754/ldbl-128/s_roundevenl.c
index 93b895546a..e57367ba44 100644
--- a/sysdeps/ieee754/ldbl-128/s_roundevenl.c
+++ b/sysdeps/ieee754/ldbl-128/s_roundevenl.c
@@ -26,7 +26,7 @@
 #define MAX_EXP (2 * BIAS + 1)
 
 _Float128
-roundevenl (_Float128 x)
+__roundevenl (_Float128 x)
 {
   uint64_t hx, lx, uhx;
   GET_LDOUBLE_WORDS64 (hx, lx, x);
@@ -100,3 +100,4 @@ roundevenl (_Float128 x)
   SET_LDOUBLE_WORDS64 (x, hx, lx);
   return x;
 }
+weak_alias (__roundevenl, roundevenl)
diff --git a/sysdeps/ieee754/ldbl-128/s_setpayloadl.c b/sysdeps/ieee754/ldbl-128/s_setpayloadl.c
index 1aba33e6e2..bb07a3533a 100644
--- a/sysdeps/ieee754/ldbl-128/s_setpayloadl.c
+++ b/sysdeps/ieee754/ldbl-128/s_setpayloadl.c
@@ -1,3 +1,4 @@
 #define SIG 0
-#define FUNC setpayloadl
+#define FUNC __setpayloadl
 #include <s_setpayloadl_main.c>
+weak_alias (__setpayloadl, setpayloadl)
diff --git a/sysdeps/ieee754/ldbl-128/s_setpayloadsigl.c b/sysdeps/ieee754/ldbl-128/s_setpayloadsigl.c
index d97e2c8206..4e920360d4 100644
--- a/sysdeps/ieee754/ldbl-128/s_setpayloadsigl.c
+++ b/sysdeps/ieee754/ldbl-128/s_setpayloadsigl.c
@@ -1,3 +1,4 @@
 #define SIG 1
-#define FUNC setpayloadsigl
+#define FUNC __setpayloadsigl
 #include <s_setpayloadl_main.c>
+weak_alias (__setpayloadsigl, setpayloadsigl)
diff --git a/sysdeps/ieee754/ldbl-128/s_totalorderl.c b/sysdeps/ieee754/ldbl-128/s_totalorderl.c
index ca7b3102e1..78876070c3 100644
--- a/sysdeps/ieee754/ldbl-128/s_totalorderl.c
+++ b/sysdeps/ieee754/ldbl-128/s_totalorderl.c
@@ -22,7 +22,7 @@
 #include <stdint.h>
 
 int
-totalorderl (_Float128 x, _Float128 y)
+__totalorderl (_Float128 x, _Float128 y)
 {
   int64_t hx, hy;
   uint64_t lx, ly;
@@ -52,3 +52,4 @@ totalorderl (_Float128 x, _Float128 y)
   ly ^= hy_sign;
   return hx < hy || (hx == hy && lx <= ly);
 }
+weak_alias (__totalorderl, totalorderl)
diff --git a/sysdeps/ieee754/ldbl-128/s_totalordermagl.c b/sysdeps/ieee754/ldbl-128/s_totalordermagl.c
index 41b969d811..11b58ef3d1 100644
--- a/sysdeps/ieee754/ldbl-128/s_totalordermagl.c
+++ b/sysdeps/ieee754/ldbl-128/s_totalordermagl.c
@@ -22,7 +22,7 @@
 #include <stdint.h>
 
 int
-totalordermagl (_Float128 x, _Float128 y)
+__totalordermagl (_Float128 x, _Float128 y)
 {
   uint64_t hx, hy;
   uint64_t lx, ly;
@@ -46,3 +46,4 @@ totalordermagl (_Float128 x, _Float128 y)
 #endif
   return hx < hy || (hx == hy && lx <= ly);
 }
+weak_alias (__totalordermagl, totalordermagl)
diff --git a/sysdeps/ieee754/ldbl-128/s_ufromfpl.c b/sysdeps/ieee754/ldbl-128/s_ufromfpl.c
index c686daa4a7..2176aa0cdd 100644
--- a/sysdeps/ieee754/ldbl-128/s_ufromfpl.c
+++ b/sysdeps/ieee754/ldbl-128/s_ufromfpl.c
@@ -1,4 +1,5 @@
 #define UNSIGNED 1
 #define INEXACT 0
-#define FUNC ufromfpl
+#define FUNC __ufromfpl
 #include <s_fromfpl_main.c>
+weak_alias (__ufromfpl, ufromfpl)
diff --git a/sysdeps/ieee754/ldbl-128/s_ufromfpxl.c b/sysdeps/ieee754/ldbl-128/s_ufromfpxl.c
index 906066c83c..2901151312 100644
--- a/sysdeps/ieee754/ldbl-128/s_ufromfpxl.c
+++ b/sysdeps/ieee754/ldbl-128/s_ufromfpxl.c
@@ -1,4 +1,5 @@
 #define UNSIGNED 1
 #define INEXACT 1
-#define FUNC ufromfpxl
+#define FUNC __ufromfpxl
 #include <s_fromfpl_main.c>
+weak_alias (__ufromfpxl, ufromfpxl)
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_fromfpl.c b/sysdeps/ieee754/ldbl-128ibm/s_fromfpl.c
index e323b4c25b..f3fdba33c1 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_fromfpl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_fromfpl.c
@@ -1,4 +1,5 @@
 #define UNSIGNED 0
 #define INEXACT 0
-#define FUNC fromfpl
+#define FUNC __fromfpl
 #include <s_fromfpl_main.c>
+weak_alias (__fromfpl, fromfpl)
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_fromfpxl.c b/sysdeps/ieee754/ldbl-128ibm/s_fromfpxl.c
index 2f3189d7de..9477cc2ea7 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_fromfpxl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_fromfpxl.c
@@ -1,4 +1,5 @@
 #define UNSIGNED 0
 #define INEXACT 1
-#define FUNC fromfpxl
+#define FUNC __fromfpxl
 #include <s_fromfpl_main.c>
+weak_alias (__fromfpxl, fromfpxl)
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c b/sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c
index 420b17837e..f66b8d3bdd 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c
@@ -22,7 +22,7 @@
 #include <stdint.h>
 
 long double
-getpayloadl (const long double *x)
+__getpayloadl (const long double *x)
 {
   double xhi = ldbl_high (*x);
   uint64_t ix;
@@ -32,3 +32,4 @@ getpayloadl (const long double *x)
     return 0.0L;
   return (long double) ix;
 }
+weak_alias (__getpayloadl, getpayloadl)
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c b/sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c
index f4221cda4b..4f5c9a0f47 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c
@@ -21,7 +21,7 @@
 #include <math_private.h>
 
 long double
-roundevenl (long double x)
+__roundevenl (long double x)
 {
   double xh, xl, hi;
 
@@ -29,7 +29,7 @@ roundevenl (long double x)
 
   if (xh != 0 && isfinite (xh))
     {
-      hi = roundeven (xh);
+      hi = __roundeven (xh);
       if (hi != xh)
 	{
 	  /* The high part is not an integer; the low part only
@@ -56,7 +56,7 @@ roundevenl (long double x)
 	     part to nearest, ties round to even, is always correct,
 	     as a high part that is an odd integer together with a low
 	     part with magnitude 0.5 is not a valid long double.  */
-	  xl = roundeven (xl);
+	  xl = __roundeven (xl);
 	  xh = hi;
 	  ldbl_canonicalize_int (&xh, &xl);
 	}
@@ -67,3 +67,4 @@ roundevenl (long double x)
 
   return ldbl_pack (xh, xl);
 }
+weak_alias (__roundevenl, roundevenl)
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl.c b/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl.c
index 1aba33e6e2..bb07a3533a 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl.c
@@ -1,3 +1,4 @@
 #define SIG 0
-#define FUNC setpayloadl
+#define FUNC __setpayloadl
 #include <s_setpayloadl_main.c>
+weak_alias (__setpayloadl, setpayloadl)
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_setpayloadsigl.c b/sysdeps/ieee754/ldbl-128ibm/s_setpayloadsigl.c
index d97e2c8206..4e920360d4 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_setpayloadsigl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_setpayloadsigl.c
@@ -1,3 +1,4 @@
 #define SIG 1
-#define FUNC setpayloadsigl
+#define FUNC __setpayloadsigl
 #include <s_setpayloadl_main.c>
+weak_alias (__setpayloadsigl, setpayloadsigl)
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c b/sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c
index 963376a7cf..27eae36560 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c
@@ -22,7 +22,7 @@
 #include <stdint.h>
 
 int
-totalorderl (long double x, long double y)
+__totalorderl (long double x, long double y)
 {
   double xhi, xlo, yhi, ylo;
   int64_t hx, hy, lx, ly;
@@ -60,3 +60,4 @@ totalorderl (long double x, long double y)
   ly ^= ly_sign >> 1;
   return lx <= ly;
 }
+weak_alias (__totalorderl, totalorderl)
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c b/sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c
index f7480909df..5398428541 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c
@@ -22,7 +22,7 @@
 #include <stdint.h>
 
 int
-totalordermagl (long double x, long double y)
+__totalordermagl (long double x, long double y)
 {
   double xhi, xlo, yhi, ylo;
   int64_t hx, hy, lx, ly;
@@ -62,3 +62,4 @@ totalordermagl (long double x, long double y)
   ly ^= ly_sign >> 1;
   return lx <= ly;
 }
+weak_alias (__totalordermagl, totalordermagl)
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_ufromfpl.c b/sysdeps/ieee754/ldbl-128ibm/s_ufromfpl.c
index c686daa4a7..2176aa0cdd 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_ufromfpl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_ufromfpl.c
@@ -1,4 +1,5 @@
 #define UNSIGNED 1
 #define INEXACT 0
-#define FUNC ufromfpl
+#define FUNC __ufromfpl
 #include <s_fromfpl_main.c>
+weak_alias (__ufromfpl, ufromfpl)
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_ufromfpxl.c b/sysdeps/ieee754/ldbl-128ibm/s_ufromfpxl.c
index 906066c83c..2901151312 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_ufromfpxl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_ufromfpxl.c
@@ -1,4 +1,5 @@
 #define UNSIGNED 1
 #define INEXACT 1
-#define FUNC ufromfpxl
+#define FUNC __ufromfpxl
 #include <s_fromfpl_main.c>
+weak_alias (__ufromfpxl, ufromfpxl)
diff --git a/sysdeps/ieee754/ldbl-96/s_fromfpl.c b/sysdeps/ieee754/ldbl-96/s_fromfpl.c
index e323b4c25b..f3fdba33c1 100644
--- a/sysdeps/ieee754/ldbl-96/s_fromfpl.c
+++ b/sysdeps/ieee754/ldbl-96/s_fromfpl.c
@@ -1,4 +1,5 @@
 #define UNSIGNED 0
 #define INEXACT 0
-#define FUNC fromfpl
+#define FUNC __fromfpl
 #include <s_fromfpl_main.c>
+weak_alias (__fromfpl, fromfpl)
diff --git a/sysdeps/ieee754/ldbl-96/s_fromfpxl.c b/sysdeps/ieee754/ldbl-96/s_fromfpxl.c
index 2f3189d7de..9477cc2ea7 100644
--- a/sysdeps/ieee754/ldbl-96/s_fromfpxl.c
+++ b/sysdeps/ieee754/ldbl-96/s_fromfpxl.c
@@ -1,4 +1,5 @@
 #define UNSIGNED 0
 #define INEXACT 1
-#define FUNC fromfpxl
+#define FUNC __fromfpxl
 #include <s_fromfpl_main.c>
+weak_alias (__fromfpxl, fromfpxl)
diff --git a/sysdeps/ieee754/ldbl-96/s_getpayloadl.c b/sysdeps/ieee754/ldbl-96/s_getpayloadl.c
index 6efe97baee..2c4dab2f58 100644
--- a/sysdeps/ieee754/ldbl-96/s_getpayloadl.c
+++ b/sysdeps/ieee754/ldbl-96/s_getpayloadl.c
@@ -21,7 +21,7 @@
 #include <stdint.h>
 
 long double
-getpayloadl (const long double *x)
+__getpayloadl (const long double *x)
 {
   uint16_t se __attribute__ ((unused));
   uint32_t hx, lx;
@@ -30,3 +30,4 @@ getpayloadl (const long double *x)
   uint64_t ix = ((uint64_t) hx << 32) | lx;
   return (long double) ix;
 }
+weak_alias (__getpayloadl, getpayloadl)
diff --git a/sysdeps/ieee754/ldbl-96/s_roundevenl.c b/sysdeps/ieee754/ldbl-96/s_roundevenl.c
index dab6aa6558..de09535fa6 100644
--- a/sysdeps/ieee754/ldbl-96/s_roundevenl.c
+++ b/sysdeps/ieee754/ldbl-96/s_roundevenl.c
@@ -26,7 +26,7 @@
 #define MAX_EXP (2 * BIAS + 1)
 
 long double
-roundevenl (long double x)
+__roundevenl (long double x)
 {
   uint16_t se;
   uint32_t hx, lx;
@@ -122,3 +122,4 @@ roundevenl (long double x)
   SET_LDOUBLE_WORDS (x, se, hx, lx);
   return x;
 }
+weak_alias (__roundevenl, roundevenl)
diff --git a/sysdeps/ieee754/ldbl-96/s_setpayloadl.c b/sysdeps/ieee754/ldbl-96/s_setpayloadl.c
index 1aba33e6e2..bb07a3533a 100644
--- a/sysdeps/ieee754/ldbl-96/s_setpayloadl.c
+++ b/sysdeps/ieee754/ldbl-96/s_setpayloadl.c
@@ -1,3 +1,4 @@
 #define SIG 0
-#define FUNC setpayloadl
+#define FUNC __setpayloadl
 #include <s_setpayloadl_main.c>
+weak_alias (__setpayloadl, setpayloadl)
diff --git a/sysdeps/ieee754/ldbl-96/s_setpayloadsigl.c b/sysdeps/ieee754/ldbl-96/s_setpayloadsigl.c
index d97e2c8206..4e920360d4 100644
--- a/sysdeps/ieee754/ldbl-96/s_setpayloadsigl.c
+++ b/sysdeps/ieee754/ldbl-96/s_setpayloadsigl.c
@@ -1,3 +1,4 @@
 #define SIG 1
-#define FUNC setpayloadsigl
+#define FUNC __setpayloadsigl
 #include <s_setpayloadl_main.c>
+weak_alias (__setpayloadsigl, setpayloadsigl)
diff --git a/sysdeps/ieee754/ldbl-96/s_totalorderl.c b/sysdeps/ieee754/ldbl-96/s_totalorderl.c
index 16accad1ff..2d3b3b7d05 100644
--- a/sysdeps/ieee754/ldbl-96/s_totalorderl.c
+++ b/sysdeps/ieee754/ldbl-96/s_totalorderl.c
@@ -23,7 +23,7 @@
 #include <stdint.h>
 
 int
-totalorderl (long double x, long double y)
+__totalorderl (long double x, long double y)
 {
   int16_t expx, expy;
   uint32_t hx, hy;
@@ -55,3 +55,4 @@ totalorderl (long double x, long double y)
   ly ^= y_sign;
   return expx < expy || (expx == expy && (hx < hy || (hx == hy && lx <= ly)));
 }
+weak_alias (__totalorderl, totalorderl)
diff --git a/sysdeps/ieee754/ldbl-96/s_totalordermagl.c b/sysdeps/ieee754/ldbl-96/s_totalordermagl.c
index 6b370b2ade..2d22a0c518 100644
--- a/sysdeps/ieee754/ldbl-96/s_totalordermagl.c
+++ b/sysdeps/ieee754/ldbl-96/s_totalordermagl.c
@@ -23,7 +23,7 @@
 #include <stdint.h>
 
 int
-totalordermagl (long double x, long double y)
+__totalordermagl (long double x, long double y)
 {
   uint16_t expx, expy;
   uint32_t hx, hy;
@@ -49,3 +49,4 @@ totalordermagl (long double x, long double y)
 #endif
   return expx < expy || (expx == expy && (hx < hy || (hx == hy && lx <= ly)));
 }
+weak_alias (__totalordermagl, totalordermagl)
diff --git a/sysdeps/ieee754/ldbl-96/s_ufromfpl.c b/sysdeps/ieee754/ldbl-96/s_ufromfpl.c
index c686daa4a7..2176aa0cdd 100644
--- a/sysdeps/ieee754/ldbl-96/s_ufromfpl.c
+++ b/sysdeps/ieee754/ldbl-96/s_ufromfpl.c
@@ -1,4 +1,5 @@
 #define UNSIGNED 1
 #define INEXACT 0
-#define FUNC ufromfpl
+#define FUNC __ufromfpl
 #include <s_fromfpl_main.c>
+weak_alias (__ufromfpl, ufromfpl)
diff --git a/sysdeps/ieee754/ldbl-96/s_ufromfpxl.c b/sysdeps/ieee754/ldbl-96/s_ufromfpxl.c
index 906066c83c..2901151312 100644
--- a/sysdeps/ieee754/ldbl-96/s_ufromfpxl.c
+++ b/sysdeps/ieee754/ldbl-96/s_ufromfpxl.c
@@ -1,4 +1,5 @@
 #define UNSIGNED 1
 #define INEXACT 1
-#define FUNC ufromfpxl
+#define FUNC __ufromfpxl
 #include <s_fromfpl_main.c>
+weak_alias (__ufromfpxl, ufromfpxl)