Skip to content
Snippets Groups Projects
  • H.J. Lu's avatar
    4a5e71f2
    Sync with binutils: Support the PGO build for binutils+gdb · 4a5e71f2
    H.J. Lu authored
    Sync with binutils for building binutils with LTO:
    
    1dbde357be3 Add missing changes to Makefile.tpl
    af019bfde9b Support the PGO build for binutils+gdb
    
    Add the --enable-pgo-build[=lto] configure option.  When binutils+gdb
    is not built together with GCC, --enable-pgo-build enables the PGO build:
    
    1. First build with -fprofile-generate.
    2. Use "make maybe-check-*" to generate profiling data and pass -i to make
    to ignore errors when generating profiling data.
    3. Use "make clean" to remove the previous build.
    4. Rebuild with -fprofile-use.
    
    With --enable-pgo-build=lto, -flto=jobserver -ffat-lto-objects are used
    together with -fprofile-generate and -fprofile-use.  Add '+' to the command
    line for recursive make to support -flto=jobserver -ffat-lto-objects.
    
    NB: --enable-pgo-build=lto enables the PGO build with LTO while
    --enable-lto enables LTO support in toolchain.
    
    	BZ binutils/26766
    	* Makefile.tpl (BUILD_CFLAGS): New.
    	(CFLAGS): Append $(BUILD_CFLAGS).
    	(CXXFLAGS): Likewise.
    	(PGO_BUILD_GEN_FLAGS_TO_PASS): New.
    	(PGO_BUILD_TRAINING_CFLAGS): Likewise.
    	(PGO_BUILD_TRAINING_CXXFLAGS): Likewise.
    	(PGO_BUILD_TRAINING_FLAGS_TO_PASS): Likewise.
    	(PGO_BUILD_TRAINING_MFLAGS): Likewise.
    	(PGO_BUILD_USE_FLAGS_TO_PASS): Likewise.
    	(PGO-TRAINING-TARGETS): Likewise.
    	(PGO_BUILD_TRAINING): Likewise.
    	(all): Add '+' to the command line for recursive make.  Support
    	the PGO build.
    	* configure.ac: Add --enable-pgo-build[=lto].
    	AC_SUBST PGO_BUILD_GEN_CFLAGS, PGO_BUILD_USE_CFLAGS and
    	PGO_BUILD_LTO_CFLAGS.  Enable the PGO build in Makefile.
    	* Makefile.in: Regenerated.
    	* configure: Likewise.
    4a5e71f2
    History
    Sync with binutils: Support the PGO build for binutils+gdb
    H.J. Lu authored
    Sync with binutils for building binutils with LTO:
    
    1dbde357be3 Add missing changes to Makefile.tpl
    af019bfde9b Support the PGO build for binutils+gdb
    
    Add the --enable-pgo-build[=lto] configure option.  When binutils+gdb
    is not built together with GCC, --enable-pgo-build enables the PGO build:
    
    1. First build with -fprofile-generate.
    2. Use "make maybe-check-*" to generate profiling data and pass -i to make
    to ignore errors when generating profiling data.
    3. Use "make clean" to remove the previous build.
    4. Rebuild with -fprofile-use.
    
    With --enable-pgo-build=lto, -flto=jobserver -ffat-lto-objects are used
    together with -fprofile-generate and -fprofile-use.  Add '+' to the command
    line for recursive make to support -flto=jobserver -ffat-lto-objects.
    
    NB: --enable-pgo-build=lto enables the PGO build with LTO while
    --enable-lto enables LTO support in toolchain.
    
    	BZ binutils/26766
    	* Makefile.tpl (BUILD_CFLAGS): New.
    	(CFLAGS): Append $(BUILD_CFLAGS).
    	(CXXFLAGS): Likewise.
    	(PGO_BUILD_GEN_FLAGS_TO_PASS): New.
    	(PGO_BUILD_TRAINING_CFLAGS): Likewise.
    	(PGO_BUILD_TRAINING_CXXFLAGS): Likewise.
    	(PGO_BUILD_TRAINING_FLAGS_TO_PASS): Likewise.
    	(PGO_BUILD_TRAINING_MFLAGS): Likewise.
    	(PGO_BUILD_USE_FLAGS_TO_PASS): Likewise.
    	(PGO-TRAINING-TARGETS): Likewise.
    	(PGO_BUILD_TRAINING): Likewise.
    	(all): Add '+' to the command line for recursive make.  Support
    	the PGO build.
    	* configure.ac: Add --enable-pgo-build[=lto].
    	AC_SUBST PGO_BUILD_GEN_CFLAGS, PGO_BUILD_USE_CFLAGS and
    	PGO_BUILD_LTO_CFLAGS.  Enable the PGO build in Makefile.
    	* Makefile.in: Regenerated.
    	* configure: Likewise.
configure.ac 119.01 KiB