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