1load("//bazel:defs.bzl", "compatible_with_rp2")
2
3package(default_visibility = ["//visibility:public"])
4
5alias(
6    name = "default_linker_script",
7    actual = select({
8        "//bazel/constraint:rp2040": "//src/rp2_common/pico_crt0/rp2040:default_linker_script",
9        "//bazel/constraint:rp2350": "//src/rp2_common/pico_crt0/rp2350:default_linker_script",
10        "//conditions:default": "//bazel:incompatible_cc_lib",
11    }),
12)
13
14alias(
15    name = "blocked_ram_linker_script",
16    actual = select({
17        "//bazel/constraint:rp2040": "//src/rp2_common/pico_crt0/rp2040:blocked_ram_linker_script",
18        "//conditions:default": "//bazel:incompatible_cc_lib",
19    }),
20)
21
22alias(
23    name = "copy_to_ram_linker_script",
24    actual = select({
25        "//bazel/constraint:rp2040": "//src/rp2_common/pico_crt0/rp2040:copy_to_ram_linker_script",
26        "//bazel/constraint:rp2350": "//src/rp2_common/pico_crt0/rp2350:copy_to_ram_linker_script",
27        "//conditions:default": "//bazel:incompatible_cc_lib",
28    }),
29)
30
31alias(
32    name = "no_flash_linker_script",
33    actual = select({
34        "//bazel/constraint:rp2040": "//src/rp2_common/pico_crt0/rp2040:no_flash_linker_script",
35        "//bazel/constraint:rp2350": "//src/rp2_common/pico_crt0/rp2350:no_flash_linker_script",
36        "//conditions:default": "//bazel:incompatible_cc_lib",
37    }),
38)
39
40cc_library(
41    name = "no_warn_rwx_flag",
42    linkopts = select({
43        "//bazel/constraint:pico_toolchain_gcc_enabled": ["-Wl,--no-warn-rwx-segments"],
44        "//conditions:default": [],
45    }),
46    visibility = [":__subpackages__"],
47)
48
49cc_library(
50    name = "pico_crt0",
51    srcs = ["crt0.S"],
52    hdrs = [
53        "embedded_end_block.inc.S",
54        "embedded_start_block.inc.S",
55    ],
56    target_compatible_with = compatible_with_rp2(),
57    deps = [
58        "//src/common/boot_picobin_headers",
59        "//src/common/pico_base_headers",
60        "//src/rp2_common:hardware_regs",
61        "//src/rp2_common:pico_platform_internal",
62        "//src/rp2_common/cmsis:cmsis_core",
63        "//src/rp2_common/pico_bootrom",
64    ],
65)
66
67# TODO: RISC-V support.
68filegroup(
69    name = "crt0_riscv",
70    srcs = ["crt0_riscv.S"],
71)
72