Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1fee9f3d authored by Neil Fuller's avatar Neil Fuller
Browse files

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
parent bd4abf5d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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().
+2 −2
Original line number Diff line number Diff line
@@ -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"

+7 −11
Original line number Diff line number Diff line
@@ -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"],
+1 −1
Original line number Diff line number Diff line
@@ -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)
}