-
Notifications
You must be signed in to change notification settings - Fork 10
QNX Toolchain setup for eclipse-score-logging #27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
License Check Results🚀 The license check job ran with the Bazel command: bazel run //:license-checkStatus: Click to expand output |
|
The created documentation from the pull request is available at: docu-html |
rmaddikery
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is scripts/internal/qnx_creds.py an empty file?
pawelrutkaq
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please add qnx builds jobs from reusable workflows in score.
MODULE.bazel
Outdated
| use_repo(toolchains_qnx, "toolchains_qnx_qcc") | ||
| use_repo(toolchains_qnx, "toolchains_qnx_ifs") | ||
|
|
||
| register_toolchains("@toolchains_qnx_qcc//:qcc_x86_64") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
shall never be registered
just change the permission of qnx_cred file. Yes, it’s needed: qnx_creds.py must be executable so Bazel can run it as --credential_helper during the QNX SDP fetch from qnx.com otherwise downloads fail |
@Rahul-Sutariya |
We shall sue reusable workflows. https://github.com/eclipse-score/cicd-workflows |
|
Btw this has to go along with new rust toolchain for toolchain_rust .0.3.0 if you want to add x86_64 QNX |
Done: Added QNX builds using reusable workflows from eclipse-score/cicd-workflows. Both x86_64 and arm64 jobs are included |
31b179e to
ef3a60b
Compare
ef3a60b to
92a3ca3
Compare
rmaddikery
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CI QNX8 Build job confirms build with qnx8 toolchain integration:
https://github.com/eclipse-score/logging/actions/runs/21205455825/job/61000746490?pr=27
- Add qnx_x86_64 and qnx_arm64 build configurations in .bazelrc - Register QNX QCC toolchains for x86_64 and aarch64 in MODULE.bazel - Make qnx_creds.py executable for credential helper functionality Issue: SWP-235282
- Add common:qnx base config to eliminate duplication. - Set qnx_creds.py as executable for credential helper Issue: SWP-235282
- Add QNX build configs and CI workflow using reusable workflows
- Add copyright header to QNX CI workflow file
Configure QNX toolchains for x86_64 and arm64 platforms with S-CORE reusable workflows. Enable Rust support for arm64-qnx.
5d1f9a2 to
345dc8f
Compare
pawelrutkaq
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am pretty sur it does not work at all. Ie:
pawel@pawel-VirtualBox ~/qorix/repos/logging (pr-27) $ bazel build --config x86_64-qnx //...
WARNING: For repository 'rules_python', the root module requires module version rules_python@1.4.1, but got rules_python@1.5.1 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
WARNING: For repository 'bazel_skylib', the root module requires module version bazel_skylib@1.7.1, but got bazel_skylib@1.8.1 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
WARNING: For repository 'rules_cc', the root module requires module version rules_cc@0.1.1, but got rules_cc@0.2.8 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
WARNING: For repository 'aspect_rules_lint', the root module requires module version aspect_rules_lint@1.0.3, but got aspect_rules_lint@1.10.2 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
WARNING: For repository 'buildifier_prebuilt', the root module requires module version buildifier_prebuilt@7.3.1, but got buildifier_prebuilt@8.2.0.2 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
WARNING: For repository 'googletest', the root module requires module version googletest@1.17.0.bcr.1, but got googletest@1.17.0.bcr.2 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
ERROR: /home/pawel/qorix/repos/logging/BUILD:48:5: While resolving toolchains for target //:ide_support (05966f3): No matching toolchains found for types:
@@bazel_tools//tools/python:toolchain_type
To debug, rerun with --toolchain_resolution_debug='@@bazel_tools//tools/python:toolchain_type'
For more information on platforms or toolchains see https://bazel.build/concepts/platforms-intro.
Use --verbose_failures to see the command lines of failed build steps.
ERROR: Analysis of target '//:ide_support' failed; build aborted
INFO: Elapsed time: 0.983s, Critical Path: 0.05s
INFO: 2 processes: 2 internal.
What's more I don't see usage feroceen toolchain, old one does not support x86-64 QNX. Did you tried to run it locally, if yes can you give me commend to recheck ? The CI does not run your changes at all until they are not merged to master
| @@ -0,0 +1,49 @@ | |||
| # ******************************************************************************* | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also please do not add new file for QNX8 build, please override old one or clean up.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
- Upgrade to score_toolchains_rust@0.4.0 for x86_64 QNX Rust support - Update workflow to build both x86_64 and arm64 QNX - Exclude Python targets from QNX builds
Thanks for the review. I addressed the //:ide_support Python toolchain failure by excluding //:ide_support, //:starpls_server, and //:docs (same in CI). I also updated the Rust toolchain to the Ferrocene-based version that supports x86_64 QNX and configured it via .bazelrc --extra_toolchains. |
We shall make bazel build --config=x86_64-qnx //... working. I think the problem is that you are missing dev_dep toolchain registration for python tooling like here https://github.com/eclipse-score/baselibs_rust/blob/main/MODULE.bazel#L93 |
Thanks for the reference. I've verified our Python toolchain registration already matches baselibs_rust exactly (MODULE.bazel lines 80-85 with dev_dependency = True). |
See: https://github.com/eclipse-score/baselibs_rust/blob/main/.github/workflows/qnx.yml#L12 bazel-target: '//src/...' |
In other repos they work so not really sure why it would not work here ? (is baselib_rust) |
| build:build_qnx8 --extra_toolchains=@toolchains_qnx_ifs//:ifs_x86_64 | ||
| build:build_qnx8 --extra_toolchains=@toolchains_qnx_ifs//:ifs_aarch64 | ||
| build:build_qnx8 --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_aarch64_unknown_nto_qnx800 | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we shall clean this up, either we use
common:x86_64-qnx --config=qnx_x86_64
common:arm64-qnx --config=qnx_arm64
or build_qnx8
Notes for Reviewer
Pre-Review Checklist for the PR Author
Checklist for the PR Reviewer
Post-review Checklist for the PR Author
References
Closes #