Adding support for a new toolchain variant usually touches several layers:
- add or extend package metadata in
packages/version_matrix.bzl, - add a package BUILD descriptor under
packages/linux/orpackages/qnx/, - ensure the required template placeholders already exist, or extend the platform template files,
- update the example workspace if the new variant should be validated by the smoke-test matrix,
- add or update documentation in this Markdown source and the repository README.
Use the version matrix when a package should be part of the supported default surface for consumers. This gives downstream users a shorter configuration and centralizes special sysroot flags in one place.
Use explicit gcc.sdp(...) declarations when package metadata is local,
experimental, or intentionally not part of the default support matrix.
- runtime-specific toolchains may need extra include and link flags that do not exist for standard GCC archives,
- QNX
aarch64naming differs from some underlying SDK paths, - QNX licensing and authentication requirements live outside Bazel target analysis and must be configured in the execution environment,
- documentation examples must stay aligned with actual
examples/.bazelrcconfiguration names.
For repository changes that affect toolchain resolution, package metadata, or template generation, validate with the example workspace:
cd examples
./test.sh --list
./test.sh host_config_1
./test.sh --keep-goingFor documentation-only changes, build or preview the Markdown site to catch markup and table-of-contents/navigation issues before publishing.