From 8a852e769490b87c1a6f84f78365ed706d41b516 Mon Sep 17 00:00:00 2001 From: Pirama Arumuga Nainar Date: Tue, 19 Jun 2018 20:07:54 -0700 Subject: Use clang for windows host modules Bug: http://b/69933068 - Remove GCC's intrinsic header path so Clang's headers get included. - Add '-B' with GCC's binary directory so Clang detects the linker. - Bug: http://b/109759970 - Pass '--allow-multiple-definition' linker flag to deal with ld.bfd's inability to handle Clang-generated section names is fixed. - Bug: http://b/110800681 - lld cannot link Android's Windows modules yet Test: m native-host-cross and run adb_test.exe under wine. Change-Id: I9be9cfc34a47cbeee04024438dea214305112eaa --- cc/config/x86_windows_host.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'cc/config/x86_windows_host.go') diff --git a/cc/config/x86_windows_host.go b/cc/config/x86_windows_host.go index 4e13230b..4cb8fa47 100644 --- a/cc/config/x86_windows_host.go +++ b/cc/config/x86_windows_host.go @@ -45,7 +45,6 @@ var ( windowsIncludeFlags = []string{ "-isystem ${WindowsGccRoot}/${WindowsGccTriple}/include", - "-isystem ${WindowsGccRoot}/lib/gcc/${WindowsGccTriple}/4.8.3/include", } windowsClangCppflags = []string{ @@ -82,9 +81,14 @@ var ( "-static-libgcc", } windowsX86ClangLdflags = append(ClangFilterUnknownCflags(windowsX86Ldflags), []string{ + "-B${WindowsGccRoot}/${WindowsGccTriple}/bin", "-B${WindowsGccRoot}/lib/gcc/${WindowsGccTriple}/4.8.3/32", "-L${WindowsGccRoot}/lib/gcc/${WindowsGccTriple}/4.8.3/32", "-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) @@ -94,9 +98,14 @@ var ( "-static-libgcc", } windowsX8664ClangLdflags = append(ClangFilterUnknownCflags(windowsX8664Ldflags), []string{ + "-B${WindowsGccRoot}/${WindowsGccTriple}/bin", "-B${WindowsGccRoot}/lib/gcc/${WindowsGccTriple}/4.8.3", "-L${WindowsGccRoot}/lib/gcc/${WindowsGccTriple}/4.8.3", "-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) @@ -222,7 +231,7 @@ func (t *toolchainWindowsX8664) WindresFlags() string { } func (t *toolchainWindows) ClangSupported() bool { - return false + return true } func (t *toolchainWindowsX86) ClangTriple() string { -- cgit v1.2.3