-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update cross compile job #178
Update cross compile job #178
Conversation
…ockcross repository after rebasing to Debian Bookworm
Interesting, I hadn't thought of this. No objections.
According to the this wiki article, the oldest is now The actions code that coerces this is here: jssc/.github/workflows/cross-compile.yml Lines 163 to 165 in 8dd99a4
... however, I'm unsure as to whether or not this will impact the ARM64 builds, they don't seem to have an SDK hard-coded... Perhaps we should remove the conditional and change the URL to use the variable? - if: ${{ matrix.sdk-version == 'MacOSX10.9.sdk' }}
[...]
- wget -qO- https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX10.9.sdk.tar.xz \
+ wget -qO- https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/${matrix.sdk-version}.tar.xz \ |
bfbf2ca
to
eb9542e
Compare
Good point, SDKs shipped in
So downloading 11.0 explicitly should happen. |
Thanks! I wanted to see if there was a way to validate that we're compiling for the platform that we expect. I've proposed a This should allow us to review the CI logs to ensure we're compiling for the target platform that we think we are. |
@pietrygamat just bumping this request to PR against your fork here. It should allow us to see the target OS version from CI. |
Hmm... both CI runs on the PR show https://github.com/pietrygamat/jssc/actions/runs/12266284483/job/34224117544#step:5:186 |
…s after deprecating macos-11
eb9542e
to
263ce36
Compare
Found the issue, the
Looks like we have been doing it wrong all the time. This however shows, that the project does not build in OSX x64 |
C is not my thing, so I have ChatGPTd the error:
and tried the first thing it suggested:
which fixes compilation, but the output file works weirdly with otool (no |
I think If you look at the CI job, it does show the minimum OS version:
Per a comment on this post, I've updated the code here: pietrygamat@3eb6b59. |
This is great, thanks! |
Oh, I just realized this commit never made it to this PR, it's how I would do it. The other option if we're worried about old compilers is to use an older assertion technique but I don't think that's warranted. |
Here's where I'd place them in the CMakeLists.txt file pietrygamat@c7eecb2. |
Echo minos value of binary when compiling for macOS
@pietrygamat thanks for merging the minos feature. I'm scratching my head though... why do your own runs show the correct values, but the CI runs in this PR don't? Your CI run:
This CI run:
|
@tresf it seems the pipeline definitions are loaded from repo's master branch only, and not from the branch selected for the run. |
Well, that would be the case for cross-compile manually triggered job. But the PRs are triggering a different workflow, where the env variables are not set. |
Ok. I thought this may be happening because the CI step numbers differ. I'm a bit confused by this but I assume it'll be sorted prior to merging this PR. |
…ibility with older SDKs
OK, I have updated the workflow that is triggered automatically for PRs with the same configuration. Should we be worried about these deprecation warnings in OSX x86_64 build? |
In classic Apple fashion, there's nearly no information about this. "Text based stubs" or " Pasting the CI's warnings here for others:
Apple does document this flag, but without knowledge of the history and/or inner workings of this flag, understanding it's implication is difficult. I took the question to meta.ai, which seems to offer some more insight... quoting:
... so this means that we can do ONE OF three things:
If we're to fix it now, we may consider bumping our minos version requirement to 10.12 as well. As to the ACTUAL impact of this incompatible, I'm uncertain. I would assume that macOS will continue to read these stubs from the Mach-O Headers for the foreseeable future and break it in a major OS update. It's also possible that they've already killed these on newer (e.g. M1) OS flavors and that it's a benign warning for an architecture that'll never actually see the technology killed off. From a project perspective, I'm OK ignoring the warning for now. Worst case, users complain and we bump the minos and make a new release. |
So it's ready to merge then? |
Yes. If and when Apple breaks this, we can revisit (or it will go away naturally when our SDK raises in version number) |
Cross compilation Github action got obsoleted again:
openjdk-11-jdk
. As the cross compilation does not really care about the class level, it does not hurt us to update to openjdk-17-jdk.macos-11
runner type got obsoleted, the oldest now beingmacos-latest
, akamacos-14
.