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

conda: get Boost library with Python version #134

Merged
merged 3 commits into from
Jan 29, 2020
Merged

conda: get Boost library with Python version #134

merged 3 commits into from
Jan 29, 2020

Conversation

bkpoon
Copy link
Member

@bkpoon bkpoon commented Jan 28, 2020

This adds the Python version number, if necessary, to the Boost.Python library. This enables the linking of Boost libraries from conda packages. However, linking only works with compilers that are ABI compatible with the ones used to build the conda packages.

Copy link
Member

@Anthchirp Anthchirp left a comment

Choose a reason for hiding this comment

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

This sounds interesting - and timely given that I found out today that we can't use the boost libraries from conda (dials/dials@c37a4c9).

How far away do you think we are from making that happen?

Otherwise - I will run full checks post-merge.

SConscript Outdated Show resolved Hide resolved
SConscript Show resolved Hide resolved
bkpoon and others added 2 commits January 28, 2020 13:03
Co-Authored-By: Markus Gerstel <2102431+Anthchirp@users.noreply.github.com>
@bkpoon
Copy link
Member Author

bkpoon commented Jan 28, 2020

I saw your changes to the DIALS environments, so I figured now would be a good time to merge this branch. The main problem with using Boost from conda-forge is an ABI issue with GCC (https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html). I have boost and boost-cpp built with the old ABI in the cctbx-old-abi channel. Those packages will work with CentOS 6, CentOS 7, and Ubuntu 14.04. However, those packages probably won't link correctly with msgpack-c from conda-forge. However, if you only care about the headers from msgpack-c, then it doesn't matter (which is why the current CCTBX environments have msgpack-c, but no boost-cpp), but you might get messages from conda about inconsistent environments.

I have CCTBX building with the boost packages, but this change is only necessary if code is being linked to Boost.Python libraries.

@bkpoon
Copy link
Member Author

bkpoon commented Jan 28, 2020

Also, the newpy branch in cctbx_project is not necessary for you to build with the conda packages of Boost. That branch basically has updated environments and enables tests for Python 3.7 and 3.8.

As long as you do not have a boost directory in modules, and the boost and boost-cpp packages are in your conda environment, the build should work. It's safest to delete your existing build directory in case of leftover Boost objects/libraries.

Copy link

@phyy-nx phyy-nx left a comment

Choose a reason for hiding this comment

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

Similar to what we did for psana1, I believe. Looks good to me.

@Anthchirp Anthchirp merged commit 0872b3a into master Jan 29, 2020
@Anthchirp Anthchirp deleted the newpy branch January 29, 2020 08:09
@bkpoon bkpoon mentioned this pull request Sep 18, 2020
7 tasks
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.

None yet

3 participants