Skip to content

gcc.toolchain() aarch64 QNX SDP package is missing startup-qemu-virt (and other target boot files) #124

Description

@rmaddikery

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    Status
    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions