diff --git a/vndk/tools/header-checker/utils/create_reference_dumps.py b/vndk/tools/header-checker/utils/create_reference_dumps.py index 261bc7e03..a774aadac 100755 --- a/vndk/tools/header-checker/utils/create_reference_dumps.py +++ b/vndk/tools/header-checker/utils/create_reference_dumps.py @@ -39,9 +39,9 @@ def make_libs_for_product(libs, product, variant, vndk_version, targets): def get_ref_dump_dir_stem(ref_dump_dir, category, chosen_vndk_version, - binder_bitness, arch): - return os.path.join(ref_dump_dir, category, chosen_vndk_version, - binder_bitness, arch) + chosen_platform_version, binder_bitness, arch): + version = chosen_vndk_version if category == 'vndk' else chosen_platform_version + return os.path.join(ref_dump_dir, category, version, binder_bitness, arch) def find_and_remove_path(root_path, file_name=None): @@ -57,12 +57,13 @@ def find_and_remove_path(root_path, file_name=None): def remove_references_for_all_arches(ref_dump_dir, chosen_vndk_version, - binder_bitness, targets, libs): + chosen_platform_version, binder_bitness, + targets, libs): for target in targets: for category in ('ndk', 'platform', 'vndk'): dir_to_remove = get_ref_dump_dir_stem( - ref_dump_dir, category, chosen_vndk_version, binder_bitness, - target.get_arch_str()) + ref_dump_dir, category, chosen_vndk_version, chosen_platform_version, + binder_bitness, target.get_arch_str()) if libs: for lib in libs: find_and_remove_path(dir_to_remove, @@ -83,7 +84,7 @@ def tag_to_dir_name(tag): raise ValueError(tag + 'is not a known tag.') -def find_and_copy_lib_lsdumps(ref_dump_dir, chosen_vndk_version, +def find_and_copy_lib_lsdumps(ref_dump_dir, chosen_vndk_version, chosen_platform_version, binder_bitness, target, libs, lsdump_paths, compress): arch_lsdump_paths = find_lib_lsdumps(lsdump_paths, libs, target) @@ -91,7 +92,7 @@ def find_and_copy_lib_lsdumps(ref_dump_dir, chosen_vndk_version, num_created = 0 for tag, path in arch_lsdump_paths: ref_dump_dir_stem = get_ref_dump_dir_stem( - ref_dump_dir, tag_to_dir_name(tag), chosen_vndk_version, + ref_dump_dir, tag_to_dir_name(tag), chosen_vndk_version, chosen_platform_version, binder_bitness, target.get_arch_str()) copy_reference_dump( path, os.path.join(ref_dump_dir_stem, 'source-based'), compress) @@ -99,7 +100,7 @@ def find_and_copy_lib_lsdumps(ref_dump_dir, chosen_vndk_version, return num_created -def create_source_abi_reference_dumps(args, chosen_vndk_version, +def create_source_abi_reference_dumps(args, chosen_vndk_version, chosen_platform_version, binder_bitness, lsdump_paths, targets): num_libs_copied = 0 for target in targets: @@ -108,8 +109,8 @@ def create_source_abi_reference_dumps(args, chosen_vndk_version, f'primary arch: {target.primary_arch}') num_libs_copied += find_and_copy_lib_lsdumps( - args.ref_dump_dir, chosen_vndk_version, binder_bitness, target, - args.libs, lsdump_paths, args.compress) + args.ref_dump_dir, chosen_vndk_version, chosen_platform_version, binder_bitness, + target, args.libs, lsdump_paths, args.compress) return num_libs_copied @@ -120,11 +121,14 @@ def create_source_abi_reference_dumps_for_all_products(args): for product in args.products: build_vars = get_build_vars_for_product( - ['PLATFORM_VNDK_VERSION', 'BOARD_VNDK_VERSION', 'BINDER32BIT'], + ['PLATFORM_VNDK_VERSION', 'BOARD_VNDK_VERSION', 'BINDER32BIT', + 'PLATFORM_VERSION_CODENAME', 'PLATFORM_SDK_VERSION'], product, args.build_variant) platform_vndk_version = build_vars[0] board_vndk_version = build_vars[1] + platform_version_codename = build_vars[3] + platform_sdk_version = build_vars[4] if build_vars[2] == 'true': binder_bitness = '32' else: @@ -132,6 +136,11 @@ def create_source_abi_reference_dumps_for_all_products(args): chosen_vndk_version = choose_vndk_version( args.version, platform_vndk_version, board_vndk_version) + # chosen_vndk_version is expected to be the finalized PLATFORM_SDK_VERSION + # if the codename is REL. + chosen_platform_version = (platform_sdk_version + if platform_version_codename == 'REL' + else 'current') targets = [t for t in (Target(True, product), Target(False, product)) if t.arch] @@ -139,8 +148,8 @@ def create_source_abi_reference_dumps_for_all_products(args): # them if none of them are specified) so that we may build these # libraries successfully. remove_references_for_all_arches( - args.ref_dump_dir, chosen_vndk_version, binder_bitness, targets, - args.libs) + args.ref_dump_dir, chosen_vndk_version, chosen_platform_version, binder_bitness, + targets, args.libs) if not args.no_make_lib: # Build all the specified libs, or build `findlsdumps` if no libs @@ -153,7 +162,8 @@ def create_source_abi_reference_dumps_for_all_products(args): build=False) num_processed += create_source_abi_reference_dumps( - args, chosen_vndk_version, binder_bitness, lsdump_paths, targets) + args, chosen_vndk_version, chosen_platform_version, binder_bitness, lsdump_paths, + targets) return num_processed