
Hello all,
Into Boost, this macro is defined between a !defined
# if !defined(__CYGWIN__) && !defined(__QNXNTO__)
# define BOOST_TEST_USE_ALT_STACK
# endif
Should we add a C++ macro provided by the compiled to disable this define ?
That seems to be the right thing to do since sigaltstack doesn't
appear to be valid on your platform.
I recompiled boost.test using gcc of the compute node (not xlc). I use gcc because the performances
of xlc with meta-programming are bad (the inlining does not work). For my work, I utilise an experimental clang + boost compiled with gcc.
So into 1.54/include/boost/test/impl/execution_monitor.ipp, I did
176 # if !defined(__CYGWIN__) && !defined(__QNXNTO__) &&! defined(__bgq__)
177 # define BOOST_TEST_USE_ALT_STACK
178 # endif
I recompiled the library, and my tests using static link or the include version of the lib (I use a large sets of feature of the framework)
I have a correct execution of my tests with the patch.
Can you verify that this function is not supported on Bluegene/Q?
If it is not supported, then it seems that the right change is to add
a check for __bgq__ or __bg__ and not define BOOST_TEST_USE_ALT_STACK
if the appropriate symbol is defined.
We test a small test case (thank Sam): "BG/Q compute nodes do not support the establishment of an alternate signal stack using sigaltstack() and sigaction().
The example code when compiled with bgxlc & gcc (compute node) and run on a compute node produces an error output."
#include