On 11/13/2021 9:33 AM, H.J. Lu via Gcc-patches wrote:
Sync with binutils for building binutils with LTO:

 From af019bfde9b13d628202fe58054ec7ff08d92a0f Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.to...@gmail.com>
Date: Sat, 9 Jan 2021 06:51:15 -0800
Subject: [PATCH] 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.

        PR 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.
My understanding is this is just syncing us with binutils.  So OK.

jeff

Reply via email to