glibc/hurd
Zack Weinberg 698fb75b9f Add __v*printf_internal with flags arguments
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.
2018-12-05 18:15:42 -02:00
..
hurd hurd: Fix spawni's user_link reallocation 2018-11-11 20:09:17 +01:00
alloc-fd.c
catch-exc.c
catch-signal.c Revert parts of "hurd: Avoid more libc.so local PLTs" 2018-04-03 23:06:00 +02:00
compat-20.c
ctty-input.c
ctty-output.c
Depend
dtable.c
exc2signal.c hurd: Avoid some libc.so PLTs 2018-04-02 22:08:55 +00:00
faultexc.defs
fchroot.c
fcntl-internal.h
fd-close.c
fd-read.c
fd-write.c
fopenport.c
get-host.c
getdport.c
geteuids.c
getumask.c
hurd-raise.c hurd: Avoid more libc.so PLTs 2018-04-02 23:40:26 +00:00
hurd.h
hurdauth.c hurd: Avoid some PLTs in libc and librt 2018-04-02 19:07:52 +00:00
hurdchdir.c
hurdexec.c hurd: Avoid some libc.so PLTs 2018-04-02 22:08:55 +00:00
hurdfault.c Revert parts of "hurd: Avoid more libc.so local PLTs" 2018-04-03 23:06:00 +02:00
hurdfault.h
hurdfchdir.c
hurdhost.h
hurdid.c
hurdinit.c hurd: Avoid some libc.so PLTs 2018-04-02 22:08:55 +00:00
hurdioctl.c
hurdkill.c
hurdlock.c hurd: Code style fixes 2018-03-20 03:00:39 +01:00
hurdlock.h
hurdlookup.c hurd: Fix O_DIRECTORY | O_NOFOLLOW 2018-03-18 19:43:04 +01:00
hurdmalloc.c
hurdmalloc.h
hurdmsg.c hurd: Avoid some PLTs in libc and librt 2018-04-02 19:07:52 +00:00
hurdpid.c
hurdports.c
hurdprio.c hurd: Avoid some PLTs in libc and librt 2018-04-02 19:07:52 +00:00
hurdrlimit.c
hurdselect.c
hurdsig.c hurd: Fix race between calling RPC and handling a signal 2018-10-28 13:41:51 +01:00
hurdsock.c
hurdsocket.h
hurdstartup.c
hurdstartup.h
intern-fd.c hurd: Avoid some libc.so PLTs 2018-04-02 22:08:55 +00:00
intr-msg.c hurd: return EIEIO instead of EIO 2018-10-29 18:57:13 +01:00
intr-rpc.defs
intr-rpc.h
longjmp-ts.c
lookup-at.c
lookup-retry.c hurd: Fix O_DIRECTORY | O_NOFOLLOW 2018-03-18 19:43:04 +01:00
Makefile hurd: Add pci RPC stubs 2018-10-31 22:43:44 +01:00
msgportdemux.c
new-fd.c
Notes
openport.c
path-lookup.c hurd: Avoid some libc.so PLTs 2018-04-02 22:08:55 +00:00
pid2task.c
port2fd.c
port-cleanup.c
ports-get.c
ports-set.c
preempt-sig.c
privports.c
report-wait.c
set-host.c
setauth.c
seteuids.c
siginfo.c hurd: Avoid some PLTs in libc and librt 2018-04-02 19:07:52 +00:00
sigunwind.c
stack_chk_fail_local.c
task2pid.c
thread-cancel.c
thread-self.c
trampoline.c
Versions Hurd: export _hurd_port_move 2018-11-10 13:13:12 +00:00
vpprintf.c Add __v*printf_internal with flags arguments 2018-12-05 18:15:42 -02:00
xattr.c hurd: Avoid some PLTs in libc and librt 2018-04-02 19:07:52 +00:00