mirror of git://sourceware.org/git/glibc.git
ldbl-128ibm-compat: Add local aliases for printf family symbols
When the compiler selects IEEE-128 long double ABI(-mabi=ieeelongdouble),
calls to printf, fprintf, sprintf and snprintf are redirected to the
__printfieee128, __fprintfieee128, __sprintfieee128 and __snprintfieee128
symbols respectively. This causes "break printf" (and others) in
GDB to fail because the original symbol names do not exist as global
symbols in libc.so.6.
Fix this by adding local symbol aliases in the ieee128 compatibility
files so that the original symbol names are present in the symbol table
again. This restores the expected GDB behavior ("break printf" works)
without requiring dynamic symbols or versioned compatibility symbols.
Suggested-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
This commit is contained in:
parent
e56b3faf8d
commit
f05ab7c4a9
|
|
@ -33,3 +33,4 @@ ___ieee128_fprintf (FILE *fp, const char *format, ...)
|
|||
}
|
||||
strong_alias (___ieee128_fprintf, __fprintfieee128)
|
||||
hidden_def (___ieee128_fprintf)
|
||||
asm (".local fprintf\n" ".set fprintf, __fprintfieee128");
|
||||
|
|
|
|||
|
|
@ -33,3 +33,4 @@ ___ieee128_printf (const char *format, ...)
|
|||
return done;
|
||||
}
|
||||
strong_alias (___ieee128_printf, __printfieee128)
|
||||
asm (".local printf\n" ".set printf, __printfieee128");
|
||||
|
|
|
|||
|
|
@ -37,3 +37,4 @@ ldbl_hidden_def (___ieee128_snprintf, ___ieee128_snprintf)
|
|||
#ifdef SHARED
|
||||
strong_alias (___ieee128_snprintf, __GI____ieee128___snprintf)
|
||||
#endif
|
||||
asm (".local snprintf\n" ".set snprintf, __snprintfieee128");
|
||||
|
|
|
|||
|
|
@ -34,3 +34,4 @@ ___ieee128_sprintf (char *s, const char *format, ...)
|
|||
}
|
||||
strong_alias (___ieee128_sprintf, __sprintfieee128)
|
||||
hidden_def (___ieee128_sprintf)
|
||||
asm (".local sprintf\n" ".set sprintf, __sprintfieee128");
|
||||
|
|
|
|||
Loading…
Reference in New Issue