Merge "Introduce LTO property for -fwhole-program-vtables cflag"

This commit is contained in:
Yi Kong
2020-09-21 17:01:56 +00:00
committed by Gerrit Code Review

View File

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