roll: pigweed 2861b6a..1e464ac (13 commits)

1e464ac:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278675 pw_kernel: Fix missing log statements
be9140e:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278872 pw_build: Use --output_base for build_dir
7d91dfc:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278676 pw_kernel: Use clang toolchain cortex-m builds
a9c1069:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278674 pw_tokenizer: Encode u8 as varint in rust tokenizer
8f6c6b4:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278492 pw_kernel: Always compiler fence when dropping interrupt guard
5b78009:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/276112 pw_kernel: Basic implementation for riscv32
257025a:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278812 pw_console: Fix lost focus when moving tabs
7f2b75e:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278363 pw_i2c_mcuxpresso: Track actual assigned i3c addresses
61c6096:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278367 pw_i2c_mcuxpresso: Revert i2c to use Blocking calls
ed7ac2a:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278383 pw_hdlc: Add PendWrite() to the router Router::WriteOutgoingMessages()
abd5df8:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278452 pw_bluetooth_sapphire: Fix iso asan/tsan failures
684d4e9:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278632 pw_bluetooth_sapphire: Fix central and peripheral tests
8dab133:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278455 pw_bluetooth_sapphire: Fix UBSAN failures in l2cap fuzz tests

Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed
Rolled-Commits: 2861b6ad5f94c2..1e464ac2e81e04
Roll-Count: 1
Roller-URL: https://cr-buildbucket.appspot.com/build/8719375565470383121
GitWatcher: ignore
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: Ifee1e32f9aef65f77d92e09a2404f5d7d4778cec
Reviewed-on: https://pigweed-review.googlesource.com/c/zephyr/zephyr-bazel/+/279232
Bot-Commit: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com>
1 file changed
tree: 8a770593f3414337c7dc3f4f505de77c6c92c307
  1. .vscode/
  2. arch/
  3. boards/
  4. drivers/
  5. dts/
  6. examples/
  7. include/
  8. kernel/
  9. lib/
  10. modules/
  11. scripts/
  12. soc/
  13. subsys/
  14. AUTHORS
  15. BUILD.bazel
  16. cc.bzl
  17. CONTRIBUTING.md
  18. defs.bzl
  19. generate_diff.py
  20. LICENSE
  21. MODULE.bazel
  22. MODULE.bazel.lock
  23. OWNERS
  24. README.md
  25. setup.bzl
  26. WORKSPACE
README.md

Zephyr-Bazel

The way this repository works is by overlaying itself on top of Zephyr. To get started, first make sure you have Bazel‘s skylib version 1.7.1 or greater. If you don’t have it, you can use:

http_archive(
    name = "bazel_skylib",
    sha256 = "bc283cdfcd526a52c3201279cda4bc298652efa898b10b4db0837dc51652756f",
    urls = [
        "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.7.1/bazel-skylib-1.7.1.tar.gz",
        "https://github.com/bazelbuild/bazel-skylib/releases/download/1.7.1/bazel-skylib-1.7.1.tar.gz",
    ],
)

load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")

bazel_skylib_workspace()

To grab the zephyr-bazel repo, use a git_repository rule in your WORKSPACE, such as:

git_repository(
    name = "zephyr-bazel",
    remote = "https://pigweed.googlesource.com/zephyr/zephyr-bazel"
    branch = "main",
)

Once you have @zephyr-bazel, we can load the patch rule to generate the Zephyr diff that will augment Zephyr to include the BUILD.zephyr rules.

load("@zephyr-bazel//:setup.bzl", "create_zephyr_patch_file")

create_zephyr_patch_file(
    name = "zephyr-patch",
    filename = "patch.diff",
    # This is optional, use it to see what's going on under the hood
    debug = True,
)

We now have a diff file at @zephyr-patch//:patch.diff. We're ready to load Zephyr.

git_repository(
    name = "zephyr",
    remote = "https://github.com/zephyrproject-rtos/zephyr.git",
    branch = "main",
    patches = [
        "@zephyr-patch//:patch.diff",
    ],
)

The final step will be to load Zephyr's python dependencies:

load("@rules_python//python:pip.bzl", "pip_parse")

pip_parse(
    name = "py_deps",
    python_interpreter_target = interpreter,
    requirements_lock = "@@zephyr//:scripts/requirements-base.txt",
)

load("@py_deps//:requirements.bzl", zephyr_install_deps = "install_deps")

zephyr_install_deps()

Application

In your main application, you can now use the Zephyr utilities for building your app.

load("@zephyr//:defs.bzl", "dts_cc_library")

dts_cc_library(
    name = "app_native_sim_dts",
    dts_lib = "@zephyr//boards/native/native_sim:native_sim",
)

cc_binary(
    ...
    deps = [
        ...
        "@zephyr//:zephyr",
    ] + select({
        "@platform//cpu:x86_64": [
            ":app_native_sim_dts",
            "@zephyr//include:posix",
        ],
    }),
    copts = select({
        "@platform//cpu:x86_64": [
            "-DCONFIG_ARCH_POSIX=1",
        ],
    }),
)

Examples

There is currently just 1 example, you can run it via:

$ cd examples/hello_dts
$ bazel run :app

Or, you can run the tests via:

$ cd examples/hello_dts
$ bazel test //...