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:
parent
41243c1d5f
commit
2d01fe28df
|
@ -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="
|
||||
|
|
Loading…
Reference in New Issue