public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH v2 0/5] Don't install libio.h or _G_config.h.
@ 2018-02-05 23:35 Zack Weinberg
  2018-02-05 23:35 ` [PATCH v2 1/5] Pre-cleanup: Remove unnecessary redefinitions of std symbols Zack Weinberg
                   ` (4 more replies)
  0 siblings, 5 replies; 21+ messages in thread
From: Zack Weinberg @ 2018-02-05 23:35 UTC (permalink / raw)
  To: libc-alpha; +Cc: fweimer, joseph

We shipped 2.27 with libio.h and _G_config.h still installed but
issuing warnings when used.  Let's stop installing them early in 2.28
so that we have plenty of time to think of another plan if there are
problems.

This patch series consists of one pre-cleanup, two changes with
user-visible effects, and two post-cleanups.  The pre-cleanup and the
first user-visible change affect the contents of installed shipped
libraries, in ways described clearly in those patches' commit
messages; the latter three patches leave installed stripped libraries
on x86_64-linux-gnu unchanged.

The post-cleanups are not very ambitious.  We can't go very far with
libio cleanups as long as we still have _IO_MTSAFE_IO, and I am not
tackling that in this patch series, but we can at least make the maze
of stdio-related headers a little less complicated.  I'm not going to
have time to work on this anymore in the near future.  If anyone else
feels like following up, but not tackling _IO_MTSAFE_IO, a good next
step would be to remove _IO_ symbols that are not used at all anymore,
or whose uses can trivially be replaced with public or __ symbols.

All patches have been individually test-compiled on x86_64-linux-gnu
and test-installed.  The complete test suite has been run for the
patchset as a whole.  In addition, for the patchset as a whole, I
verified that a simple program that uses stdio.h could be compiled and
run against the installation tree.

zw

Zack Weinberg (5):
  Pre-cleanup: Remove unnecessary redefinitions of std symbols.
  Remove getc and putc macros from the public stdio.h.
  Don't install libio.h or _G_config.h.
  Post-cleanup 1: move libio.h back out of bits/.
  Post-cleanup 2: minimize _G_config.h.

 NEWS                                       |  11 +-
 bits/_G_config.h                           |  62 ----
 conform/data/stdio.h-data                  |   2 +-
 csu/init.c                                 |  13 +-
 include/bits/libio.h                       |  45 ---
 include/bits/types/__fpos64_t.h            |   1 +
 include/bits/types/__fpos_t.h              |   1 +
 include/bits/types/cookie_io_functions_t.h |   1 +
 include/bits/types/struct_FILE.h           |   1 +
 include/stdio.h                            |  33 +-
 libio/Makefile                             |   9 +-
 libio/_G_config.h                          |  25 --
 libio/bits/libio-ldbl.h                    |  29 --
 libio/bits/libio.h                         | 527 -----------------------------
 libio/bits/stdio.h                         |  33 +-
 libio/bits/stdio2.h                        |  35 +-
 libio/bits/types/__fpos64_t.h              |  16 +
 libio/bits/types/__fpos_t.h                |  16 +
 libio/bits/types/cookie_io_functions_t.h   |  46 +++
 libio/bits/types/struct_FILE.h             | 120 +++++++
 libio/filedoalloc.c                        |   2 +-
 libio/fileops.c                            |   2 +-
 libio/iofdopen.c                           |   4 +-
 libio/iofopen.c                            |   2 +-
 libio/iolibio.h                            |   6 +
 libio/libio.h                              | 404 +++++++++++++++++++++-
 libio/libioP.h                             |  27 +-
 libio/stdio.h                              | 103 +++---
 scripts/check-installed-headers.sh         |   5 -
 stdio-common/tstgetln.c                    |   2 -
 stdio-common/vfprintf.c                    |   7 +-
 sysdeps/generic/_G_config.h                |  15 +
 sysdeps/ieee754/ldbl-opt/nldbl-compat.h    |  13 +-
 sysdeps/unix/sysv/linux/_G_config.h        |  15 +
 sysdeps/unix/sysv/linux/bits/_G_config.h   |  63 ----
 35 files changed, 798 insertions(+), 898 deletions(-)
 delete mode 100644 bits/_G_config.h
 delete mode 100644 include/bits/libio.h
 create mode 100644 include/bits/types/__fpos64_t.h
 create mode 100644 include/bits/types/__fpos_t.h
 create mode 100644 include/bits/types/cookie_io_functions_t.h
 create mode 100644 include/bits/types/struct_FILE.h
 delete mode 100644 libio/_G_config.h
 delete mode 100644 libio/bits/libio-ldbl.h
 delete mode 100644 libio/bits/libio.h
 create mode 100644 libio/bits/types/__fpos64_t.h
 create mode 100644 libio/bits/types/__fpos_t.h
 create mode 100644 libio/bits/types/cookie_io_functions_t.h
 create mode 100644 libio/bits/types/struct_FILE.h
 create mode 100644 sysdeps/generic/_G_config.h
 create mode 100644 sysdeps/unix/sysv/linux/_G_config.h
 delete mode 100644 sysdeps/unix/sysv/linux/bits/_G_config.h

-- 
2.15.1

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2018-02-07 15:17 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-05 23:35 [PATCH v2 0/5] Don't install libio.h or _G_config.h Zack Weinberg
2018-02-05 23:35 ` [PATCH v2 1/5] Pre-cleanup: Remove unnecessary redefinitions of std symbols Zack Weinberg
2018-02-06  0:02   ` Joseph Myers
2018-02-05 23:35 ` [PATCH v2 2/5] Remove getc and putc macros from the public stdio.h Zack Weinberg
2018-02-06  0:13   ` Joseph Myers
2018-02-06  6:41     ` Zack Weinberg
2018-02-05 23:35 ` [PATCH v2 4/5] Post-cleanup 1: move libio.h back out of bits/ Zack Weinberg
2018-02-06 18:01   ` Adhemerval Zanella
2018-02-06 20:18     ` Zack Weinberg
2018-02-07 12:14       ` Adhemerval Zanella
2018-02-07 15:37         ` Zack Weinberg
2018-02-05 23:42 ` [PATCH v2 3/5] Don't install libio.h or _G_config.h Zack Weinberg
2018-02-06 16:06   ` Adhemerval Zanella
     [not found]     ` <CAKCAbMiGUH5cBcZQjdf_uHTbqPyTJhBR-o8zo6u+hd_WCA_4VQ@mail.gmail.com>
2018-02-06 20:10       ` Fwd: " Zack Weinberg
2018-02-06 21:34         ` Florian Weimer
2018-02-07 12:14           ` Adhemerval Zanella
2018-02-07 15:27             ` Zack Weinberg
2018-02-05 23:50 ` [PATCH v2 5/5] Post-cleanup 2: minimize _G_config.h Zack Weinberg
2018-02-06 20:08   ` Adhemerval Zanella
2018-02-06 21:06     ` Zack Weinberg
2018-02-07 13:09       ` Adhemerval Zanella

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).