Add workaround for _platform suffix
This commit adds a workaround for `_platform` suffix when the module is used by some apex modules. Bug: 121986692 Test: create_reference_dumps.py Change-Id: Ia9c95b10caca024ef3e0defbad894e8cf16a92b1
This commit is contained in:
@@ -65,6 +65,39 @@ def get_lib_arch_str(target):
|
|||||||
return target.arch + target_arch_variant_str
|
return target.arch + target_arch_variant_str
|
||||||
|
|
||||||
|
|
||||||
|
# FIXME (b/121986692): Before aosp/858259 is merged, apex mutator adds
|
||||||
|
# `_platform` suffix if the module is used by some apex modules. This
|
||||||
|
# workaround searches for lsdump with and without `_platform`.
|
||||||
|
_WORKAROUND_APEX_PLATFORM_LSDUMPS = True
|
||||||
|
|
||||||
|
if _WORKAROUND_APEX_PLATFORM_LSDUMPS:
|
||||||
|
def _find_lib_lsdumps_workaround(dir_name, lsdump_paths, libs):
|
||||||
|
dir_name_platform = dir_name + '_platform'
|
||||||
|
|
||||||
|
matched_lsdump_paths = set(find_lib_lsdumps(
|
||||||
|
dir_name, lsdump_paths, libs))
|
||||||
|
|
||||||
|
matched_lsdump_paths_platform = set(find_lib_lsdumps(
|
||||||
|
dir_name_platform, lsdump_paths, libs))
|
||||||
|
|
||||||
|
# Pick the lsdump file with latest modification time if both of them
|
||||||
|
# exist.
|
||||||
|
matched_lsdump_paths_replaced = set(
|
||||||
|
path.replace(dir_name, dir_name_platform)
|
||||||
|
for path in matched_lsdump_paths)
|
||||||
|
|
||||||
|
both = matched_lsdump_paths_replaced & matched_lsdump_paths_platform
|
||||||
|
|
||||||
|
for path_platform in both:
|
||||||
|
path = path_platform.replace(dir_name_platform, dir_name)
|
||||||
|
if os.stat(path).st_mtime >= os.stat(path_platform).st_mtime:
|
||||||
|
matched_lsdump_paths_platform.remove(path_platform)
|
||||||
|
else:
|
||||||
|
matched_lsdump_paths.remove(path)
|
||||||
|
|
||||||
|
return sorted(matched_lsdump_paths | matched_lsdump_paths_platform)
|
||||||
|
|
||||||
|
|
||||||
def find_and_copy_lib_lsdumps(target, ref_dump_dir_stem, ref_dump_dir_insertion,
|
def find_and_copy_lib_lsdumps(target, ref_dump_dir_stem, ref_dump_dir_insertion,
|
||||||
core_or_vendor_shared_str, libs, lsdump_paths,
|
core_or_vendor_shared_str, libs, lsdump_paths,
|
||||||
compress):
|
compress):
|
||||||
@@ -72,8 +105,12 @@ def find_and_copy_lib_lsdumps(target, ref_dump_dir_stem, ref_dump_dir_insertion,
|
|||||||
target.arch, target.arch_variant, target.cpu_variant,
|
target.arch, target.arch_variant, target.cpu_variant,
|
||||||
core_or_vendor_shared_str)
|
core_or_vendor_shared_str)
|
||||||
|
|
||||||
arch_lsdump_paths = find_lib_lsdumps(
|
if _WORKAROUND_APEX_PLATFORM_LSDUMPS:
|
||||||
module_variant_dir_name, lsdump_paths, libs)
|
arch_lsdump_paths = _find_lib_lsdumps_workaround(
|
||||||
|
module_variant_dir_name, lsdump_paths, libs)
|
||||||
|
else:
|
||||||
|
arch_lsdump_paths = find_lib_lsdumps(
|
||||||
|
module_variant_dir_name, lsdump_paths, libs)
|
||||||
|
|
||||||
# Copy the contents of the lsdump into their corresponding reference ABI
|
# Copy the contents of the lsdump into their corresponding reference ABI
|
||||||
# dumps directories.
|
# dumps directories.
|
||||||
|
|||||||
Reference in New Issue
Block a user