What
The QNX SDP fetched/packaged by the gcc module extension (@score_bazel_cpp_toolchains//extensions:gcc.bzl) for the aarch64/qnx toolchain (e.g. score_qcc_aarch64_toolchain_pkg, sdp_version = "8.0.0") does not include the target boot files needed to build a bootable QNX image for aarch64.
Specifically:
target/qnx/aarch64le/boot/sys/ in the fetched package contains only raw.boot and uefi.boot.
The equivalent target/qnx/x86_64/boot/sys/ directory in the same package contains a full set of boot files (startup-x86, startup-apic, bios.boot, uefi.boot, multiboot.boot, elf.boot, srec.boot, binary.boot, procnto-smp-instr, ipl-diskpc1, ipl-diskpc2-fsq6, kdumper, etc.).
In particular, "startup-qemu-virt" needed to build a QEMU "virt" board bootable image for aarch64 is absent for aarch64 but such files are present for x86_64.
This surfaces downstream in any consumer that imports this package as the SDP source for score_rules_imagefs's imagefs.toolchain(sdp_to_import = "@score_qcc_aarch64_toolchain_pkg", target_cpu = "aarch64", ...) (e.g. score_qnx_unit_tests, score_logging, score_persistency all use this exact pattern). Building any qnx_ifs/mkifs-based bootable image for aarch64 fails with:
mkifs failed: ...
init_test.build:15 Host file 'startup-qemu-virt' not available
Acceptance Criteria (DoD)
- The aarch64 QNX SDP package exposed by the gcc extension (score_qcc_aarch64_toolchain_pkg or equivalent) includes target/qnx/aarch64le/boot/sys/startup-qemu-virt, matching the completeness of the x86_64 boot/sys set (at minimum, the boot files needed for a QEMU "virt" board bootable image).
- bazel build --config=arm64-qnx @score_qnx_unit_tests//src:init (or an equivalent qnx_ifs/mkifs build for aarch64 in a consumer repo) succeeds without the "Host file ... not available" error.
- No regression to the existing x86_64 SDP packaging.
How
No response
What
The QNX SDP fetched/packaged by the gcc module extension (@score_bazel_cpp_toolchains//extensions:gcc.bzl) for the aarch64/qnx toolchain (e.g. score_qcc_aarch64_toolchain_pkg, sdp_version = "8.0.0") does not include the target boot files needed to build a bootable QNX image for aarch64.
Specifically:
target/qnx/aarch64le/boot/sys/ in the fetched package contains only raw.boot and uefi.boot.
The equivalent target/qnx/x86_64/boot/sys/ directory in the same package contains a full set of boot files (startup-x86, startup-apic, bios.boot, uefi.boot, multiboot.boot, elf.boot, srec.boot, binary.boot, procnto-smp-instr, ipl-diskpc1, ipl-diskpc2-fsq6, kdumper, etc.).
In particular, "startup-qemu-virt" needed to build a QEMU "virt" board bootable image for aarch64 is absent for aarch64 but such files are present for x86_64.
This surfaces downstream in any consumer that imports this package as the SDP source for score_rules_imagefs's imagefs.toolchain(sdp_to_import = "@score_qcc_aarch64_toolchain_pkg", target_cpu = "aarch64", ...) (e.g. score_qnx_unit_tests, score_logging, score_persistency all use this exact pattern). Building any qnx_ifs/mkifs-based bootable image for aarch64 fails with:
Acceptance Criteria (DoD)
How
No response