Skip to content

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

Merged
pahmann merged 4 commits into
eclipse-score:mainfrom
bgsw-contrib:feature/S-CORE_global_toolchain_configuration
Aug 28, 2026
Merged

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

Conversation

@srinivasugithub

Copy link
Copy Markdown
Contributor

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.

@pahmann

pahmann commented Aug 28, 2026

Copy link
Copy Markdown
Member

Let's give it a try ;)

@pahmann
pahmann merged commit d06476b into eclipse-score:main Aug 28, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

4 participants