1load("//bazel:defs.bzl", "compatible_with_rp2") 2 3package(default_visibility = ["//visibility:public"]) 4 5alias( 6 name = "pico_mem_ops", 7 actual = select({ 8 "//bazel/constraint:rp2040": ":pico_mem_ops_pico", 9 "//conditions:default": ":pico_mem_ops_compiler", 10 }), 11) 12 13cc_library( 14 name = "pico_mem_ops_compiler", 15 hdrs = ["include/pico/mem_ops.h"], 16 includes = ["include"], 17 target_compatible_with = compatible_with_rp2(), 18 visibility = ["//visibility:private"], 19 deps = [ 20 "//src/rp2_common:pico_platform_internal", 21 ], 22) 23 24cc_library( 25 name = "pico_mem_ops_pico", 26 srcs = [ 27 "mem_ops.c", 28 "mem_ops_aeabi.S", 29 ], 30 hdrs = ["include/pico/mem_ops.h"], 31 includes = ["include"], 32 linkopts = [ 33 "-Wl,--wrap=memcpy", 34 "-Wl,--wrap=memset", 35 "-Wl,--wrap=__aeabi_memcpy", 36 "-Wl,--wrap=__aeabi_memset", 37 "-Wl,--wrap=__aeabi_memcpy4", 38 "-Wl,--wrap=__aeabi_memset4", 39 "-Wl,--wrap=__aeabi_memcpy8", 40 "-Wl,--wrap=__aeabi_memset8", 41 ], 42 target_compatible_with = compatible_with_rp2(), 43 visibility = ["//visibility:private"], 44 deps = [ 45 "//src/rp2_common:pico_platform_internal", 46 "//src/rp2_common/pico_bootrom", 47 "//src/rp2_common/pico_runtime_init", 48 ], 49 alwayslink = True, # Ensures the wrapped symbols are linked in. 50) 51