diff --git a/docs/maintainer/knowledge_base.md b/docs/maintainer/knowledge_base.md index 05ab9633df..8901960281 100644 --- a/docs/maintainer/knowledge_base.md +++ b/docs/maintainer/knowledge_base.md @@ -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. @@ -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` @@ -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. @@ -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