Merge changes from topic "mingw-clang"
* changes: Use clang for windows host modules Use -static-libgcc for Windows
This commit is contained in:
@@ -45,7 +45,6 @@ var (
|
|||||||
|
|
||||||
windowsIncludeFlags = []string{
|
windowsIncludeFlags = []string{
|
||||||
"-isystem ${WindowsGccRoot}/${WindowsGccTriple}/include",
|
"-isystem ${WindowsGccRoot}/${WindowsGccTriple}/include",
|
||||||
"-isystem ${WindowsGccRoot}/lib/gcc/${WindowsGccTriple}/4.8.3/include",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
windowsClangCppflags = []string{
|
windowsClangCppflags = []string{
|
||||||
@@ -79,22 +78,34 @@ var (
|
|||||||
"-m32",
|
"-m32",
|
||||||
"-Wl,--large-address-aware",
|
"-Wl,--large-address-aware",
|
||||||
"-L${WindowsGccRoot}/${WindowsGccTriple}/lib32",
|
"-L${WindowsGccRoot}/${WindowsGccTriple}/lib32",
|
||||||
|
"-static-libgcc",
|
||||||
}
|
}
|
||||||
windowsX86ClangLdflags = append(ClangFilterUnknownCflags(windowsX86Ldflags), []string{
|
windowsX86ClangLdflags = append(ClangFilterUnknownCflags(windowsX86Ldflags), []string{
|
||||||
|
"-B${WindowsGccRoot}/${WindowsGccTriple}/bin",
|
||||||
"-B${WindowsGccRoot}/lib/gcc/${WindowsGccTriple}/4.8.3/32",
|
"-B${WindowsGccRoot}/lib/gcc/${WindowsGccTriple}/4.8.3/32",
|
||||||
"-L${WindowsGccRoot}/lib/gcc/${WindowsGccTriple}/4.8.3/32",
|
"-L${WindowsGccRoot}/lib/gcc/${WindowsGccTriple}/4.8.3/32",
|
||||||
"-B${WindowsGccRoot}/${WindowsGccTriple}/lib32",
|
"-B${WindowsGccRoot}/${WindowsGccTriple}/lib32",
|
||||||
|
"-pthread",
|
||||||
|
// Bug: http://b/109759970 - WAR until issue with ld.bfd's
|
||||||
|
// inability to handle Clang-generated section names is fixed.
|
||||||
|
"-Wl,--allow-multiple-definition",
|
||||||
}...)
|
}...)
|
||||||
windowsX86ClangLldflags = ClangFilterUnknownLldflags(windowsX86ClangLdflags)
|
windowsX86ClangLldflags = ClangFilterUnknownLldflags(windowsX86ClangLdflags)
|
||||||
|
|
||||||
windowsX8664Ldflags = []string{
|
windowsX8664Ldflags = []string{
|
||||||
"-m64",
|
"-m64",
|
||||||
"-L${WindowsGccRoot}/${WindowsGccTriple}/lib64",
|
"-L${WindowsGccRoot}/${WindowsGccTriple}/lib64",
|
||||||
|
"-static-libgcc",
|
||||||
}
|
}
|
||||||
windowsX8664ClangLdflags = append(ClangFilterUnknownCflags(windowsX8664Ldflags), []string{
|
windowsX8664ClangLdflags = append(ClangFilterUnknownCflags(windowsX8664Ldflags), []string{
|
||||||
|
"-B${WindowsGccRoot}/${WindowsGccTriple}/bin",
|
||||||
"-B${WindowsGccRoot}/lib/gcc/${WindowsGccTriple}/4.8.3",
|
"-B${WindowsGccRoot}/lib/gcc/${WindowsGccTriple}/4.8.3",
|
||||||
"-L${WindowsGccRoot}/lib/gcc/${WindowsGccTriple}/4.8.3",
|
"-L${WindowsGccRoot}/lib/gcc/${WindowsGccTriple}/4.8.3",
|
||||||
"-B${WindowsGccRoot}/${WindowsGccTriple}/lib64",
|
"-B${WindowsGccRoot}/${WindowsGccTriple}/lib64",
|
||||||
|
"-pthread",
|
||||||
|
// Bug: http://b/109759970 - WAR until issue with ld.bfd's
|
||||||
|
// inability to handle Clang-generated section names is fixed.
|
||||||
|
"-Wl,--allow-multiple-definition",
|
||||||
}...)
|
}...)
|
||||||
windowsX8664ClangLldflags = ClangFilterUnknownLldflags(windowsX8664ClangLdflags)
|
windowsX8664ClangLldflags = ClangFilterUnknownLldflags(windowsX8664ClangLdflags)
|
||||||
|
|
||||||
@@ -220,7 +231,7 @@ func (t *toolchainWindowsX8664) WindresFlags() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t *toolchainWindows) ClangSupported() bool {
|
func (t *toolchainWindows) ClangSupported() bool {
|
||||||
return false
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *toolchainWindowsX86) ClangTriple() string {
|
func (t *toolchainWindowsX86) ClangTriple() string {
|
||||||
|
@@ -246,6 +246,10 @@ func (linker *baseLinker) useClangLld(ctx ModuleContext) bool {
|
|||||||
if ctx.Darwin() {
|
if ctx.Darwin() {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
// http://b/110800681 - lld cannot link Android's Windows modules yet.
|
||||||
|
if ctx.Windows() {
|
||||||
|
return false
|
||||||
|
}
|
||||||
if linker.Properties.Use_clang_lld != nil {
|
if linker.Properties.Use_clang_lld != nil {
|
||||||
return Bool(linker.Properties.Use_clang_lld)
|
return Bool(linker.Properties.Use_clang_lld)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user