Remove flto dependent flags when -flto is removed.

* C++ source files could be compiled with "-fwhole-program-vtables"
  in cppflags. We need to filter out those flto dependent flags
  in flags.CppFlags and use flags.toolingCppFlags instead of
  flags.cppFlags.

Test: build with WITH_TIDY=1
Change-Id: Ic2b0f99b95a5f0422f879226e6f6060cab71456a
This commit is contained in:
Chih-Hung Hsieh
2018-08-22 14:18:04 -07:00
committed by Chih-hung Hsieh
parent cde4e89c27
commit 9e88ba9f22
4 changed files with 52 additions and 47 deletions

View File

@@ -240,7 +240,8 @@ type builderFlags struct {
arFlags string
asFlags string
cFlags string
toolingCFlags string // A separate set of Cflags for clang LibTooling tools
toolingCFlags string // A separate set of cFlags for clang LibTooling tools
toolingCppFlags string // A separate set of cppFlags for clang LibTooling tools
conlyFlags string
cppFlags string
ldFlags string
@@ -330,7 +331,7 @@ func TransformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles and
toolingCppflags := strings.Join([]string{
commonFlags,
flags.toolingCFlags,
flags.cppFlags,
flags.toolingCppFlags,
}, " ")
cppflags := strings.Join([]string{

View File

@@ -93,8 +93,10 @@ var ClangUnknownLldflags = sorted([]string{
})
var ClangLibToolingUnknownCflags = []string{
// Remove -flto and other flto dependent flags.
"-flto*",
"-fsanitize*",
"-fwhole-program-vtables",
}
func init() {

View File

@@ -71,6 +71,7 @@ func (sabimod *sabi) flags(ctx ModuleContext, flags Flags) Flags {
// Assuming that the cflags which clang LibTooling tools cannot
// understand have not been converted to ninja variables yet.
flags.ToolingCFlags = filterOutWithPrefix(flags.CFlags, config.ClangLibToolingUnknownCflags)
flags.ToolingCppFlags = filterOutWithPrefix(flags.CppFlags, config.ClangLibToolingUnknownCflags)
// RSClang does not support recent mcpu option likes exynos-m2.
// So we need overriding mcpu option when we want to use it.

View File

@@ -64,6 +64,7 @@ func flagsToBuilderFlags(in Flags) builderFlags {
asFlags: strings.Join(in.AsFlags, " "),
cFlags: strings.Join(in.CFlags, " "),
toolingCFlags: strings.Join(in.ToolingCFlags, " "),
toolingCppFlags: strings.Join(in.ToolingCppFlags, " "),
conlyFlags: strings.Join(in.ConlyFlags, " "),
cppFlags: strings.Join(in.CppFlags, " "),
yaccFlags: strings.Join(in.YaccFlags, " "),