[PATCH] Remove fno-unit-at-a-time make variable

Adhemerval Zanella adhemerval.zanella@linaro.org
Wed Mar 30 12:46:30 GMT 2022



On 30/03/2022 02:07, Fangrui Song wrote:
> 795985e4e751 in 2003 added -fno-unit-at-a-time to errlist.c and
> siglist.c to "avoid reordering assembler output". -fno-toplevel-reorder
> is a rough replacement for this legacy option
> (https://sourceware.org/pipermail/gcc-patches/2006-January/186801.html).
> 
> The reordering requirement does not seem to be needed any longer.

We still need them for otherwise DEFINE_COMPAT_ERRLIST used on errlist-compat.c
does not create _sys_errlist and _sys_siglist with expected sizes defined by
glibc ABI.

I am trying to fix without resorting to compiler options.

> ---
>  config.make.in        |  1 -
>  configure             | 32 --------------------------------
>  configure.ac          | 19 -------------------
>  stdio-common/Makefile |  2 --
>  4 files changed, 54 deletions(-)
> 
> diff --git a/config.make.in b/config.make.in
> index 6d43e691f7..ecde84a7da 100644
> --- a/config.make.in
> +++ b/config.make.in
> @@ -69,7 +69,6 @@ have-selinux = @have_selinux@
>  have-libaudit = @have_libaudit@
>  have-libcap = @have_libcap@
>  have-cc-with-libunwind = @libc_cv_cc_with_libunwind@
> -fno-unit-at-a-time = @fno_unit_at_a_time@
>  bind-now = @bindnow@
>  have-hash-style = @libc_cv_hashstyle@
>  use-default-link = @use_default_link@
> diff --git a/configure b/configure
> index 2a3cb49b0b..f836874a58 100755
> --- a/configure
> +++ b/configure
> @@ -620,7 +620,6 @@ libc_cv_cc_loop_to_function
>  libc_cv_cc_submachine
>  libc_cv_cc_nofma
>  libc_cv_mtls_dialect_gnu2
> -fno_unit_at_a_time
>  libc_cv_has_glob_dat
>  libc_cv_hashstyle
>  libc_cv_fpie
> @@ -6319,37 +6318,6 @@ fi
>  $as_echo "$libc_cv_has_glob_dat" >&6; }
>  
>  
> -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fno-toplevel-reorder -fno-section-anchors" >&5
> -$as_echo_n "checking for -fno-toplevel-reorder -fno-section-anchors... " >&6; }
> -if ${libc_cv_fno_toplevel_reorder+:} false; then :
> -  $as_echo_n "(cached) " >&6
> -else
> -  cat > conftest.c <<EOF
> -int foo;
> -EOF
> -if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -S -fno-toplevel-reorder -fno-section-anchors
> -			    conftest.c 1>&5'
> -  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
> -  (eval $ac_try) 2>&5
> -  ac_status=$?
> -  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
> -  test $ac_status = 0; }; }
> -then
> -  libc_cv_fno_toplevel_reorder=yes
> -else
> -  libc_cv_fno_toplevel_reorder=no
> -fi
> -rm -f conftest*
> -fi
> -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_fno_toplevel_reorder" >&5
> -$as_echo "$libc_cv_fno_toplevel_reorder" >&6; }
> -if test $libc_cv_fno_toplevel_reorder = yes; then
> -  fno_unit_at_a_time="-fno-toplevel-reorder -fno-section-anchors"
> -else
> -  fno_unit_at_a_time=-fno-unit-at-a-time
> -fi
> -
> -
>  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -mtls-dialect=gnu2" >&5
>  $as_echo_n "checking for -mtls-dialect=gnu2... " >&6; }
>  if ${libc_cv_mtls_dialect_gnu2+:} false; then :
> diff --git a/configure.ac b/configure.ac
> index fa7d3c025b..ec1db36d46 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -1478,25 +1478,6 @@ fi
>  rm -f conftest*])
>  AC_SUBST(libc_cv_has_glob_dat)
>  
> -AC_CACHE_CHECK(for -fno-toplevel-reorder -fno-section-anchors, libc_cv_fno_toplevel_reorder, [dnl
> -cat > conftest.c <<EOF
> -int foo;
> -EOF
> -if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -fno-toplevel-reorder -fno-section-anchors
> -			    conftest.c 1>&AS_MESSAGE_LOG_FD])
> -then
> -  libc_cv_fno_toplevel_reorder=yes
> -else
> -  libc_cv_fno_toplevel_reorder=no
> -fi
> -rm -f conftest*])
> -if test $libc_cv_fno_toplevel_reorder = yes; then
> -  fno_unit_at_a_time="-fno-toplevel-reorder -fno-section-anchors"
> -else
> -  fno_unit_at_a_time=-fno-unit-at-a-time
> -fi
> -AC_SUBST(fno_unit_at_a_time)
> -
>  AC_CACHE_CHECK([for -mtls-dialect=gnu2], libc_cv_mtls_dialect_gnu2,
>  [dnl
>  cat > conftest.c <<EOF
> diff --git a/stdio-common/Makefile b/stdio-common/Makefile
> index 435cd8904f..dbaecbd76e 100644
> --- a/stdio-common/Makefile
> +++ b/stdio-common/Makefile
> @@ -333,8 +333,6 @@ CFLAGS-isoc99_vfscanf.c += -fexceptions
>  CFLAGS-isoc99_vscanf.c += -fexceptions
>  CFLAGS-isoc99_fscanf.c += -fexceptions
>  CFLAGS-isoc99_scanf.c += -fexceptions
> -CFLAGS-errlist.c += $(fno-unit-at-a-time)
> -CFLAGS-siglist.c += $(fno-unit-at-a-time)
>  
>  # scanf14a.c and scanf16a.c test a deprecated extension which is no
>  # longer visible under most conformance levels; see the source files


More information about the Libc-alpha mailing list