Always use the standard OSX SDK tools
Instead of whatever happens to be in PATH. Test: port install gcc5; attempt to build host binaries Change-Id: If4af32596edd6fd3e459c3d574ab0ff495f236ff
This commit is contained in:
@@ -262,10 +262,7 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags) Flag
|
|||||||
flags.LdFlags = config.ClangFilterUnknownCflags(flags.LdFlags)
|
flags.LdFlags = config.ClangFilterUnknownCflags(flags.LdFlags)
|
||||||
|
|
||||||
target := "-target " + tc.ClangTriple()
|
target := "-target " + tc.ClangTriple()
|
||||||
var gccPrefix string
|
gccPrefix := "-B" + config.ToolPath(tc)
|
||||||
if !ctx.Darwin() {
|
|
||||||
gccPrefix = "-B" + filepath.Join(tc.GccRoot(), tc.GccTriple(), "bin")
|
|
||||||
}
|
|
||||||
|
|
||||||
flags.CFlags = append(flags.CFlags, target, gccPrefix)
|
flags.CFlags = append(flags.CFlags, target, gccPrefix)
|
||||||
flags.AsFlags = append(flags.AsFlags, target, gccPrefix)
|
flags.AsFlags = append(flags.AsFlags, target, gccPrefix)
|
||||||
|
@@ -16,6 +16,7 @@ package config
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"path/filepath"
|
||||||
|
|
||||||
"android/soong/android"
|
"android/soong/android"
|
||||||
)
|
)
|
||||||
@@ -47,6 +48,7 @@ type Toolchain interface {
|
|||||||
GccTriple() string
|
GccTriple() string
|
||||||
// GccVersion should return a real value, not a ninja reference
|
// GccVersion should return a real value, not a ninja reference
|
||||||
GccVersion() string
|
GccVersion() string
|
||||||
|
ToolPath() string
|
||||||
|
|
||||||
ToolchainCflags() string
|
ToolchainCflags() string
|
||||||
ToolchainLdflags() string
|
ToolchainLdflags() string
|
||||||
@@ -145,6 +147,10 @@ func (toolchainBase) Bionic() bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (t toolchainBase) ToolPath() string {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
type toolchain64Bit struct {
|
type toolchain64Bit struct {
|
||||||
toolchainBase
|
toolchainBase
|
||||||
}
|
}
|
||||||
@@ -216,3 +222,10 @@ func UndefinedBehaviorSanitizerRuntimeLibrary(t Toolchain) string {
|
|||||||
}
|
}
|
||||||
return "libclang_rt.ubsan_standalone-" + arch + "-android.so"
|
return "libclang_rt.ubsan_standalone-" + arch + "-android.so"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ToolPath(t Toolchain) string {
|
||||||
|
if p := t.ToolPath(); p != "" {
|
||||||
|
return p
|
||||||
|
}
|
||||||
|
return filepath.Join(t.GccRoot(), t.GccTriple(), "bin")
|
||||||
|
}
|
||||||
|
@@ -17,6 +17,7 @@ package config
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"android/soong/android"
|
"android/soong/android"
|
||||||
@@ -131,6 +132,11 @@ func init() {
|
|||||||
return strings.TrimSpace(string(bytes)), err
|
return strings.TrimSpace(string(bytes)), err
|
||||||
})
|
})
|
||||||
|
|
||||||
|
pctx.VariableFunc("MacToolPath", func(config interface{}) (string, error) {
|
||||||
|
bytes, err := exec.Command("xcrun", "--find", "ld").Output()
|
||||||
|
return filepath.Dir(strings.TrimSpace(string(bytes))), err
|
||||||
|
})
|
||||||
|
|
||||||
pctx.StaticVariable("DarwinGccVersion", darwinGccVersion)
|
pctx.StaticVariable("DarwinGccVersion", darwinGccVersion)
|
||||||
pctx.SourcePathVariable("DarwinGccRoot",
|
pctx.SourcePathVariable("DarwinGccRoot",
|
||||||
"prebuilts/gcc/${HostPrebuiltTag}/host/i686-apple-darwin-${DarwinGccVersion}")
|
"prebuilts/gcc/${HostPrebuiltTag}/host/i686-apple-darwin-${DarwinGccVersion}")
|
||||||
@@ -276,6 +282,10 @@ func (t *toolchainDarwin) Bionic() bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (t *toolchainDarwin) ToolPath() string {
|
||||||
|
return "${config.MacToolPath}"
|
||||||
|
}
|
||||||
|
|
||||||
var toolchainDarwinX86Singleton Toolchain = &toolchainDarwinX86{}
|
var toolchainDarwinX86Singleton Toolchain = &toolchainDarwinX86{}
|
||||||
var toolchainDarwinX8664Singleton Toolchain = &toolchainDarwinX8664{}
|
var toolchainDarwinX8664Singleton Toolchain = &toolchainDarwinX8664{}
|
||||||
|
|
||||||
|
@@ -16,7 +16,6 @@ package cc
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"path/filepath"
|
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
@@ -186,9 +185,7 @@ func makeVarsToolchain(ctx android.MakeVarsContext, secondPrefix string,
|
|||||||
if toolchain.ClangSupported() {
|
if toolchain.ClangSupported() {
|
||||||
clangPrefix := secondPrefix + "CLANG_" + typePrefix
|
clangPrefix := secondPrefix + "CLANG_" + typePrefix
|
||||||
clangExtras := "-target " + toolchain.ClangTriple()
|
clangExtras := "-target " + toolchain.ClangTriple()
|
||||||
if target.Os != android.Darwin {
|
clangExtras += " -B" + config.ToolPath(toolchain)
|
||||||
clangExtras += " -B" + filepath.Join(toolchain.GccRoot(), toolchain.GccTriple(), "bin")
|
|
||||||
}
|
|
||||||
|
|
||||||
ctx.Strict(clangPrefix+"GLOBAL_CFLAGS", strings.Join([]string{
|
ctx.Strict(clangPrefix+"GLOBAL_CFLAGS", strings.Join([]string{
|
||||||
toolchain.ClangCflags(),
|
toolchain.ClangCflags(),
|
||||||
|
Reference in New Issue
Block a user