Skip to content

ci: adopt shared tccbin conformance test suite#69

Merged
GGRei merged 1 commit into
vlang:thirdparty-linux-amd64from
quaesitor-scientiam:add-shared-conformance-ci
Jul 24, 2026
Merged

ci: adopt shared tccbin conformance test suite#69
GGRei merged 1 commit into
vlang:thirdparty-linux-amd64from
quaesitor-scientiam:add-shared-conformance-ci

Conversation

@quaesitor-scientiam

Copy link
Copy Markdown

Wires this branch into the shared cross-platform conformance suite
(thirdparty/tccbin_tests in vlang/v) already running on
thirdparty-windows-amd64's CI — same shared/hello.c, gc_alloc.c,
crash.c tests, so a regression in this branch's rebuild pipeline
gets caught the same way it would on Windows, instead of only being
noticed by hand.

No rebuild here — this validates the already-committed tcc.exe /
lib/libgc.a as-is against the shared suite.

Verified locally (WSL/Ubuntu 24.04) against this branch's real
committed binaries, using the exact checkout layout this workflow
uses: 3/3 shared tests pass, including gc_alloc.c linked against
this branch's own libgc.a.

One non-obvious thing worth calling out for reviewers: the bundled
tcc.exe resolves its own crt1.o/crti.o/crtn.o/libtcc1.a via
a baked-in thirdparty/tcc/... path relative to the process's working
directory (not via -B or argv0) — that's why this branch is checked
out to work/thirdparty/tcc and the test step runs with
working-directory: work, mirroring thirdparty-windows-amd64's
existing checkout convention. Running it from an arbitrary directory
produces confusing "library not found"/"undefined symbol" errors
that look like a real compatibility bug but aren't — I went down that
path first before finding the actual cause.

tcc may also print libgc.a: error: 'GC_noop1_ptr' defined twice
during the gc_alloc/hello compiles — this is benign: the shared
suite's gc.h provides a weak fallback definition of that symbol (for
vlang/v#27179, so the header works from plain C), and tcc's ELF linker
reports the collision as a diagnostic but still keeps the strong
definition from libgc.a and links successfully. Confirmed locally
(binary runs fine despite the message).

TODO: thirdparty/tccbin_tests isn't in vlang/v yet (open PR
vlang/v#27924), so this points at the fork branch it's proposed on.
Once/if that merges, this should switch to repository: vlang/v at a
real commit.

Wires this branch into vlang/v's shared cross-platform tccbin_tests
suite (thirdparty/tccbin_tests), the same shared/hello.c, gc_alloc.c,
crash.c tests already run on thirdparty-windows-amd64's CI. No rebuild
here - this validates the already-committed tcc.exe/lib/libgc.a as-is.

The checkout layout (this branch at work/thirdparty/tcc) matters: the
bundled tcc.exe resolves its own crt1.o/crti.o/crtn.o/libtcc1.a via a
baked-in "thirdparty/tcc/..." path relative to the process's working
directory, not via -B or argv0. Verified locally (WSL/Ubuntu 24.04)
against this branch's real committed binaries with this exact layout:
3/3 shared tests pass, including gc_alloc.c against the branch's own
libgc.a.

TODO: thirdparty/tccbin_tests isn't in vlang/v yet (open PR
vlang/v#27924), so this points at the fork branch it's proposed on.
Once/if that merges, switch to `repository: vlang/v` at a real commit.
@GGRei

GGRei commented Jul 24, 2026

Copy link
Copy Markdown

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Bravo.

Reviewed commit: 4e213d7029

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@GGRei
GGRei merged commit 00d6c11 into vlang:thirdparty-linux-amd64 Jul 24, 2026
1 check passed
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.

3 participants