Merge "Remove unnecessary DeviceUsesClang."
diff --git a/android/arch.go b/android/arch.go
index e696a0d..6ab184f 100644
--- a/android/arch.go
+++ b/android/arch.go
@@ -923,8 +923,6 @@
func getMegaDeviceConfig() []archConfig {
return []archConfig{
- // armv5 is only used for unbundled apps
- //{"arm", "armv5te", "", []string{"armeabi"}},
{"arm", "armv7-a", "generic", []string{"armeabi-v7a"}},
{"arm", "armv7-a-neon", "generic", []string{"armeabi-v7a"}},
{"arm", "armv7-a-neon", "cortex-a7", []string{"armeabi-v7a"}},
diff --git a/cc/config/arm_device.go b/cc/config/arm_device.go
index fda4f9d..0d3750e 100644
--- a/cc/config/arm_device.go
+++ b/cc/config/arm_device.go
@@ -49,14 +49,6 @@
}
armArchVariantCflags = map[string][]string{
- "armv5te": []string{
- "-march=armv5te",
- "-mtune=xscale",
- "-D__ARM_ARCH_5__",
- "-D__ARM_ARCH_5T__",
- "-D__ARM_ARCH_5E__",
- "-D__ARM_ARCH_5TE__",
- },
"armv7-a": []string{
"-march=armv7-a",
"-mfloat-abi=softfp",
@@ -140,7 +132,6 @@
"neon")
android.RegisterArchVariants(android.Arm,
- "armv5te",
"armv7-a",
"armv7-a-neon",
"armv8-a",
@@ -188,7 +179,6 @@
pctx.StaticVariable("ArmThumbCflags", strings.Join(armThumbCflags, " "))
// Architecture variant cflags
- pctx.StaticVariable("ArmArmv5TECflags", strings.Join(armArchVariantCflags["armv5te"], " "))
pctx.StaticVariable("ArmArmv7ACflags", strings.Join(armArchVariantCflags["armv7-a"], " "))
pctx.StaticVariable("ArmArmv7ANeonCflags", strings.Join(armArchVariantCflags["armv7-a-neon"], " "))
pctx.StaticVariable("ArmArmv8ACflags", strings.Join(armArchVariantCflags["armv8-a"], " "))
@@ -213,8 +203,6 @@
pctx.StaticVariable("ArmClangThumbCflags", strings.Join(ClangFilterUnknownCflags(armThumbCflags), " "))
// Clang arch variant cflags
- pctx.StaticVariable("ArmClangArmv5TECflags",
- strings.Join(armClangArchVariantCflags["armv5te"], " "))
pctx.StaticVariable("ArmClangArmv7ACflags",
strings.Join(armClangArchVariantCflags["armv7-a"], " "))
pctx.StaticVariable("ArmClangArmv7ANeonCflags",
@@ -241,7 +229,6 @@
var (
armArchVariantCflagsVar = map[string]string{
- "armv5te": "${config.ArmArmv5TECflags}",
"armv7-a": "${config.ArmArmv7ACflags}",
"armv7-a-neon": "${config.ArmArmv7ANeonCflags}",
"armv8-a": "${config.ArmArmv8ACflags}",
@@ -263,7 +250,6 @@
}
armClangArchVariantCflagsVar = map[string]string{
- "armv5te": "${config.ArmClangArmv5TECflags}",
"armv7-a": "${config.ArmClangArmv7ACflags}",
"armv7-a-neon": "${config.ArmClangArmv7ANeonCflags}",
"armv8-a": "${config.ArmClangArmv8ACflags}",
@@ -399,8 +385,6 @@
}
case "armv7-a":
fixCortexA8 = "-Wl,--fix-cortex-a8"
- case "armv5te":
- // Nothing extra for armv5te
case "armv8-a":
// Nothing extra for armv8-a
default:
diff --git a/cc/stl.go b/cc/stl.go
index c65f1c2..c5757cd 100644
--- a/cc/stl.go
+++ b/cc/stl.go
@@ -144,6 +144,19 @@
switch stl.Properties.SelectedStl {
case "libc++", "libc++_static":
flags.CFlags = append(flags.CFlags, "-D_USING_LIBCXX")
+
+ if ctx.Darwin() {
+ // libc++'s headers are annotated with availability macros that
+ // indicate which version of Mac OS was the first to ship with a
+ // libc++ feature available in its *system's* libc++.dylib. We do
+ // not use the system's library, but rather ship our own. As such,
+ // these availability attributes are meaningless for us but cause
+ // build breaks when we try to use code that would not be available
+ // in the system's dylib.
+ flags.CppFlags = append(flags.CppFlags,
+ "-D_LIBCPP_DISABLE_AVAILABILITY")
+ }
+
if !ctx.toolchain().Bionic() {
flags.CppFlags = append(flags.CppFlags, "-nostdinc++")
flags.LdFlags = append(flags.LdFlags, "-nodefaultlibs")
diff --git a/ui/build/config.go b/ui/build/config.go
index f2511e7..0c37724 100644
--- a/ui/build/config.go
+++ b/ui/build/config.go
@@ -257,8 +257,6 @@
var product string
switch arch {
- case "armv5":
- product = "generic_armv5"
case "arm", "":
product = "aosp_arm"
case "arm64":
diff --git a/ui/build/context.go b/ui/build/context.go
index 52a337d..0636631 100644
--- a/ui/build/context.go
+++ b/ui/build/context.go
@@ -103,6 +103,13 @@
return false
}
+func (c ContextImpl) IsErrTerminal() bool {
+ if term, ok := os.LookupEnv("TERM"); ok {
+ return term != "dumb" && isTerminal(c.Stderr())
+ }
+ return false
+}
+
func (c ContextImpl) TermWidth() (int, bool) {
return termWidth(c.Stdout())
}
diff --git a/ui/build/dumpvars.go b/ui/build/dumpvars.go
index 96f2274..a0e1eca 100644
--- a/ui/build/dumpvars.go
+++ b/ui/build/dumpvars.go
@@ -42,6 +42,7 @@
config.PrebuiltBuildTool("ckati"),
"-f", "build/make/core/config.mk",
"--color_warnings",
+ "--kati_stats",
"dump-many-vars",
"MAKECMDGOALS="+strings.Join(goals, " "))
cmd.Environment.Set("CALLED_FROM_SETUP", "true")
@@ -51,15 +52,19 @@
}
cmd.Environment.Set("DUMP_MANY_VARS", strings.Join(vars, " "))
cmd.Sandbox = dumpvarsSandbox
- // TODO: error out when Stderr contains any content
- cmd.Stderr = ctx.Stderr()
- output, err := cmd.Output()
+ output := bytes.Buffer{}
+ cmd.Stdout = &output
+ pipe, err := cmd.StderrPipe()
if err != nil {
- return nil, err
+ ctx.Fatalln("Error getting output pipe for ckati:", err)
}
+ cmd.StartOrFatal()
+ // TODO: error out when Stderr contains any content
+ katiRewriteOutput(ctx, pipe)
+ cmd.WaitOrFatal()
ret := make(map[string]string, len(vars))
- for _, line := range strings.Split(string(output), "\n") {
+ for _, line := range strings.Split(output.String(), "\n") {
if len(line) == 0 {
continue
}
diff --git a/ui/build/kati.go b/ui/build/kati.go
index 7bb721d..e4715bb 100644
--- a/ui/build/kati.go
+++ b/ui/build/kati.go
@@ -115,6 +115,7 @@
func katiRewriteOutput(ctx Context, pipe io.ReadCloser) {
haveBlankLine := true
smartTerminal := ctx.IsTerminal()
+ errSmartTerminal := ctx.IsErrTerminal()
scanner := bufio.NewScanner(pipe)
for scanner.Scan() {
@@ -155,7 +156,7 @@
// that message instead of overwriting it.
fmt.Fprintln(ctx.Stdout())
haveBlankLine = true
- } else if !smartTerminal {
+ } else if !errSmartTerminal {
// Most editors display these as garbage, so strip them out.
line = string(stripAnsiEscapes([]byte(line)))
}