diff mbox series

[v2,1/3] configure: Allow user override LD, AR, OBJCOPY, and GPROF

Message ID 20221206160243.455627-2-adhemerval.zanella@linaro.org
State New
Headers show
Series Refactor binutils configure usage | expand

Commit Message

Adhemerval Zanella Netto Dec. 6, 2022, 4:02 p.m. UTC
The only way to override LD, AR, OBJCOPY, and GPROF is through
--with-binutils (setting the environments variables on configure is
overridden by LIBC_PROG_BINUTILS).

The build-many-glibcs.py (bmg) glibcs option generates a working config,
but not fully concise (some tools will be set from environment variable,
while other will be set from $CC --print-prog-name).  So remove the
environment variable set to always use the "$CC --print-prog-name".
---
 aclocal.m4                   | 16 ++++++++++++----
 configure                    | 16 ++++++++++++----
 scripts/build-many-glibcs.py |  3 ---
 3 files changed, 24 insertions(+), 11 deletions(-)

Comments

Carlos O'Donell Jan. 11, 2023, 8:25 p.m. UTC | #1
On 12/6/22 11:02, Adhemerval Zanella wrote:
> The only way to override LD, AR, OBJCOPY, and GPROF is through
> --with-binutils (setting the environments variables on configure is
> overridden by LIBC_PROG_BINUTILS).
> 
> The build-many-glibcs.py (bmg) glibcs option generates a working config,
> but not fully concise (some tools will be set from environment variable,
> while other will be set from $CC --print-prog-name).  So remove the
> environment variable set to always use the "$CC --print-prog-name".

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

> ---
>  aclocal.m4                   | 16 ++++++++++++----
>  configure                    | 16 ++++++++++++----
>  scripts/build-many-glibcs.py |  3 ---
>  3 files changed, 24 insertions(+), 11 deletions(-)
> 
> diff --git a/aclocal.m4 b/aclocal.m4
> index 7ab8ac023b..cbe3c4698a 100644
> --- a/aclocal.m4
> +++ b/aclocal.m4
> @@ -118,12 +118,20 @@ case "$CC" in
>      *fuse-ld=lld*) LDNAME=ld.lld;;
>      *)             LDNAME=ld;;
>  esac
> -LD=`$CC -print-prog-name=$LDNAME`
> -AR=`$CC -print-prog-name=ar`
> +if test -z "$LD"; then
> +    LD=`$CC -print-prog-name=$LDNAME`
> +fi

OK. Override from env first, then use $CC second.

> +if test -z "$AR"; then
> +    AR=`$CC -print-prog-name=ar`
> +fi

OK. Likewise.

>  AC_SUBST(AR)
> -OBJCOPY=`$CC -print-prog-name=objcopy`
> +if test -z "$OBJCOPY"; then
> +    OBJCOPY=`$CC -print-prog-name=objcopy`
> +fi

OK. Likewise.

>  AC_SUBST(OBJCOPY)
> -GPROF=`$CC -print-prog-name=gprof`
> +if test -z "$GPROF"; then
> +    GPROF=`$CC -print-prog-name=gprof`

OK. Likewise.

> +fi
>  AC_SUBST(GPROF)
>  ])
>  
> diff --git a/configure b/configure
> index 62c2581cb0..8f91bb6e11 100755
> --- a/configure
> +++ b/configure
> @@ -4145,12 +4145,20 @@ case "$CC" in
>      *fuse-ld=lld*) LDNAME=ld.lld;;
>      *)             LDNAME=ld;;
>  esac
> -LD=`$CC -print-prog-name=$LDNAME`
> -AR=`$CC -print-prog-name=ar`
> +if test -z "$LD"; then
> +    LD=`$CC -print-prog-name=$LDNAME`
> +fi
> +if test -z "$AR"; then
> +    AR=`$CC -print-prog-name=ar`
> +fi
>  
> -OBJCOPY=`$CC -print-prog-name=objcopy`
> +if test -z "$OBJCOPY"; then
> +    OBJCOPY=`$CC -print-prog-name=objcopy`
> +fi
>  
> -GPROF=`$CC -print-prog-name=gprof`
> +if test -z "$GPROF"; then
> +    GPROF=`$CC -print-prog-name=gprof`
> +fi
>  
>  
>  
> diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py
> index 9292a0d3ff..887ef7b6d5 100755
> --- a/scripts/build-many-glibcs.py
> +++ b/scripts/build-many-glibcs.py
> @@ -1521,10 +1521,7 @@ class GlibcPolicyDefault(object):
>              '--host=%s' % glibc.triplet,
>              'CC=%s' % glibc.tool_name('gcc'),
>              'CXX=%s' % glibc.tool_name('g++'),
> -            'AR=%s' % glibc.tool_name('ar'),
> -            'LD=%s' % glibc.tool_name('ld'),
>              'NM=%s' % glibc.tool_name('nm'),
> -            'OBJCOPY=%s' % glibc.tool_name('objcopy'),

