mbox

[v2,0/4] Remove fno_unit_at_a_time configure check

Message ID 20220512125931.523712-1-adhemerval.zanella@linaro.org
Headers

Message

Adhemerval Zanella Netto May 12, 2022, 12:59 p.m. UTC
  Both siglist.c and errlist.c require gcc -fno-toplevel-reorder option
to avoid compiler to reorder the compat assembly directives due a
assembler issue [1] (fixed on binutils 2.39).

This patchset removes the flag requirement by reorganizing how the
compat symbols are created: an intermediary compiler assembly with
just the data definition is used as input to another source file
that actually creates the compat symbols.  This prevents compiler to
move any compat directive prior the _sys_errlist_internal
definition itself.

[1] https://sourceware.org/bugzilla/show_bug.cgi?id=29012

Adhemerval Zanella (3):
  stdio: Remove the usage of $(fno-unit-at-a-time) for errlist.c
  stdio: Remove the usage of $(fno-unit-at-a-time) for siglist.c
  Remove configure fno_unit_at_a_time

H.J. Lu (1):
  Add declare_object_symbol_alias for assembly codes (BZ #28128)

 Makeconfig                                    |  3 +-
 config.make.in                                |  1 -
 configure                                     | 32 -----------------
 configure.ac                                  | 19 -----------
 include/libc-symbols.h                        | 14 ++++----
 include/signal.h                              |  6 ++--
 include/stdio.h                               |  1 +
 stdio-common/Makefile                         | 34 +++++++++++++++++--
 stdio-common/err_map.h                        | 24 +++++++++++++
 stdio-common/errlist-compat-data.h            |  1 +
 stdio-common/errlist-compat.c                 |  1 -
 stdio-common/errlist-data-gen.c               | 34 +++++++++++++++++++
 stdio-common/errlist-data.S                   |  7 ++++
 stdio-common/errlist.c                        | 20 +++--------
 stdio-common/{siglist.c => siglist-gen.c}     |  4 ---
 stdio-common/siglist.S                        |  7 ++++
 ...{siglist-compat.h => siglist-compat-def.h} | 27 ++++++++-------
 sysdeps/generic/siglist-compat.c              |  1 -
 sysdeps/mach/hurd/{errlist.c => err_map.h}    |  9 +++--
 .../{siglist-compat.c => siglist-compat.h}    |  7 ++--
 ...errlist-compat.c => errlist-compat-data.h} |  0
 ...errlist-compat.c => errlist-compat-data.h} |  0
 sysdeps/unix/sysv/linux/errlist-compat.h      | 33 +++++++++++-------
 ...errlist-compat.c => errlist-compat-data.h} |  0
 ...errlist-compat.c => errlist-compat-data.h} |  0
 .../{siglist-compat.c => siglist-compat.h}    |  7 ++--
 ...errlist-compat.c => errlist-compat-data.h} |  0
 27 files changed, 175 insertions(+), 117 deletions(-)
 create mode 100644 stdio-common/err_map.h
 create mode 100644 stdio-common/errlist-compat-data.h
 delete mode 100644 stdio-common/errlist-compat.c
 create mode 100644 stdio-common/errlist-data-gen.c
 create mode 100644 stdio-common/errlist-data.S
 rename stdio-common/{siglist.c => siglist-gen.c} (92%)
 create mode 100644 stdio-common/siglist.S
 rename sysdeps/generic/{siglist-compat.h => siglist-compat-def.h} (69%)
 delete mode 100644 sysdeps/generic/siglist-compat.c
 rename sysdeps/mach/hurd/{errlist.c => err_map.h} (83%)
 rename sysdeps/mach/hurd/{siglist-compat.c => siglist-compat.h} (86%)
 rename sysdeps/unix/sysv/linux/alpha/{errlist-compat.c => errlist-compat-data.h} (100%)
 rename sysdeps/unix/sysv/linux/{errlist-compat.c => errlist-compat-data.h} (100%)
 rename sysdeps/unix/sysv/linux/hppa/{errlist-compat.c => errlist-compat-data.h} (100%)
 rename sysdeps/unix/sysv/linux/mips/{errlist-compat.c => errlist-compat-data.h} (100%)
 rename sysdeps/unix/sysv/linux/{siglist-compat.c => siglist-compat.h} (87%)
 rename sysdeps/unix/sysv/linux/sparc/{errlist-compat.c => errlist-compat-data.h} (100%)