{{ message }}
feat(mcpp.plugins): 0.2.3 — mcpp.rules.ascendc - #363
Merged
Conversation
…floor moves to 2026.9.6.5 The fifth rule, and the first for a vendor this collection had not built for. Two things in mcpp 2026.9.6.5 are load-bearing for it. `.asc` in the device-source table, so the engine routes an Ascend C unit to the build program instead of the C++ compiler. And `mcpp::link_flag`, without which the rule cannot emit the `-Wl,-rpath-link` that GNU ld needs to resolve the CANN libraries' own DT_NEEDED entries -- `-L` does not serve that purpose, and the link fails on `memset_s` and `CheckLogLevel`, symbols of libraries nobody named. That is why the floor moves rather than staying where 0.2.2 left it. The rule compiles with BiSheng in MIXED mode rather than `--cce-aicore-only`. With that flag the output is a Da Vinci object the host linker cannot place; without it the same source yields a host object carrying the device binary and a host-callable launcher, which the ordinary link takes -- no registration file and no device-link step. Verified on a machine with no Ascend hardware: the kernel compiles, the object links, and only `libascend_hal.so` is missing, which belongs to the DRIVER and is exactly what should be absent there. Both mirrors were downloaded and compared byte for byte before this descriptor was written; one sha256 names both.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

mcpp:plugins@0.2.3, andlatestmoves to it.The fifth rule, and the first for a vendor this collection had not built for.
The floor moves to 2026.9.6.5
Two things in that release are load-bearing:
.ascin the device-source table, so the engine routes an Ascend C unitto the build program instead of the C++ compiler.
mcpp::link_flag, without which the rule cannot emit the-Wl,-rpath-linkGNU ld needs to resolve the CANN libraries' ownDT_NEEDEDentries.
-Ldoes not serve that purpose, and the link fails onmemset_sand
CheckLogLevel— symbols of libraries nobody named.Only the
rules-ascendcfeature's source is compiled when that feature isactive, so a consumer activating only
rules-cudais unaffected by the newmember.
Mixed mode is the design decision
With
--cce-aicore-onlyBiSheng emits a Da Vinci object the host linker cannotplace. Without it, the same source yields a host object carrying the device
binary and a host-callable launcher — an object the ordinary link takes, with
no registration file and no device-link step.
Verification
On a machine with no Ascend hardware: the kernel compiles, the object
links, and only
libascend_hal.sois missing — the driver, exactly whatshould be absent there. mcpp-plugins CI green on
mainat the tagged commit.Both mirrors downloaded and
cmp-ed before this descriptor was written.