mirror of
https://github.com/hardkernel/kernel_common_drivers.git
synced 2026-06-25 12:03:48 +09:00
fcce176707
PD#SWPL-180503 Problem: add symbol not modify android/abi_gki_aarch64_amlogic file Solution: use additional_kmi_symbol_lists add symbol Verify: local Change-Id: I992ce14f3511e1203b32ac3c4ffa07be1a3009ed Signed-off-by: qinglin.li <qinglin.li@amlogic.com>
182 lines
6.6 KiB
Python
182 lines
6.6 KiB
Python
"""Functions that are useful in the common kernel package (usually `//common`)."""
|
|
|
|
load("@bazel_skylib//lib:dicts.bzl", "dicts")
|
|
load("@bazel_skylib//lib:selects.bzl", "selects")
|
|
load("@bazel_skylib//rules:common_settings.bzl", "bool_flag", "string_flag")
|
|
load("@bazel_skylib//rules:write_file.bzl", "write_file")
|
|
load(
|
|
"//build/kernel/kleaf:kernel.bzl",
|
|
"kernel_abi",
|
|
"kernel_abi_dist",
|
|
"kernel_build",
|
|
"kernel_build_config",
|
|
"kernel_compile_commands",
|
|
"kernel_filegroup",
|
|
"kernel_images",
|
|
"kernel_kythe",
|
|
"kernel_modules_install",
|
|
"kernel_unstripped_modules_archive",
|
|
"merged_kernel_uapi_headers",
|
|
)
|
|
load("//build/bazel_common_rules/dist:dist.bzl", "copy_to_dist_dir")
|
|
load("//build/kernel/kleaf/impl:gki_artifacts.bzl", "gki_artifacts", "gki_artifacts_prebuilts")
|
|
load("//build/kernel/kleaf:print_debug.bzl", "print_debug")
|
|
load("@kernel_toolchain_info//:dict.bzl", "BRANCH", "common_kernel_package")
|
|
|
|
load("//common:common_drivers/project/project.bzl", "FAST_BUILD")
|
|
|
|
# Always collect_unstripped_modules for common kernels.
|
|
_COLLECT_UNSTRIPPED_MODULES = True
|
|
|
|
def define_common_amlogic(
|
|
name,
|
|
outs,
|
|
dtbo_srcs,
|
|
build_config = None,
|
|
module_outs = None,
|
|
make_goals = None,
|
|
define_abi_targets = None,
|
|
kmi_symbol_list = None,
|
|
additional_kmi_symbol_lists = None,
|
|
kmi_symbol_list_add_only = None,
|
|
module_grouping = None,
|
|
unstripped_modules_archive = None,
|
|
dist_dir = None,
|
|
ext_modules = None,
|
|
kconfig_ext = None,
|
|
kconfig_ext_srcs = None):
|
|
"""Define target for amlogic.
|
|
|
|
Note: This is a mixed build.
|
|
|
|
Requires [`define_common_kernels`](#define_common_kernels) to be called in the same package.
|
|
|
|
Args:
|
|
name: name of target. Usually `"amlogic"`.
|
|
build_config: See [kernel_build.build_config](#kernel_build-build_config). If `None`,
|
|
default to `"common_drivers/build.config.amlogic.bazel"`.
|
|
outs: See [kernel_build.outs](#kernel_build-outs).
|
|
module_outs: See [kernel_build.module_outs](#kernel_build-module_outs). The list of
|
|
in-tree kernel modules.
|
|
make_goals: See [kernel_build.make_goals](#kernel_build-make_goals). A list of strings
|
|
defining targets for the kernel build.
|
|
define_abi_targets: See [kernel_abi.define_abi_targets](#kernel_abi-define_abi_targets).
|
|
kmi_symbol_list: See [kernel_build.kmi_symbol_list](#kernel_build-kmi_symbol_list).
|
|
kmi_symbol_list_add_only: See [kernel_abi.kmi_symbol_list_add_only](#kernel_abi-kmi_symbol_list_add_only).
|
|
module_grouping: See [kernel_abi.module_grouping](#kernel_abi-module_grouping).
|
|
unstripped_modules_archive: See [kernel_abi.unstripped_modules_archive](#kernel_abi-unstripped_modules_archive).
|
|
dist_dir: Argument to `copy_to_dist_dir`. If `None`, default is `"out/{BRANCH}/dist"`.
|
|
"""
|
|
|
|
if build_config == None:
|
|
build_config = "common_drivers/build.config.amlogic.bazel"
|
|
|
|
if kmi_symbol_list == None:
|
|
kmi_symbol_list = "//common:android/abi_gki_aarch64_amlogic" if define_abi_targets else None
|
|
|
|
if kmi_symbol_list_add_only == None:
|
|
kmi_symbol_list_add_only = True if define_abi_targets else None
|
|
|
|
if dist_dir == None:
|
|
dist_dir = "out/{branch}/dist".format(branch = BRANCH)
|
|
|
|
# Also refer to the list of ext modules for ABI monitoring targets
|
|
_kernel_modules = ext_modules;
|
|
|
|
kernel_build(
|
|
name = name,
|
|
outs = outs,
|
|
srcs = [":common_kernel_sources"] + kconfig_ext_srcs,
|
|
# List of in-tree kernel modules.
|
|
module_outs = module_outs,
|
|
build_config = build_config,
|
|
# Enable mixed build.
|
|
base_kernel = ":kernel_aarch64" if FAST_BUILD else ":kernel_aarch64_download_or_build",
|
|
kmi_symbol_list = None if FAST_BUILD else kmi_symbol_list,
|
|
additional_kmi_symbol_lists = None if FAST_BUILD else additional_kmi_symbol_lists,
|
|
collect_unstripped_modules = _COLLECT_UNSTRIPPED_MODULES,
|
|
strip_modules = True,
|
|
make_goals = make_goals,
|
|
kconfig_ext = kconfig_ext,
|
|
)
|
|
|
|
# enable ABI Monitoring
|
|
# based on the instructions here:
|
|
# https://android.googlesource.com/kernel/build/+/refs/heads/main/kleaf/docs/abi_device.md
|
|
# https://android-review.googlesource.com/c/kernel/build/+/2308912
|
|
kernel_abi(
|
|
name = name + "_abi",
|
|
kernel_build = name,
|
|
define_abi_targets = False if FAST_BUILD else define_abi_targets,
|
|
kernel_modules = _kernel_modules,
|
|
kmi_symbol_list_add_only = False if FAST_BUILD else kmi_symbol_list_add_only,
|
|
module_grouping = module_grouping,
|
|
unstripped_modules_archive = unstripped_modules_archive,
|
|
)
|
|
|
|
kernel_modules_install(
|
|
name = name + "_modules_install",
|
|
kernel_build = name,
|
|
# List of external modules.
|
|
kernel_modules = _kernel_modules,
|
|
)
|
|
|
|
merged_kernel_uapi_headers(
|
|
name = name + "_merged_kernel_uapi_headers",
|
|
kernel_build = name,
|
|
kernel_modules = _kernel_modules,
|
|
)
|
|
|
|
kernel_images(
|
|
name = name + "_images",
|
|
build_dtbo = True,
|
|
dtbo_srcs = [":" + name + "/" + e for e in dtbo_srcs],
|
|
build_initramfs = False if FAST_BUILD else True,
|
|
kernel_build = name,
|
|
kernel_modules_install = name + "_modules_install",
|
|
)
|
|
|
|
dist_targets = [
|
|
name,
|
|
name + "_images",
|
|
name + "_modules_install",
|
|
# Mixed build: Additional GKI artifacts.
|
|
":kernel_aarch64_download_or_build",
|
|
":kernel_aarch64_additional_artifacts_download_or_build",
|
|
name + "_merged_kernel_uapi_headers",
|
|
]
|
|
|
|
fast_fatload_build_dist_targets = [
|
|
name,
|
|
# name + "_images",
|
|
name + "_modules_install",
|
|
# Mixed build: Additional GKI artifacts.
|
|
# ":kernel_aarch64_download_or_build",
|
|
# ":kernel_aarch64_additional_artifacts_download_or_build",
|
|
# name + "_merged_kernel_uapi_headers",
|
|
]
|
|
|
|
fast_android_build_dist_targets = [
|
|
name,
|
|
name + "_images",
|
|
name + "_modules_install",
|
|
# Mixed build: Additional GKI artifacts.
|
|
# ":kernel_aarch64_download_or_build",
|
|
":kernel_aarch64_additional_artifacts",
|
|
# name + "_merged_kernel_uapi_headers",
|
|
]
|
|
|
|
targets = dist_targets
|
|
if FAST_BUILD == "fatload":
|
|
targets = fast_fatload_build_dist_targets
|
|
if FAST_BUILD == "android":
|
|
targets = fast_android_build_dist_targets
|
|
|
|
copy_to_dist_dir(
|
|
name = name + "_dist",
|
|
data = targets,
|
|
dist_dir = dist_dir,
|
|
flat = True,
|
|
log = "info",
|
|
)
|