-
Notifications
You must be signed in to change notification settings - Fork 283
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
[WIP] improve config checks for Boost.MPI and Boost.Python #2167
base: develop
Are you sure you want to change the base?
Conversation
I was testing this with all the existing Boost easyconfigs and it is failing with Boost-1.70.0-iimpi-2019a.eb, boost_mpi is not being built although it's supposed to... it seems that the But except for Boost-1.70.0-iimpi-2019a.eb, it works with all the other easyconfigs, including Boost-1.70.0-gompi-2019a.eb... Update: this particular issue was unrelated to this PR and a local problem, it disappeared after reinstalling the intel/2019a toolchain. |
also, this seems to break all the Boost.Python easyconfigs - bjam doesn't seem to like the explicit |
@migueldiascosta thanks for the tests! I'll check those issues ASAP |
@migueldiascosta Enabling and disabling features in the build step is indeed not trivial and breaks |
The following tests on Boost with and without Python are all positive:
|
The following tests on Boost.Python are positive:
|
Tests on a few hypothetical cases:
|
Test report by @migueldiascosta Overview of tested easyconfigs (in order)
Build succeeded for 20 out of 20 (19 easyconfigs in total) |
Test report by @migueldiascosta Overview of tested easyconfigs (in order)
Build succeeded for 33 out of 34 (34 easyconfigs in total) |
@lexming this breaks |
This is needed to fix the test in easybuilders/easybuild-easyconfigs#11145
There are three fixes:
x64
suffixboost_mpi
is False: there is a possible case of havingusempi=True
andboost_mpi=False
and in the current easyblock Boost MPI is builtremove settingusempi=True
in line 142 ifboost_mpi=True
, the MPI sanity check in line 119 will never allow a situation where that is neededUpdate:
Disabling MPI is not as simple as adding
--without-mpi
tob2
. The build command only allows for the set of features to be either enabled or disabled, not a mixture of both. Therefore, I revamped the configuration step by adding additional checks onconfigopts
,boost_mpi
and the toolchain. These changes not only explicitly disable MPI ifboost_mpi
is not True, but also check settings provided by the easyconfig inconfigopts
.I also added similar checks for Python. From now on, adding
--without-libraries=python
toconfigopts
won't be necessary in the easyconfigs of Boost, it will be automatically added if Python is not in the dependency list.Behaviour of existing easyconfigs should be unaffected by this PR.