Skip to content

ci(phase1): run wild's ELF suite on x86_64 and aarch64; mark riscv/loong/ppc unverified (#194) - #196

Merged
zackees merged 5 commits into
mainfrom
feat/meta-work-194
Sep 18, 2026
Merged

zackees merged 5 commits into
mainfrom
feat/meta-work-194

Conversation

@zackees

@zackees zackees commented Sep 18, 2026

Copy link
Copy Markdown
Owner

Closes #194

Runs wild's ELF suite on the linux-gnu x86_64 and aarch64 Phase 1 legs. riscv64, loongarch64 and ppc64le stay listed but are marked unverified.

  • Pins the aarch64 digests for mold 2.41.0, wild 0.9.0 and libtinfo5 6.3-2ubuntu0.3 (arm64). I got each value from curl -fsSL <url> | sha256sum.
  • Adds the Phase 1 / linux-gnu aarch64 leg. Its publish step starts at --minimum-run 1 and will be raised to the count from the first green run.

Local validation (x86_64 NixOS): pytest ci/tests 362 passed, cargo fmt --check clean, cargo clippy --workspace --all-targets -D warnings clean, acceptance-policy 11 passed. No act lane applies (lane=none). This host can't emulate the ubuntu-24.04-arm runner, so the PR's GitHub CI is what validates the aarch64 leg.

🤖 Generated with Claude Code

zackees and others added 2 commits September 18, 2026 14:21
…ong/ppc unverified (#194)

Pin the aarch64 mold 2.41.0, wild 0.9.0 and libtinfo5 6.3-2ubuntu0.3 arm64
digests and add the linux-gnu aarch64 Phase 1 leg.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The first aarch64 run failed ~45 configurations. None was fixed with a blanket skip:

- Stale fixture ignores: most were already scoped `arch=aarch64` by wild's authors
  against their own toolchain and are unneeded on Ubuntu 24.04's binutils. Their
  aarch64 scope is dropped, or the line deleted where aarch64 was its only arch.
  Unscoped ignores that only x86_64 still needs are scoped `arch=x86_64`.
- `section.got`: GNU ld on aarch64 always emits a .got, reld omits an unneeded one
  (20 fixtures). An aarch64-scoped reld-diff default under #13; relocation-level
  checks still compare the GOT entries.
- `section.bss.alignment` and `section.plt`: removed as unobserved on x86_64 in
  #186 and observed again here, as #13 predicted. Restored, scoped to aarch64.
- `linker-script-provide`: a real, arch-general bug. Absolute PROVIDE symbols get
  R_*_RELATIVE GOT relocations in a shared object, so they are rebased at load.
  Reproduced on both arches and filed as #200; the fixture ignore cites #200.
- `copy-relocation-relro`: the fixture only exercised copy relocations on x86_64,
  where GOTPCRELX relaxation produced one; aarch64 keeps the GOT. Compiling the
  main object `-fno-pic` forces direct access, so it now tests aarch64 too.
- `clang-tls-desc-desc` / `-shared-desc`: inherited the x86-only
  `-mtls-dialect=gnu2` requirement because RequiresCompilerFlags accumulates;
  rebased onto the gcc desc variants. `gcc-indirect-external` uses an x86-only
  GCC flag and is marked x86_64.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
zackees and others added 3 commits September 18, 2026 14:30
…194)

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

The first aarch64 run with the round-one fixes left six failures, each pinpointed by
the per-config ratchet:

- cpp-integration/no-pie still needs the aarch64 __stack_chk_guard ignore that pie
  and clang-pie do not: moved into that config.
- linker-script-provide and undefined-weak-sym: section.got / section.rela.dyn /
  DT_RELA / DT_RELAENT are needed on x86_64 only: scoped arch=x86_64.
- tls-variant: the TLSGD ignore is used by gcc-tls-trad but not gcc-shared-tls-trad
  on aarch64: moved into gcc-tls-trad.
- tlsdesc clang desc variants: clang 18 rejects `-mtls-dialect=` for aarch64. TLS
  descriptors are aarch64's default dialect, so the configs compile with no dialect
  flag and still exercise clang's TLSDESC codegen, on any clang version.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The leg was introduced with --minimum-run 1 as a placeholder, which would stay
green if nearly every aarch64 fixture silently stopped running. 509 is the first
green run's count.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@zackees
zackees merged commit e94783b into main Sep 18, 2026
28 checks passed
@zackees
zackees deleted the feat/meta-work-194 branch September 18, 2026 21:57
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.

acceptance: wild's ELF suite green on x86_64 and aarch64; riscv/loong/ppc marked unverified (reld#6 P2-T1)

1 participant