Fix CI failures from updated runner images (deriveConstants, ld warnings)#180
Merged
Merged
Conversation
The macOS-13 GitHub Actions runner now ships with Homebrew llvm@18, whose libunwind triggers a linker warning on every invocation: ld: warning: reexported library with install name '/usr/local/opt/llvm@18/lib/libunwind.1.dylib' ... couldn't be matched with any parent library and will be linked directly This causes ~190 spurious test failures (bad stderr / stderr mismatch) on the Mac x86_64 CI. Filter the warning in both normalise_errmsg and normalise_output, alongside the existing macOS ld warning patterns.
Recent macOS and Windows CI runner images set CC to include flags (e.g. "/usr/bin/cc -std=gnu23"). The --gcc-program argument was passed directly to rawSystem which treats the entire string as an executable path, causing: deriveConstants: /usr/bin/cc -std=gnu23: rawSystem: posix_spawnp: does not exist (No such file or directory) Split the --gcc-program value on whitespace: the first word becomes the program path, remaining words are prepended to the gcc flags.
This was referenced Apr 4, 2026
On Windows (MSYS2/CLANG64), the _utime function expects a struct _utimbuf pointer. The CUtimbuf CTYPE was declared as "struct utimbuf" which worked when clang treated them as compatible, but with -std=gnu23 (now the default on updated CI runner images) clang errors on the type mismatch: incompatible pointer types passing 'struct utimbuf *' to parameter of type 'struct _utimbuf *' Use the correct Windows type name in the CTYPE pragma.
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.
Summary
Fixes CI build/test failures caused by updated GitHub Actions runner images.
CCto"/usr/bin/cc -std=gnu23".deriveConstantspassed the entire string torawSystemas an executable path, failing on Mac x86_64, Mac aarch64, and Windows.struct _utimbufon Windows — With-std=gnu23, clang on MSYS2/CLANG64 now errors on the type mismatch betweenstruct utimbuf(POSIX) andstruct _utimbuf(Windows_utimeparameter). Use the correct Windows type name in the CTYPE pragma.llvm@18, whoselibunwindtriggers a linker warning on everyldinvocation, causing ~190 spurious test stderr mismatches onTest binary (Mac x86_64).Test plan
Test binary (Mac x86_64)passes (reexported library warning filtered)ghc-internalcompiles without-Wincompatible-pointer-typeserror