I'm still working through the remaining Rust packages and will follow up on that separately.
While going through the reproducible-cross diffoscope output, though, I noticed something unrelated to Rust
that I think may explain the git/git-dbg entries, so sharing it here in case it's useful or helps narrow things down.
In the 2026-07-29 report from builder 120 [1], git's .rodata has:
-0x001b1780 6769742d 00000000 61617263 68363400 git-....aarch64.
+0x001b1780 6769742d 00000000 7838365f 36340000 git-....x86_64..
i.e. the build host's arch string, sitting right next to git's "cpu: %s" format string.
git's Makefile does:
ifeq (,$(HOST_CPU))
BASIC_CFLAGS += -DGIT_HOST_CPU="\"$(firstword $(subst -, ,$(uname_M)))\""
else
BASIC_CFLAGS += -DGIT_HOST_CPU="\"$(HOST_CPU)\""
endif
uname_M comes from `uname -m` on the build machine, and GIT_HOST_CPU
ends up in the "cpu:" line of `git version --build-options`.
Upstream even documents HOST_CPU as the thing to set when cross compiling,
but our recipe never sets it, so we always take the uname fallback.
Since "aarch64" and "x86_64" have different lengths, everything after that string shifts,
which is why the git diffs look much bigger than they really are (.text, .symtab and so on) -
the instructions themselves don't change. git/git-dbg show up in every run I've looked
at (119/120/121, before and after the SVH fix, on both x86 and arm hosts),
so it fits a build host leak rather than anything rust related.
The fix should just be:
EXTRA_OEMAKE += "HOST_CPU=${TARGET_ARCH}"
in git_2.55.0.bb. As far as I can tell TARGET_ARCH does the right
thing for native (= BUILD_ARCH) and nativesdk (= SDK_ARCH) as well, so
no class overrides needed.
I'm cross checking with a locally to make sure the resulting binary really says "aarch64", and will send the patch once
that's confirmed.
[1] https://valkyrie.yocto.io/pub/repro-fail/oe-reproducible-20260729-j6j_xpuw/packages/diff-html/
Thanks,
Sunil