public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH 1/2] Fix PR bootstrap/102389: --with-build-config=bootstrap-lto is broken
@ 2021-09-18  1:21 apinski
  2021-09-18  1:21 ` [PATCH 2/2] Update the section on binutils version apinski
  2021-09-19 16:52 ` [PATCH 1/2] Fix PR bootstrap/102389: --with-build-config=bootstrap-lto is broken Jeff Law
  0 siblings, 2 replies; 4+ messages in thread
From: apinski @ 2021-09-18  1:21 UTC (permalink / raw)
  To: gcc-patches; +Cc: Andrew Pinski

From: Andrew Pinski <apinski@marvell.com>

So the problem here is that now the lto-plugin requires NM that works
with LTO to work so we need to pass down NM just like we do for ranlib
and ar.

OK? Bootstrapped and tested with --with-build-config=bootstrap-lto on aarch64-linux-gnu.
Note you need to use binutils 2.35 or later too due to ttps://sourceware.org/PR25355
(I will submit another patch to improve the installation instructions too).

config/ChangeLog:

	PR bootstrap/102389
	* bootstrap-lto-lean.mk: Handle NM like RANLIB AND AR.
	* bootstrap-lto.mk: Likewise.
---
 config/bootstrap-lto-lean.mk | 6 ++++--
 config/bootstrap-lto.mk      | 6 ++++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/config/bootstrap-lto-lean.mk b/config/bootstrap-lto-lean.mk
index 79cea50a4c6..42cb3394c70 100644
--- a/config/bootstrap-lto-lean.mk
+++ b/config/bootstrap-lto-lean.mk
@@ -9,9 +9,11 @@ STAGEfeedback_CFLAGS += -flto=jobserver
 # assumes the host supports the linker plugin
 LTO_AR = $$r/$(HOST_SUBDIR)/prev-gcc/gcc-ar$(exeext) -B$$r/$(HOST_SUBDIR)/prev-gcc/
 LTO_RANLIB = $$r/$(HOST_SUBDIR)/prev-gcc/gcc-ranlib$(exeext) -B$$r/$(HOST_SUBDIR)/prev-gcc/
+LTO_NM = $$r/$(HOST_SUBDIR)/prev-gcc/gcc-nm$(exeext) -B$$r/$(HOST_SUBDIR)/prev-gcc/
 
 LTO_EXPORTS = AR="$(LTO_AR)"; export AR; \
-	      RANLIB="$(LTO_RANLIB)"; export RANLIB;
-LTO_FLAGS_TO_PASS = AR="$(LTO_AR)" RANLIB="$(LTO_RANLIB)"
+	      RANLIB="$(LTO_RANLIB)"; export RANLIB; \
+	      NM="$(LTO_NM)"; export NM;
+LTO_FLAGS_TO_PASS = AR="$(LTO_AR)" RANLIB="$(LTO_RANLIB)" NM="$(LTO_NM)"
 
 do-compare = /bin/true
diff --git a/config/bootstrap-lto.mk b/config/bootstrap-lto.mk
index 4de07e5b226..1ddb1d870ba 100644
--- a/config/bootstrap-lto.mk
+++ b/config/bootstrap-lto.mk
@@ -9,10 +9,12 @@ STAGEfeedback_CFLAGS += -flto=jobserver -frandom-seed=1
 # assumes the host supports the linker plugin
 LTO_AR = $$r/$(HOST_SUBDIR)/prev-gcc/gcc-ar$(exeext) -B$$r/$(HOST_SUBDIR)/prev-gcc/
 LTO_RANLIB = $$r/$(HOST_SUBDIR)/prev-gcc/gcc-ranlib$(exeext) -B$$r/$(HOST_SUBDIR)/prev-gcc/
+LTO_NM = $$r/$(HOST_SUBDIR)/prev-gcc/gcc-nm$(exeext) -B$$r/$(HOST_SUBDIR)/prev-gcc/
 
 LTO_EXPORTS = AR="$(LTO_AR)"; export AR; \
-	      RANLIB="$(LTO_RANLIB)"; export RANLIB;
-LTO_FLAGS_TO_PASS = AR="$(LTO_AR)" RANLIB="$(LTO_RANLIB)"
+	      RANLIB="$(LTO_RANLIB)"; export RANLIB; \
+	      NM="$(LTO_NM)"; export NM;
+LTO_FLAGS_TO_PASS = AR="$(LTO_AR)" RANLIB="$(LTO_RANLIB)" NM="$(LTO_NM)"
 
 do-compare = $(SHELL) $(srcdir)/contrib/compare-lto $$f1 $$f2
 extra-compare = gcc/lto1$(exeext)
