HOVEL // module 01.10
Module 01.10 Payload provider / Integrated

Building

Task is the public build interface. Its Bazel-backed targets use bzlmod and fetch pinned Bootlin cross-compilation toolchains on first use. Run every command below from the repository root.

Targets describe what to build. Configs describe how to build it.

Build a single platform

task bazel:build -- --config=linux_x86_64 //modules/picblobs/release:full
task bazel:build -- --config=linux_x86_64 --config=debug //modules/picblobs/release:full

Build a single blob

task bazel:build -- --config=linux_aarch64 //modules/picblobs/src/payload:hello
task bazel:build -- --config=windows_x86_64 //modules/picblobs/src/payload:hello_windows

Build and stage all platforms

task picblobs:stage

The Task invokes the declared Bazel materializer, which builds all supported blobs, FreeBSD and Windows runners, and Linux ul_exec verifier fixtures. It then stages only declared outputs into the package trees and regenerates the runtime sidecar catalogue:

modules/picblobs/python/picblobs/_blobs/{os}/{arch}/{name}.so
modules/picblobs/python/picblobs/blobs/{name}.{os}.{arch}.{bin,json}
modules/picblobs/python/picblobs/manifest.json
modules/picblobs/python_cli/picblobs_cli/_runners/{freebsd,windows}/{arch}/runner
modules/picblobs/python_cli/picblobs_cli/_test_binaries/ul_exec/linux/{arch}/hello_et_exec

Build specific targets or platforms:

task picblobs:stage -- --targets hello --configs linux:x86_64
task picblobs:stage -- --configs windows:x86_64 windows:i686 windows:aarch64

Available platform configs

modules/picblobs/tools/generate.py derives these configs from the typed registry. Use task picblobs:generate-check to verify that the generated declarations are current.

linux_x86_64  linux_i686  linux_aarch64  linux_armv5_arm  linux_armv5_thumb
linux_armv7_thumb  linux_s390x  linux_mipsel32  linux_mipsbe32
linux_sparcv8  linux_powerpc  linux_ppc64le  linux_riscv64

freebsd_x86_64  freebsd_i686  freebsd_aarch64  freebsd_armv5_arm
freebsd_armv5_thumb  freebsd_armv7_thumb  freebsd_mipsel32  freebsd_mipsbe32

windows_x86_64  windows_i686  windows_aarch64

Build mode configs

Config Effect
(default) Optimized (-Os from the selected toolchain)
--config=debug Adds debug symbols and -DPIC_LOG_ENABLE; disables stripping
--config=release Explicitly strips release outputs

Platform and build mode are orthogonal: --config=linux_x86_64 --config=debug.