OK. Cleanup bmg usage to use $CC provided tools.

>              'OBJDUMP=%s' % glibc.tool_name('objdump'),
>              'RANLIB=%s' % glibc.tool_name('ranlib'),
>              'READELF=%s' % glibc.tool_name('readelf'),
diff mbox series

Patch

diff --git a/aclocal.m4 b/aclocal.m4
index 7ab8ac023b..cbe3c4698a 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -118,12 +118,20 @@  case "$CC" in
     *fuse-ld=lld*) LDNAME=ld.lld;;
     *)             LDNAME=ld;;
 esac
-LD=`$CC -print-prog-name=$LDNAME`
-AR=`$CC -print-prog-name=ar`
+if test -z "$LD"; then
+    LD=`$CC -print-prog-name=$LDNAME`
+fi
+if test -z "$AR"; then
+    AR=`$CC -print-prog-name=ar`
+fi
 AC_SUBST(AR)
-OBJCOPY=`$CC -print-prog-name=objcopy`
+if test -z "$OBJCOPY"; then
+    OBJCOPY=`$CC -print-prog-name=objcopy`
+fi
 AC_SUBST(OBJCOPY)
-GPROF=`$CC -print-prog-name=gprof`
+if test -z "$GPROF"; then
+    GPROF=`$CC -print-prog-name=gprof`
+fi
 AC_SUBST(GPROF)
 ])
 
diff --git a/configure b/configure
index 62c2581cb0..8f91bb6e11 100755
--- a/configure
+++ b/configure
@@ -4145,12 +4145,20 @@  case "$CC" in
     *fuse-ld=lld*) LDNAME=ld.lld;;
     *)             LDNAME=ld;;
 esac
-LD=`$CC -print-prog-name=$LDNAME`
-AR=`$CC -print-prog-name=ar`
+if test -z "$LD"; then
+    LD=`$CC -print-prog-name=$LDNAME`
+fi
+if test -z "$AR"; then
+    AR=`$CC -print-prog-name=ar`
+fi
 
-OBJCOPY=`$CC -print-prog-name=objcopy`
+if test -z "$OBJCOPY"; then
+    OBJCOPY=`$CC -print-prog-name=objcopy`
+fi
 
-GPROF=`$CC -print-prog-name=gprof`
+if test -z "$GPROF"; then
+    GPROF=`$CC -print-prog-name=gprof`
+fi
 
 
 
diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py
index 9292a0d3ff..887ef7b6d5 100755
--- a/scripts/build-many-glibcs.py
+++ b/scripts/build-many-glibcs.py
@@ -1521,10 +1521,7 @@  class GlibcPolicyDefault(object):
             '--host=%s' % glibc.triplet,
             'CC=%s' % glibc.tool_name('gcc'),
             'CXX=%s' % glibc.tool_name('g++'),
-            'AR=%s' % glibc.tool_name('ar'),
-            'LD=%s' % glibc.tool_name('ld'),
             'NM=%s' % glibc.tool_name('nm'),
-            'OBJCOPY=%s' % glibc.tool_name('objcopy'),
             'OBJDUMP=%s' % glibc.tool_name('objdump'),
             'RANLIB=%s' % glibc.tool_name('ranlib'),
             'READELF=%s' % glibc.tool_name('readelf'),