Hello all,
while this topic is still on, here's a challenge for the community:
* can features like this be generalized at a deeper level, so that individual
easyblocks actually need NOT be extended in isolation, but rather have a
generic mechanism? (i am asking this because I don't imagine yet any obvious
answer...)
However, I'd consider generalizing this kind of needs as a very desirable
approach,
to optimize against configuration clutter.
tia for any ideas!
F.
--
echo "sysadmin know better bash than english" | sed s/min/mins/ \
| sed 's/better bash/bash better/' # Yelling in a CERN forum
________________________________________
From: [email protected] [[email protected]] on
behalf of Kenneth Hoste [[email protected]]
Sent: Wednesday, March 21, 2018 20:05
To: [email protected]; Jure Pečar
Subject: Re: [easybuild] CXX11 ABI
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