-- 
2.17.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 2/2] Update the section on binutils version
  2021-09-18  1:21 [PATCH 1/2] Fix PR bootstrap/102389: --with-build-config=bootstrap-lto is broken apinski
@ 2021-09-18  1:21 ` apinski
  2021-09-19 16:52   ` Jeff Law
  2021-09-19 16:52 ` [PATCH 1/2] Fix PR bootstrap/102389: --with-build-config=bootstrap-lto is broken Jeff Law
  1 sibling, 1 reply; 4+ messages in thread
From: apinski @ 2021-09-18  1:21 UTC (permalink / raw)
  To: gcc-patches; +Cc: Andrew Pinski

From: Andrew Pinski <apinski@marvell.com>

LTO usage requires binutils 2.35 or newer due to
https://sourceware.org/PR25355.
This adds a note in the prerequisites page about it.

Ok?

gcc/ChangeLog:

	* doc/install.texi: Add note about
	binutils 2.35 is required for LTO usage.
---
 gcc/doc/install.texi | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index 88e453c3f6b..a141507c7b0 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -325,6 +325,9 @@ Necessary in some circumstances, optional in others.  See the
 host/target specific instructions for your platform for the exact
 requirements.
 
+Note binutils 2.35 or newer is required for LTO to work correctly
+with GNU libtool that includes doing a bootstrap with LTO enabled.
+
 @item gzip version 1.2.4 (or later) or
 @itemx bzip2 version 1.0.2 (or later)
 
-- 
2.17.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/2] Fix PR bootstrap/102389: --with-build-config=bootstrap-lto is broken
  2021-09-18  1:21 [PATCH 1/2] Fix PR bootstrap/102389: --with-build-config=bootstrap-lto is broken apinski
  2021-09-18  1:21 ` [PATCH 2/2] Update the section on binutils version apinski
@ 2021-09-19 16:52 ` Jeff Law
  1 sibling, 0 replies; 4+ messages in thread
From: Jeff Law @ 2021-09-19 16:52 UTC (permalink / raw)
  To: apinski, gcc-patches



On 9/17/2021 7:21 PM, apinski--- via Gcc-patches wrote:
> From: Andrew Pinski <apinski@marvell.com>
>
> So the problem here is that now the lto-plugin requires NM that works
> with LTO to work so we need to pass down NM just like we do for ranlib
> and ar.
>
> OK? Bootstrapped and tested with --with-build-config=bootstrap-lto on aarch64-linux-gnu.
> Note you need to use binutils 2.35 or later too due to ttps://sourceware.org/PR25355
> (I will submit another patch to improve the installation instructions too).
>
> config/ChangeLog:
>
> 	PR bootstrap/102389
> 	* bootstrap-lto-lean.mk: Handle NM like RANLIB AND AR.
> 	* bootstrap-lto.mk: Likewise.
OK
jeff


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 2/2] Update the section on binutils version
  2021-09-18  1:21 ` [PATCH 2/2] Update the section on binutils version apinski
@ 2021-09-19 16:52   ` Jeff Law
  0 siblings, 0 replies; 4+ messages in thread
From: Jeff Law @ 2021-09-19 16:52 UTC (permalink / raw)
  To: apinski, gcc-patches



On 9/17/2021 7:21 PM, apinski--- via Gcc-patches wrote:
> From: Andrew Pinski <apinski@marvell.com>
>
> LTO usage requires binutils 2.35 or newer due to
> https://sourceware.org/PR25355.
> This adds a note in the prerequisites page about it.
>
> Ok?
>
> gcc/ChangeLog:
>
> 	* doc/install.texi: Add note about
> 	binutils 2.35 is required for LTO usage.
> ---
OK
jeff


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-09-19 16:52 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-18  1:21 [PATCH 1/2] Fix PR bootstrap/102389: --with-build-config=bootstrap-lto is broken apinski
2021-09-18  1:21 ` [PATCH 2/2] Update the section on binutils version apinski
2021-09-19 16:52   ` Jeff Law
2021-09-19 16:52 ` [PATCH 1/2] Fix PR bootstrap/102389: --with-build-config=bootstrap-lto is broken Jeff Law

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).