Skip to content
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 macOS SDK baseline #2178

Merged
merged 1 commit into from
May 12, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions docs/maintainer/knowledge_base.md
Original file line number Diff line number Diff line change
Expand Up @@ -1708,9 +1708,9 @@ You need to rerender the feedstock after this change.

## Requiring newer macOS SDKs

conda-forge uses macOS SDK 10.9 to build software so that they can be deployed to
all macOS versions newer than 10.9. Sometimes, some packages require a newer SDK
to build with. While the default version 10.9 can be overridden using the following
conda-forge uses macOS SDK 10.13 to build software so that they can be deployed to
all macOS versions newer than 10.13. Sometimes, some packages require a newer SDK
to build with. While the default version 10.13 can be overridden using the following
changes to the recipe, it should be done as a last resort. Please consult with
core team if this is something you think you need.

Expand All @@ -1719,13 +1719,13 @@ To use a new SDK, add the following in `recipe/conda_build_config.yaml`
```yaml
# Please consult conda-forge/core before doing this
MACOSX_SDK_VERSION: # [osx and x86_64]
- "10.12" # [osx and x86_64]
- "10.15" # [osx and x86_64]
```

Note that this should be done if the error you are getting says that a header is not
found or a macro is not defined. This will make your package compile with a newer SDK
but with `10.9` as the deployment target.
WARNING: some packages might use features from `10.12` if you do the above due to
but with `10.13` as the deployment target.
WARNING: some packages might use features from `10.15` if you do the above due to
buggy symbol availability checks. For example packages looking for `clock_gettime`
will see it as it will be a weak symbol, but the package might not have a codepath
to handle the weak symbol, in that case, you need to update the `c_stdlib_version`
Expand All @@ -1737,9 +1737,9 @@ is available only for macOS x.x, then do the following in `recipe/conda_build_co
```yaml
# Please consult conda-forge/core before doing this
c_stdlib_version: # [osx and x86_64]
- "10.12" # [osx and x86_64]
- "10.15" # [osx and x86_64]
MACOSX_SDK_VERSION: # [osx and x86_64]
- "10.12" # [osx and x86_64]
- "10.15" # [osx and x86_64]
```

In `recipe/meta.yaml`, add the following to ensure that the user's system is compatible.
Expand All @@ -1761,7 +1761,7 @@ The libc++ library uses Clang availability annotations to mark certain symbols a
unavailable when targeting versions of macOS that ship with a system libc++
that do not contain them. Clang always assumes that the system libc++ is used.

The conda-forge build infrastructure targets macOS 10.9 and some newer C++ features
The conda-forge build infrastructure targets macOS 10.13 and some newer C++ features
such as `fs::path` are marked as unavailable on that platform, so the build aborts:

```bash
Expand Down