Skip to content

[Build] Update MACOSX_DEPLOYMENT_TARGET to macOS 11#3185

Merged
HannesWell merged 1 commit intoeclipse-platform:masterfrom
HannesWell:increase-mac-deploymenttarget
Apr 8, 2026
Merged

[Build] Update MACOSX_DEPLOYMENT_TARGET to macOS 11#3185
HannesWell merged 1 commit intoeclipse-platform:masterfrom
HannesWell:increase-mac-deploymenttarget

Conversation

@HannesWell
Copy link
Copy Markdown
Member

@HannesWell HannesWell commented Apr 2, 2026

macOS 10.10 aka OS X Yosemite, was released 2014, almost 12 years ago and I think there is a high chance that the currently built binaries don't work at that version at all. To my knowledge, there is no evidence that this is still a working value) According to the linked Wikipedia article macOS 10.10 received the last security patches 2017, 9 years ago, so one should really not use it anymore.

Furthermore SWT now requires Java-21:

Bundle-RequiredExecutionEnvironment: JavaSE-21

And at least the Oracle JDK-21 requires at least macOS 14:
https://www.oracle.com/java/technologies/javase/products-doc-jdk21certconfig.html
Temurin JDK-21 runs on macOS 12, but older macOS versions are not mentioned the support page (so their status is unclear):
https://adoptium.net/supported-platforms
Still the Gemini AI claims Temurin JDK-21 also runs on macOS 11, but fails to provide a reliable source.

At this moment we built and test on macOS 11 aka Big Sur (although this hardware is about to be replaced with at least), macOS 11 is proven to work at this moment.

Therefore my proposal is to move MACOSX_DEPLOYMENT_TARGET to 11.

According to the Project-Plan Eclipse actually only supports macOS 14 and later:
https://eclipse.dev/eclipse/development/plans.html?file=plans/eclipse_project_plan_4_40.xml

So this very minimal version would still be way below the 'actively' supported version.
And given that the two mac test and build machines are about to be replaced (see eclipse-platform/eclipse.platform.releng.aggregator#3315), the 'actively' supported version will probably be raised soon as well.

In order to verify the deployment target at least to some extend, this also attempts to enable the compiler options equivalent to the Xcode options

  • CLANG_WARN_UNGUARDED_AVAILABILITY = yes
  • GCC_TREAT_WARNINGS_AS_ERRORS = yes

@HannesWell HannesWell requested a review from HeikoKlare April 2, 2026 16:53
@HannesWell
Copy link
Copy Markdown
Member Author

CC @Phillipus and @BeckerWdf since you are also interested in macOS and maybe/probably also in the minimally supported versions.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 2, 2026

Test Results (macos)

   54 files  ±0     54 suites  ±0   7m 28s ⏱️ - 1m 30s
4 531 tests ±0  4 287 ✅ ±0  244 💤 ±0  0 ❌ ±0 
2 130 runs  ±0  2 068 ✅ ±0   62 💤 ±0  0 ❌ ±0 

Results for commit 5fe45e1. ± Comparison against base commit 8e9c223.

♻️ This comment has been updated with latest results.

@HannesWell HannesWell force-pushed the increase-mac-deploymenttarget branch from 72095c2 to 4bced23 Compare April 2, 2026 17:04
@HannesWell
Copy link
Copy Markdown
Member Author

  • GCC_TREAT_WARNINGS_AS_ERRORS = yes

That's only possible after the deprecation warnings have been resolved:

Or deprecation warnings are explicitly excluded.

Copy link
Copy Markdown
Contributor

@HeikoKlare HeikoKlare left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fully agree with bumping the minimal macOS version. Cutting off support for old versions that we do not properly test anyway is good to move foward and macOS 11 is still rather old anyway.

@HannesWell HannesWell force-pushed the increase-mac-deploymenttarget branch from 4bced23 to 527a168 Compare April 2, 2026 21:40
@Phillipus
Copy link
Copy Markdown
Contributor

See eclipse-equinox/equinox#473

HeikoKlare added a commit to HeikoKlare/eclipse.platform.swt that referenced this pull request Apr 4, 2026
Following the bump of the minimum supported macOS version to 11.0
(see eclipse-platform#3185),
this removes all code paths that were only needed for older macOS versions.

The search was performed by scanning all Java files in the cocoa-specific
directories for OS.VERSION comparisons and isBigSurOrLater() calls, then
removing branches that are now always-false (< some version < 11.0) or
inlining branches that are now always-true (>= some version <= 11.0).
@HannesWell
Copy link
Copy Markdown
Member Author

See eclipse-equinox/equinox#473

Thanks for the pointer, but I'm not exactly sure what the conclusion is?
Do you just want to point out that Equinox launcher already requries macOS 11 for some time?
Or does it lead to problems? Because as far as I understood the semantics of the minos and sdk values in the mac binaries, it's fine to run them on an OS lower than the sdk value as long as it's not lower than minos.

@Phillipus
Copy link
Copy Markdown
Contributor

Phillipus commented Apr 4, 2026

Do you just want to point out that Equinox launcher already requries macOS 11 for some time?

Yes. It just seemed a relevant reference.

@HannesWell HannesWell force-pushed the increase-mac-deploymenttarget branch 2 times, most recently from fb59245 to 6f693d0 Compare April 4, 2026 17:06
And enable the compiler options equivalent to the Xcode options
- CLANG_WARN_UNGUARDED_AVAILABILITY = yes
- GCC_TREAT_WARNINGS_AS_ERRORS = yes
@HannesWell HannesWell force-pushed the increase-mac-deploymenttarget branch from 6f693d0 to 5fe45e1 Compare April 8, 2026 15:14
@HannesWell
Copy link
Copy Markdown
Member Author

The new macOS agents are in place and the old ones are removed:

Therefore I think it's a good point to submit this.
Thanks everyone involved in this discussion!

@HannesWell HannesWell merged commit d8b38b0 into eclipse-platform:master Apr 8, 2026
19 checks passed
@HannesWell HannesWell deleted the increase-mac-deploymenttarget branch April 8, 2026 15:52
HannesWell pushed a commit to HeikoKlare/eclipse.platform.swt that referenced this pull request Apr 8, 2026
Following the bump of the minimum supported macOS version to 11.0
(see eclipse-platform#3185),
this removes all code paths that were only needed for older macOS
versions.

The search was performed by scanning all Java files in the
cocoa-specific
directories for OS.VERSION comparisons and isBigSurOrLater() calls, then
removing branches that are now always-false (< some version < 11.0) or
inlining branches that are now always-true (>= some version <= 11.0).
HeikoKlare added a commit to HeikoKlare/eclipse.platform.swt that referenced this pull request Apr 9, 2026
Following the bump of the minimum supported macOS version to 11.0
(see eclipse-platform#3185),
this removes all code paths that were only needed for older macOS
versions.

The search was performed by scanning all Java files in the
cocoa-specific
directories for OS.VERSION comparisons and isBigSurOrLater() calls, then
removing branches that are now always-false (< some version < 11.0) or
inlining branches that are now always-true (>= some version <= 11.0).
HeikoKlare added a commit that referenced this pull request Apr 10, 2026
Following the bump of the minimum supported macOS version to 11.0
(see #3185),
this removes all code paths that were only needed for older macOS
versions.

The search was performed by scanning all Java files in the
cocoa-specific
directories for OS.VERSION comparisons and isBigSurOrLater() calls, then
removing branches that are now always-false (< some version < 11.0) or
inlining branches that are now always-true (>= some version <= 11.0).
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