From 627280f091b09a20ce67e780130a6945db7a7f84 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Mon, 26 Apr 2021 16:53:58 -0700 Subject: [PATCH] Remove llndk_headers Replace llndk_headers with cc_library_headers with llndk.llndk_headers: true. Bug: 170784825 Test: m checkbuild Test: compare out/soong/build.ninja Test: TestLlndkHeaders Change-Id: I33b411cd4d474318796c2073375176b82dd8c216 --- cc/cc.go | 10 +--------- cc/cc_test.go | 24 ++++++++++++++++-------- cc/image.go | 2 +- cc/linkable.go | 3 --- cc/llndk_library.go | 34 ---------------------------------- cc/testing.go | 2 -- cc/vendor_snapshot.go | 5 +---- rust/rust.go | 4 ---- 8 files changed, 19 insertions(+), 65 deletions(-) diff --git a/cc/cc.go b/cc/cc.go index 4d8f4e1a1..c35f628b6 100644 --- a/cc/cc.go +++ b/cc/cc.go @@ -1121,13 +1121,6 @@ func (c *Module) IsLlndkPublic() bool { return c.VendorProperties.IsLLNDK && !c.VendorProperties.IsVNDKPrivate } -func (c *Module) IsLlndkHeaders() bool { - if _, ok := c.linker.(*llndkHeadersDecorator); ok { - return true - } - return false -} - func (c *Module) IsLlndkLibrary() bool { if _, ok := c.linker.(*llndkStubDecorator); ok { return true @@ -1608,8 +1601,7 @@ func (c *Module) setSubnameProperty(actx android.ModuleContext) { } llndk := c.IsLlndk() - _, llndkHeader := c.linker.(*llndkHeadersDecorator) - if llndk || llndkHeader || (c.UseVndk() && c.HasNonSystemVariants()) { + if llndk || (c.UseVndk() && c.HasNonSystemVariants()) { // .vendor.{version} suffix is added for vendor variant or .product.{version} suffix is // added for product variant only when we have vendor and product variants with core // variant. The suffix is not added for vendor-only or product-only module. diff --git a/cc/cc_test.go b/cc/cc_test.go index 3d2160f2e..49fffc9b2 100644 --- a/cc/cc_test.go +++ b/cc/cc_test.go @@ -557,8 +557,11 @@ func TestVndk(t *testing.T) { export_llndk_headers: ["libllndk_headers"], } - llndk_headers { + cc_library_headers { name: "libllndk_headers", + llndk: { + llndk_headers: true, + }, export_include_dirs: ["include"], } @@ -903,8 +906,11 @@ func TestVndkWhenVndkVersionIsNotSet(t *testing.T) { export_llndk_headers: ["libllndk_headers"], } - llndk_headers { + cc_library_headers { name: "libllndk_headers", + llndk: { + symbol_file: "libllndk.map.txt", + }, export_include_dirs: ["include"], } `) @@ -2920,17 +2926,19 @@ func TestEmbeddedLlndkLibrary(t *testing.T) { func TestLlndkHeaders(t *testing.T) { ctx := testCc(t, ` - llndk_headers { + cc_library_headers { name: "libllndk_headers", export_include_dirs: ["my_include"], - } - llndk_library { - name: "libllndk.llndk", - export_llndk_headers: ["libllndk_headers"], + llndk: { + llndk_headers: true, + }, } cc_library { name: "libllndk", - llndk_stubs: "libllndk.llndk", + llndk: { + symbol_file: "libllndk.map.txt", + export_llndk_headers: ["libllndk_headers"], + } } cc_library { diff --git a/cc/image.go b/cc/image.go index 6265b132e..66b02d9ce 100644 --- a/cc/image.go +++ b/cc/image.go @@ -437,7 +437,7 @@ func MutateImage(mctx android.BaseModuleContext, m ImageMutatableModule) { productVndkVersion = platformVndkVersion } - if m.IsLlndkLibrary() || m.IsLlndkHeaders() || m.NeedsLlndkVariants() { + if m.IsLlndkLibrary() || m.NeedsLlndkVariants() { // This is an LLNDK library. The implementation of the library will be on /system, // and vendor and product variants will be created with LLNDK stubs. // The LLNDK libraries need vendor variants even if there is no VNDK. diff --git a/cc/linkable.go b/cc/linkable.go index 8fe0b4a9d..08eface05 100644 --- a/cc/linkable.go +++ b/cc/linkable.go @@ -106,9 +106,6 @@ type LinkableInterface interface { // IsLlndkPublic returns true only for LLNDK (public) libs. IsLlndkPublic() bool - // IsLlndkHeaders returns true if this module is an LLNDK headers module. - IsLlndkHeaders() bool - // IsLlndkLibrary returns true if this module is an LLNDK library module. IsLlndkLibrary() bool diff --git a/cc/llndk_library.go b/cc/llndk_library.go index ad19e47f3..88f3118c8 100644 --- a/cc/llndk_library.go +++ b/cc/llndk_library.go @@ -166,40 +166,6 @@ func isVestigialLLNDKModule(m *Module) bool { return ok } -type llndkHeadersDecorator struct { - *libraryDecorator -} - -func (llndk *llndkHeadersDecorator) linkerDeps(ctx DepsContext, deps Deps) Deps { - deps.HeaderLibs = append(deps.HeaderLibs, llndk.Properties.Llndk.Export_llndk_headers...) - deps.ReexportHeaderLibHeaders = append(deps.ReexportHeaderLibHeaders, - llndk.Properties.Llndk.Export_llndk_headers...) - return deps -} - -// llndk_headers contains a set of c/c++ llndk headers files which are imported -// by other soongs cc modules. -func llndkHeadersFactory() android.Module { - module, library := NewLibrary(android.DeviceSupported) - library.HeaderOnly() - module.stl = nil - module.sanitize = nil - - decorator := &llndkHeadersDecorator{ - libraryDecorator: library, - } - - module.compiler = nil - module.linker = decorator - module.installer = nil - module.library = decorator - - module.Init() - - return module -} - func init() { android.RegisterModuleType("llndk_library", LlndkLibraryFactory) - android.RegisterModuleType("llndk_headers", llndkHeadersFactory) } diff --git a/cc/testing.go b/cc/testing.go index ff32bfffd..bf89f627d 100644 --- a/cc/testing.go +++ b/cc/testing.go @@ -569,7 +569,6 @@ var PrepareForTestWithCcBuildComponents = android.GroupFixturePreparers( ctx.RegisterModuleType("cc_fuzz", FuzzFactory) ctx.RegisterModuleType("cc_test", TestFactory) ctx.RegisterModuleType("cc_test_library", TestLibraryFactory) - ctx.RegisterModuleType("llndk_headers", llndkHeadersFactory) ctx.RegisterModuleType("vendor_public_library", vendorPublicLibraryFactory) ctx.RegisterModuleType("vndk_prebuilt_shared", VndkPrebuiltSharedFactory) @@ -686,7 +685,6 @@ func CreateTestContext(config android.Config) *android.TestContext { ctx.RegisterModuleType("cc_fuzz", FuzzFactory) ctx.RegisterModuleType("cc_test", TestFactory) ctx.RegisterModuleType("cc_test_library", TestLibraryFactory) - ctx.RegisterModuleType("llndk_headers", llndkHeadersFactory) ctx.RegisterModuleType("vendor_public_library", vendorPublicLibraryFactory) ctx.RegisterModuleType("filegroup", android.FileGroupFactory) ctx.RegisterModuleType("vndk_prebuilt_shared", VndkPrebuiltSharedFactory) diff --git a/cc/vendor_snapshot.go b/cc/vendor_snapshot.go index 2f68ccad1..c0082fb3a 100644 --- a/cc/vendor_snapshot.go +++ b/cc/vendor_snapshot.go @@ -180,16 +180,13 @@ func isSnapshotAware(cfg android.DeviceConfig, m *Module, inProprietaryPath bool if _, ok := m.linker.(*kernelHeadersDecorator); ok { return false } - // skip llndk_library and llndk_headers which are backward compatible + // skip LLNDK libraries which are backward compatible if m.IsLlndk() { return false } if _, ok := m.linker.(*llndkStubDecorator); ok { return false } - if _, ok := m.linker.(*llndkHeadersDecorator); ok { - return false - } // Libraries if l, ok := m.linker.(snapshotLibraryInterface); ok { diff --git a/rust/rust.go b/rust/rust.go index e1a69c047..74d282864 100644 --- a/rust/rust.go +++ b/rust/rust.go @@ -262,10 +262,6 @@ func (c *Module) IsLlndkPublic() bool { return false } -func (m *Module) IsLlndkHeaders() bool { - return false -} - func (m *Module) IsLlndkLibrary() bool { return false }