Merge "Switch to clang-r346389c."
diff --git a/android/config.go b/android/config.go
index 38f6ec8..f5ea381 100644
--- a/android/config.go
+++ b/android/config.go
@@ -749,6 +749,14 @@
return c.productVariables.ModulesLoadedByPrivilegedModules
}
+func (c *config) BootJars() []string {
+ return c.productVariables.BootJars
+}
+
+func (c *config) PreoptBootJars() []string {
+ return c.productVariables.PreoptBootJars
+}
+
func (c *config) DisableDexPreopt(name string) bool {
return Bool(c.productVariables.DisableDexPreopt) || InList(name, c.productVariables.DisableDexPreoptModules)
}
diff --git a/android/variable.go b/android/variable.go
index 7e976cd..ddaf166 100644
--- a/android/variable.go
+++ b/android/variable.go
@@ -198,6 +198,9 @@
UncompressPrivAppDex *bool `json:",omitempty"`
ModulesLoadedByPrivilegedModules []string `json:",omitempty"`
+ BootJars []string `json:",omitempty"`
+ PreoptBootJars []string `json:",omitempty"`
+
DisableDexPreopt *bool `json:",omitempty"`
DisableDexPreoptModules []string `json:",omitempty"`
DexPreoptProfileDir *string `json:",omitempty"`
diff --git a/cc/config/clang.go b/cc/config/clang.go
index a0ebd10..832689b 100644
--- a/cc/config/clang.go
+++ b/cc/config/clang.go
@@ -135,10 +135,6 @@
// codebase for it.
"-Wno-inconsistent-missing-override",
- // Bug: http://b/29823425 Disable -Wnull-dereference until the
- // new instances detected by this warning are fixed.
- "-Wno-null-dereference",
-
// Enable clang's thread-safety annotations in libcxx.
// Turn off -Wthread-safety-negative, to avoid breaking projects that use -Weverything.
"-D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS",
@@ -187,6 +183,10 @@
// http://b/72331524 Allow null pointer arithmetic until the instances detected by
// this new warning are fixed.
"-Wno-null-pointer-arithmetic",
+
+ // Bug: http://b/29823425 Disable -Wnull-dereference until the
+ // new instances detected by this warning are fixed.
+ "-Wno-null-dereference",
}, " "))
}
diff --git a/cc/library.go b/cc/library.go
index da223dc..4adb081 100644
--- a/cc/library.go
+++ b/cc/library.go
@@ -646,6 +646,11 @@
linkerDeps = append(linkerDeps, forceWeakSymbols.Path())
}
}
+ if library.buildStubs() {
+ linkerScriptFlags := "-Wl,--version-script," + library.versionScriptPath.String()
+ flags.LdFlags = append(flags.LdFlags, linkerScriptFlags)
+ linkerDeps = append(linkerDeps, library.versionScriptPath)
+ }
fileName := library.getLibName(ctx) + flags.Toolchain.ShlibSuffix()
outputFile := android.PathForModuleOut(ctx, fileName)
diff --git a/dexpreopt/config.go b/dexpreopt/config.go
index 6b5c40d..503af7e 100644
--- a/dexpreopt/config.go
+++ b/dexpreopt/config.go
@@ -36,6 +36,7 @@
PreoptBootClassPathDexLocations []string // virtual locations of boot class path files
BootJars []string // modules for jars that form the boot class path
+ PreoptBootJars []string // modules for jars that form the boot image
SystemServerJars []string // jars that form the system server
SystemServerApps []string // apps that are loaded into system server
SpeedApps []string // apps that should be speed optimized
diff --git a/java/java.go b/java/java.go
index fa4aee4..a23835b 100644
--- a/java/java.go
+++ b/java/java.go
@@ -1364,6 +1364,12 @@
}
func (j *Library) shouldUncompressDex(ctx android.ModuleContext) bool {
+ // Store uncompressed (and do not strip) dex files from boot class path jars that are not
+ // part of the boot image.
+ if inList(ctx.ModuleName(), ctx.Config().BootJars()) &&
+ !inList(ctx.ModuleName(), ctx.Config().PreoptBootJars()) {
+ return true
+ }
return false
}
diff --git a/ui/build/ninja.go b/ui/build/ninja.go
index e5d6da1..835f820 100644
--- a/ui/build/ninja.go
+++ b/ui/build/ninja.go
@@ -54,7 +54,9 @@
args = append(args, "-f", config.CombinedNinjaFile())
- args = append(args, "-w", "dupbuild=err")
+ args = append(args,
+ "-w", "dupbuild=err",
+ "-w", "missingdepfile=err")
cmd := Command(ctx, config, "ninja", executable, args...)
if config.HasKatiSuffix() {
diff --git a/ui/build/paths/config.go b/ui/build/paths/config.go
index 4dc62b8..1b80ceb 100644
--- a/ui/build/paths/config.go
+++ b/ui/build/paths/config.go
@@ -85,7 +85,6 @@
"egrep": Allowed,
"find": Allowed,
"fuser": Allowed,
- "getconf": Allowed,
"getopt": Allowed,
"git": Allowed,
"grep": Allowed,
@@ -98,7 +97,6 @@
"lsof": Allowed,
"m4": Allowed,
"md5sum": Allowed,
- "mktemp": Allowed,
"mv": Allowed,
"openssl": Allowed,
"patch": Allowed,
@@ -109,7 +107,6 @@
"python": Allowed,
"python2.7": Allowed,
"python3": Allowed,
- "readlink": Allowed,
"realpath": Allowed,
"rm": Allowed,
"rsync": Allowed,
@@ -119,14 +116,12 @@
"sha256sum": Allowed,
"sha512sum": Allowed,
"sort": Allowed,
- "stat": Allowed,
"tar": Allowed,
"timeout": Allowed,
"tr": Allowed,
"unzip": Allowed,
"wc": Allowed,
"which": Allowed,
- "xargs": Allowed,
"xz": Allowed,
"zip": Allowed,
"zipinfo": Allowed,
@@ -158,16 +153,20 @@
"env": Toybox,
"expr": Toybox,
"head": Toybox,
+ "getconf": Toybox,
"id": Toybox,
"ln": Toybox,
"ls": Toybox,
"mkdir": Toybox,
+ "mktemp": Toybox,
"od": Toybox,
"paste": Toybox,
"pwd": Toybox,
+ "readlink": Toybox,
"rmdir": Toybox,
"setsid": Toybox,
"sleep": Toybox,
+ "stat": Toybox,
"tail": Toybox,
"tee": Toybox,
"touch": Toybox,
@@ -176,6 +175,7 @@
"uniq": Toybox,
"unix2dos": Toybox,
"whoami": Toybox,
+ "xargs": Toybox,
"xxd": Toybox,
}