Fix ToolchainLdflags calls

Instead of having the baseCompiler adjust the Ldflags, teach
objectLinker about ToolchainLdflags. And don't assume that
ToolchainLdflags will work for Clang too, add a ToolchainClangLdflags
call.

Change-Id: I5f546e46f32edf3fcf75a44bee2c5ee103bc5de3
This commit is contained in:
Dan Willemsen
2016-03-30 17:33:52 -07:00
parent 01fdd3d8c1
commit e71749280e
3 changed files with 14 additions and 6 deletions

View File

@@ -1014,7 +1014,6 @@ func (compiler *baseCompiler) flags(ctx ModuleContext, flags Flags) Flags {
} else { } else {
flags.GlobalFlags = append(flags.GlobalFlags, toolchain.ToolchainCflags()) flags.GlobalFlags = append(flags.GlobalFlags, toolchain.ToolchainCflags())
} }
flags.LdFlags = append(flags.LdFlags, toolchain.ToolchainLdflags())
if !ctx.sdk() { if !ctx.sdk() {
if ctx.Host() && !flags.Clang { if ctx.Host() && !flags.Clang {
@@ -1153,7 +1152,9 @@ func (linker *baseLinker) flags(ctx ModuleContext, flags Flags) Flags {
} }
} }
if !flags.Clang { if flags.Clang {
flags.LdFlags = append(flags.LdFlags, toolchain.ToolchainClangLdflags())
} else {
flags.LdFlags = append(flags.LdFlags, toolchain.ToolchainLdflags()) flags.LdFlags = append(flags.LdFlags, toolchain.ToolchainLdflags())
} }
@@ -1544,6 +1545,12 @@ func (*objectLinker) deps(ctx BaseModuleContext, deps Deps) Deps {
} }
func (*objectLinker) flags(ctx ModuleContext, flags Flags) Flags { func (*objectLinker) flags(ctx ModuleContext, flags Flags) Flags {
if flags.Clang {
flags.LdFlags = append(flags.LdFlags, ctx.toolchain().ToolchainClangLdflags())
} else {
flags.LdFlags = append(flags.LdFlags, ctx.toolchain().ToolchainLdflags())
}
return flags return flags
} }

View File

@@ -147,10 +147,6 @@ func (t *toolchainMips64) GccVersion() string {
return mips64GccVersion return mips64GccVersion
} }
func (t *toolchainMips64) ToolchainLdflags() string {
return ""
}
func (t *toolchainMips64) ToolchainCflags() string { func (t *toolchainMips64) ToolchainCflags() string {
return t.toolchainCflags return t.toolchainCflags
} }

View File

@@ -60,6 +60,7 @@ type Toolchain interface {
ClangSupported() bool ClangSupported() bool
ClangTriple() string ClangTriple() string
ToolchainClangCflags() string ToolchainClangCflags() string
ToolchainClangLdflags() string
ClangAsflags() string ClangAsflags() string
ClangCflags() string ClangCflags() string
ClangCppflags() string ClangCppflags() string
@@ -104,6 +105,10 @@ func (toolchainBase) ToolchainClangCflags() string {
return "" return ""
} }
func (toolchainBase) ToolchainClangLdflags() string {
return ""
}
func (toolchainBase) ClangSupported() bool { func (toolchainBase) ClangSupported() bool {
return true return true
} }