Fix handling of "prebuilt_" prefix in classLoaderContextForUsesLibDeps.

Changes:
- Cut off "prebuilt_" prefix from `dep`, not `libName`, because `dep` is
  used to replace library name in `usesLibraryProperties`, and these
  properties are specified without "prebuilt_" prefix.

- Do not remove "prebuilt_" prefix on the return value of
  `ProvidesUsesLib()`: this boils down to `provides_uses_lib` property
  which is specified without the prefix.

Bug: 193425964
Test: $ lunch aosp_cf_x86_64_phone-userdebug && m && launch_cvd
      $ adb wait-for-device && \
        adb root && \
        adb logcat | \
        grep -E 'ClassLoaderContext [a-z ]+ mismatch' -C1
      # empty output, no errors
Change-Id: I6cb65040027023d12ca0bc132d60c2c245174c40
This commit is contained in:
Ulya Trafimovich
2021-07-15 15:05:48 +01:00
parent 2444671b4a
commit e14f80b2d3

View File

@@ -1262,12 +1262,12 @@ func (u *usesLibrary) classLoaderContextForUsesLibDeps(ctx android.ModuleContext
return
}
dep := ctx.OtherModuleName(m)
dep := android.RemoveOptionalPrebuiltPrefix(ctx.OtherModuleName(m))
if lib, ok := m.(UsesLibraryDependency); ok {
libName := android.RemoveOptionalPrebuiltPrefix(dep)
libName := dep
if ulib, ok := m.(ProvidesUsesLib); ok && ulib.ProvidesUsesLib() != nil {
libName = android.RemoveOptionalPrebuiltPrefix(*ulib.ProvidesUsesLib())
libName = *ulib.ProvidesUsesLib()
// Replace module name with library name in `uses_libs`/`optional_uses_libs` in
// order to pass verify_uses_libraries check (which compares these properties
// against library names written in the manifest).