Support slim LTO bootstrap
Change the bootstrap-lto config file to use slim (non fat) LTO.. Speeds up the LTO bootstrap by ~18% on a 4 core system. This requires using gcc-ar/ranlib in post stage 1 builds, so these are passed to all sub builds. config/: 2014-09-01 Andi Kleen <ak@linux.intel.com> * bootstrap-lto.mk: Implement slim bootstrap. /: 2014-09-01 Andi Kleen <ak@linux.intel.com> * Makefile.tpl (POSTSTAGE1_HOST_EXPORTS): Add LTO_EXPORTS. POSTSTAGE1_FLAGS_TO_PASS): Add LTO_FLAGS_TO_PASS. * Makefile.in: Regenerate. From-SVN: r214801
This commit is contained in:
parent
b5617e5f69
commit
e04733ee53
@ -1,3 +1,9 @@
|
||||
2014-09-01 Andi Kleen <ak@linux.intel.com>
|
||||
|
||||
* Makefile.tpl (POSTSTAGE1_HOST_EXPORTS): Add LTO_EXPORTS.
|
||||
POSTSTAGE1_FLAGS_TO_PASS): Add LTO_FLAGS_TO_PASS.
|
||||
* Makefile.in: Regenerate.
|
||||
|
||||
2014-08-28 David Malcolm <dmalcolm@redhat.com>
|
||||
|
||||
* rtx-classes-status.txt: Delete
|
||||
|
@ -257,6 +257,7 @@ POSTSTAGE1_HOST_EXPORTS = \
|
||||
$(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CC; \
|
||||
CC_FOR_BUILD="$$CC"; export CC_FOR_BUILD; \
|
||||
$(POSTSTAGE1_CXX_EXPORT) \
|
||||
$(LTO_EXPORTS) \
|
||||
GNATBIND="$$r/$(HOST_SUBDIR)/prev-gcc/gnatbind"; export GNATBIND; \
|
||||
LDFLAGS="$(POSTSTAGE1_LDFLAGS) $(BOOT_LDFLAGS)"; export LDFLAGS; \
|
||||
HOST_LIBS="$(POSTSTAGE1_LIBS)"; export HOST_LIBS;
|
||||
@ -828,6 +829,7 @@ POSTSTAGE1_FLAGS_TO_PASS = \
|
||||
GNATBIND="$${GNATBIND}" \
|
||||
LDFLAGS="$${LDFLAGS}" \
|
||||
HOST_LIBS="$${HOST_LIBS}" \
|
||||
$(LTO_FLAGS_TO_PASS) \
|
||||
"`echo 'ADAFLAGS=$(BOOT_ADAFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`"
|
||||
|
||||
# Flags to pass down to makes which are built with the target environment.
|
||||
|
@ -260,6 +260,7 @@ POSTSTAGE1_HOST_EXPORTS = \
|
||||
$(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CC; \
|
||||
CC_FOR_BUILD="$$CC"; export CC_FOR_BUILD; \
|
||||
$(POSTSTAGE1_CXX_EXPORT) \
|
||||
$(LTO_EXPORTS) \
|
||||
GNATBIND="$$r/$(HOST_SUBDIR)/prev-gcc/gnatbind"; export GNATBIND; \
|
||||
LDFLAGS="$(POSTSTAGE1_LDFLAGS) $(BOOT_LDFLAGS)"; export LDFLAGS; \
|
||||
HOST_LIBS="$(POSTSTAGE1_LIBS)"; export HOST_LIBS;
|
||||
@ -633,6 +634,7 @@ POSTSTAGE1_FLAGS_TO_PASS = \
|
||||
GNATBIND="$${GNATBIND}" \
|
||||
LDFLAGS="$${LDFLAGS}" \
|
||||
HOST_LIBS="$${HOST_LIBS}" \
|
||||
$(LTO_FLAGS_TO_PASS) \
|
||||
"`echo 'ADAFLAGS=$(BOOT_ADAFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`"
|
||||
|
||||
# Flags to pass down to makes which are built with the target environment.
|
||||
|
@ -1,3 +1,7 @@
|
||||
2014-09-01 Andi Kleen <ak@linux.intel.com>
|
||||
|
||||
* bootstrap-lto.mk: Implement slim bootstrap.
|
||||
|
||||
2014-08-21 Bin Cheng <bin.cheng@arm.com>
|
||||
|
||||
* isl.m4 (ISL_CHECK_VERSION): Check link of isl library
|
||||
|
@ -1,7 +1,13 @@
|
||||
# This option enables LTO for stage2 and stage3.
|
||||
# FIXME: Our build system is not yet able to use gcc-ar wrapper, so we need
|
||||
# to go with -ffat-lto-objects.
|
||||
# This option enables LTO for stage2 and stage3 in slim mode
|
||||
|
||||
STAGE2_CFLAGS += -flto=jobserver -frandom-seed=1 -ffat-lto-objects
|
||||
STAGE3_CFLAGS += -flto=jobserver -frandom-seed=1 -ffat-lto-objects
|
||||
STAGE2_CFLAGS += -flto=jobserver -frandom-seed=1
|
||||
STAGE3_CFLAGS += -flto=jobserver -frandom-seed=1
|
||||
STAGEprofile_CFLAGS += -fno-lto
|
||||
|
||||
# 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_EXPORTS = AR="$(LTO_AR)"; export AR; \
|
||||
RANLIB="$(LTO_RANLIB)"; export RANLIB;
|
||||
LTO_FLAGS_TO_PASS = AR="$(LTO_AR)" RANLIB="$(LTO_RANLIB)"
|
||||
|
Loading…
Reference in New Issue
Block a user