diff --git a/amlogic_utils.bzl b/amlogic_utils.bzl index ff60759f7..1007143ce 100644 --- a/amlogic_utils.bzl +++ b/amlogic_utils.bzl @@ -23,6 +23,8 @@ load("//build/kernel/kleaf/impl:gki_artifacts.bzl", "gki_artifacts", "gki_artifa 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 @@ -88,8 +90,8 @@ def define_common_amlogic( module_outs = module_outs, build_config = build_config, # Enable mixed build. - base_kernel = ":kernel_aarch64_download_or_build", - kmi_symbol_list = kmi_symbol_list, + base_kernel = ":kernel_aarch64" if FAST_BUILD else ":kernel_aarch64_download_or_build", + kmi_symbol_list = None if FAST_BUILD else kmi_symbol_list, collect_unstripped_modules = _COLLECT_UNSTRIPPED_MODULES, strip_modules = True, make_goals = make_goals, @@ -103,9 +105,9 @@ def define_common_amlogic( kernel_abi( name = name + "_abi", kernel_build = name, - define_abi_targets = define_abi_targets, + define_abi_targets = False if FAST_BUILD else define_abi_targets, kernel_modules = _kernel_modules, - kmi_symbol_list_add_only = kmi_symbol_list_add_only, + 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, ) @@ -142,9 +144,19 @@ def define_common_amlogic( name + "_merged_kernel_uapi_headers", ] + fast_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", + ] + copy_to_dist_dir( name = name + "_dist", - data = dist_targets, + data = fast_build_dist_targets if FAST_BUILD else dist_targets, dist_dir = dist_dir, flat = True, log = "info", diff --git a/amlogic_utils.sh b/amlogic_utils.sh index 657de18f5..15e1d40fb 100644 --- a/amlogic_utils.sh +++ b/amlogic_utils.sh @@ -339,6 +339,10 @@ export -f extra_cmds function bazel_extra_cmds() { modules_install + if [[ -n ${FAST_BUILD} ]]; then + return + fi + if [[ -f ${KERNEL_BUILD_VAR_FILE} ]]; then : > ${KERNEL_BUILD_VAR_FILE} echo "KERNEL_DIR=${KERNEL_DIR}" >> ${KERNEL_BUILD_VAR_FILE} @@ -554,7 +558,11 @@ function adjust_sequence_modules_loading() { if [[ "${FULL_KERNEL_VERSION}" != "common13-5.15" && "${ARCH}" == "arm64" ]]; then gki_modules_temp_file=`mktemp /tmp/config.XXXXXXXXXXXX` if [[ ${BAZEL} == "1" ]]; then - cp $DIST_DIR/system_dlkm.modules.load ${gki_modules_temp_file} + if [[ -n ${FAST_BUILD} ]]; then + cp ${BAZEL_OUT}/kernel_aarch64_all_module_names/kernel_aarch64_modules ${gki_modules_temp_file} + else + cp ${DIST_DIR}/system_dlkm.modules.load ${gki_modules_temp_file} + fi else rm -f ${gki_modules_temp_file} cat ${ROOT_DIR}/${KERNEL_DIR}/modules.bzl |grep ko | while read LINE @@ -777,7 +785,17 @@ function modules_install() { mkdir -p ${OUT_AMLOGIC_DIR}/symbols if [[ ${BAZEL} == "1" ]]; then - BAZEL_OUT=bazel-out/ + BAZEL_OUT=${ROOT_DIR}/bazel-out/k8-fastbuild/bin/common + if [[ -n ${FAST_BUILD} ]]; then + kernel_release=`cat ${BAZEL_OUT}/kernel_aarch64/include/config/kernel.release` + mkdir -p ${OUT_AMLOGIC_DIR}/fast_build/amlogic + tar -zxf ${BAZEL_OUT}/amlogic/modules_staging_dir_self.tar.gz -C ${OUT_AMLOGIC_DIR}/fast_build/amlogic + cp ${BAZEL_OUT}/amlogic_kbuild_mixed_tree/System.map ${OUT_AMLOGIC_DIR}/fast_build/amlogic + pushd ${OUT_AMLOGIC_DIR}/fast_build/amlogic + depmod -e -F System.map -b . ${kernel_release} + cp ${OUT_AMLOGIC_DIR}/fast_build/amlogic/lib/modules/${kernel_release}/modules.order ${DIST_DIR}/modules.load + popd + fi while read module do module_name=${module##*/} @@ -785,7 +803,21 @@ function modules_install() { if [[ -f ${DIST_DIR}/${module_name} ]]; then cp ${DIST_DIR}/${module_name} ${OUT_AMLOGIC_DIR}/modules else - module=`find ${BAZEL_OUT} -name ${module_name} | grep "amlogic_modules_install"` + if [[ -n ${FAST_BUILD} ]]; then + module_f= + for module_l in `find ${BAZEL_OUT}/kernel_aarch64 -name ${module_name}`; do + if [[ ${module_l} =~ ${module#*/} ]]; then + module_f=${module_l} + break + fi + done + module=${module_f} + if [[ -z ${module_f} ]]; then + module=`find ${OUT_AMLOGIC_DIR}/fast_build/amlogic/lib/modules/ -name ${module_name}` + fi + else + module=`find ${BAZEL_OUT}/amlogic_modules_install/staging/lib/modules/ -name ${module_name}` + fi cp ${module} ${OUT_AMLOGIC_DIR}/modules fi elif [[ `echo ${module} | grep "^extra\/"` ]]; then @@ -807,7 +839,11 @@ function modules_install() { fi done < ${DIST_DIR}/modules.load - dep_file=`find ${BAZEL_OUT} -name *.dep | grep "amlogic"` + if [[ -n ${FAST_BUILD} ]]; then + dep_file=${OUT_AMLOGIC_DIR}/fast_build/amlogic/lib/modules/${kernel_release}/modules.dep + else + dep_file=`find ${BAZEL_OUT}/amlogic_modules_install -name *.dep | grep "amlogic"` + fi cp ${dep_file} ${OUT_AMLOGIC_DIR}/modules/full_modules.dep if [[ -n ${ANDROID_PROJECT} ]]; then grep -E "^kernel\/" ${dep_file} > ${OUT_AMLOGIC_DIR}/modules/modules.dep @@ -909,7 +945,13 @@ function modules_install() { popd if [[ ${BAZEL} == "1" ]]; then - cp ${DIST_DIR}/vmlinux ${OUT_AMLOGIC_DIR}/symbols + if [[ -n ${FAST_BUILD} ]]; then + cp ${BAZEL_OUT}/kernel_aarch64/vmlinux ${OUT_AMLOGIC_DIR}/symbols + cp ${BAZEL_OUT}/kernel_aarch64/vmlinux ${DIST_DIR}/ + cp ${BAZEL_OUT}/kernel_aarch64/Image* ${DIST_DIR}/ + else + cp ${DIST_DIR}/vmlinux ${OUT_AMLOGIC_DIR}/symbols + fi find ${BAZEL_OUT} -name *.ko | grep "unstripped" | while read module; do cp ${module} ${OUT_AMLOGIC_DIR}/symbols diff --git a/build.config.amlogic.fragment.bazel b/build.config.amlogic.fragment.bazel index 24cde8115..daf3da3a6 100644 --- a/build.config.amlogic.fragment.bazel +++ b/build.config.amlogic.fragment.bazel @@ -10,7 +10,7 @@ echo "Base Kernel parm: LTO=${LTO} GKI_CONFIG=${GKI_CONFIG} ANDROID_PROJECT=${AN DEFCONFIG=amlogic_gki_defconfig function pre_defconfig_cmds() { - KCONFIG_DEFCONFIG=${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/arch/arm64/configs/${DEFCONFIG} + KCONFIG_DEFCONFIG=${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG} local temp_file=`mktemp /tmp/config.XXXXXXXXXXXX` if [[ ${GKI_CONFIG} == gki_20 ]]; then diff --git a/mk.sh b/mk.sh index f798ddc47..174f6c2d7 100755 --- a/mk.sh +++ b/mk.sh @@ -111,8 +111,12 @@ build_part_of_kernel if [[ "${FULL_KERNEL_VERSION}" != "common13-5.15" && "${ARCH}" = "arm64" && ${BAZEL} == 1 ]]; then args=$@ - [[ -z ${PREBUILT_GKI} ]] && args="${args} --lto=${LTO}" - [[ -z ${GKI_CONFIG} ]] && args="${args} --notrim --nokmi_symbol_list_strict_mode" + if [[ -n ${FAST_BUILD} ]]; then + args="${args} --config=fast --lto=none" + else + [[ -z ${PREBUILT_GKI} ]] && args="${args} --lto=${LTO}" + fi + [[ -z ${GKI_CONFIG} || -n ${FAST_BUILD} ]] && args="${args} --notrim --nokmi_symbol_list_strict_mode" PROJECT_DIR=${ROOT_DIR}/${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/project [[ -d ${PROJECT_DIR} ]] || mkdir -p ${PROJECT_DIR} @@ -180,6 +184,8 @@ if [[ "${FULL_KERNEL_VERSION}" != "common13-5.15" && "${ARCH}" = "arm64" && ${BA sed -i "/UPGRADE_PROJECT/d" ${PROJECT_DIR}/project.bzl echo "UPGRADE_PROJECT = \"${UPGRADE_PROJECT}\"" >> ${PROJECT_DIR}/project.bzl + echo "FAST_BUILD = \"${FAST_BUILD}\"" >> ${PROJECT_DIR}/project.bzl + [[ -f ${PROJECT_DIR}/dtb.bzl ]] || touch ${PROJECT_DIR}/dtb.bzl echo "# SPDX-License-Identifier: GPL-2.0" > ${PROJECT_DIR}/dtb.bzl echo >> ${PROJECT_DIR}/dtb.bzl @@ -212,13 +218,13 @@ if [[ "${FULL_KERNEL_VERSION}" != "common13-5.15" && "${ARCH}" = "arm64" && ${BA fi ${GOOGLE_BAZEL_BUILD_COMMAND_LINE} elif [[ "${ABI}" -eq "1" ]]; then - tools/bazel run //common:amlogic_abi_update_symbol_list --sandbox_debug --verbose_failures ${args} - tools/bazel run //common:kernel_aarch64_abi_dist --sandbox_debug --verbose_failures ${args} + tools/bazel run //common:amlogic_abi_update_symbol_list --verbose_failures ${args} + tools/bazel run //common:kernel_aarch64_abi_dist --verbose_failures ${args} exit elif [[ -n ${PREBUILT_GKI} ]]; then - tools/bazel run --use_prebuilt_gki=${PREBUILT_GKI} //common:amlogic_dist --sandbox_debug --verbose_failures ${args} + tools/bazel run --use_prebuilt_gki=${PREBUILT_GKI} //common:amlogic_dist --verbose_failures ${args} else - tools/bazel run //common:amlogic_dist --sandbox_debug --verbose_failures ${args} + tools/bazel run //common:amlogic_dist --verbose_failures ${args} fi set +x @@ -307,6 +313,6 @@ check_undefined_symbol abi_symbol_list_detect -if [[ ${ARCH} = "arm64" ]]; then +if [[ ${ARCH} = "arm64" && -z ${FAST_BUILD} ]]; then generate_lzma_format_image fi