diff --git a/BUILD.bazel b/BUILD.bazel index e76a28dabb19..4ad3a1519224 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -31,9 +31,9 @@ load( "merged_kernel_uapi_headers", "modinfo_summary_report", ) -load(":abi.bzl", "cc_binary_with_abi") +load(":bazel/abi.bzl", "cc_binary_with_abi") load( - ":modules.bzl", + ":bazel/modules_private.bzl", "get_gki_kunit_modules", "get_gki_modules_list", "get_gki_modules_superset", diff --git a/abi.bzl b/bazel/abi.bzl similarity index 98% rename from abi.bzl rename to bazel/abi.bzl index 42c4acfcfed3..1d6f7709fb4c 100644 --- a/abi.bzl +++ b/bazel/abi.bzl @@ -7,6 +7,7 @@ ABI aware build rules. load("@bazel_skylib//lib:paths.bzl", "paths") load("@bazel_skylib//rules:native_binary.bzl", "native_binary") +load("@rules_cc//cc:cc_binary.bzl", "cc_binary") load( "@rules_pkg//pkg:mappings.bzl", "pkg_files", @@ -87,7 +88,7 @@ def cc_binary_with_abi( The output filename. Default is `name`. **kwargs: the rest args that cc_binary uses. """ - native.cc_binary( + cc_binary( name = name, visibility = visibility, **kwargs diff --git a/bazel/modules.bzl b/bazel/modules.bzl new file mode 100644 index 000000000000..b88bfed60324 --- /dev/null +++ b/bazel/modules.bzl @@ -0,0 +1,16 @@ +# SPDX-License-Identifier: GPL-2.0 OR Apache-2.0 +# Copyright (C) 2025 The Android Open Source Project + +"""Re-exports of symbols for external usage regarding to lists of modules. +""" + +load( + ":bazel/modules_private.bzl", + _get_gki_modules_list = "get_gki_modules_list", + _get_kunit_modules_list = "get_kunit_modules_list", +) + +visibility("public") + +get_gki_modules_list = _get_gki_modules_list +get_kunit_modules_list = _get_kunit_modules_list diff --git a/bazel/modules_private.bzl b/bazel/modules_private.bzl new file mode 100644 index 000000000000..9b68067faee0 --- /dev/null +++ b/bazel/modules_private.bzl @@ -0,0 +1,332 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2022 The Android Open Source Project + +""" +This module contains a full list of kernel modules + compiled by GKI. +""" + +visibility("private") + +_COMMON_GKI_MODULES_LIST = [ + # keep sorted + "drivers/block/virtio_blk.ko", + "drivers/block/zram/zram.ko", + "drivers/bluetooth/btbcm.ko", + "drivers/bluetooth/btqca.ko", + "drivers/bluetooth/btsdio.ko", + "drivers/bluetooth/hci_uart.ko", + "drivers/char/virtio_console.ko", + "drivers/gnss/gnss.ko", + "drivers/misc/vcpu_stall_detector.ko", + "drivers/net/can/dev/can-dev.ko", + "drivers/net/can/slcan/slcan.ko", + "drivers/net/can/vcan.ko", + "drivers/net/macsec.ko", + "drivers/net/mii.ko", + "drivers/net/ppp/bsd_comp.ko", + "drivers/net/ppp/ppp_deflate.ko", + "drivers/net/ppp/ppp_generic.ko", + "drivers/net/ppp/ppp_mppe.ko", + "drivers/net/ppp/pppox.ko", + "drivers/net/ppp/pptp.ko", + "drivers/net/slip/slhc.ko", + "drivers/net/usb/aqc111.ko", + "drivers/net/usb/asix.ko", + "drivers/net/usb/ax88179_178a.ko", + "drivers/net/usb/cdc_eem.ko", + "drivers/net/usb/cdc_ether.ko", + "drivers/net/usb/cdc_ncm.ko", + "drivers/net/usb/r8152.ko", + "drivers/net/usb/r8153_ecm.ko", + "drivers/net/usb/rtl8150.ko", + "drivers/net/usb/usbnet.ko", + "drivers/net/wwan/wwan.ko", + "drivers/power/sequencing/pwrseq-core.ko", + "drivers/pps/pps_core.ko", + "drivers/ptp/ptp.ko", + "drivers/thunderbolt/thunderbolt.ko", + "drivers/usb/class/cdc-acm.ko", + "drivers/usb/mon/usbmon.ko", + "drivers/usb/serial/ftdi_sio.ko", + "drivers/usb/serial/usbserial.ko", + "drivers/virtio/virtio_balloon.ko", + "drivers/virtio/virtio_pci.ko", + "drivers/virtio/virtio_pci_legacy_dev.ko", + "drivers/virtio/virtio_pci_modern_dev.ko", + "fs/netfs/netfs.ko", + "kernel/kheaders.ko", + "lib/crc/crc-ccitt.ko", + "lib/crypto/libarc4.ko", + "mm/zsmalloc.ko", + "net/6lowpan/6lowpan.ko", + "net/6lowpan/nhc_dest.ko", + "net/6lowpan/nhc_fragment.ko", + "net/6lowpan/nhc_hop.ko", + "net/6lowpan/nhc_ipv6.ko", + "net/6lowpan/nhc_mobility.ko", + "net/6lowpan/nhc_routing.ko", + "net/6lowpan/nhc_udp.ko", + "net/8021q/8021q.ko", + "net/9p/9pnet.ko", + "net/9p/9pnet_fd.ko", + "net/bluetooth/bluetooth.ko", + "net/bluetooth/hidp/hidp.ko", + "net/bluetooth/rfcomm/rfcomm.ko", + "net/can/can.ko", + "net/can/can-bcm.ko", + "net/can/can-gw.ko", + "net/can/can-raw.ko", + "net/ieee802154/6lowpan/ieee802154_6lowpan.ko", + "net/ieee802154/ieee802154.ko", + "net/ieee802154/ieee802154_socket.ko", + "net/l2tp/l2tp_core.ko", + "net/l2tp/l2tp_ppp.ko", + "net/mac802154/mac802154.ko", + "net/nfc/nfc.ko", + "net/rfkill/rfkill.ko", + "net/tipc/tipc.ko", + "net/tipc/tipc_diag.ko", + "net/tls/tls.ko", + "net/vmw_vsock/vmw_vsock_virtio_transport.ko", +] + +# Deprecated - Use `get_gki_modules_list` function instead. +COMMON_GKI_MODULES_LIST = _COMMON_GKI_MODULES_LIST + +_ARM_GKI_MODULES_LIST = [ + # keep sorted + "drivers/ptp/ptp_kvm.ko", +] + +_ARM64_GKI_MODULES_LIST = [ + # keep sorted + "drivers/char/hw_random/cctrng.ko", + "drivers/misc/open-dice.ko", + "drivers/ptp/ptp_kvm.ko", +] + +_X86_GKI_MODULES_LIST = [ + # keep sorted + "drivers/ptp/ptp_kvm.ko", +] + +_X86_64_GKI_MODULES_LIST = [ + # keep sorted + "drivers/ptp/ptp_kvm.ko", +] + +def _apply(map_each, lst): + if not map_each: + return lst + ret = [] + for elem in lst: + mapped = map_each(elem) + if mapped: + ret.append(mapped) + return ret + +def _get_gki_modules_list_minus_select(arch, map_each): + """ Provides the list of GKI modules, minus those in select() branches. + + Args: + arch: One of [arm, arm64, i386, x86_64]. + map_each: A function that takes the module name as parameter, and returns + the mapped value. If the module should be filtered out, the function + should return None. + + Returns: + The list of GKI modules for the given |arch|. + """ + if not arch in ("arm64", "x86_64", "arm", "i386"): + fail("{}: arch {} not supported. Use one of [arm, arm64, i386, x86_64]".format( + str(native.package_relative_label(":x")).removesuffix(":x"), + arch, + )) + + if arch == "arm": + return _apply(map_each, _COMMON_GKI_MODULES_LIST + _ARM_GKI_MODULES_LIST) + + if arch == "i386": + return _apply(map_each, _COMMON_GKI_MODULES_LIST + _X86_GKI_MODULES_LIST) + + gki_modules_list = _apply(map_each, [] + _COMMON_GKI_MODULES_LIST) + if arch == "arm64": + gki_modules_list += _apply(map_each, _ARM64_GKI_MODULES_LIST) + elif arch == "x86_64": + gki_modules_list += _apply(map_each, _X86_64_GKI_MODULES_LIST) + + return gki_modules_list + +# buildifier: disable=unnamed-macro +def get_gki_modules_list(arch = None, map_each = None): + """Provides the list of GKI modules. + + Args: + arch: One of [arm, arm64, i386, x86_64]. + map_each: A function that takes the module name as parameter, and + returns the mapped value. If the module should be filtered out, the + function should return None. + + Returns: + An opaque expression that represents the list of GKI modules for the + given |arch|. Do not treat the returned value as a list (e.g. use + list comprehension); instead, use the |map_each| argument. + """ + + return select({ + "//conditions:default": _get_gki_modules_list_minus_select(arch, map_each), + }) + +# buildifier: disable=unnamed-macro +def get_gki_modules_superset(arch = None, map_each = None): + """Provides the list of superset of GKI modules. + + This includes all modules on each branch of the conditionals. For example, + Rust modules may always be included regardless of the value of + --kasan_sw_tags. + + Args: + arch: One of [arm, arm64, i386, x86_64]. + map_each: A function that takes the module name as parameter, and + returns the mapped value. If the module should be filtered out, the + function should return None. + + Returns: + A list that contains the superset of GKI modules for the given |arch|. + """ + return _get_gki_modules_list_minus_select(arch, map_each) + +_KUNIT_FRAMEWORK_MODULES = [ + "lib/kunit/kunit.ko", +] + +# Modules defined by tools/testing/kunit/configs/android/kunit_defconfig +_KUNIT_COMMON_MODULES_LIST = [ + # keep sorted + "drivers/android/tests/binder_alloc_kunit.ko", + "drivers/base/regmap/regmap-kunit.ko", + "drivers/base/regmap/regmap-ram.ko", + "drivers/base/regmap/regmap-raw-ram.ko", + "drivers/hid/hid-uclogic-test.ko", + "drivers/iio/test/iio-test-format.ko", + "drivers/input/tests/input_test.ko", + "drivers/of/of_kunit_helpers.ko", + "drivers/rtc/test_rtc_lib.ko", + "fs/ext4/ext4-inode-test.ko", + "fs/fat/fat_test.ko", + "kernel/time/time_test.ko", + "lib/kunit/kunit-example-test.ko", + "lib/kunit/kunit-test.ko", + "lib/kunit/platform-test.ko", + # "mm/kfence/kfence_test.ko", + "net/core/dev_addr_lists_test.ko", + "sound/soc/soc-topology-test.ko", + "sound/soc/soc-utils-test.ko", +] + +# Modules defined by tools/testing/kunit/configs/android/kunit_clk_defconfig +_KUNIT_CLK_MODULES_LIST = [ + "drivers/clk/clk-gate_test.ko", + "drivers/clk/clk-test.ko", + "drivers/clk/clk_kunit_helpers.ko", +] + +def _get_kunit_modules_list_minus_select(arch, map_each): + """ Provides the list of KUnit modules, minus those in select() branches. + + Args: + arch: One of [arm, arm64, i386, x86_64]. + map_each: A function that takes the module name as parameter, and returns + the mapped value. If the module should be filtered out, the function + should return None. + Returns: + The list of KUnit modules for the given |arch|. + """ + if not arch in ("arm64", "x86_64", "arm", "i386"): + fail("{}: arch {} not supported. Use one of [arm, arm64, i386, x86_64]".format( + str(native.package_relative_label(":x")).removesuffix(":x"), + arch, + )) + + kunit_modules_list = _KUNIT_FRAMEWORK_MODULES + _KUNIT_COMMON_MODULES_LIST + if arch == "arm": + kunit_modules_list += _KUNIT_CLK_MODULES_LIST + elif arch == "arm64": + kunit_modules_list += _KUNIT_CLK_MODULES_LIST + elif arch == "i386": + kunit_modules_list.append("drivers/clk/clk_kunit_helpers.ko") + elif arch == "x86_64": + kunit_modules_list.append("drivers/clk/clk_kunit_helpers.ko") + + return _apply(map_each, kunit_modules_list) + +# buildifier: disable=unnamed-macro +def get_kunit_modules_list(arch = None, map_each = None): + """ Provides the list of KUnit modules. + + Args: + arch: One of [arm, arm64, i386, x86_64]. + map_each: A function that takes the module name as parameter, and returns + the mapped value. If the module should be filtered out, the function + should return None. + + Returns: + An opaque expression that represents the list of Kunit modules for the + given |arch|. Do not treat the returned value as a list (e.g. use + list comprehension); instead, use the |map_each| argument. + """ + + return select({ + "//conditions:default": _get_kunit_modules_list_minus_select(arch, map_each), + }) + +# buildifier: disable=unnamed-macro +def get_kunit_modules_superset(arch = None, map_each = None): + """Provides the list of superset of KUnit modules. + + This includes all modules on each branch of the conditionals. + + Args: + arch: One of [arm, arm64, i386, x86_64]. + map_each: A function that takes the module name as parameter, and + returns the mapped value. If the module should be filtered out, the + function should return None. + + Returns: + A list of superset of KUnit modules for the given |arch|. + """ + return _get_kunit_modules_list_minus_select(arch, map_each) + +_COMMON_UNPROTECTED_MODULES_LIST = [] + +# buildifier: disable=unused-variable +def get_gki_unprotected_modules_list(arch = None): + return select({ + "//conditions:default": _COMMON_UNPROTECTED_MODULES_LIST, + }) + +# buildifier: disable=unnamed-macro +def get_gki_kunit_modules(arch, page_size = None): + """Returns the list of labels pointing to the GKI modules for KUnit. + + Args: + arch: one of arm64, x86_64 + page_size: if arch is arm64, the page_size ("4k" or "16k") + + Returns: + The list of labels pointing to the GKI modules for KUnit. + """ + if arch == "arm64": + if page_size == "16k": + return get_kunit_modules_list(arch, map_each = lambda e: ":kernel_aarch64_16k/" + e) + if page_size == "4k": + return get_kunit_modules_list(arch, map_each = lambda e: ":kernel_aarch64/" + e) + if arch == "x86_64": + return get_kunit_modules_list(arch, map_each = lambda e: ":kernel_x86_64/" + e) + + fail("{}: arch {} (page_size {}) not supported. Use one of [arm64, x86_64]".format( + str(native.package_relative_label(":x")).removesuffix(":x"), + arch, + page_size, + )) diff --git a/modules.bzl b/modules.bzl index 6f5a483d1446..27f0ee295bcd 100644 --- a/modules.bzl +++ b/modules.bzl @@ -1,330 +1,34 @@ -# SPDX-License-Identifier: GPL-2.0 -# Copyright (C) 2022 The Android Open Source Project +# SPDX-License-Identifier: GPL-2.0 OR Apache-2.0 +# Copyright (C) 2025 The Android Open Source Project -""" -This module contains a full list of kernel modules - compiled by GKI. +"""Re-exports of symbols for external usage regarding to lists of modules. + +DO NOT ADD MORE SYMBOLS. Additional symbols for external usage should be added +to bazel/modules.bzl, NOT modules.bzl (this file) or bazel/modules_private.bzl. """ -_COMMON_GKI_MODULES_LIST = [ - # keep sorted - "drivers/block/virtio_blk.ko", - "drivers/block/zram/zram.ko", - "drivers/bluetooth/btbcm.ko", - "drivers/bluetooth/btqca.ko", - "drivers/bluetooth/btsdio.ko", - "drivers/bluetooth/hci_uart.ko", - "drivers/char/virtio_console.ko", - "drivers/gnss/gnss.ko", - "drivers/misc/vcpu_stall_detector.ko", - "drivers/net/can/dev/can-dev.ko", - "drivers/net/can/slcan/slcan.ko", - "drivers/net/can/vcan.ko", - "drivers/net/macsec.ko", - "drivers/net/mii.ko", - "drivers/net/ppp/bsd_comp.ko", - "drivers/net/ppp/ppp_deflate.ko", - "drivers/net/ppp/ppp_generic.ko", - "drivers/net/ppp/ppp_mppe.ko", - "drivers/net/ppp/pppox.ko", - "drivers/net/ppp/pptp.ko", - "drivers/net/slip/slhc.ko", - "drivers/net/usb/aqc111.ko", - "drivers/net/usb/asix.ko", - "drivers/net/usb/ax88179_178a.ko", - "drivers/net/usb/cdc_eem.ko", - "drivers/net/usb/cdc_ether.ko", - "drivers/net/usb/cdc_ncm.ko", - "drivers/net/usb/r8152.ko", - "drivers/net/usb/r8153_ecm.ko", - "drivers/net/usb/rtl8150.ko", - "drivers/net/usb/usbnet.ko", - "drivers/net/wwan/wwan.ko", - "drivers/power/sequencing/pwrseq-core.ko", - "drivers/pps/pps_core.ko", - "drivers/ptp/ptp.ko", - "drivers/thunderbolt/thunderbolt.ko", - "drivers/usb/class/cdc-acm.ko", - "drivers/usb/mon/usbmon.ko", - "drivers/usb/serial/ftdi_sio.ko", - "drivers/usb/serial/usbserial.ko", - "drivers/virtio/virtio_balloon.ko", - "drivers/virtio/virtio_pci.ko", - "drivers/virtio/virtio_pci_legacy_dev.ko", - "drivers/virtio/virtio_pci_modern_dev.ko", - "fs/netfs/netfs.ko", - "kernel/kheaders.ko", - "lib/crc/crc-ccitt.ko", - "lib/crypto/libarc4.ko", - "mm/zsmalloc.ko", - "net/6lowpan/6lowpan.ko", - "net/6lowpan/nhc_dest.ko", - "net/6lowpan/nhc_fragment.ko", - "net/6lowpan/nhc_hop.ko", - "net/6lowpan/nhc_ipv6.ko", - "net/6lowpan/nhc_mobility.ko", - "net/6lowpan/nhc_routing.ko", - "net/6lowpan/nhc_udp.ko", - "net/8021q/8021q.ko", - "net/9p/9pnet.ko", - "net/9p/9pnet_fd.ko", - "net/bluetooth/bluetooth.ko", - "net/bluetooth/hidp/hidp.ko", - "net/bluetooth/rfcomm/rfcomm.ko", - "net/can/can.ko", - "net/can/can-bcm.ko", - "net/can/can-gw.ko", - "net/can/can-raw.ko", - "net/ieee802154/6lowpan/ieee802154_6lowpan.ko", - "net/ieee802154/ieee802154.ko", - "net/ieee802154/ieee802154_socket.ko", - "net/l2tp/l2tp_core.ko", - "net/l2tp/l2tp_ppp.ko", - "net/mac802154/mac802154.ko", - "net/nfc/nfc.ko", - "net/rfkill/rfkill.ko", - "net/tipc/tipc.ko", - "net/tipc/tipc_diag.ko", - "net/tls/tls.ko", - "net/vmw_vsock/vmw_vsock_virtio_transport.ko", -] +load( + ":bazel/modules.bzl", + _get_gki_modules_list = "get_gki_modules_list", + _get_kunit_modules_list = "get_kunit_modules_list", +) -# Deprecated - Use `get_gki_modules_list` function instead. -COMMON_GKI_MODULES_LIST = _COMMON_GKI_MODULES_LIST +visibility("public") -_ARM_GKI_MODULES_LIST = [ - # keep sorted - "drivers/ptp/ptp_kvm.ko", -] - -_ARM64_GKI_MODULES_LIST = [ - # keep sorted - "drivers/char/hw_random/cctrng.ko", - "drivers/misc/open-dice.ko", - "drivers/ptp/ptp_kvm.ko", -] - -_X86_GKI_MODULES_LIST = [ - # keep sorted - "drivers/ptp/ptp_kvm.ko", -] - -_X86_64_GKI_MODULES_LIST = [ - # keep sorted - "drivers/ptp/ptp_kvm.ko", -] - -def _apply(map_each, lst): - if not map_each: - return lst - ret = [] - for elem in lst: - mapped = map_each(elem) - if mapped: - ret.append(mapped) - return ret - -def _get_gki_modules_list_minus_select(arch, map_each): - """ Provides the list of GKI modules, minus those in select() branches. - - Args: - arch: One of [arm, arm64, i386, x86_64]. - map_each: A function that takes the module name as parameter, and returns - the mapped value. If the module should be filtered out, the function - should return None. - - Returns: - The list of GKI modules for the given |arch|. - """ - if not arch in ("arm64", "x86_64", "arm", "i386"): - fail("{}: arch {} not supported. Use one of [arm, arm64, i386, x86_64]".format( - str(native.package_relative_label(":x")).removesuffix(":x"), - arch, - )) - - if arch == "arm": - return _apply(map_each, _COMMON_GKI_MODULES_LIST + _ARM_GKI_MODULES_LIST) - - if arch == "i386": - return _apply(map_each, _COMMON_GKI_MODULES_LIST + _X86_GKI_MODULES_LIST) - - gki_modules_list = _apply(map_each, [] + _COMMON_GKI_MODULES_LIST) - if arch == "arm64": - gki_modules_list += _apply(map_each, _ARM64_GKI_MODULES_LIST) - elif arch == "x86_64": - gki_modules_list += _apply(map_each, _X86_64_GKI_MODULES_LIST) - - return gki_modules_list - -# buildifier: disable=unnamed-macro -def get_gki_modules_list(arch = None, map_each = None): - """Provides the list of GKI modules. - - Args: - arch: One of [arm, arm64, i386, x86_64]. - map_each: A function that takes the module name as parameter, and - returns the mapped value. If the module should be filtered out, the - function should return None. - - Returns: - An opaque expression that represents the list of GKI modules for the - given |arch|. Do not treat the returned value as a list (e.g. use - list comprehension); instead, use the |map_each| argument. - """ - - return select({ - "//conditions:default": _get_gki_modules_list_minus_select(arch, map_each), - }) - -# buildifier: disable=unnamed-macro -def get_gki_modules_superset(arch = None, map_each = None): - """Provides the list of superset of GKI modules. - - This includes all modules on each branch of the conditionals. For example, - Rust modules may always be included regardless of the value of - --kasan_sw_tags. - - Args: - arch: One of [arm, arm64, i386, x86_64]. - map_each: A function that takes the module name as parameter, and - returns the mapped value. If the module should be filtered out, the - function should return None. - - Returns: - A list that contains the superset of GKI modules for the given |arch|. - """ - return _get_gki_modules_list_minus_select(arch, map_each) - -_KUNIT_FRAMEWORK_MODULES = [ - "lib/kunit/kunit.ko", -] - -# Modules defined by tools/testing/kunit/configs/android/kunit_defconfig -_KUNIT_COMMON_MODULES_LIST = [ - # keep sorted - "drivers/android/tests/binder_alloc_kunit.ko", - "drivers/base/regmap/regmap-kunit.ko", - "drivers/base/regmap/regmap-ram.ko", - "drivers/base/regmap/regmap-raw-ram.ko", - "drivers/hid/hid-uclogic-test.ko", - "drivers/iio/test/iio-test-format.ko", - "drivers/input/tests/input_test.ko", - "drivers/of/of_kunit_helpers.ko", - "drivers/rtc/test_rtc_lib.ko", - "fs/ext4/ext4-inode-test.ko", - "fs/fat/fat_test.ko", - "kernel/time/time_test.ko", - "lib/kunit/kunit-example-test.ko", - "lib/kunit/kunit-test.ko", - "lib/kunit/platform-test.ko", - # "mm/kfence/kfence_test.ko", - "net/core/dev_addr_lists_test.ko", - "sound/soc/soc-topology-test.ko", - "sound/soc/soc-utils-test.ko", -] - -# Modules defined by tools/testing/kunit/configs/android/kunit_clk_defconfig -_KUNIT_CLK_MODULES_LIST = [ - "drivers/clk/clk-gate_test.ko", - "drivers/clk/clk-test.ko", - "drivers/clk/clk_kunit_helpers.ko", -] - -def _get_kunit_modules_list_minus_select(arch, map_each): - """ Provides the list of KUnit modules, minus those in select() branches. - - Args: - arch: One of [arm, arm64, i386, x86_64]. - map_each: A function that takes the module name as parameter, and returns - the mapped value. If the module should be filtered out, the function - should return None. - Returns: - The list of KUnit modules for the given |arch|. - """ - if not arch in ("arm64", "x86_64", "arm", "i386"): - fail("{}: arch {} not supported. Use one of [arm, arm64, i386, x86_64]".format( - str(native.package_relative_label(":x")).removesuffix(":x"), - arch, - )) - - kunit_modules_list = _KUNIT_FRAMEWORK_MODULES + _KUNIT_COMMON_MODULES_LIST - if arch == "arm": - kunit_modules_list += _KUNIT_CLK_MODULES_LIST - elif arch == "arm64": - kunit_modules_list += _KUNIT_CLK_MODULES_LIST - elif arch == "i386": - kunit_modules_list.append("drivers/clk/clk_kunit_helpers.ko") - elif arch == "x86_64": - kunit_modules_list.append("drivers/clk/clk_kunit_helpers.ko") - - return _apply(map_each, kunit_modules_list) - -# buildifier: disable=unnamed-macro -def get_kunit_modules_list(arch = None, map_each = None): - """ Provides the list of KUnit modules. - - Args: - arch: One of [arm, arm64, i386, x86_64]. - map_each: A function that takes the module name as parameter, and returns - the mapped value. If the module should be filtered out, the function - should return None. - - Returns: - An opaque expression that represents the list of Kunit modules for the - given |arch|. Do not treat the returned value as a list (e.g. use - list comprehension); instead, use the |map_each| argument. - """ - - return select({ - "//conditions:default": _get_kunit_modules_list_minus_select(arch, map_each), - }) - -# buildifier: disable=unnamed-macro -def get_kunit_modules_superset(arch = None, map_each = None): - """Provides the list of superset of KUnit modules. - - This includes all modules on each branch of the conditionals. - - Args: - arch: One of [arm, arm64, i386, x86_64]. - map_each: A function that takes the module name as parameter, and - returns the mapped value. If the module should be filtered out, the - function should return None. - - Returns: - A list of superset of KUnit modules for the given |arch|. - """ - return _get_kunit_modules_list_minus_select(arch, map_each) - -_COMMON_UNPROTECTED_MODULES_LIST = [] - -# buildifier: disable=unused-variable -def get_gki_unprotected_modules_list(arch = None): - return select({ - "//conditions:default": _COMMON_UNPROTECTED_MODULES_LIST, - }) - -# buildifier: disable=unnamed-macro -def get_gki_kunit_modules(arch, page_size = None): - """Returns the list of labels pointing to the GKI modules for KUnit. - - Args: - arch: one of arm64, x86_64 - page_size: if arch is arm64, the page_size ("4k" or "16k") - - Returns: - The list of labels pointing to the GKI modules for KUnit. - """ - if arch == "arm64": - if page_size == "16k": - return get_kunit_modules_list(arch, map_each = lambda e: ":kernel_aarch64_16k/" + e) - if page_size == "4k": - return get_kunit_modules_list(arch, map_each = lambda e: ":kernel_aarch64/" + e) - if arch == "x86_64": - return get_kunit_modules_list(arch, map_each = lambda e: ":kernel_x86_64/" + e) - - fail("{}: arch {} (page_size {}) not supported. Use one of [arm64, x86_64]".format( - str(native.package_relative_label(":x")).removesuffix(":x"), - arch, - page_size, +def get_gki_modules_list(*args, **kwargs): + # buildifier: disable=print + print(""" +WARNING: {this_modules_bzl} is deprecated. Load get_gki_modules_list() from {new_modules_bzl} instead.""".format( + this_modules_bzl = str(Label(":modules.bzl")), + new_modules_bzl = str(Label(":bazel/modules.bzl")), )) + return _get_gki_modules_list(*args, **kwargs) + +def get_kunit_modules_list(*args, **kwargs): + # buildifier: disable=print + print(""" +WARNING: {this_modules_bzl} is deprecated. Load get_kunit_modules_list() from {new_modules_bzl} instead.""".format( + this_modules_bzl = str(Label(":modules.bzl")), + new_modules_bzl = str(Label(":bazel/modules.bzl")), + )) + return _get_kunit_modules_list(*args, **kwargs)