Include all core libs in default boot classpath

To migrate the default compilation over to using
"core platform api" stubs we need to make the "before"
state as close to the "after" state as possible.

The stubs will include all "core libraries" so it
makes sense to include those that contribute to the
"core platform api": okhttp, bouncycastle and conscrypt.

(apache-xml is not included because it doesn't contribute
to the core platform API).

After this change all explicit dependencies to okhttp,
bouncycastle and conscrypt in situations where the
default boot classpath is used can be removed.

A knock-on of this change is that the conscrypt, bouncycastle
and okhttp targets need to be adjusted to explicitly
depend on core-oj / core-libart with no_standard_libs: true
to avoid a cycle.

Bug: 113148576
Test: treehugger
Change-Id: I1677af8d9d48fd026874ebce4c864f39ec1a5a3d
This commit is contained in:
Neil Fuller 2018-10-04 11:45:49 +01:00
parent bd4abf5dfc
commit 1fee9f3dd0
4 changed files with 11 additions and 15 deletions

View File

@ -56,7 +56,7 @@ var neverallows = []*rule{
without("vendor", "true").
without("owner", "").
because("a VNDK module can never have an owner."),
neverallow().notIn("libcore", "development", "external/conscrypt").with("no_standard_libs", "true"),
neverallow().notIn("libcore", "development", "external/bouncycastle", "external/conscrypt", "external/okhttp").with("no_standard_libs", "true"),
// TODO(b/67974785): always enforce the manifest
neverallow().

View File

@ -27,9 +27,9 @@ import (
var (
pctx = android.NewPackageContext("android/soong/java/config")
DefaultBootclasspathLibraries = []string{"core-oj", "core-libart", "core-simple"}
DefaultBootclasspathLibraries = []string{"core-oj", "core-libart", "core-simple", "bouncycastle", "conscrypt", "okhttp"}
DefaultSystemModules = "core-system-modules"
DefaultLibraries = []string{"ext", "framework", "okhttp"}
DefaultLibraries = []string{"ext", "framework"}
DefaultLambdaStubsLibrary = "core-lambda-stubs"
SdkLambdaStubsPath = "prebuilts/sdk/tools/core-lambda-stubs.jar"

View File

@ -115,9 +115,11 @@ func testContext(config android.Config, bp string,
"core-libart",
"core-lambda-stubs",
"core-simple",
"bouncycastle",
"conscrypt",
"okhttp",
"framework",
"ext",
"okhttp",
"android_stubs_current",
"android_system_stubs_current",
"android_test_stubs_current",
@ -365,16 +367,16 @@ var classpathTestcases = []struct {
}{
{
name: "default",
bootclasspath: []string{"core-oj", "core-libart", "core-simple"},
bootclasspath: []string{"core-oj", "core-libart", "core-simple", "bouncycastle", "conscrypt", "okhttp"},
system: "core-system-modules",
classpath: []string{"ext", "framework", "okhttp"},
classpath: []string{"ext", "framework"},
},
{
name: "blank sdk version",
properties: `sdk_version: "",`,
bootclasspath: []string{"core-oj", "core-libart", "core-simple"},
bootclasspath: []string{"core-oj", "core-libart", "core-simple", "bouncycastle", "conscrypt", "okhttp"},
system: "core-system-modules",
classpath: []string{"ext", "framework", "okhttp"},
classpath: []string{"ext", "framework"},
},
{
@ -1062,12 +1064,6 @@ func TestJavaSdkLibrary(t *testing.T) {
name: "droiddoc-templates-sdk",
path: ".",
}
java_library {
name: "conscrypt",
}
java_library {
name: "bouncycastle",
}
java_sdk_library {
name: "foo",
srcs: ["a.java", "b.java"],

View File

@ -519,7 +519,7 @@ func (module *sdkLibrary) createDocs(mctx android.TopDownMutatorContext, apiScop
// Src_lib and Src_lib_whitelist_* properties just above.
// If we don't add them to the classpath, errors messages are generated by doclava,
// though they don't break the build.
props.Libs = append(props.Libs, "conscrypt", "bouncycastle", "okhttp", "framework")
props.Libs = append(props.Libs, "framework")
mctx.CreateModule(android.ModuleFactoryAdaptor(DroiddocFactory), &props)
}