crystal-lang/crystal

Linker on macOS prints excessive warnings in CI

straight-shoota opened this issue · 8 comments

The linker on macOS prints such as warning for every individual object file:

ld: warning: object file (I-O-5858B-yteF-ormat5858B-igE-ndian.o0.o) was built for newer macOS version (14.0) than being linked (11.0)

Example CI run: https://github.com/crystal-lang/crystal/actions/runs/11521615235/job/32075666471?pr=15127

The log is spammed with about ~87k of these warnings, which is just excessive. It's basically unusable through the GitHub web UI. You can still download the entire job log as a text file.

Anyway, we should not get that many warnings.
Ideally, we need to fix this. Or at least silence the warnings.

I'm not familiar with macOS build system, so I'm not sure what this warning even means or what we're suppose to do.

This has previously been mentioned in #14835

This is likely an instance of #13846, although I thought it was fixed with #14466

We might want to try using a new version of LLVM (#14651).

Updating to LLVM 18.1 does not make the warnings go away. Was worth a try 🤷

will commented

For what it's worth, I'm getting this locally again with 1.14 on an arm mac on macos 15.1

XCode in CI is outdated, maybe updating that would help?

Could someone try the compiler build from #15164 to check if it still produces warnings?
https://app.circleci.com/pipelines/github/crystal-lang/crystal/16413/workflows/98d80cfd-d8e5-41e8-8469-07129eca4ce8/jobs/86925/artifacts

Interestingly enough I'm on 1.14 on an arm mac on macos 15.1 and I'm not currently having any problems. @will what xcode version are you on? I'm apparently on 16.1 installed via CommandLineTools versus actual xcode.

EDIT:

$ xcode-select -p
/Library/Developer/CommandLineTools

$ pkgutil --pkg-info=com.apple.pkg.CLTools_Executables | grep version
version: 16.1.0.0.1.1729049160

@Blacksmoke16 I'm on 15.1 and this is what I'm seeing for xcode:

❯ xcode-select -p
/nix/store/4s8z8il6zyq77ixy4b8kfzwsnz90vsrm-apple-sdk-11.3

I could get this on nix-shell only after building a local compiler first. It seems this might be affected by NixOS/nixpkgs#346043