Introduce LTO property for -fwhole-program-vtables cflag

-fwhole-program-vtables cflag requires LTO to be enabled. Some projects
add this flag unconditionally, breaking builds that turn off LTO.

Make this an LTO property so that build system will handle adding the
flag when LTO is on.

Test: build
Bug: 169004486
Change-Id: Ifce12c09e1d6b8c2807314c3bb982b076efcaaa4
This commit is contained in:
Yi Kong 2020-09-21 01:18:32 +08:00
parent 41243c1d5f
commit 2d01fe28df
1 changed files with 7 additions and 0 deletions

View File

@ -52,6 +52,9 @@ type LTOProperties struct {
// Use clang lld instead of gnu ld.
Use_clang_lld *bool
// Use -fwhole-program-vtables cflag.
Whole_program_vtables *bool
}
type lto struct {
@ -97,6 +100,10 @@ func (lto *lto) flags(ctx BaseModuleContext, flags Flags) Flags {
flags.Local.CFlags = append(flags.Local.CFlags, ltoFlag)
flags.Local.LdFlags = append(flags.Local.LdFlags, ltoFlag)
if Bool(lto.Properties.Whole_program_vtables) {
flags.Local.CFlags = append(flags.Local.CFlags, "-fwhole-program-vtables")
}
if ctx.Config().IsEnvTrue("USE_THINLTO_CACHE") && Bool(lto.Properties.Lto.Thin) && lto.useClangLld(ctx) {
// Set appropriate ThinLTO cache policy
cacheDirFormat := "-Wl,--thinlto-cache-dir="