# SPDX-License-Identifier: GPL-2.0 # Copyright (C) 2021 The Android Open Source Project load("@bazel_skylib//rules:copy_file.bzl", "copy_file") load("@bazel_skylib//rules:write_file.bzl", "write_file") load("@rules_pkg//pkg:install.bzl", "pkg_install") load( "@rules_pkg//pkg:mappings.bzl", "pkg_filegroup", "pkg_files", "strip_prefix", ) load("@rules_pkg//pkg:pkg.bzl", "pkg_zip") load("//build/bazel_common_rules/dist:dist.bzl", "copy_to_dist_dir") load("//build/kernel/kleaf:common_kernels.bzl", "define_common_kernels") load("//build/kernel/kleaf:constants.bzl", "X86_64_OUTS") load( "//build/kernel/kleaf:kernel.bzl", "android_filegroup", "checkpatch", "ddk_headers", "ddk_headers_archive", "kernel_abi", "kernel_build", "kernel_images", "kernel_modules_install", "merged_kernel_uapi_headers", ) load(":abi.bzl", "cc_binary_with_abi") load(":modules.bzl", "get_gki_modules_list", "get_kunit_modules_list") package( default_visibility = [ "//visibility:public", ], ) _GKI_AARCH64_MAKE_GOALS = [ "Image", "Image.lz4", "Image.gz", "modules", ] _GKI_X86_64_MAKE_GOALS = [ "bzImage", "modules", ] checkpatch( name = "checkpatch", checkpatch_pl = "scripts/checkpatch.pl", ) # Deprecated - Use arch specific files from below. alias( name = "gki_system_dlkm_modules", actual = "gki_system_dlkm_modules_arm64", deprecation = """ Common list for all architectures is deprecated. Instead use the file corresponding to the architecture used: i.e. `gki_system_dlkm_modules_{arch}` """, ) alias( name = "android/gki_system_dlkm_modules", actual = "android/gki_system_dlkm_modules_arm64", deprecation = """ Common list for all architectures is deprecated. Instead use the file corresponding to the architecture used: i.e. `gki_system_dlkm_modules_{arch}` """, ) write_file( name = "gki_system_dlkm_modules_arm64", out = "android/gki_system_dlkm_modules_arm64", # Do not built kunit modules into system_dlkm content = get_gki_modules_list("arm64") + [ # Ensure new line at the end. "", ], ) write_file( name = "gki_system_dlkm_modules_x86_64", out = "android/gki_system_dlkm_modules_x86_64", # Do not built kunit modules into system_dlkm content = get_gki_modules_list("x86_64") + [ # Ensure new line at the end. "", ], ) filegroup( name = "aarch64_additional_kmi_symbol_lists", srcs = [ # keep sorted "android/abi_gki_aarch64_amlogic", "android/abi_gki_aarch64_asus", "android/abi_gki_aarch64_db845c", "android/abi_gki_aarch64_exynos", "android/abi_gki_aarch64_exynosauto", "android/abi_gki_aarch64_fips140", "android/abi_gki_aarch64_galaxy", "android/abi_gki_aarch64_galaxy_grey", "android/abi_gki_aarch64_galaxy_presubmit", "android/abi_gki_aarch64_honor", "android/abi_gki_aarch64_imx", "android/abi_gki_aarch64_lenovo", "android/abi_gki_aarch64_mtk", "android/abi_gki_aarch64_nothing", "android/abi_gki_aarch64_oplus", "android/abi_gki_aarch64_pixel", "android/abi_gki_aarch64_qcom", "android/abi_gki_aarch64_sunxi", "android/abi_gki_aarch64_tcl", "android/abi_gki_aarch64_tuxera", "android/abi_gki_aarch64_type_visibility", "android/abi_gki_aarch64_unisoc", "android/abi_gki_aarch64_virtual_device", "android/abi_gki_aarch64_vivo", "android/abi_gki_aarch64_xiaomi", ], visibility = ["//visibility:public"], ) filegroup( name = "sec_defconfig_fragments", srcs = [ # keep sorted "arch/arm64/configs/gki_sec_defconfig", ], visibility = ["//visibility:public"], ) define_common_kernels(target_configs = { "kernel_aarch64": { "kmi_symbol_list_strict_mode": True, "kmi_symbol_list": "android/abi_gki_aarch64", "additional_kmi_symbol_lists": [":aarch64_additional_kmi_symbol_lists"], "trim_nonlisted_kmi": True, "protected_exports_list": "android/abi_gki_protected_exports_aarch64", "protected_modules_list": "android/gki_aarch64_protected_modules", "module_implicit_outs": get_gki_modules_list("arm64") + get_kunit_modules_list("arm64"), "defconfig_fragments": [":sec_defconfig_fragments"], "make_goals": _GKI_AARCH64_MAKE_GOALS, "ddk_headers_archive": ":kernel_aarch64_ddk_headers_archive", "extra_dist": [ ":test_mappings_zip", ":tests_zip_arm64", ], }, "kernel_aarch64_16k": { "kmi_symbol_list_strict_mode": False, "module_implicit_outs": get_gki_modules_list("arm64") + get_kunit_modules_list("arm64"), "make_goals": _GKI_AARCH64_MAKE_GOALS, "extra_dist": [":test_mappings_zip"], }, "kernel_x86_64": { "kmi_symbol_list_strict_mode": False, "module_implicit_outs": get_gki_modules_list("x86_64") + get_kunit_modules_list("x86_64"), "make_goals": _GKI_X86_64_MAKE_GOALS, "extra_dist": [ ":test_mappings_zip", ":tests_zip_x86_64", ], }, }) # Microdroid is not a real device. The kernel image is built with special # configs to reduce the size. Hence, not using mixed build. kernel_build( name = "kernel_aarch64_microdroid", srcs = ["//common:kernel_aarch64_sources"], outs = [ "Image", "System.map", "modules.builtin", "modules.builtin.modinfo", "vmlinux", "vmlinux.symvers", ], build_config = "build.config.microdroid.aarch64", make_goals = [ "Image", ], ) copy_to_dist_dir( name = "kernel_aarch64_microdroid_dist", data = [ ":kernel_aarch64_microdroid", ], dist_dir = "out/kernel_aarch64_microdroid/dist", flat = True, log = "info", ) # Microdroid is not a real device. The kernel image is built with special # configs to reduce the size. Hence, not using mixed build. kernel_build( name = "kernel_x86_64_microdroid", srcs = ["//common:kernel_x86_64_sources"], outs = X86_64_OUTS, arch = "x86_64", build_config = "build.config.microdroid.x86_64", make_goals = [ "bzImage", ], ) copy_to_dist_dir( name = "kernel_x86_64_microdroid_dist", data = [ ":kernel_x86_64_microdroid", ], dist_dir = "out/kernel_x86_64_microdroid/dist", flat = True, log = "info", ) kernel_build( name = "kernel_aarch64_crashdump", srcs = ["//common:kernel_aarch64_sources"], outs = [ "Image", ], build_config = "build.config.crashdump.aarch64", make_goals = [ "Image", ], ) copy_to_dist_dir( name = "kernel_aarch64_crashdump_dist", data = [ ":kernel_aarch64_crashdump", ], dist_dir = "out/kernel_aarch64_crashdump/dist", flat = True, log = "info", ) kernel_build( name = "kernel_x86_64_crashdump", srcs = ["//common:kernel_x86_64_sources"], outs = X86_64_OUTS, arch = "x86_64", build_config = "build.config.crashdump.x86_64", make_goals = [ "bzImage", ], ) copy_to_dist_dir( name = "kernel_x86_64_crashdump_dist", data = [ ":kernel_x86_64_crashdump", ], dist_dir = "out/kernel_x86_64_crashdump/dist", flat = True, log = "info", ) _DB845C_MODULE_OUTS = [ # keep sorted "crypto/michael_mic.ko", "drivers/base/regmap/regmap-sdw.ko", "drivers/base/regmap/regmap-slimbus.ko", "drivers/bus/mhi/host/mhi.ko", "drivers/clk/qcom/clk-qcom.ko", "drivers/clk/qcom/clk-rpmh.ko", "drivers/clk/qcom/clk-spmi-pmic-div.ko", "drivers/clk/qcom/dispcc-sdm845.ko", "drivers/clk/qcom/dispcc-sm8250.ko", "drivers/clk/qcom/gcc-sdm845.ko", "drivers/clk/qcom/gcc-sm8250.ko", "drivers/clk/qcom/gcc-sm8450.ko", "drivers/clk/qcom/gpucc-sdm845.ko", "drivers/clk/qcom/gpucc-sm8250.ko", "drivers/clk/qcom/lpass-gfm-sm8250.ko", "drivers/clk/qcom/videocc-sdm845.ko", "drivers/clk/qcom/videocc-sm8250.ko", "drivers/cpufreq/qcom-cpufreq-hw.ko", "drivers/dma-buf/heaps/system_heap.ko", "drivers/dma/qcom/bam_dma.ko", "drivers/dma/qcom/gpi.ko", "drivers/extcon/extcon-usb-gpio.ko", "drivers/firmware/qcom-scm.ko", "drivers/gpio/gpio-wcd934x.ko", "drivers/gpu/drm/bridge/display-connector.ko", "drivers/gpu/drm/bridge/lontium-lt9611.ko", "drivers/gpu/drm/bridge/lontium-lt9611uxc.ko", "drivers/gpu/drm/display/drm_display_helper.ko", "drivers/gpu/drm/display/drm_dp_aux_bus.ko", "drivers/gpu/drm/msm/msm.ko", "drivers/gpu/drm/scheduler/gpu-sched.ko", "drivers/hwspinlock/qcom_hwspinlock.ko", "drivers/i2c/busses/i2c-designware-core.ko", "drivers/i2c/busses/i2c-designware-platform.ko", "drivers/i2c/busses/i2c-qcom-geni.ko", "drivers/i2c/busses/i2c-qup.ko", "drivers/i2c/busses/i2c-rk3x.ko", "drivers/i2c/i2c-dev.ko", "drivers/i2c/i2c-mux.ko", "drivers/i2c/muxes/i2c-mux-pca954x.ko", "drivers/iio/adc/qcom-spmi-adc5.ko", "drivers/iio/adc/qcom-vadc-common.ko", "drivers/input/misc/pm8941-pwrkey.ko", "drivers/interconnect/qcom/icc-bcm-voter.ko", "drivers/interconnect/qcom/icc-osm-l3.ko", "drivers/interconnect/qcom/icc-rpmh.ko", "drivers/interconnect/qcom/qnoc-sdm845.ko", "drivers/interconnect/qcom/qnoc-sm8250.ko", "drivers/interconnect/qcom/qnoc-sm8450.ko", "drivers/iommu/arm/arm-smmu/arm_smmu.ko", "drivers/irqchip/qcom-pdc.ko", "drivers/leds/rgb/leds-qcom-lpg.ko", "drivers/mailbox/qcom-apcs-ipc-mailbox.ko", "drivers/mailbox/qcom-ipcc.ko", "drivers/media/platform/qcom/venus/venus-core.ko", "drivers/media/platform/qcom/venus/venus-dec.ko", "drivers/media/platform/qcom/venus/venus-enc.ko", "drivers/mfd/qcom-spmi-pmic.ko", "drivers/mfd/wcd934x.ko", "drivers/misc/fastrpc.ko", "drivers/mmc/host/cqhci.ko", "drivers/mmc/host/sdhci-msm.ko", "drivers/net/can/spi/mcp251xfd/mcp251xfd.ko", "drivers/net/wireless/ath/ath.ko", "drivers/net/wireless/ath/ath10k/ath10k_core.ko", "drivers/net/wireless/ath/ath10k/ath10k_pci.ko", "drivers/net/wireless/ath/ath10k/ath10k_snoc.ko", "drivers/net/wireless/ath/ath11k/ath11k.ko", "drivers/net/wireless/ath/ath11k/ath11k_ahb.ko", "drivers/net/wireless/ath/ath11k/ath11k_pci.ko", "drivers/nvmem/nvmem_qfprom.ko", "drivers/phy/qualcomm/phy-qcom-qmp-combo.ko", "drivers/phy/qualcomm/phy-qcom-qmp-pcie.ko", "drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.ko", "drivers/phy/qualcomm/phy-qcom-qmp-ufs.ko", "drivers/phy/qualcomm/phy-qcom-qmp-usb.ko", "drivers/phy/qualcomm/phy-qcom-qusb2.ko", "drivers/phy/qualcomm/phy-qcom-snps-femto-v2.ko", "drivers/phy/qualcomm/phy-qcom-usb-hs.ko", "drivers/pinctrl/qcom/pinctrl-lpass-lpi.ko", "drivers/pinctrl/qcom/pinctrl-msm.ko", "drivers/pinctrl/qcom/pinctrl-sdm845.ko", "drivers/pinctrl/qcom/pinctrl-sm8250.ko", "drivers/pinctrl/qcom/pinctrl-sm8250-lpass-lpi.ko", "drivers/pinctrl/qcom/pinctrl-sm8450.ko", "drivers/pinctrl/qcom/pinctrl-spmi-gpio.ko", "drivers/pinctrl/qcom/pinctrl-spmi-mpp.ko", "drivers/pmdomain/qcom/cpr.ko", "drivers/pmdomain/qcom/rpmhpd.ko", "drivers/power/reset/qcom-pon.ko", "drivers/power/reset/reboot-mode.ko", "drivers/power/reset/syscon-reboot-mode.ko", "drivers/regulator/gpio-regulator.ko", "drivers/regulator/qcom-rpmh-regulator.ko", "drivers/regulator/qcom_spmi-regulator.ko", "drivers/regulator/qcom_usb_vbus-regulator.ko", "drivers/remoteproc/qcom_common.ko", "drivers/remoteproc/qcom_pil_info.ko", "drivers/remoteproc/qcom_q6v5.ko", "drivers/remoteproc/qcom_q6v5_adsp.ko", "drivers/remoteproc/qcom_q6v5_mss.ko", "drivers/remoteproc/qcom_q6v5_pas.ko", "drivers/remoteproc/qcom_q6v5_wcss.ko", "drivers/remoteproc/qcom_sysmon.ko", "drivers/reset/reset-qcom-aoss.ko", "drivers/reset/reset-qcom-pdc.ko", "drivers/rpmsg/qcom_glink.ko", "drivers/rpmsg/qcom_glink_rpm.ko", "drivers/rpmsg/qcom_glink_smem.ko", "drivers/rpmsg/qcom_smd.ko", "drivers/rpmsg/rpmsg_ns.ko", "drivers/rtc/rtc-pm8xxx.ko", "drivers/slimbus/slim-qcom-ngd-ctrl.ko", "drivers/slimbus/slimbus.ko", "drivers/soc/qcom/apr.ko", "drivers/soc/qcom/cmd-db.ko", "drivers/soc/qcom/llcc-qcom.ko", "drivers/soc/qcom/mdt_loader.ko", "drivers/soc/qcom/pdr_interface.ko", "drivers/soc/qcom/qcom_aoss.ko", "drivers/soc/qcom/qcom_ice.ko", "drivers/soc/qcom/qcom_rpmh.ko", "drivers/soc/qcom/qmi_helpers.ko", "drivers/soc/qcom/rmtfs_mem.ko", "drivers/soc/qcom/smem.ko", "drivers/soc/qcom/smp2p.ko", "drivers/soc/qcom/smsm.ko", "drivers/soc/qcom/socinfo.ko", "drivers/soc/qcom/spm.ko", "drivers/soundwire/soundwire-bus.ko", "drivers/soundwire/soundwire-qcom.ko", "drivers/spi/spi-geni-qcom.ko", "drivers/spi/spi-pl022.ko", "drivers/spi/spi-qcom-qspi.ko", "drivers/spi/spi-qup.ko", "drivers/spmi/spmi-pmic-arb.ko", "drivers/thermal/qcom/lmh.ko", "drivers/thermal/qcom/qcom-spmi-adc-tm5.ko", "drivers/thermal/qcom/qcom-spmi-temp-alarm.ko", "drivers/thermal/qcom/qcom_tsens.ko", "drivers/tty/serial/msm_serial.ko", "drivers/ufs/host/ufs-qcom.ko", "drivers/usb/common/ulpi.ko", "drivers/usb/host/ohci-hcd.ko", "drivers/usb/host/ohci-pci.ko", "drivers/usb/host/ohci-platform.ko", "drivers/usb/typec/tcpm/qcom/qcom_pmic_tcpm.ko", "net/mac80211/mac80211.ko", "net/qrtr/qrtr.ko", "net/qrtr/qrtr-mhi.ko", "net/qrtr/qrtr-smd.ko", "net/qrtr/qrtr-tun.ko", "net/wireless/cfg80211.ko", "sound/soc/codecs/snd-soc-dmic.ko", "sound/soc/codecs/snd-soc-hdmi-codec.ko", "sound/soc/codecs/snd-soc-lpass-macro-common.ko", "sound/soc/codecs/snd-soc-lpass-va-macro.ko", "sound/soc/codecs/snd-soc-lpass-wsa-macro.ko", "sound/soc/codecs/snd-soc-max98927.ko", "sound/soc/codecs/snd-soc-rl6231.ko", "sound/soc/codecs/snd-soc-rt5663.ko", "sound/soc/codecs/snd-soc-wcd-classh.ko", "sound/soc/codecs/snd-soc-wcd-mbhc.ko", "sound/soc/codecs/snd-soc-wcd9335.ko", "sound/soc/codecs/snd-soc-wcd934x.ko", "sound/soc/codecs/snd-soc-wsa881x.ko", "sound/soc/qcom/qdsp6/q6adm.ko", "sound/soc/qcom/qdsp6/q6afe.ko", "sound/soc/qcom/qdsp6/q6afe-clocks.ko", "sound/soc/qcom/qdsp6/q6afe-dai.ko", "sound/soc/qcom/qdsp6/q6apm-dai.ko", "sound/soc/qcom/qdsp6/q6apm-lpass-dais.ko", "sound/soc/qcom/qdsp6/q6asm.ko", "sound/soc/qcom/qdsp6/q6asm-dai.ko", "sound/soc/qcom/qdsp6/q6core.ko", "sound/soc/qcom/qdsp6/q6prm.ko", "sound/soc/qcom/qdsp6/q6prm-clocks.ko", "sound/soc/qcom/qdsp6/q6routing.ko", "sound/soc/qcom/qdsp6/snd-q6apm.ko", "sound/soc/qcom/qdsp6/snd-q6dsp-common.ko", "sound/soc/qcom/snd-soc-qcom-common.ko", "sound/soc/qcom/snd-soc-qcom-sdw.ko", "sound/soc/qcom/snd-soc-sdm845.ko", "sound/soc/qcom/snd-soc-sm8250.ko", ] _DB845C_WATCHDOG_MODULE_OUTS = [ "drivers/watchdog/pm8916_wdt.ko", "drivers/watchdog/qcom-wdt.ko", ] kernel_build( name = "db845c_no_kgdb", srcs = [":kernel_aarch64_sources"], outs = [ "arch/arm64/boot/dts/qcom/qrb5165-rb5.dtb", "arch/arm64/boot/dts/qcom/sdm845-db845c.dtb", "arch/arm64/boot/dts/qcom/sm8450-qrd.dtb", ], # Enable mixed build. base_kernel = ":kernel_aarch64", build_config = "build.config.db845c", collect_unstripped_modules = True, kmi_symbol_list = "android/abi_gki_aarch64_db845c", make_goals = [ "modules", "qcom/sdm845-db845c.dtb", "qcom/qrb5165-rb5.dtb", "qcom/sm8450-qrd.dtb", ], module_outs = _DB845C_MODULE_OUTS + _DB845C_WATCHDOG_MODULE_OUTS, strip_modules = True, ) kernel_build( name = "db845c_with_kgdb", srcs = [":kernel_aarch64_sources"], outs = [ "arch/arm64/boot/dts/qcom/qrb5165-rb5.dtb", "arch/arm64/boot/dts/qcom/sdm845-db845c.dtb", "arch/arm64/boot/dts/qcom/sm8450-qrd.dtb", ], # Enable mixed build. base_kernel = ":kernel_aarch64", build_config = "build.config.db845c", make_goals = [ "modules", "qcom/sdm845-db845c.dtb", "qcom/qrb5165-rb5.dtb", "qcom/sm8450-qrd.dtb", ], module_outs = _DB845C_MODULE_OUTS, strip_modules = True, ) alias( name = "db845c", actual = select({ "//build/kernel/kleaf:kgdb_is_true": "db845c_with_kgdb", "//conditions:default": "db845c_no_kgdb", }), ) kernel_abi( name = "db845c_abi", kernel_build = ":db845c", ) kernel_modules_install( name = "db845c_modules_install", kernel_build = ":db845c", ) merged_kernel_uapi_headers( name = "db845c_merged_kernel_uapi_headers", kernel_build = ":db845c", ) kernel_images( name = "db845c_images", build_initramfs = True, kernel_build = ":db845c", kernel_modules_install = ":db845c_modules_install", ) copy_to_dist_dir( name = "db845c_dist", data = [ ":db845c", ":db845c_images", ":db845c_modules_install", ":db845c_merged_kernel_uapi_headers", # Mixed build: Additional GKI artifacts. ":kernel_aarch64", ":kernel_aarch64_modules", ":kernel_aarch64_additional_artifacts", ], dist_dir = "out/db845/dist", flat = True, log = "info", ) _ROCKPI4_MODULE_OUTS = [ # keep sorted "drivers/char/hw_random/virtio-rng.ko", "drivers/clk/clk-rk808.ko", "drivers/cpufreq/cpufreq-dt.ko", "drivers/cpufreq/cpufreq-dt-platdev.ko", "drivers/cpufreq/tegra20-cpufreq.ko", "drivers/dma/pl330.ko", "drivers/gpu/drm/bridge/analogix/analogix_dp.ko", "drivers/gpu/drm/bridge/synopsys/dw-hdmi.ko", "drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.ko", "drivers/gpu/drm/display/drm_display_helper.ko", "drivers/gpu/drm/drm_dma_helper.ko", "drivers/gpu/drm/rockchip/rockchipdrm.ko", "drivers/i2c/busses/i2c-rk3x.ko", "drivers/iio/adc/rockchip_saradc.ko", "drivers/iio/buffer/industrialio-triggered-buffer.ko", "drivers/iio/buffer/kfifo_buf.ko", "drivers/mfd/rk8xx-core.ko", "drivers/mfd/rk8xx-i2c.ko", "drivers/mfd/rk8xx-spi.ko", "drivers/mmc/core/pwrseq_simple.ko", "drivers/mmc/host/cqhci.ko", "drivers/mmc/host/dw_mmc.ko", "drivers/mmc/host/dw_mmc-pltfm.ko", "drivers/mmc/host/dw_mmc-rockchip.ko", "drivers/mmc/host/sdhci-of-arasan.ko", "drivers/net/ethernet/stmicro/stmmac/dwmac-rk.ko", "drivers/net/ethernet/stmicro/stmmac/stmmac.ko", "drivers/net/ethernet/stmicro/stmmac/stmmac-platform.ko", "drivers/net/net_failover.ko", "drivers/net/pcs/pcs_xpcs.ko", "drivers/net/virtio_net.ko", "drivers/pci/controller/pcie-rockchip-host.ko", "drivers/phy/rockchip/phy-rockchip-emmc.ko", "drivers/phy/rockchip/phy-rockchip-inno-usb2.ko", "drivers/phy/rockchip/phy-rockchip-pcie.ko", "drivers/phy/rockchip/phy-rockchip-typec.ko", "drivers/pwm/pwm-rockchip.ko", "drivers/regulator/fan53555.ko", "drivers/regulator/pwm-regulator.ko", "drivers/regulator/rk808-regulator.ko", "drivers/rtc/rtc-rk808.ko", "drivers/soc/rockchip/io-domain.ko", "drivers/thermal/rockchip_thermal.ko", "drivers/usb/host/ohci-hcd.ko", "drivers/usb/host/ohci-platform.ko", "drivers/virtio/virtio_pci_legacy_dev.ko", "net/core/failover.ko", ] _ROCKPI4_WATCHDOG_MODULE_OUTS = [ # keep sorted "drivers/watchdog/dw_wdt.ko", ] # TODO(b/258259749): Convert rockpi4 to mixed build kernel_build( name = "rockpi4_no_kgdb", srcs = [":kernel_aarch64_sources"], outs = [ "Image", "System.map", "modules.builtin", "modules.builtin.modinfo", "rk3399-rock-pi-4b.dtb", "vmlinux", "vmlinux.symvers", ], build_config = "build.config.rockpi4", dtstree = "//common-modules/virtual-device:rockpi4_dts", make_goals = [ "Image", "modules", "rk3399-rock-pi-4b.dtb", ], module_outs = get_gki_modules_list("arm64") + get_kunit_modules_list("arm64") + _ROCKPI4_MODULE_OUTS + _ROCKPI4_WATCHDOG_MODULE_OUTS, visibility = ["//visibility:private"], ) # TODO(b/258259749): Convert rockpi4 to mixed build kernel_build( name = "rockpi4_with_kgdb", srcs = [":kernel_aarch64_sources"], outs = [ "Image", "System.map", "modules.builtin", "modules.builtin.modinfo", "rk3399-rock-pi-4b.dtb", "vmlinux", "vmlinux.symvers", ], build_config = "build.config.rockpi4", dtstree = "//common-modules/virtual-device:rockpi4_dts", make_goals = [ "Image", "modules", "rk3399-rock-pi-4b.dtb", ], module_outs = get_gki_modules_list("arm64") + get_kunit_modules_list("arm64") + _ROCKPI4_MODULE_OUTS, visibility = ["//visibility:private"], ) alias( name = "rockpi4", actual = select({ "//build/kernel/kleaf:kgdb_is_true": "rockpi4_with_kgdb", "//conditions:default": "rockpi4_no_kgdb", }), ) kernel_modules_install( name = "rockpi4_modules_install", kernel_build = ":rockpi4", ) kernel_images( name = "rockpi4_images", build_initramfs = True, kernel_build = ":rockpi4", kernel_modules_install = ":rockpi4_modules_install", ) copy_to_dist_dir( name = "rockpi4_dist", data = [ ":rockpi4", ":rockpi4_images", ":rockpi4_modules_install", ], dist_dir = "out/rockpi4/dist", flat = True, ) kernel_build( name = "fips140", outs = [], base_kernel = ":kernel_aarch64", build_config = "build.config.gki.aarch64.fips140", kmi_symbol_list = "android/abi_gki_aarch64_fips140", module_outs = ["crypto/fips140.ko"], ) kernel_abi( name = "fips140_abi", kernel_build = ":fips140", kmi_symbol_list_add_only = True, ) copy_to_dist_dir( name = "fips140_dist", data = [ ":fips140", ], dist_dir = "out/fips140/dist", flat = True, ) # allmodconfig build tests. # These are build tests only, so: # - outs are intentionally set to empty to not copy anything to DIST_DIR # - --allow-undeclared-modules must be used so modules are not declared or copied. # - No dist target because these are build tests. We don't care about the artifacts. # tools/bazel build --allow_undeclared_modules //common:kernel_aarch64_allmodconfig kernel_build( name = "kernel_aarch64_allmodconfig", srcs = [":kernel_aarch64_sources"], # Hack to actually check the build. # Otherwise, Bazel thinks that there are no output files, and skip building. outs = [".config"], build_config = "build.config.allmodconfig.aarch64", make_goals = [ "Image", "modules", ], visibility = ["//visibility:private"], ) # tools/bazel build --allow_undeclared_modules //common:kernel_x86_64_allmodconfig kernel_build( name = "kernel_x86_64_allmodconfig", srcs = [":kernel_x86_64_sources"], # Hack to actually check the build. # Otherwise, Bazel thinks that there are no output files, and skip building. outs = [".config"], arch = "x86_64", build_config = "build.config.allmodconfig.x86_64", make_goals = [ "bzImage", "modules", ], visibility = ["//visibility:private"], ) # tools/bazel build --allow_undeclared_modules //common:kernel_arm_allmodconfig kernel_build( name = "kernel_arm_allmodconfig", # We don't have an arm-specific source list, so use the common one. srcs = [":common_kernel_sources"], # Hack to actually check the build. # Otherwise, Bazel thinks that there are no output files, and skip building. outs = [".config"], arch = "arm", build_config = "build.config.allmodconfig.arm", make_goals = [ "zImage", "modules", ], visibility = ["//visibility:private"], ) # KUnit test targets _KUNIT_DIR = "testcases/kunit" pkg_files( name = "kunit_tests_config_arm64", srcs = [ "tools/testing/kunit/android/tradefed_configs/config_arm64.xml", ], renames = { "tools/testing/kunit/android/tradefed_configs/config_arm64.xml": _KUNIT_DIR + "/kunit.config", }, visibility = ["//visibility:private"], ) pkg_files( name = "kunit_tests_config_x86_64", srcs = [ "tools/testing/kunit/android/tradefed_configs/config_x86_64.xml", ], renames = { "tools/testing/kunit/android/tradefed_configs/config_x86_64.xml": _KUNIT_DIR + "/kunit.config", }, visibility = ["//visibility:private"], ) pkg_files( name = "kunit_modules_arm64", srcs = [ ":kernel_aarch64/" + e for e in get_kunit_modules_list("arm64") ], prefix = _KUNIT_DIR + "/arm64", visibility = ["//visibility:private"], ) pkg_files( name = "kunit_modules_x86_64", srcs = [ ":kernel_x86_64/" + e for e in get_kunit_modules_list("x86_64") ], prefix = _KUNIT_DIR + "/x86_64/", visibility = ["//visibility:private"], ) pkg_filegroup( name = "kunit_tests_arm64_pkg_files", srcs = [ ":kunit_modules_arm64", ":kunit_tests_config_arm64", ], visibility = ["//visibility:private"], ) pkg_filegroup( name = "kunit_tests_x86_64_pkg_files", srcs = [ ":kunit_modules_x86_64", ":kunit_tests_config_x86_64", ], visibility = ["//visibility:private"], ) # KUnit build rules for local execution workflow # Run by bazel run //common:kunit_tests_arm64 -- -v --destdir /tmp/kernel_tests/ pkg_install( name = "kunit_tests_arm64", srcs = [ ":kunit_tests_arm64_pkg_files", ], visibility = ["//visibility:private"], ) pkg_install( name = "kunit_tests_x86_64", srcs = [ ":kunit_tests_x86_64_pkg_files", ], visibility = ["//visibility:private"], ) # DDK Headers # All headers. These are the public targets for DDK modules to use. alias( name = "all_headers", actual = "all_headers_aarch64", visibility = ["//visibility:public"], ) ddk_headers( name = "all_headers_aarch64", hdrs = [":all_headers_allowlist_aarch64"] + select({ "//build/kernel/kleaf:allow_ddk_unsafe_headers_set": [":all_headers_unsafe"], "//conditions:default": [], }), visibility = ["//visibility:public"], ) ddk_headers_archive( name = "kernel_aarch64_ddk_headers_archive", srcs = [ "all_headers_aarch64", ], visibility = ["//visibility:private"], ) ddk_headers( name = "all_headers_arm", hdrs = [":all_headers_allowlist_arm"] + select({ "//build/kernel/kleaf:allow_ddk_unsafe_headers_set": [":all_headers_unsafe"], "//conditions:default": [], }), visibility = ["//visibility:public"], ) ddk_headers( name = "all_headers_x86_64", hdrs = [":all_headers_allowlist_x86_64"] + select({ "//build/kernel/kleaf:allow_ddk_unsafe_headers_set": [":all_headers_unsafe"], "//conditions:default": [], }), visibility = ["//visibility:public"], ) # Implementation details for DDK headers. The targets below cannot be directly # depended on by DDK modules. # DDK headers allowlist. This is the list of all headers and include # directories that are safe to use in DDK modules. ddk_headers( name = "all_headers_allowlist_aarch64", hdrs = [ "drivers/thermal/thermal_core.h", "drivers/thermal/thermal_netlink.h", ":all_headers_allowlist_aarch64_globs", ":all_headers_allowlist_common_globs", ], # The list of include directories where source files can #include headers # from. In other words, these are the `-I` option to the C compiler. # These are prepended to LINUXINCLUDE. linux_includes = [ "arch/arm64/include", "arch/arm64/include/uapi", "drivers/thermal", "include", "include/uapi", ], visibility = ["//visibility:private"], ) ddk_headers( name = "all_headers_allowlist_arm", hdrs = [ ":all_headers_allowlist_arm_globs", ":all_headers_allowlist_common_globs", ], # The list of include directories where source files can #include headers # from. In other words, these are the `-I` option to the C compiler. # These are prepended to LINUXINCLUDE. linux_includes = [ "arch/arm/include", "arch/arm/include/uapi", "include", "include/uapi", ], visibility = ["//visibility:private"], ) ddk_headers( name = "all_headers_allowlist_x86_64", hdrs = [ ":all_headers_allowlist_common_globs", ":all_headers_allowlist_x86_64_globs", ], # The list of include directories where source files can #include headers # from. In other words, these are the `-I` option to the C compiler. # These are prepended to LINUXINCLUDE. linux_includes = [ "arch/x86/include", "arch/x86/include/uapi", "include", "include/uapi", ], visibility = ["//visibility:private"], ) # List of DDK headers allowlist that are glob()-ed to avoid changes of BUILD # file when the list of files changes. All headers in these directories # are safe to use. # These are separate filegroup targets so the all_headers_allowlist_* are # more friendly to batch BUILD file update tools like buildozer. # globs() for arm64 only filegroup( name = "all_headers_allowlist_aarch64_globs", srcs = glob(["arch/arm64/include/**/*.h"]), visibility = ["//visibility:private"], ) # globs() for arm only filegroup( name = "all_headers_allowlist_arm_globs", srcs = glob(["arch/arm/include/**/*.h"]), visibility = ["//visibility:private"], ) # globs() for x86 only filegroup( name = "all_headers_allowlist_x86_64_globs", srcs = glob(["arch/x86/include/**/*.h"]), visibility = ["//visibility:private"], ) # globs() for all architectures filegroup( name = "all_headers_allowlist_common_globs", srcs = glob(["include/**/*.h"]), visibility = ["//visibility:private"], ) # DDK headers unsafe list. This is the list of all headers and include # directories that may be used during migration from kernel_module's, but # should be avoided in general. # Use with caution; items may: # - be removed without notice # - be moved into all_headers ddk_headers( name = "all_headers_unsafe", hdrs = [ "drivers/gpu/drm/virtio/virtgpu_trace.h", ], # The list of include directories where source files can #include headers # from. In other words, these are the `-I` option to the C compiler. # Unsafe include directories are appended to ccflags-y. includes = [], visibility = ["//visibility:private"], ) _KSELFTEST_DIR = "testcases/selftests" _KSELFTEST_COPTS = [ "-O3", "-pthread", "-std=gnu99", ] + select({ ":arm": ["-mcpu=cortex-a8"], "//conditions:default": [], }) config_setting( name = "x86_64", values = {"platforms": "//build/kernel/kleaf/impl:android_x86_64"}, visibility = ["//visibility:private"], ) config_setting( name = "i386", values = {"platforms": "//build/kernel/kleaf/impl:android_i386"}, visibility = ["//visibility:private"], ) config_setting( name = "arm64", values = {"platforms": "//build/kernel/kleaf/impl:android_arm64"}, visibility = ["//visibility:private"], ) config_setting( name = "arm", values = {"platforms": "//build/kernel/kleaf/impl:android_arm"}, visibility = ["//visibility:private"], ) cc_library( name = "kselftest_headers_lib", hdrs = glob(["tools/testing/selftests/*.h"]), copts = _KSELFTEST_COPTS, defines = [ "_GNU_SOURCE=", ], visibility = ["//visibility:private"], ) cc_binary_with_abi( name = "kselftest_binderfs_binderfs_test", srcs = ["tools/testing/selftests/filesystems/binderfs/binderfs_test.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_breakpoints_breakpoint_test", srcs = select({ ":x86_64": ["tools/testing/selftests/breakpoints/breakpoint_test.c"], ":i386": ["tools/testing/selftests/breakpoints/breakpoint_test.c"], ":arm64": ["tools/testing/selftests/breakpoints/breakpoint_test_arm64.c"], "//conditions:default": [], }), copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_kcmp_kcmp_test", srcs = ["tools/testing/selftests/kcmp/kcmp_test.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_ptrace_peeksiginfo", srcs = ["tools/testing/selftests/ptrace/peeksiginfo.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_rtc_rtctest", srcs = ["tools/testing/selftests/rtc/rtctest.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_library( name = "kselftest_vdso", srcs = ["tools/testing/selftests/vDSO/parse_vdso.c"], hdrs = [ "tools/testing/selftests/vDSO/parse_vdso.h", "tools/testing/selftests/vDSO/vdso_config.h", ], copts = _KSELFTEST_COPTS, visibility = ["//visibility:private"], ) cc_binary_with_abi( name = "kselftest_vdso_vdso_test_abi", srcs = ["tools/testing/selftests/vDSO/vdso_test_abi.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", ":kselftest_vdso", ], ) cc_binary_with_abi( name = "kselftest_vdso_vdso_test_clock_getres", srcs = ["tools/testing/selftests/vDSO/vdso_test_clock_getres.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", ":kselftest_vdso", ], ) cc_binary_with_abi( name = "kselftest_vdso_vdso_test_getcpu", srcs = ["tools/testing/selftests/vDSO/vdso_test_getcpu.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", ":kselftest_vdso", ], ) cc_binary_with_abi( name = "kselftest_vdso_vdso_test_gettimeofday", srcs = ["tools/testing/selftests/vDSO/vdso_test_gettimeofday.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", ":kselftest_vdso", ], ) cc_library( name = "kselftest_futex_headers_lib", hdrs = glob(["tools/testing/selftests/futex/include/*.h"]), copts = _KSELFTEST_COPTS, visibility = ["//visibility:private"], ) cc_binary_with_abi( name = "kselftest_futex_futex_requeue_pi_mismatched_ops", srcs = ["tools/testing/selftests/futex/functional/futex_requeue_pi_mismatched_ops.c"], out = "futex_requeue_pi_mismatched_ops", copts = _KSELFTEST_COPTS, includes = [ "tools/testing/selftests", "tools/testing/selftests/futex/include", ], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_futex_headers_lib", ":kselftest_headers_lib", ], ) cc_binary_with_abi( name = "kselftest_futex_futex_requeue_pi_signal_restart", srcs = ["tools/testing/selftests/futex/functional/futex_requeue_pi_signal_restart.c"], out = "futex_requeue_pi_signal_restart", copts = _KSELFTEST_COPTS, includes = [ "tools/testing/selftests", "tools/testing/selftests/futex/include", ], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_futex_headers_lib", ":kselftest_headers_lib", ], ) cc_binary_with_abi( name = "kselftest_futex_futex_requeue_pi", srcs = ["tools/testing/selftests/futex/functional/futex_requeue_pi.c"], out = "futex_requeue_pi", copts = _KSELFTEST_COPTS, includes = [ "tools/testing/selftests", "tools/testing/selftests/futex/include", ], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_futex_headers_lib", ":kselftest_headers_lib", ], ) cc_binary_with_abi( name = "kselftest_futex_futex_requeue", srcs = ["tools/testing/selftests/futex/functional/futex_requeue.c"], out = "futex_requeue", copts = _KSELFTEST_COPTS, includes = [ "tools/testing/selftests", "tools/testing/selftests/futex/include", ], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_futex_headers_lib", ":kselftest_headers_lib", ], ) cc_binary_with_abi( name = "kselftest_futex_futex_wait_private_mapped_file", srcs = ["tools/testing/selftests/futex/functional/futex_wait_private_mapped_file.c"], out = "futex_wait_private_mapped_file", copts = _KSELFTEST_COPTS, includes = [ "tools/testing/selftests", "tools/testing/selftests/futex/include", ], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_futex_headers_lib", ":kselftest_headers_lib", ], ) cc_binary_with_abi( name = "kselftest_futex_futex_wait_timeout", srcs = ["tools/testing/selftests/futex/functional/futex_wait_timeout.c"], out = "futex_wait_timeout", copts = _KSELFTEST_COPTS, includes = [ "tools/testing/selftests", "tools/testing/selftests/futex/include", ], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_futex_headers_lib", ":kselftest_headers_lib", ], ) cc_binary_with_abi( name = "kselftest_futex_futex_wait_uninitialized_heap", srcs = ["tools/testing/selftests/futex/functional/futex_wait_uninitialized_heap.c"], out = "futex_wait_uninitialized_heap", copts = _KSELFTEST_COPTS, includes = [ "tools/testing/selftests", "tools/testing/selftests/futex/include", ], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_futex_headers_lib", ":kselftest_headers_lib", ], ) cc_binary_with_abi( name = "kselftest_futex_futex_wait_wouldblock", srcs = ["tools/testing/selftests/futex/functional/futex_wait_wouldblock.c"], out = "futex_wait_wouldblock", copts = _KSELFTEST_COPTS, includes = [ "tools/testing/selftests", "tools/testing/selftests/futex/include", ], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_futex_headers_lib", ":kselftest_headers_lib", ], ) cc_binary_with_abi( name = "kselftest_futex_futex_wait", srcs = ["tools/testing/selftests/futex/functional/futex_wait.c"], out = "futex_wait", copts = _KSELFTEST_COPTS, includes = [ "tools/testing/selftests", "tools/testing/selftests/futex/include", ], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_futex_headers_lib", ":kselftest_headers_lib", ], ) cc_binary_with_abi( name = "kselftest_mm_compaction_test", srcs = ["tools/testing/selftests/mm/compaction_test.c"], copts = _KSELFTEST_COPTS, includes = ["tools/testing/selftests"], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", "@libcap", ], ) cc_binary_with_abi( name = "kselftest_mm_hugepage_mmap", srcs = ["tools/testing/selftests/mm/hugepage-mmap.c"], copts = _KSELFTEST_COPTS, includes = ["tools/testing/selftests"], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", "@libcap", ], ) cc_binary_with_abi( name = "kselftest_mm_hugepage_shm", srcs = ["tools/testing/selftests/mm/hugepage-shm.c"], copts = _KSELFTEST_COPTS, includes = ["tools/testing/selftests"], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", "@libcap", ], ) cc_binary_with_abi( name = "kselftest_mm_map_hugetlb", srcs = ["tools/testing/selftests/mm/map_hugetlb.c"], copts = _KSELFTEST_COPTS, includes = ["tools/testing/selftests"], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", ":kselftest_mm_vm_util", "@libcap", ], ) cc_binary_with_abi( name = "kselftest_mm_mlock_random_test", srcs = [ "tools/testing/selftests/mm/mlock-random-test.c", "tools/testing/selftests/mm/mlock2.h", ], copts = _KSELFTEST_COPTS, includes = [ "tools/testing/selftests", "tools/testing/selftests/mm", ], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", "@libcap", ], ) cc_binary_with_abi( name = "kselftest_mm_mlock2_tests", srcs = [ "tools/testing/selftests/mm/mlock2.h", "tools/testing/selftests/mm/mlock2-tests.c", ], copts = _KSELFTEST_COPTS, includes = [ "tools/testing/selftests", "tools/testing/selftests/mm", ], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", "@libcap", ], ) cc_binary_with_abi( name = "kselftest_mm_on_fault_limit", srcs = ["tools/testing/selftests/mm/on-fault-limit.c"], copts = _KSELFTEST_COPTS, includes = ["tools/testing/selftests"], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", "@libcap", ], ) cc_binary_with_abi( name = "kselftest_mm_mremap_dontunmap", srcs = ["tools/testing/selftests/mm/mremap_dontunmap.c"], copts = _KSELFTEST_COPTS, includes = ["tools/testing/selftests"], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", "@libcap", ], ) cc_binary_with_abi( name = "kselftest_mm_mremap_test", srcs = ["tools/testing/selftests/mm/mremap_test.c"], copts = _KSELFTEST_COPTS, includes = ["tools/testing/selftests"], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", "@libcap", ], ) cc_library( name = "kselftest_mm_vm_util", srcs = ["tools/testing/selftests/mm/vm_util.c"], hdrs = [ "include/uapi/linux/fs.h", "tools/testing/selftests/mm/vm_util.h", ], copts = _KSELFTEST_COPTS, includes = [ "include/uapi/", "tools/testing/selftests", ], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", ], ) cc_binary_with_abi( name = "kselftest_mm_thuge_gen", srcs = [ "tools/testing/selftests/mm/thuge-gen.c", ], copts = _KSELFTEST_COPTS + [ "-Wno-macro-redefined", ], includes = ["tools/testing/selftests"], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", ":kselftest_mm_vm_util", "@libcap", ], ) cc_binary_with_abi( name = "kselftest_mm_transhuge_stress", srcs = [ "tools/testing/selftests/mm/transhuge-stress.c", ], copts = _KSELFTEST_COPTS, includes = [ "tools/testing/selftests", "tools/testing/selftests/mm/", ], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", ":kselftest_mm_vm_util", "@libcap", ], ) cc_library( name = "kselftest_mm_uffd_common", srcs = ["tools/testing/selftests/mm/uffd-common.c"], hdrs = [ "include/uapi/linux/userfaultfd.h", "mm/gup_test.h", "tools/testing/selftests/kselftest.h", "tools/testing/selftests/mm/uffd-common.h", ], copts = _KSELFTEST_COPTS, includes = [ "include/uapi/", "tools/testing/selftests/mm/", ], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", ":kselftest_mm_vm_util", ], ) cc_binary_with_abi( name = "kselftest_mm_uffd_unit_tests", srcs = [ "tools/testing/selftests/mm/uffd-unit-tests.c", ], copts = _KSELFTEST_COPTS, includes = [ "tools/testing/selftests", "tools/testing/selftests/mm/", ], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", ":kselftest_mm_uffd_common", ":kselftest_mm_vm_util", "@libcap", ], ) cc_binary_with_abi( name = "kselftest_size_test_get_size", srcs = ["tools/testing/selftests/size/get_size.c"], copts = _KSELFTEST_COPTS + select({ ":x86_64": ["-mstackrealign"], "//conditions:default": [], }), includes = [ "tools/testing/selftests", ], linkopts = ["-nostartfiles"], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_timers_adjtick", srcs = ["tools/testing/selftests/timers/adjtick.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_timers_alarmtimer_suspend", srcs = ["tools/testing/selftests/timers/alarmtimer-suspend.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_timers_change_skew", srcs = ["tools/testing/selftests/timers/change_skew.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", ":kselftest_timers_inconsistency_check", ":kselftest_timers_nanosleep", ":kselftest_timers_tests_raw_skew", ], ) cc_binary_with_abi( name = "kselftest_timers_clocksource_switch", srcs = ["tools/testing/selftests/timers/clocksource-switch.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", ":kselftest_timers_inconsistency_check", ":kselftest_timers_nanosleep", ], ) cc_binary_with_abi( name = "kselftest_timers_freq_step", srcs = ["tools/testing/selftests/timers/freq-step.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_timers_inconsistency_check", srcs = ["tools/testing/selftests/timers/inconsistency-check.c"], out = "inconsistency-check", copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_timers_leap_a_day", srcs = ["tools/testing/selftests/timers/leap-a-day.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_timers_leapcrash", srcs = ["tools/testing/selftests/timers/leapcrash.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_timers_nanosleep", srcs = ["tools/testing/selftests/timers/nanosleep.c"], out = "nanosleep", copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_timers_nsleep_lat", srcs = ["tools/testing/selftests/timers/nsleep-lat.c"], out = "nsleep-lat", copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_timers_posix_timers", srcs = ["tools/testing/selftests/timers/posix_timers.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_timers_tests_raw_skew", srcs = ["tools/testing/selftests/timers/raw_skew.c"], out = "raw_skew", copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_timers_set_2038", srcs = ["tools/testing/selftests/timers/set-2038.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", ":kselftest_timers_inconsistency_check", ":kselftest_timers_nanosleep", ":kselftest_timers_nsleep_lat", ], ) cc_binary_with_abi( name = "kselftest_timers_set_tai", srcs = ["tools/testing/selftests/timers/set-tai.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_timers_set_timer_lat", srcs = ["tools/testing/selftests/timers/set-timer-lat.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_timers_set_tz", srcs = ["tools/testing/selftests/timers/set-tz.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_timers_skew_consistency", srcs = ["tools/testing/selftests/timers/skew_consistency.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", ":kselftest_timers_inconsistency_check", ], ) cc_binary_with_abi( name = "kselftest_timers_threadtest", srcs = ["tools/testing/selftests/timers/threadtest.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_timers_valid_adjtimex", srcs = ["tools/testing/selftests/timers/valid-adjtimex.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_net_socket", srcs = ["tools/testing/selftests/net/socket.c"], copts = _KSELFTEST_COPTS + ["-Wno-gnu-variable-sized-type-not-at-end"], includes = ["tools/testing/selftests"], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_net_reuseaddr_conflict", srcs = ["tools/testing/selftests/net/reuseaddr_conflict.c"], copts = _KSELFTEST_COPTS, includes = ["tools/testing/selftests"], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_net_psock_tpacket", srcs = [ "tools/testing/selftests/net/psock_lib.h", "tools/testing/selftests/net/psock_tpacket.c", ], copts = _KSELFTEST_COPTS + ["-Wno-gnu-variable-sized-type-not-at-end"], includes = ["tools/testing/selftests"], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [":kselftest_headers_lib"], ) cc_binary_with_abi( name = "kselftest_capabilities_test_execve", srcs = ["tools/testing/selftests/capabilities/test_execve.c"], copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_capabilities_validate_cap", ":kselftest_headers_lib", "@libcap_ng//:libcap-ng", ], ) cc_binary_with_abi( name = "kselftest_capabilities_validate_cap", srcs = ["tools/testing/selftests/capabilities/validate_cap.c"], out = "validate_cap", copts = _KSELFTEST_COPTS, path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", "@libcap_ng//:libcap-ng", ], ) cc_binary_with_abi( name = "kselftest_seccomp_seccomp_bpf", srcs = [ "tools/testing/selftests/clone3/clone3_selftests.h", "tools/testing/selftests/seccomp/seccomp_bpf.c", ], copts = _KSELFTEST_COPTS + [ "-Wno-unused-function", "-D__GLIBC_PREREQ(a,b)", ], includes = ["tools/testing/selftests"], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", "@libcap", ], ) cc_binary_with_abi( name = "kselftest_x86_single_step_syscall", srcs = [ "tools/testing/selftests/x86/helpers.h", "tools/testing/selftests/x86/single_step_syscall.c", ], abis = [ "x86_64", "x86", ], copts = _KSELFTEST_COPTS, includes = ["tools/testing/selftests"], linkopts = ["-static"], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", ], ) cc_binary_with_abi( name = "kselftest_x86_syscall_nt", srcs = [ "tools/testing/selftests/x86/helpers.h", "tools/testing/selftests/x86/syscall_nt.c", ], abis = [ "x86_64", "x86", ], copts = _KSELFTEST_COPTS, includes = ["tools/testing/selftests"], linkopts = ["-static"], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", ], ) cc_binary_with_abi( name = "kselftest_x86_ptrace_syscall", srcs = [ "tools/testing/selftests/x86/helpers.h", "tools/testing/selftests/x86/ptrace_syscall.c", ], abis = [ "x86_64", "x86", ], copts = _KSELFTEST_COPTS + ["-fomit-frame-pointer"], includes = ["tools/testing/selftests"], linkopts = ["-static"], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", ], ) cc_binary_with_abi( name = "kselftest_x86_test_mremap_vdso", srcs = [ "tools/testing/selftests/x86/helpers.h", "tools/testing/selftests/x86/test_mremap_vdso.c", ], abis = [ "x86_64", "x86", ], copts = _KSELFTEST_COPTS, includes = ["tools/testing/selftests"], linkopts = ["-static"], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", ], ) cc_binary_with_abi( name = "kselftest_x86_check_initial_reg_state", srcs = [ "tools/testing/selftests/x86/check_initial_reg_state.c", "tools/testing/selftests/x86/helpers.h", ], abis = [ "x86_64", "x86", ], copts = _KSELFTEST_COPTS, includes = ["tools/testing/selftests"], linkopts = [ "-static", "-Wl,-ereal_start", ], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", ], ) cc_binary_with_abi( name = "kselftest_x86_ldt_gdt", srcs = [ "tools/testing/selftests/x86/helpers.h", "tools/testing/selftests/x86/ldt_gdt.c", ], abis = [ "x86_64", "x86", ], copts = _KSELFTEST_COPTS, includes = ["tools/testing/selftests"], linkopts = ["-static"], path_prefix = _KSELFTEST_DIR, target_compatible_with = ["@platforms//os:android"], visibility = ["//visibility:private"], deps = [ ":kselftest_headers_lib", ], ) copy_file( name = "kselftest_gen_config", src = select({ ":x86_64": "tools/testing/selftests/android/config_x86_64.xml", ":i386": "tools/testing/selftests/android/config_x86.xml", ":arm64": "tools/testing/selftests/android/config_arm64.xml", ":arm": "tools/testing/selftests/android/config_arm.xml", }), out = _KSELFTEST_DIR + "/selftests.config", visibility = ["//visibility:private"], ) android_filegroup( name = "kselftest_tests_x86_64", srcs = [ ":kselftest_binderfs_binderfs_test_x86_64", ":kselftest_breakpoints_breakpoint_test_x86_64", ":kselftest_capabilities_test_execve_x86_64", ":kselftest_capabilities_validate_cap_x86_64", ":kselftest_futex_futex_requeue_pi_mismatched_ops_x86_64", ":kselftest_futex_futex_requeue_pi_signal_restart_x86_64", ":kselftest_futex_futex_requeue_pi_x86_64", ":kselftest_futex_futex_requeue_x86_64", ":kselftest_futex_futex_wait_private_mapped_file_x86_64", ":kselftest_futex_futex_wait_timeout_x86_64", ":kselftest_futex_futex_wait_uninitialized_heap_x86_64", ":kselftest_futex_futex_wait_wouldblock_x86_64", ":kselftest_futex_futex_wait_x86_64", ":kselftest_gen_config", ":kselftest_kcmp_kcmp_test_x86_64", ":kselftest_mm_compaction_test_x86_64", ":kselftest_mm_hugepage_mmap_x86_64", ":kselftest_mm_hugepage_shm_x86_64", ":kselftest_mm_map_hugetlb_x86_64", ":kselftest_mm_mlock2_tests_x86_64", ":kselftest_mm_mlock_random_test_x86_64", ":kselftest_mm_mremap_dontunmap_x86_64", ":kselftest_mm_mremap_test_x86_64", ":kselftest_mm_on_fault_limit_x86_64", ":kselftest_mm_thuge_gen_x86_64", ":kselftest_mm_transhuge_stress_x86_64", ":kselftest_mm_uffd_unit_tests_x86_64", ":kselftest_net_psock_tpacket_x86_64", ":kselftest_net_reuseaddr_conflict_x86_64", ":kselftest_net_socket_x86_64", ":kselftest_ptrace_peeksiginfo_x86_64", ":kselftest_rtc_rtctest_x86_64", ":kselftest_seccomp_seccomp_bpf_x86_64", ":kselftest_size_test_get_size_x86_64", ":kselftest_timers_adjtick_x86_64", ":kselftest_timers_alarmtimer_suspend_x86_64", ":kselftest_timers_change_skew_x86_64", ":kselftest_timers_clocksource_switch_x86_64", ":kselftest_timers_freq_step_x86_64", ":kselftest_timers_inconsistency_check_x86_64", ":kselftest_timers_leap_a_day_x86_64", ":kselftest_timers_leapcrash_x86_64", ":kselftest_timers_nanosleep_x86_64", ":kselftest_timers_nsleep_lat_x86_64", ":kselftest_timers_posix_timers_x86_64", ":kselftest_timers_set_2038_x86_64", ":kselftest_timers_set_tai_x86_64", ":kselftest_timers_set_timer_lat_x86_64", ":kselftest_timers_set_tz_x86_64", ":kselftest_timers_skew_consistency_x86_64", ":kselftest_timers_tests_raw_skew_x86_64", ":kselftest_timers_threadtest_x86_64", ":kselftest_timers_valid_adjtimex_x86_64", ":kselftest_vdso_vdso_test_abi_x86_64", ":kselftest_vdso_vdso_test_clock_getres_x86_64", ":kselftest_vdso_vdso_test_getcpu_x86_64", ":kselftest_vdso_vdso_test_gettimeofday_x86_64", ":kselftest_x86_check_initial_reg_state_x86_64", ":kselftest_x86_ldt_gdt_x86_64", ":kselftest_x86_ptrace_syscall_x86_64", ":kselftest_x86_single_step_syscall_x86_64", ":kselftest_x86_syscall_nt_x86_64", ":kselftest_x86_test_mremap_vdso_x86_64", ], cpu = "x86_64", visibility = ["//visibility:private"], ) android_filegroup( name = "kselftest_tests_x86", srcs = [ ":kselftest_binderfs_binderfs_test_x86", ":kselftest_breakpoints_breakpoint_test_x86", ":kselftest_capabilities_test_execve_x86", ":kselftest_capabilities_validate_cap_x86", ":kselftest_futex_futex_requeue_pi_mismatched_ops_x86", ":kselftest_futex_futex_requeue_pi_signal_restart_x86", ":kselftest_futex_futex_requeue_pi_x86", ":kselftest_futex_futex_requeue_x86", ":kselftest_futex_futex_wait_private_mapped_file_x86", ":kselftest_futex_futex_wait_timeout_x86", ":kselftest_futex_futex_wait_uninitialized_heap_x86", ":kselftest_futex_futex_wait_wouldblock_x86", ":kselftest_futex_futex_wait_x86", ":kselftest_kcmp_kcmp_test_x86", ":kselftest_mm_compaction_test_x86", ":kselftest_mm_hugepage_mmap_x86", ":kselftest_mm_hugepage_shm_x86", ":kselftest_mm_map_hugetlb_x86", ":kselftest_mm_mlock2_tests_x86", ":kselftest_mm_mlock_random_test_x86", ":kselftest_mm_mremap_dontunmap_x86", ":kselftest_mm_mremap_test_x86", ":kselftest_mm_on_fault_limit_x86", ":kselftest_mm_thuge_gen_x86", ":kselftest_mm_transhuge_stress_x86", ":kselftest_mm_uffd_unit_tests_x86", ":kselftest_net_psock_tpacket_x86", ":kselftest_net_reuseaddr_conflict_x86", ":kselftest_net_socket_x86", ":kselftest_ptrace_peeksiginfo_x86", ":kselftest_rtc_rtctest_x86", ":kselftest_seccomp_seccomp_bpf_x86", ":kselftest_size_test_get_size_x86", ":kselftest_timers_adjtick_x86", ":kselftest_timers_alarmtimer_suspend_x86", ":kselftest_timers_change_skew_x86", ":kselftest_timers_clocksource_switch_x86", ":kselftest_timers_freq_step_x86", ":kselftest_timers_inconsistency_check_x86", ":kselftest_timers_leap_a_day_x86", ":kselftest_timers_leapcrash_x86", ":kselftest_timers_nanosleep_x86", ":kselftest_timers_nsleep_lat_x86", ":kselftest_timers_posix_timers_x86", ":kselftest_timers_set_2038_x86", ":kselftest_timers_set_tai_x86", ":kselftest_timers_set_timer_lat_x86", ":kselftest_timers_set_tz_x86", ":kselftest_timers_skew_consistency_x86", ":kselftest_timers_tests_raw_skew_x86", ":kselftest_timers_threadtest_x86", ":kselftest_timers_valid_adjtimex_x86", ":kselftest_vdso_vdso_test_abi_x86", ":kselftest_vdso_vdso_test_clock_getres_x86", ":kselftest_vdso_vdso_test_getcpu_x86", ":kselftest_vdso_vdso_test_gettimeofday_x86", ":kselftest_x86_check_initial_reg_state_x86", ":kselftest_x86_ldt_gdt_x86", ":kselftest_x86_ptrace_syscall_x86", ":kselftest_x86_single_step_syscall_x86", ":kselftest_x86_syscall_nt_x86", ":kselftest_x86_test_mremap_vdso_x86", ], cpu = "i386", visibility = ["//visibility:private"], ) android_filegroup( name = "kselftest_tests_arm", srcs = [ ":kselftest_binderfs_binderfs_test_arm", ":kselftest_capabilities_test_execve_arm", ":kselftest_capabilities_validate_cap_arm", ":kselftest_futex_futex_requeue_arm", ":kselftest_futex_futex_requeue_pi_arm", ":kselftest_futex_futex_requeue_pi_mismatched_ops_arm", ":kselftest_futex_futex_requeue_pi_signal_restart_arm", ":kselftest_futex_futex_wait_arm", ":kselftest_futex_futex_wait_private_mapped_file_arm", ":kselftest_futex_futex_wait_timeout_arm", ":kselftest_futex_futex_wait_uninitialized_heap_arm", ":kselftest_futex_futex_wait_wouldblock_arm", ":kselftest_kcmp_kcmp_test_arm", ":kselftest_mm_compaction_test_arm", ":kselftest_mm_hugepage_mmap_arm", ":kselftest_mm_hugepage_shm_arm", ":kselftest_mm_map_hugetlb_arm", ":kselftest_mm_mlock2_tests_arm", #":kselftest_mm_mlock_random_test_arm", ":kselftest_mm_mremap_dontunmap_arm", ":kselftest_mm_mremap_test_arm", ":kselftest_mm_on_fault_limit_arm", ":kselftest_mm_thuge_gen_arm", ":kselftest_mm_transhuge_stress_arm", ":kselftest_mm_uffd_unit_tests_arm", #":kselftest_net_psock_tpacket_arm", ":kselftest_net_reuseaddr_conflict_arm", ":kselftest_net_socket_arm", ":kselftest_ptrace_peeksiginfo_arm", ":kselftest_rtc_rtctest_arm", #":kselftest_seccomp_seccomp_bpf_arm", ":kselftest_size_test_get_size_arm", ":kselftest_timers_adjtick_arm", ":kselftest_timers_alarmtimer_suspend_arm", ":kselftest_timers_change_skew_arm", ":kselftest_timers_clocksource_switch_arm", #":kselftest_timers_freq_step_arm", ":kselftest_timers_inconsistency_check_arm", ":kselftest_timers_leap_a_day_arm", ":kselftest_timers_leapcrash_arm", ":kselftest_timers_nanosleep_arm", ":kselftest_timers_nsleep_lat_arm", ":kselftest_timers_posix_timers_arm", ":kselftest_timers_set_2038_arm", ":kselftest_timers_set_tai_arm", ":kselftest_timers_set_timer_lat_arm", ":kselftest_timers_set_tz_arm", ":kselftest_timers_skew_consistency_arm", ":kselftest_timers_tests_raw_skew_arm", ":kselftest_timers_threadtest_arm", ":kselftest_timers_valid_adjtimex_arm", ":kselftest_vdso_vdso_test_abi_arm", ":kselftest_vdso_vdso_test_clock_getres_arm", ":kselftest_vdso_vdso_test_getcpu_arm", ":kselftest_vdso_vdso_test_gettimeofday_arm", ], cpu = "arm", visibility = ["//visibility:private"], ) android_filegroup( name = "kselftest_tests_arm64", srcs = [ ":kselftest_binderfs_binderfs_test_arm64", ":kselftest_breakpoints_breakpoint_test_arm64", ":kselftest_capabilities_test_execve_arm64", ":kselftest_capabilities_validate_cap_arm64", ":kselftest_futex_futex_requeue_arm64", ":kselftest_futex_futex_requeue_pi_arm64", ":kselftest_futex_futex_requeue_pi_mismatched_ops_arm64", ":kselftest_futex_futex_requeue_pi_signal_restart_arm64", ":kselftest_futex_futex_wait_arm64", ":kselftest_futex_futex_wait_private_mapped_file_arm64", ":kselftest_futex_futex_wait_timeout_arm64", ":kselftest_futex_futex_wait_uninitialized_heap_arm64", ":kselftest_futex_futex_wait_wouldblock_arm64", ":kselftest_gen_config", ":kselftest_kcmp_kcmp_test_arm64", ":kselftest_mm_compaction_test_arm64", ":kselftest_mm_hugepage_mmap_arm64", ":kselftest_mm_hugepage_shm_arm64", ":kselftest_mm_map_hugetlb_arm64", ":kselftest_mm_mlock2_tests_arm64", ":kselftest_mm_mlock_random_test_arm64", ":kselftest_mm_mremap_dontunmap_arm64", ":kselftest_mm_mremap_test_arm64", ":kselftest_mm_on_fault_limit_arm64", ":kselftest_mm_thuge_gen_arm64", ":kselftest_mm_transhuge_stress_arm64", ":kselftest_mm_uffd_unit_tests_arm64", ":kselftest_net_psock_tpacket_arm64", ":kselftest_net_reuseaddr_conflict_arm64", ":kselftest_net_socket_arm64", ":kselftest_ptrace_peeksiginfo_arm64", ":kselftest_rtc_rtctest_arm64", ":kselftest_seccomp_seccomp_bpf_arm64", ":kselftest_size_test_get_size_arm64", ":kselftest_timers_adjtick_arm64", ":kselftest_timers_alarmtimer_suspend_arm64", ":kselftest_timers_change_skew_arm64", ":kselftest_timers_clocksource_switch_arm64", ":kselftest_timers_freq_step_arm64", ":kselftest_timers_inconsistency_check_arm64", ":kselftest_timers_leap_a_day_arm64", ":kselftest_timers_leapcrash_arm64", ":kselftest_timers_nanosleep_arm64", ":kselftest_timers_nsleep_lat_arm64", ":kselftest_timers_posix_timers_arm64", ":kselftest_timers_set_2038_arm64", ":kselftest_timers_set_tai_arm64", ":kselftest_timers_set_timer_lat_arm64", ":kselftest_timers_set_tz_arm64", ":kselftest_timers_skew_consistency_arm64", ":kselftest_timers_tests_raw_skew_arm64", ":kselftest_timers_threadtest_arm64", ":kselftest_timers_valid_adjtimex_arm64", ":kselftest_vdso_vdso_test_abi_arm64", ":kselftest_vdso_vdso_test_clock_getres_arm64", ":kselftest_vdso_vdso_test_getcpu_arm64", ":kselftest_vdso_vdso_test_gettimeofday_arm64", ], cpu = "arm64", visibility = ["//visibility:private"], ) pkg_files( name = "kselftest_tests_x86_64_pkg_files", srcs = [ ":kselftest_tests_x86", ":kselftest_tests_x86_64", ], strip_prefix = strip_prefix.from_pkg(), visibility = ["//visibility:private"], ) pkg_files( name = "kselftest_tests_arm64_pkg_files", srcs = [ ":kselftest_tests_arm", ":kselftest_tests_arm64", ], strip_prefix = strip_prefix.from_pkg(), visibility = ["//visibility:private"], ) pkg_zip( name = "tests_zip_x86_64", srcs = [ ":kselftest_tests_x86_64_pkg_files", ":kunit_tests_x86_64_pkg_files", ], out = "x86_64/tests.zip", visibility = ["//visibility:public"], ) pkg_zip( name = "tests_zip_arm64", srcs = [ ":kselftest_tests_arm64_pkg_files", ":kunit_tests_arm64_pkg_files", ], out = "arm64/tests.zip", visibility = ["//visibility:public"], ) copy_to_dist_dir( name = "tests_zip_x86_64_dist", data = [":tests_zip_x86_64"], dist_dir = "out/tests_x86_64/dist", flat = True, ) copy_to_dist_dir( name = "tests_zip_arm64_dist", data = [":tests_zip_arm64"], dist_dir = "out/tests_arm64/dist", flat = True, ) load(":consolidate.bzl", "define_consolidate") define_consolidate( defconfig_fragments = [":sec_defconfig_fragments"], ) _TEST_MAPPINGS = glob(["**/TEST_MAPPING"]) pkg_files( name = "test_mappings", srcs = _TEST_MAPPINGS, prefix = package_name(), renames = {file: file for file in _TEST_MAPPINGS}, visibility = ["//visibility:private"], ) pkg_zip( name = "test_mappings_zip", srcs = [ ":test_mappings", ], out = "test_mappings.zip", visibility = ["//visibility:public"], ) alias( name = "disable_kdp", actual = ":ogki_defconfig_fragment", ) filegroup( name = "ogki_defconfig_fragment", srcs = ["ogki_fragment_defconfig"], visibility = ["//visibility:public"], )