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

Packages that require new OSX SDKs #891

Closed
allanleal opened this issue Oct 9, 2019 · 22 comments
Closed

Packages that require new OSX SDKs #891

allanleal opened this issue Oct 9, 2019 · 22 comments

Comments

@allanleal
Copy link

Issue:

We have moved from C++14 to C++17 and there are now a couple of issues when building our library on conda-forge. I'll focus for now on the OSX issue only. When compiling our Python bindings using pybind11, with clang 9.0.0, we get errors with a note as this:

note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;

We have already investigated this issue in the web, and we now add the compile options -fno-aligned-allocation -fno-sized-deallocation, which have been enough to solve the exact same issue in our own machines (making sure clang 9.0.0 from conda-forge is used). However, the issue is not resolved with these options when compiling in a conda-forge environment. Full build log available in this Azure link.

@isuruf has pointed out that this is due to an older SDK and a newer one could be provided as a solution.

The full build log (with all env and conda system info) in this text file:

conda-forge-osx-build-log.txt

@isuruf
Copy link
Member

isuruf commented Oct 9, 2019

It is possible to override this like https://github.com/conda-forge/qt-feedstock/blob/master/recipe/conda_build_config.yaml

Issue is that it is impossible atm to prevent users on older systems installing packages targeting newer ones. We should come up with a strategy as the number of packages needing this is slowly rising. From 1 package (qt) from several months ago to a handful now.

I though about a package like macos_ver that is a dependency of all compiled packages, but conda solver always installs the latest possible version, so this might become confusing.

cc @kalefranz, @mingwandroid, @conda-forge/core, @conda-forge/staged-recipes

@isuruf isuruf changed the title Compile errors in OCX due to old SDK Packages that require new OSX SDKs Oct 9, 2019
@allanleal
Copy link
Author

Thanks @isuruf . @tadeu pointed out that this other conda_build_config.yaml, for mesalib, is also a possible solution. Can you comment which one would be more adequate (if this at all matters)?

@beckermr
Copy link
Member

@beckermr
Copy link
Member

To be clear, we could have one that indicates greater than or equal to 10.12 osx support. Ditto for 10.9.

@isuruf
Copy link
Member

isuruf commented Oct 16, 2019

Yes. A virtual package seems like the correct approach. I'm sure @kalefranz and @mingwandroid will accept a PR for conda.

@jjhelmus
Copy link
Contributor

For reference, conda/conda#8267 is the PR where the __cuda virtual package was implemented. That was the first (and right now only) virtual package. Hopefully with the framework in place adding more virtual packages will require fewer additions to conda.

@beckermr
Copy link
Member

Sounds good. I am backed up on PRs ATM so no promises. :)

@beckermr
Copy link
Member

Here is a PR. I need to sign the CLA which will take time with my local lawyers.

conda/conda#9349

@jakirkham
Copy link
Member

Also issue ( conda/conda#9348 ) about adding virtual packages to track system C library version may be of interest.

@isuruf
Copy link
Member

isuruf commented Nov 11, 2019

We need to send PRs to the following feedstocks with run_constrained added as in https://conda-forge.org/docs/maintainer/knowledge_base.html#requiring-newer-macos-sdks

  • openmpi
  • qt
  • pyqt
  • nodejs
  • javafx-sdk
  • reaktoro
  • ldas-tools-al
  • freecad

cc @conda-forge/openmpi, @conda-forge/qt, @conda-forge/pyqt, @conda-forge/javafx-sdk, @conda-forge/reaktoro, @conda-forge/ldas-tools-al, @conda-forge/freecad, @conda-forge/core

@marcelotrevisani
Copy link
Member

Cc: @allanleal

@beckermr
Copy link
Member

See this one for openmpi: conda-forge/openmpi-feedstock#49

@klugem
Copy link

klugem commented Nov 12, 2019

We need to send PRs to the following feedstocks with run_constrained added as in https://conda-forge.org/docs/maintainer/knowledge_base.html#requiring-newer-macos-sdks

  • javafx-sdk

Done.

@looooo
Copy link
Contributor

looooo commented Nov 12, 2019

please review: conda-forge/freecad-feedstock#31

@beckermr
Copy link
Member

beckermr commented Nov 12, 2019

@allanleal
Copy link
Author

Hi guys, thanks a lot for this fix.

I'm wondering if we need to do anything with recipe/conda_build_config.yaml in reaktoro-feedstock? We have this config in there:

MACOSX_DEPLOYMENT_TARGET:  # [osx]
  - '10.12'                # [osx]

@beckermr
Copy link
Member

We keep this as is.

@beckermr
Copy link
Member

I put up a PR for the repo data patches.

@beckermr
Copy link
Member

We still need to merge the nodejs PR.

@beckermr
Copy link
Member

beckermr commented Nov 15, 2019

And silly me made the wrong PR for the repo data. I will redo now.

@beckermr
Copy link
Member

fixed.

@isuruf
Copy link
Member

isuruf commented Nov 16, 2019

Thanks @beckermr

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

8 participants