diff mbox series

binuitils: Check if AR is usable for LTO build

Message ID 20210111195315.192203-1-hjl.tools@gmail.com
State New
Headers show
Series binuitils: Check if AR is usable for LTO build | expand

Commit Message

H.J. Lu Jan. 11, 2021, 7:53 p.m. UTC
Check if AR is usable for LTO build with --enable-pgo-build=lto:

checking for -plugin option... ar: no operation specified
Failed: ar --plugin /usr/gcc-11.0.0-x32/libexec/gcc/x86_64-pc-linux-gnu/11.0.0/liblto_plugin.so rc
no
configure: error: AR with --plugin and rc is required for LTO build

instead of build failure later.

	PR binutils/26766
	* configure.ac:
	* configure: Regenerated.
---
 configure    | 4 ++++
 configure.ac | 4 ++++
 2 files changed, 8 insertions(+)

Comments

Alan Modra Jan. 11, 2021, 9:20 p.m. UTC | #1
On Mon, Jan 11, 2021 at 11:53:15AM -0800, H.J. Lu via Binutils wrote:
> Check if AR is usable for LTO build with --enable-pgo-build=lto:
> 
> checking for -plugin option... ar: no operation specified
> Failed: ar --plugin /usr/gcc-11.0.0-x32/libexec/gcc/x86_64-pc-linux-gnu/11.0.0/liblto_plugin.so rc
> no
> configure: error: AR with --plugin and rc is required for LTO build
> 
> instead of build failure later.
> 
> 	PR binutils/26766
> 	* configure.ac:
> 	* configure: Regenerated.

See pr27173 too.  The problem isn't a matter of finding an "ar" that
supports --plugin, we have versions of GNU ar (2.30 to 2.32?) that
accept --plugin but then don't parse the "rc" or other command
options.  I don't think this patch will help.

> ---
>  configure    | 4 ++++
>  configure.ac | 4 ++++
>  2 files changed, 8 insertions(+)
> 
> diff --git a/configure b/configure
> index c44184f72ff..84285addafe 100755
> --- a/configure
> +++ b/configure
> @@ -10240,6 +10240,10 @@ if test -n "$PLUGIN_OPTION"; then
>    if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
>      RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
>    fi
> +else
> +  if test "$enable_pgo_build" != "no"; then
> +    as_fn_error $? "AR with --plugin and rc is required for LTO build" "$LINENO" 5
> +  fi
>  fi
>  
>  
> diff --git a/configure.ac b/configure.ac
> index 9dd51c36e5a..d39019d7093 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -3452,6 +3452,10 @@ if test -n "$PLUGIN_OPTION"; then
>    if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
>      RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
>    fi
> +else
> +  if test "$enable_pgo_build" != "no"; then
> +    AC_MSG_ERROR([AR with --plugin and rc is required for LTO build])
> +  fi
>  fi
>  AC_SUBST(AR_PLUGIN_OPTION)
>  AC_SUBST(RANLIB_PLUGIN_OPTION)
> -- 
> 2.29.2
H.J. Lu Jan. 11, 2021, 10:52 p.m. UTC | #2
On Mon, Jan 11, 2021 at 1:20 PM Alan Modra <amodra@gmail.com> wrote:
>
> On Mon, Jan 11, 2021 at 11:53:15AM -0800, H.J. Lu via Binutils wrote:
> > Check if AR is usable for LTO build with --enable-pgo-build=lto:
> >
> > checking for -plugin option... ar: no operation specified
> > Failed: ar --plugin /usr/gcc-11.0.0-x32/libexec/gcc/x86_64-pc-linux-gnu/11.0.0/liblto_plugin.so rc
> > no
> > configure: error: AR with --plugin and rc is required for LTO build
> >
> > instead of build failure later.
> >
> >       PR binutils/26766
> >       * configure.ac:
> >       * configure: Regenerated.
>
> See pr27173 too.  The problem isn't a matter of finding an "ar" that
> supports --plugin, we have versions of GNU ar (2.30 to 2.32?) that
> accept --plugin but then don't parse the "rc" or other command
> options.  I don't think this patch will help.

PR 27173 patches are at

https://sourceware.org/pipermail/binutils/2021-January/114879.html
Alan Modra Jan. 12, 2021, 12:26 a.m. UTC | #3
On Mon, Jan 11, 2021 at 02:52:43PM -0800, H.J. Lu wrote:
> On Mon, Jan 11, 2021 at 1:20 PM Alan Modra <amodra@gmail.com> wrote:
> >
> > On Mon, Jan 11, 2021 at 11:53:15AM -0800, H.J. Lu via Binutils wrote:
> > > Check if AR is usable for LTO build with --enable-pgo-build=lto:
> > >
> > > checking for -plugin option... ar: no operation specified
> > > Failed: ar --plugin /usr/gcc-11.0.0-x32/libexec/gcc/x86_64-pc-linux-gnu/11.0.0/liblto_plugin.so rc
> > > no
> > > configure: error: AR with --plugin and rc is required for LTO build
> > >
> > > instead of build failure later.
> > >
> > >       PR binutils/26766
> > >       * configure.ac:
> > >       * configure: Regenerated.
> >
> > See pr27173 too.  The problem isn't a matter of finding an "ar" that
> > supports --plugin, we have versions of GNU ar (2.30 to 2.32?) that
> > accept --plugin but then don't parse the "rc" or other command
> > options.  I don't think this patch will help.
> 
> PR 27173 patches are at
> 
> https://sourceware.org/pipermail/binutils/2021-January/114879.html

After that one is committed, this patch is OK too (with any needed
modifications).
diff mbox series

Patch

diff --git a/configure b/configure
index c44184f72ff..84285addafe 100755
--- a/configure
+++ b/configure
@@ -10240,6 +10240,10 @@  if test -n "$PLUGIN_OPTION"; then
   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
     RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
   fi
+else
+  if test "$enable_pgo_build" != "no"; then
+    as_fn_error $? "AR with --plugin and rc is required for LTO build" "$LINENO" 5
+  fi
 fi
 
 
diff --git a/configure.ac b/configure.ac
index 9dd51c36e5a..d39019d7093 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3452,6 +3452,10 @@  if test -n "$PLUGIN_OPTION"; then
   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
     RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
   fi
+else
+  if test "$enable_pgo_build" != "no"; then
+    AC_MSG_ERROR([AR with --plugin and rc is required for LTO build])
+  fi
 fi
 AC_SUBST(AR_PLUGIN_OPTION)
 AC_SUBST(RANLIB_PLUGIN_OPTION)