Skip to content

Update README.md - #2

Open
ee07b415 wants to merge 3 commits into
masterfrom
ee07b415-patch-1
Open

Update README.md#2
ee07b415 wants to merge 3 commits into
masterfrom
ee07b415-patch-1

Conversation

@ee07b415

Copy link
Copy Markdown

No description provided.

ddreyer added a commit that referenced this pull request Aug 18, 2026
…16)

* fix(ci): build both triples on amd64; cross-rs images are amd64-only

The aarch64 leg failed immediately:

  #2 [internal] load metadata for ghcr.io/cross-rs/aarch64-unknown-linux-musl:0.2.5
  #2 ERROR: no match for platform in manifest: not found

scripts/cross/aarch64-unknown-linux-musl.dockerfile builds FROM
ghcr.io/cross-rs/aarch64-unknown-linux-musl:0.2.5, which is published for
linux/amd64 only -- confirmed via `docker manifest inspect` on both cross-rs
images. That is by design: a cross-rs "aarch64" image is an amd64 container
carrying a toolchain that targets aarch64, not an arm64 image. It cannot run on
ubuntu-24.04-arm.

The earlier comment claiming cross uses a same-arch container was wrong. Both
legs now run on ubuntu-24.04, matching how upstream's publish.yml builds these
targets. This is still real cross-compilation rather than emulation: cross only
needs QEMU to *run* target binaries, which `cross build` does not do.

Also switches the static-linking assertion from `ldd` to `file`. ldd cannot
inspect a foreign-architecture binary, which the aarch64 artifact now is on an
amd64 host. The old `ldd ... | grep -qv 'not a dynamic executable'` was fragile
regardless -- grep -qv succeeds whenever any single line fails to match, so
incidental extra output would have tripped it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(ci): accept static-pie in the static-linking assertion

The x86_64 leg built fine and then failed the assertion on a binary that is
static:

  /tmp/verify/bin/vector: ELF 64-bit LSB pie executable, x86-64, version 1
  (SYSV), static-pie linked, not stripped
  ##[error]binary is dynamically linked

Two separate bugs, both false positives:

1. The `ldd` form. On this runner ldd prints "\tstatically linked" for a static
   binary, not "not a dynamic executable", so `grep -qv` matched and the check
   failed. The assumed output string was simply wrong.

2. The `file` replacement in the previous commit matched only "statically
   linked". Rust's musl targets emit a static-PIE, which file(1) reports as
   "static-pie linked" -- so it would have failed the same way.

Now accepts both spellings. Verified against real file(1) output for static-pie
(x86-64 and aarch64), plain static, and both dynamic forms.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.

1 participant