Message ID | 20221202190030.1671870-5-adhemerval.zanella@linaro.org |
---|---|
State | New |
Headers | show |
Series | Refactor binutils configure usage | expand |
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
On Dez 02 2022, Adhemerval Zanella via Libc-alpha wrote: > 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, It is still testing the assembler, not the compiler.
On 06/12/22 10:45, Andreas Schwab wrote: > On Dez 02 2022, Adhemerval Zanella via Libc-alpha wrote: > >> 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, > > It is still testing the assembler, not the compiler. > Alright, I will change to 'assembler'.
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` 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 @@ -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` 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") - libc_cv_with_lld=no case $($LD --version) in "GNU gold"*) 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'), '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 @@ -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, libc_cv_x86_cet_as, [dnl cat > conftest.s <<EOF incsspd %ecx