Skip to content

feat(toolchain): integrate QNX IFS toolchain centrally - #160

Open
srinivasugithub wants to merge 4 commits into
eclipse-score:mainfrom
bgsw-contrib:feature/S-CORE_global_toolchain_configuration
Open

feat(toolchain): integrate QNX IFS toolchain centrally#160
srinivasugithub wants to merge 4 commits into
eclipse-score:mainfrom
bgsw-contrib:feature/S-CORE_global_toolchain_configuration

Conversation

@srinivasugithub

Copy link
Copy Markdown

S-CORE Central Toolchain Configuration Alignment

This PR centrally integrates the missing QNX IFS (imagefs) toolchains and configurations into the reference module_template repository. This resolves critical gaps identified in downstream adoptions (e.g. eclipse-score/lifecycle #448/PR #502 and eclipse-score/baselibs #455/PR #503).

🌟 Key Changes

  1. Integrated score_rules_imagefs centrally:

    • Declared score_rules_imagefs version 0.0.4 as a dev dependency in MODULE.bazel.
    • Centrally declared score_qnx_x86_64_ifs_toolchain and score_qnx_aarch64_ifs_toolchain with their correct respective attributes (sdp_to_import, sdp_version, target_cpu, target_os = "qnx", and type = "ifs").
    • This resolves a major blocker where any downstream repository adopting score_toolchain.bazelrc was crashing on --config=score-qnx-x86_64 if they did not manually declare score_rules_imagefs themselves.
  2. Workspace-wide BUILD files formatting:

    • Formatted workspace root BUILD and score/component_example/BUILD with Buildifier for standard S-CORE linting and formatting compliance.

🧪 Verification Performed Locally

  1. Host Linux x86_64 targets build & test:

    • Executed: bazel test --config=score-linux-x86_64 //tests/cpp:cpp_test_main
    • Result: 100% PASS (all local C++ unit tests run successfully on host).
  2. Cross-compilation QNX x86_64 targets build:

    • Executed: bazel build --config=score-qnx-x86_64 //tests/cpp:cpp_test_main
    • Result: 100% SUCCESS (properly resolved all transitive dependencies, downloaded the sysroots, and compiled the C++ binary successfully).
  3. Starlark Compliance:

    • Executed: bazel run --config=score-linux-x86_64 //:format.fix_Starlark_with_buildifier
    • Result: 100% SUCCESS (fully formatted and verified).

- Fix copy-paste typo in score_toolchain.bazelrc where score-autosd-aarch64 was mistakenly used under the x86_64 target configuration.
- Add score_qcc_aarch64_toolchain_pkg to QNX use_repo block to provide the ARM64 QNX target sysroot package centrally.
- Add standard GCC Linux aarch64-linux toolchain declaration and standard score-linux-aarch64 configuration profile.
- Declare 'score_rules_imagefs' centrally in MODULE.bazel under QNX Toolchains block.
- Define 'score_qnx_x86_64_ifs_toolchain' and 'score_qnx_aarch64_ifs_toolchain' centrally to prevent downstream dependency resolution issues when leveraging 'score_toolchain.bazelrc'.
- Format workspace BUILD files using Buildifier.
- Update MODULE.bazel.lock transitive dependency map.
@github-actions

github-actions Bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

License Check Results

🚀 The license check job ran with the Bazel command:

bazel run --lockfile_mode=error //:license-check

Status: ⚠️ Needs Review

Click to expand output
[License Check Output]
Extracting Bazel installation...
Starting local Bazel server (8.7.0) and connecting to it...
INFO: Invocation ID: 24bd7c9d-0ffa-4aae-bff5-d4e3d5890588
Computing main repo mapping: 
Computing main repo mapping: 
WARNING: For repository 'aspect_rules_lint', the root module requires module version aspect_rules_lint@1.10.2, but got aspect_rules_lint@2.3.0 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
Loading: 
Loading: 0 packages loaded
Loading: 0 packages loaded
Loading: 0 packages loaded
    currently loading: 
Loading: 0 packages loaded
    currently loading: 
Analyzing: target //:license-check (1 packages loaded)
Analyzing: target //:license-check (1 packages loaded, 0 targets configured)
Analyzing: target //:license-check (1 packages loaded, 0 targets configured)

Analyzing: target //:license-check (33 packages loaded, 10 targets configured)

Analyzing: target //:license-check (88 packages loaded, 10 targets configured)

Analyzing: target //:license-check (148 packages loaded, 2298 targets configured)

Analyzing: target //:license-check (162 packages loaded, 5463 targets configured)

Analyzing: target //:license-check (169 packages loaded, 8301 targets configured)

Analyzing: target //:license-check (169 packages loaded, 8301 targets configured)

Analyzing: target //:license-check (174 packages loaded, 10317 targets configured)

Analyzing: target //:license-check (175 packages loaded, 10437 targets configured)

Analyzing: target //:license-check (175 packages loaded, 10437 targets configured)

INFO: Analyzed target //:license-check (176 packages loaded, 12016 targets configured).
[9 / 15] JavaToolchainCompileClasses external/rules_java+/toolchains/platformclasspath_classes; 0s disk-cache, processwrapper-sandbox ... (2 actions, 1 running)
INFO: From Generating Dash formatted dependency file ...:
INFO: Successfully converted 2 packages from Cargo.lock to bazel-out/k8-fastbuild/bin/formatted.txt
[14 / 16] JavaToolchainCompileBootClasspath external/rules_java+/toolchains/platformclasspath.jar; 0s disk-cache, processwrapper-sandbox
[15 / 16] Building license.check.license_check.jar (); 0s disk-cache, multiplex-worker
INFO: Found 1 target...
Target //:license.check.license_check up-to-date:
  bazel-bin/license.check.license_check
  bazel-bin/license.check.license_check.jar
INFO: Elapsed time: 193.692s, Critical Path: 2.53s
INFO: 16 processes: 12 internal, 3 processwrapper-sandbox, 1 worker.
INFO: Build completed successfully, 16 total actions
INFO: Running command line: bazel-bin/license.check.license_check ./formatted.txt <args omitted>
usage: org.eclipse.dash.licenses.cli.Main [-batch <int>] [-cd <url>]
       [-confidence <int>] [-ef <url>] [-excludeSources <sources>] [-help] [-lic
       <url>] [-project <shortname>] [-repo <url>] [-review] [-summary <file>]
       [-timeout <seconds>] [-token <token>]

@github-actions

Copy link
Copy Markdown
Contributor

Documentation preview for this pull request is available at:
pr-160: https://eclipse-score.github.io/module_template/pr-160/

@AlexanderLanin

Copy link
Copy Markdown
Member

@nradakovic @odra can you have a look? LGTM

- Update sdp_version to "8.0.4" for QNX toolchains in MODULE.bazel.
- Update MODULE.bazel.lock transitive dependency map.
@odra

odra commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

LGTM but it needs a rebase.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants