Dear Jure,

On 21/03/2018 13:34, Jure Pečar wrote:
Hi all,

We're working on getting the latest version of EMAN2 built through easybuild 
and since it is a mess, we're hitting some issues.

Most interesting one currently is that while we can get the thing to build, it 
fails with this error when we attempt to run it:

"TypeError: No registered converter was able to produce a C++ rvalue of type 
std::string from this Python object of type str"

We traced this down to Boost and it goes away if we build libboost_python.so 
with -D_GLIBCXX_USE_CXX11_ABI=0. Now the question is how we can build Boost 
with this set in CXXFLAGS.

There is a line in boost easyblock build_step picking up cxxflags from 
environment:
cxxflags = os.getenv('CXXFLAGS')

But we want to define CXXFLAGS in easyconfig itself so it won't get lost in the 
future.

Any suggestions?

Since the Boost easyblock resolves $CXXFLAGS, it will be hard to intervene...

The best approach here is probably to enhance the Boost easyblock so you can tell it to enable the use of -D_GLIBCXX_USE_CXX11_ABI=0 in a clean way, e.g. adding support for using this in a Boost easyconfig:

use_cxx11_abi = False


regards,

Kenneth

Reply via email to