
Gennadiy Rozental wrote:
The error is in test/impl/execution_monitor.ipp, lines 86-88.
# include <unistd.h> # include <signal.h> # include <setjmp.h>
These include files are defined in CW's standard library (MSL) and they hide the ones in /usr/include. The MSL doesn't seem to define the full (or maybe the correct) set of signal handling functions and structures.
Xpressive's test_static and test_dynamic compile and run without error if I change the includes to
# include </usr/include/unistd.h> # include </usr/include/signal.h> # include </usr/include/setjmp.h>
Can anyone suggest a workaround for this?
I don't think it's really Boost.Test problem. But if you have any specific patch I may consider it.
Clearly, the problem here is in Metrowerks' standard library, but Boost.Test needs a work-around. The fact that changing a Boost.Test header file makes xpressive's tests pass seems to prove it. I don't know what the work-around is, and I don't have the platform, so I can't submit a patch. Sorry. But it might be as simple as something like: #if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3206)) # include </usr/include/unistd.h> # include </usr/include/signal.h> # include </usr/include/setjmp.h> #else # include <unistd.h> # include <signal.h> # include <setjmp.h> #endif HTH, -- Eric Niebler Boost Consulting www.boost-consulting.com