[PATCH 4/6] configure: Remove AS check

Carlos O'Donell carlos@redhat.com
Mon Dec 5 15:56:31 GMT 2022


On 12/2/22 14:00, Adhemerval Zanella via Libc-alpha wrote:
> The assembler is not issued directly, but rather always through CC
> wrapper.  The binutils version check if done with LD instead.

glibc needs binutils 2.25 or newer in general, and the linker check is sufficient
to test for that. Other architectures may have specific requirements and they need
to enforce that distinctly, like the ppc64le objcopy test. For AS we really only
want to use $(CC) -c, so testing distinctly isn't valuable.

LGTM.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>

> ---
>  aclocal.m4                   |  1 -
>  configure                    | 66 ------------------------------------
>  configure.ac                 |  5 ---
>  scripts/build-many-glibcs.py |  1 -
>  sysdeps/x86/configure        |  4 +--
>  sysdeps/x86/configure.ac     |  2 +-
>  6 files changed, 3 insertions(+), 76 deletions(-)
> 
> diff --git a/aclocal.m4 b/aclocal.m4
> index 88db64a683..7ab8ac023b 100644
> --- a/aclocal.m4
> +++ b/aclocal.m4
> @@ -118,7 +118,6 @@ case "$CC" in
>      *fuse-ld=lld*) LDNAME=ld.lld;;
>      *)             LDNAME=ld;;
>  esac
> -AS=`$CC -print-prog-name=as`

OK.

>  LD=`$CC -print-prog-name=$LDNAME`
>  AR=`$CC -print-prog-name=ar`
>  AC_SUBST(AR)
> diff --git a/configure b/configure
> index 086d6fba7a..62c2581cb0 100755
> --- a/configure
> +++ b/configure

OK. Regenerate.

> @@ -654,7 +654,6 @@ MAKEINFO
>  MSGFMT
>  MAKE
>  LD
> -AS
>  GPROF
>  OBJCOPY
>  AR
> @@ -4146,7 +4145,6 @@ case "$CC" in
>      *fuse-ld=lld*) LDNAME=ld.lld;;
>      *)             LDNAME=ld;;
>  esac
> -AS=`$CC -print-prog-name=as`

OK.

>  LD=`$CC -print-prog-name=$LDNAME`
>  AR=`$CC -print-prog-name=ar`
>  
> @@ -4157,70 +4155,6 @@ GPROF=`$CC -print-prog-name=gprof`
>  
>  
>  # Accept binutils 2.25 or newer.
> -for ac_prog in $AS
> -do
> -  # Extract the first word of "$ac_prog", so it can be a program name with args.
> -set dummy $ac_prog; ac_word=$2
> -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
> -$as_echo_n "checking for $ac_word... " >&6; }
> -if ${ac_cv_prog_AS+:} false; then :
> -  $as_echo_n "(cached) " >&6
> -else
> -  if test -n "$AS"; then
> -  ac_cv_prog_AS="$AS" # Let the user override the test.
> -else
> -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
> -for as_dir in $PATH
> -do
> -  IFS=$as_save_IFS
> -  test -z "$as_dir" && as_dir=.
> -    for ac_exec_ext in '' $ac_executable_extensions; do
> -  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
> -    ac_cv_prog_AS="$ac_prog"
> -    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
> -    break 2
> -  fi
> -done
> -  done
> -IFS=$as_save_IFS
> -
> -fi
> -fi
> -AS=$ac_cv_prog_AS
> -if test -n "$AS"; then
> -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
> -$as_echo "$AS" >&6; }
> -else
> -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
> -$as_echo "no" >&6; }
> -fi
> -
> -
> -  test -n "$AS" && break
> -done
> -
> -if test -z "$AS"; then
> -  ac_verc_fail=yes
> -else
> -  # Found it, now check the version.
> -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $AS" >&5
> -$as_echo_n "checking version of $AS... " >&6; }
> -  ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
> -  case $ac_prog_version in
> -    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
> -    2.1[0-9][0-9]*|2.2[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
> -       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
> -    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
> -
> -  esac
> -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
> -$as_echo "$ac_prog_version" >&6; }
> -fi
> -if test $ac_verc_fail = yes; then
> -  AS=: critic_missing="$critic_missing as"
> -fi
> -
> -
>  libc_cv_with_lld=no
>  case $($LD --version) in
>    "GNU gold"*)
> diff --git a/configure.ac b/configure.ac
> index 5709c7a0cf..022b8f68bc 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -572,11 +572,6 @@ AC_PROG_LN_S
>  LIBC_PROG_BINUTILS
>  
>  # Accept binutils 2.25 or newer.
> -AC_CHECK_PROG_VER(AS, $AS, --version,
> -		  [GNU assembler.* \([0-9]*\.[0-9.]*\)],
> -		  [2.1[0-9][0-9]*|2.2[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
> -		  AS=: critic_missing="$critic_missing as")
> -

OK. 

>  libc_cv_with_lld=no
>  case $($LD --version) in
>    "GNU gold"*)

... OK leaves the ld testing in place.

> diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py
> index 5af6f369ae..9292a0d3ff 100755
> --- a/scripts/build-many-glibcs.py
> +++ b/scripts/build-many-glibcs.py
> @@ -1522,7 +1522,6 @@ class GlibcPolicyDefault(object):
>              'CC=%s' % glibc.tool_name('gcc'),
>              'CXX=%s' % glibc.tool_name('g++'),
>              'AR=%s' % glibc.tool_name('ar'),
> -            'AS=%s' % glibc.tool_name('as'),

OK. Don't override AS since we don't support that anymore.

>              'LD=%s' % glibc.tool_name('ld'),
>              'NM=%s' % glibc.tool_name('nm'),
>              'OBJCOPY=%s' % glibc.tool_name('objcopy'),
> diff --git a/sysdeps/x86/configure b/sysdeps/x86/configure
> index a9c8c2ef67..f80fedd9dd 100644
> --- a/sysdeps/x86/configure
> +++ b/sysdeps/x86/configure

OK. Regenerate.

> @@ -33,8 +33,8 @@ $as_echo "$libc_cv_x86_cet_available" >&6; }
>  fi
>  if test $enable_cet != no; then
>    # Check if assembler supports CET.
> -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $AS supports CET" >&5
> -$as_echo_n "checking whether $AS supports CET... " >&6; }
> +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether compiler supports CET" >&5
> +$as_echo_n "checking whether compiler supports CET... " >&6; }
>  if ${libc_cv_x86_cet_as+:} false; then :
>    $as_echo_n "(cached) " >&6
>  else
> diff --git a/sysdeps/x86/configure.ac b/sysdeps/x86/configure.ac
> index edd43a2551..ac55dc674a 100644
> --- a/sysdeps/x86/configure.ac
> +++ b/sysdeps/x86/configure.ac
> @@ -22,7 +22,7 @@ EOF
>  fi
>  if test $enable_cet != no; then
>    # Check if assembler supports CET.
> -  AC_CACHE_CHECK(whether $AS supports CET,
> +  AC_CACHE_CHECK(whether compiler supports CET,

OK. True we invoke the test via the compiler.

>  		 libc_cv_x86_cet_as, [dnl
>  cat > conftest.s <<EOF
>  	incsspd %ecx

-- 
Cheers,
Carlos.



More information about the Libc-alpha mailing list