glibc/sysdeps/ieee754
Frédéric Bérat 505c884aeb stdio: Ensure *_chk routines have their hidden builtin definition available
If libc_hidden_builtin_{def,proto} isn't properly set for *_chk routines,
there are unwanted PLT entries in libc.so.

There is a special case with __asprintf_chk:
If ldbl_* macros are used for asprintf, ABI gets broken on s390x,
if it isn't, ppc64le isn't building due to multiple asm redirections.

This is due to the inclusion of bits/stdio-lbdl.h for ppc64le whereas it
isn't for s390x. This header creates redirections, which are not
compatible with the ones generated using libc_hidden_def.
Yet, we can't use libc_hidden_ldbl_proto on s390x since it will not
create a simple strong alias (e.g. as done on x86_64), but a versioned
alias, leading to ABI breakage.

This results in errors on s390x:
/usr/bin/ld: glibc/iconv/../libio/bits/stdio2.h:137: undefined reference
to `__asprintf_chk'

Original __asprintf_chk symbols:
00000000001395b0 T __asprintf_chk
0000000000177e90 T __nldbl___asprintf_chk

__asprintf_chk symbols with ldbl_* macros:
000000000012d590 t ___asprintf_chk
000000000012d590 t __asprintf_chk@@GLIBC_2.4
000000000012d590 t __GI___asprintf_chk
000000000012d590 t __GL____asprintf_chk___asprintf_chk
0000000000172240 T __nldbl___asprintf_chk

__asprintf_chk symbols with the patch:
000000000012d590 t ___asprintf_chk
000000000012d590 T __asprintf_chk
000000000012d590 t __GI___asprintf_chk
0000000000172240 T __nldbl___asprintf_chk

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2023-07-05 16:59:48 +02:00
..
dbl-64 aarch64: Add vector implementations of cos routines 2023-06-30 09:04:10 +01:00
float128 Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
flt-32 aarch64: Add vector implementations of cos routines 2023-06-30 09:04:10 +01:00
ldbl-64-128 Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
ldbl-96 Fix misspellings in sysdeps/ -- BZ 25337 2023-05-30 23:02:29 +00:00
ldbl-128 Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
ldbl-128ibm Fix misspellings in sysdeps/ -- BZ 25337 2023-05-30 23:02:29 +00:00
ldbl-128ibm-compat stdio: Ensure *_chk routines have their hidden builtin definition available 2023-07-05 16:59:48 +02:00
ldbl-opt Exclude routines from fortification 2023-07-05 16:59:48 +02:00
soft-fp math: Suppress -O0 warnings for soft-fp fsqrt [BZ #19444] 2023-01-11 17:50:51 -03:00
ieee754.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
k_standard.c Use copysign functions not __copysign functions in glibc libm. 2018-09-27 20:04:48 +00:00
k_standardf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
k_standardl.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
libm-alias-finite.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
Makefile
s_lib_version.c Simplify math-svid-compat code. 2017-08-28 15:19:52 +00:00
s_matherr.c Obsolete matherr, _LIB_VERSION, libieee.a. 2017-08-21 17:45:10 +00:00
s_signgam.c Remove unnecessary math_private.h includes. 2018-09-28 21:53:33 +00:00