glibc/include
Tulio Magno Quites Machado Filho 1ef9b6e0bf Do not redirect calls to __GI_* symbols, when redirecting to *ieee128
On platforms where long double has IEEE binary128 format as a third
option (initially, only powerpc64le), many exported functions are
redirected to their __*ieee128 equivalents.  This redirection is
provided by installed headers such as stdio-ldbl.h, and is supposed to
work correctly with user code.

However, during the build of glibc, similar redirections are employed,
in internal headers, such as include/stdio.h, in order to avoid extra
PLT entries.  These redirections conflict with the redirections to
__*ieee128, and must be avoided during the build.  This patch protects
the second redirections with a test for __LONG_DOUBLE_USES_FLOAT128, a
new macro that is defined to 1 when functions that deal with long double
typed values reuses the _Float128 implementation (this is currently only
true for powerpc64le).

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

Co-authored-by: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Reviewed-by: Florian Weimer <fweimer@redhat.com>
2019-12-27 15:02:10 -03:00
..
arpa CVE-2016-10739: getaddrinfo: Fully parse IPv4 address strings [BZ #20018] 2019-01-21 21:26:03 +01:00
bits Split up endian.h to minimize exposure of BYTE_ORDER. 2019-10-01 14:54:46 -07:00
gnu Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
net
netinet Add missing header wrappers under include/ 2019-02-16 08:25:16 +01:00
programs Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
protocols
rpc Run thread shutdown functions in an explicit order 2018-06-26 15:27:12 +02:00
rpcsvc Add missing header wrappers under include/ 2019-02-16 08:25:16 +01:00
sys Implement waitpid in terms of wait4 2019-12-19 16:11:09 -03:00
aio.h
aliases.h Mark internal getXXXbyYYY functions with attribute_hidden [BZ #18822] 2017-10-01 15:21:00 -07:00
alloc_buffer.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
alloca.h Remove macros extend_alloca, extend_alloca_account [BZ #18023] 2018-06-27 19:20:37 +02:00
allocate_once.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
ar.h Add missing header wrappers under include/ 2019-02-16 08:25:16 +01:00
argp-fmtstream.h Mark internal argp functions with attribute_hidden [BZ #18822] 2017-10-01 15:10:27 -07:00
argp.h ldbl-opt: Add argp_error and argp_failure (bug 23983) 2019-03-01 15:21:32 -03:00
argz.h Use libc_hidden_* for argz_next, __argz_next (bug 15105). 2018-02-15 21:00:02 +00:00
array_length.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
assert.h Introduce NO_RTLD_HIDDEN, make hurd use it instead of NO_HIDDEN 2017-10-03 01:33:38 +02:00
atomic.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
byteswap.h Update. 1998-04-10 10:52:25 +00:00
complex.h float128: Add private _Float128 declarations for libm. 2017-05-15 10:23:28 -03:00
cpio.h
crypt.h Add include/crypt.h. 2016-10-28 22:40:16 -04:00
ctype.h Use libc_hidden_* for tolower, toupper (bug 15105). 2018-02-23 13:54:53 +00:00
des.h
dirent.h <dirent.h>: Remove wrong comment about getdents64 declaration 2019-10-09 11:31:03 +02:00
dlfcn.h dlfcn: Remove remnants of caller sensitivity from dlinfo 2019-10-16 18:21:30 +02:00
dso_handle.h Mark __dso_handle as hidden [BZ #18822] 2017-09-26 16:53:44 -07:00
elf.h elf: Refuse to dlopen PIE objects [BZ #24323] 2019-06-18 16:42:10 +02:00
endian.h
envz.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
err.h ldbl-opt: Add err, errx, verr, verrx, warn, warnx, vwarn, and vwarnx (bug 23984) 2019-03-01 15:24:51 -03:00
errno.h hurd: Fix accessing errno from rtld 2018-03-25 00:48:01 +01:00
error.h ldbl-opt: Add error and error_at_line (bug 23984) 2019-03-01 15:26:36 -03:00
execinfo.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
fcntl.h Fix Linux fcntl OFD locks for non-LFS architectures (BZ#20251) 2018-06-26 13:22:53 -03:00
features.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
fenv.h Move fenv.h soft-float inlines from fenv_private.h to include/fenv.h. 2018-09-04 19:52:06 +00:00
float.h Make totalorder and totalordermag functions take pointer arguments. 2019-08-15 15:18:34 +00:00
fmtmsg.h
fnmatch.h
fpu_control.h Hide internal __setfpucw function [BZ #18822] 2017-10-01 17:52:15 -07:00
fstab.h Add missing header wrappers under include/ 2019-02-16 08:25:16 +01:00
fts.h Add missing header wrappers under include/ 2019-02-16 08:25:16 +01:00
ftw.h
gconv.h
getopt_int.h
getopt.h getopt: remove USE_NONOPTION_FLAGS 2017-04-07 07:45:53 -04:00
glob.h Hide internal __glob64 function [BZ #18822] 2017-10-01 18:02:10 -07:00
gmp.h Mark internal gmp functions with attribute_hidden [BZ #18822] 2017-10-01 15:15:30 -07:00
gnu-versions.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
grp-merge.h NSS: Implement group merging support. 2016-04-29 22:18:21 -04:00
grp.h Mark internal grp/pwd/shadow functions with attribute_hidden [BZ #18822] 2017-10-01 15:13:13 -07:00
gshadow.h Mark internal gshadow functions with attribute_hidden [BZ #18822] 2017-10-01 15:19:17 -07:00
iconv.h
ifaddrs.h hurd: Fix getifaddrs' and freeifaddrs' symbol exposition 2017-09-28 01:05:18 +02:00
ifreq.h Hide internal __ifreq function [BZ #18822] 2017-10-01 17:35:46 -07:00
ifunc-impl-list.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
inline-hashtab.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
intprops.h Sync intprops.h with gnulib 2019-10-31 17:02:49 -03:00
inttypes.h Move inttypes.h and stdint.h to stdlib. 2019-03-13 09:42:09 -04:00
langinfo.h
lastlog.h Add missing header wrappers under include/ 2019-02-16 08:25:16 +01:00
libc-diag.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
libc-internal.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
libc-pointer-arith.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
libc-symbols.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
libgen.h
libintl.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
limits.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
link.h dlopen: Rework handling of pending NODELETE status 2019-12-13 10:18:46 +01:00
list_t.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
list.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
locale.h
loop_unroll.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
malloc.h Don't declare __malloc_check_init in <malloc.h> (bug 23352) 2019-07-10 15:04:05 +02:00
math-narrow-eval.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
math.h Enable inlining issignalingf within glibc 2019-11-21 09:39:48 -06:00
mcheck.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
memory.h
mntent.h Hide internal __hasmntopt function [BZ #18822] 2017-10-01 17:37:42 -07:00
monetary.h ldbl-128ibm-compat: Add strfmon_l with IEEE long double format 2019-12-03 13:30:37 -03:00
mqueue.h Fix mq_receive, mq_send mq_timed* namespace (bug 18545). 2015-06-17 20:19:04 +00:00
netdb.h Mark internal getXXXbyYYY functions with attribute_hidden [BZ #18822] 2017-10-01 15:21:00 -07:00
netgroup.h
nl_types.h
nss.h nss: Export nscd hash function as __nss_hash [BZ #22459] 2017-11-23 14:08:11 +01:00
nsswitch.h
obstack.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
plural-exp.h Hide internal __gettextparse function [BZ #18822] 2017-10-01 17:31:05 -07:00
poll.h
printf.h Hide internal printf functions [BZ #18822/21986] 2017-08-22 07:50:57 -07:00
pthread.h Fix mq_notify pthread_barrier_* namespace (bug 18544). 2015-06-17 20:16:56 +00:00
pty.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
pwd.h Mark internal grp/pwd/shadow functions with attribute_hidden [BZ #18822] 2017-10-01 15:13:13 -07:00
random-bits.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
re_comp.h Add missing header wrappers under include/ 2019-02-16 08:25:16 +01:00
regex.h Hide internal regex functions [BZ #18822] 2017-10-01 15:53:15 -07:00
regexp.h Add missing header wrappers under include/ 2019-02-16 08:25:16 +01:00
resolv.h Obsolete p_secstodate. 2017-11-22 22:21:10 +00:00
rounding-mode.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
sched.h Don't use __typeof__ (getcpu) 2018-12-07 12:47:41 -08:00
scratch_buffer.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
search.h misc: Add twalk_r function 2019-05-02 11:42:51 +02:00
set-hooks.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
setjmp.h Make totalorder and totalordermag functions take pointer arguments. 2019-08-15 15:18:34 +00:00
sgtty.h
shadow.h Mark internal grp/pwd/shadow functions with attribute_hidden [BZ #18822] 2017-10-01 15:13:13 -07:00
shlib-compat.h nptl: Add more missing placeholder abi symbol from nanosleep move 2019-12-09 15:04:56 -03:00
signal.h Introduce NO_RTLD_HIDDEN, make hurd use it instead of NO_HIDDEN 2017-10-03 01:33:38 +02:00
spawn.h posix: Use posix_spawn for wordexp 2019-10-09 17:48:41 -03:00
stab.h
stackinfo.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
stap-probe.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
stdc-predef.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
stdint.h Move inttypes.h and stdint.h to stdlib. 2019-03-13 09:42:09 -04:00
stdio_ext.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
stdio.h Do not redirect calls to __GI_* symbols, when redirecting to *ieee128 2019-12-27 15:02:10 -03:00
stdlib.h Do not redirect calls to __GI_* symbols, when redirecting to *ieee128 2019-12-27 15:02:10 -03:00
string.h Run thread shutdown functions in an explicit order 2018-06-26 15:27:12 +02:00
strings.h
stubs-prologue.h
syscall.h
sysexits.h
syslog.h
tar.h
termios.h Hide internal __tcgetattr function [BZ #18822] 2017-10-01 17:48:24 -07:00
tgmath.h
time.h y2038: linux: Provide __timer_settime64 implementation 2019-12-05 23:16:54 +01:00
ttyent.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
uchar.h
ucontext.h
ulimit.h
unistd.h hurd: Fix ld.so __access override from libc 2019-12-01 21:05:56 +00:00
utime.h
utmp.h Mark internal utmp functions with attribute_hidden [BZ #18822] 2017-10-01 15:51:56 -07:00
values.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
verify.h posix: Sync regex with gnulib 2019-11-06 09:20:52 -03:00
wait.h Add missing header wrappers under include/ 2019-02-16 08:25:16 +01:00
wchar.h Use DEPRECATED_SCANF macro for remaining C99-compliant scanf functions 2019-11-22 15:29:21 -03:00
wctype.h Remove __need macros from stdio.h and wchar.h. 2017-06-08 13:58:17 -04:00
wordexp.h