mirror of git://sourceware.org/git/glibc.git
There are a lot more printf variants than there are scanf variants,
and the code for setting up and tearing down their custom FILE
variants around the call to __vf(w)printf is more complicated and
variable. Therefore, I have added _internal versions of all the
v*printf variants, rather than introducing helper routines so that
they can all directly call __vf(w)printf_internal, as was done with
scanf.
As with the scanf changes, in this patch the _internal functions still
look at the environmental mode bits and all callers pass 0 for the
flags parameter.
Several of the affected public functions had _IO_ name aliases that
were not exported (but, in one case, appeared in libio.h anyway);
I was originally planning to leave them as aliases to avoid having
to touch internal callers, but it turns out ldbl_*_alias only work
for exported symbols, so they've all been removed instead. It also
turns out there were hardly any internal callers. _IO_vsprintf and
_IO_vfprintf *are* exported, so those two stick around.
Summary for the changes to each of the affected symbols:
_IO_vfprintf, _IO_vsprintf:
All internal calls removed, thus the internal declarations, as well
as uses of libc_hidden_proto and libc_hidden_def, were also removed.
The external symbol is now exposed via uses of ldbl_strong_alias
to __vfprintf_internal and __vsprintf_internal, respectively.
_IO_vasprintf, _IO_vdprintf, _IO_vsnprintf,
_IO_vfwprintf, _IO_vswprintf,
_IO_obstack_vprintf, _IO_obstack_printf:
All internal calls removed, thus declaration in internal headers
were also removed. They were never exported, so there are no
aliases tying them to the internal functions. I.e.: entirely gone.
__vsnprintf:
Internal calls were always preceded by macros such as
#define __vsnprintf _IO_vsnprintf, and
#define __vsnprintf vsnprintf
The macros were removed and their uses replaced with calls to the
new internal function __vsnprintf_internal. Since there were no
internal calls, the internal declaration was also removed. The
external symbol is preserved with ldbl_weak_alias to ___vsnprintf.
__vfwprintf:
All internal calls converted into calls to __vfwprintf_internal,
thus the internal declaration was removed. The function is now a
wrapper that calls __vfwprintf_internal. The external symbol is
preserved.
__vswprintf:
Similarly, but no external symbol.
__vasprintf, __vdprintf, __vfprintf, __vsprintf:
New internal wrappers. Not exported.
vasprintf, vdprintf, vfprintf, vsprintf, vsnprintf,
vfwprintf, vswprintf,
obstack_vprintf, obstack_printf:
These functions used to be aliases to the respective _IO_* function,
they are now aliases to their respective __* functions.
Tested for powerpc and powerpc64le.
|
||
|---|---|---|
| .. | ||
| bits | ||
| Depend | ||
| Makefile | ||
| Versions | ||
| _i18n_number.h | ||
| _itoa.c | ||
| _itowa.c | ||
| _itowa.h | ||
| asprintf.c | ||
| bug-vfprintf-nargs.c | ||
| bug1.c | ||
| bug1.input | ||
| bug2.c | ||
| bug3.c | ||
| bug4.c | ||
| bug5.c | ||
| bug6.c | ||
| bug6.input | ||
| bug7.c | ||
| bug8.c | ||
| bug9.c | ||
| bug10.c | ||
| bug11.c | ||
| bug12.c | ||
| bug13.c | ||
| bug14.c | ||
| bug16.c | ||
| bug17.c | ||
| bug18.c | ||
| bug18a.c | ||
| bug19.c | ||
| bug19a.c | ||
| bug20.c | ||
| bug21.c | ||
| bug22.c | ||
| bug23-2.c | ||
| bug23-3.c | ||
| bug23-4.c | ||
| bug23.c | ||
| bug24.c | ||
| bug25.c | ||
| bug26.c | ||
| ctermid.c | ||
| cuserid.c | ||
| dprintf.c | ||
| errlist.c | ||
| errnobug.c | ||
| flockfile.c | ||
| fprintf.c | ||
| fscanf.c | ||
| ftrylockfile.c | ||
| funlockfile.c | ||
| fxprintf.c | ||
| gentempfd.c | ||
| getline.c | ||
| getw.c | ||
| iovfscanf.c | ||
| iovfwscanf.c | ||
| isoc99_fscanf.c | ||
| isoc99_scanf.c | ||
| isoc99_sscanf.c | ||
| isoc99_vfscanf.c | ||
| isoc99_vscanf.c | ||
| isoc99_vsscanf.c | ||
| itoa-digits.c | ||
| itoa-udigits.c | ||
| itowa-digits.c | ||
| perror.c | ||
| printf-parse.h | ||
| printf-parsemb.c | ||
| printf-parsewc.c | ||
| printf-prs.c | ||
| printf.c | ||
| printf.h | ||
| printf_fp.c | ||
| printf_fphex.c | ||
| printf_size.c | ||
| psiginfo-data.h | ||
| psiginfo-define.h | ||
| psiginfo.c | ||
| psignal.c | ||
| putw.c | ||
| reg-modifier.c | ||
| reg-printf.c | ||
| reg-type.c | ||
| remove.c | ||
| rename.c | ||
| renameat.c | ||
| renameat2.c | ||
| scanf.c | ||
| scanf1.c | ||
| scanf2.c | ||
| scanf3.c | ||
| scanf4.c | ||
| scanf5.c | ||
| scanf7.c | ||
| scanf8.c | ||
| scanf9.c | ||
| scanf10.c | ||
| scanf11.c | ||
| scanf12.c | ||
| scanf12.input | ||
| scanf13.c | ||
| scanf14.c | ||
| scanf15.c | ||
| scanf16.c | ||
| scanf17.c | ||
| siglist.c | ||
| snprintf.c | ||
| sprintf.c | ||
| sscanf.c | ||
| stdio_ext.h | ||
| stdio_lim.h.in | ||
| tempnam.c | ||
| tempname.c | ||
| temptest.c | ||
| test-fseek.c | ||
| test-fwrite.c | ||
| test-popen.c | ||
| test-vfprintf.c | ||
| test_rdwr.c | ||
| tfformat.c | ||
| tiformat.c | ||
| tllformat.c | ||
| tmpfile.c | ||
| tmpfile64.c | ||
| tmpnam.c | ||
| tmpnam_r.c | ||
| tst-cookie.c | ||
| tst-fdopen.c | ||
| tst-ferror.c | ||
| tst-ferror.input | ||
| tst-fgets.c | ||
| tst-fileno.c | ||
| tst-fmemopen.c | ||
| tst-fmemopen2.c | ||
| tst-fmemopen3.c | ||
| tst-fmemopen4.c | ||
| tst-fphex-wide.c | ||
| tst-fphex.c | ||
| tst-fseek.c | ||
| tst-fwrite.c | ||
| tst-gets.c | ||
| tst-gets.input | ||
| tst-grouping.c | ||
| tst-long-dbl-fphex.c | ||
| tst-obprintf.c | ||
| tst-perror.c | ||
| tst-popen.c | ||
| tst-popen2.c | ||
| tst-printf-bz18872.sh | ||
| tst-printf-round.c | ||
| tst-printf.c | ||
| tst-printf.sh | ||
| tst-printfsz-islongdouble.c | ||
| tst-printfsz-islongdouble.sh | ||
| tst-printfsz.c | ||
| tst-put-error.c | ||
| tst-renameat2.c | ||
| tst-rndseek.c | ||
| tst-scanf-round.c | ||
| tst-setvbuf1.c | ||
| tst-setvbuf1.expect | ||
| tst-sprintf.c | ||
| tst-sprintf2.c | ||
| tst-sprintf3.c | ||
| tst-sscanf.c | ||
| tst-swprintf.c | ||
| tst-swscanf.c | ||
| tst-tmpnam.c | ||
| tst-unbputc.c | ||
| tst-unbputc.sh | ||
| tst-ungetc.c | ||
| tst-unlockedio.c | ||
| tst-vfprintf-mbs-prec.c | ||
| tst-vfprintf-user-type.c | ||
| tst-vfprintf-width-prec.c | ||
| tst-wc-printf.c | ||
| tstdiomisc.c | ||
| tstgetln.c | ||
| tstgetln.input | ||
| tstscanf.c | ||
| tstscanf.input | ||
| vfprintf-internal.c | ||
| vfprintf.c | ||
| vfscanf-internal.c | ||
| vfscanf.c | ||
| vfwprintf-internal.c | ||
| vfwprintf.c | ||
| vfwscanf-internal.c | ||
| vfwscanf.c | ||
| vprintf.c | ||
| xbug.c | ||