Skip to content

update bazel to 8.6.0 - #306

Open
AlexanderLanin wants to merge 3 commits into
eclipse-score:mainfrom
etas-contrib:prep2
Open

update bazel to 8.6.0#306
AlexanderLanin wants to merge 3 commits into
eclipse-score:mainfrom
etas-contrib:prep2

Conversation

@AlexanderLanin

Copy link
Copy Markdown
Member

Various mini fixes, which will make the actual update easier.

  • while attempting to update all modules, I encountered compatibility_level problems. These are fixed by updating bazel
  • gitignore adapted for docs-as-code >5
  • persistency patches applied for bazel run //:docs
  • version added to various docs-needs, since this is mandatory is newer docs-as-code versions
  • some whitespace removed

@github-actions

Copy link
Copy Markdown

The created documentation from the pull request is available at: docu-html

@AlexanderLanin

Copy link
Copy Markdown
Member Author

I added commit dfb41c2919 to fix the QNX build failure.

What caused the failure

The Bazel 8.6 update regenerated MODULE.bazel.lock. The old score_crates revision declared libc with a normal compatible version requirement. During the new resolution, Bazel therefore selected libc 0.2.189 instead of the previously locked 0.2.186.

Recent libc versions changed how QNX targets are detected. Our Ferrocene QNX 8 toolchain still uses the established target x86_64-pc-nto-qnx800, for which rustc reports the older QNX configuration. libc 0.2.189 does not recognize that configuration when choosing the QNX network stack and stops compilation with:

panic!("Unsupported arch")

The message is misleading: x86_64 itself is supported. The unsupported part is the older QNX 8 target configuration.

What this commit changes

The commit updates the score_crates entry in known_good.json to revision 4656dda8. This is the same fix already used by score_baselibs and score_lifecycle.

That score_crates revision uses an exact dependency:

crate.spec(
    package = "libc",
    version = "=0.2.186",
)

I also regenerated:

  • bazel_common/score_modules_tooling.MODULE.bazel
  • MODULE.bazel.lock

The QNX-relevant score_crates repository now resolves the alias as:

@score_crates//:libc
  -> @@rules_rust++crate+crate_index__libc-0.2.186//:libc

There is still a separate libc 0.2.189 in the host tooling crate repository. That is expected and is not the dependency that failed in the QNX image build.

Why this is important

This is more than changing the generated lockfile by hand. The exact pin lives in the shared score_crates source, so later lockfile regeneration cannot silently move the QNX build back to an incompatible libc version.

This keeps the current Ferrocene QNX 8 toolchain working until the project moves to the newer upstream Rust QNX target naming.

Verification

  • bazel mod deps --lockfile_mode=update completed successfully.
  • bazel query --lockfile_mode=error '@@rules_rust++crate+crate_index//:libc' --output=build resolves to libc 0.2.186.
  • git diff --check passes.
  • A complete local QNX image build was not possible because the local environment has no QNX license or download credentials. The new PR CI run will perform that final verification.1

Footnotes

  1. Generated with GPT-5.6-Sol-High.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants