plan9asm: map runtime.memmove to libc#2127
Merged
xushiwei merged 2 commits intoJul 20, 2026
Merged
Conversation
zhouguangyuan0718
force-pushed
the
codex/memmove-asm-symbol
branch
2 times, most recently
from
July 19, 2026 11:19
9a193fb to
2d6667c
Compare
zhouguangyuan0718
marked this pull request as ready for review
July 19, 2026 11:25
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
zhouguangyuan0718
force-pushed
the
codex/memmove-asm-symbol
branch
from
July 19, 2026 15:41
2d6667c to
ab1e8cf
Compare
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.
What changed
runtime.memmoveassembly symbol.FuncSig.Nametomemmove, so LLGo links the call to libcmemmovewithout package- or architecture-specific checks.github.com/xgo-dev/plan9asmdependency from v0.3.0 to v0.3.2, which includes the required external-symbol and ARM64 assembly support.Why
github.com/klauspost/compress/s2usesCALL runtime·memmove(SB)in its amd64 and arm64 assembly. LLGo does not provide the Go runtime symbolruntime.memmove; the corresponding implementation is libcmemmove. The previous resolution path could not express this external declaration name without special-casing the resolver.The newer plan9asm release also carries the assembly support needed by optimized compression dependencies, including the ARM64 instructions used by s2, reedsolomon, and crc64nvme.
Scope
The LLGo change is intentionally limited to
extraAsmSigsAndDeclMap: symbol normalization remains generic, and no package path or architecture is used to select the memmove mapping. The dependency update uses the published plan9asm v0.3.2 release, which contains the merged changes from xgo-dev/plan9asm#17.Validation
go test ./internal/plan9asm.github.com/klauspost/compress/s2,github.com/klauspost/reedsolomon, andgithub.com/minio/crc64nvmeusing the updated dependency.