
Jim Douglas wrote:
...We have a solution for Boost.Python, but just haven't implemented it as yet. I was hoping for time to achieve something optimal, but the rush towards 1.34 means that it will be more of a kludge. I promise it will get done early next week.
David, Here are the fixes that will ensure that the python library builds and passes the regression tests under QNX6 (both libraries). Two files need to be modified, type_id.cpp & python.jam. The diff files are attached. In type_id.cpp I have left the original conditional code intact and wrapped the additional QNX conditionals around it. The end result favours clarity over optimisation. Please remove the additional comments I added if you wish. I sincerely hope these changes will not cause other platforms to fail. Regards Jim Index: type_id.cpp =================================================================== RCS file: /cvsroot/boost/boost/libs/python/src/converter/type_id.cpp,v retrieving revision 1.15 diff -r1.15 type_id.cpp 14a15,18
#if defined(__QNXNTO__) # include <ostream> #else /* defined(__QNXNTO__) */
33a38
#endif /* defined(__QNXNTO__) */ 38,39c43,51 < # ifdef __GNUC__ < # if __GNUC__ < 3
# if defined(__QNXNTO__) namespace cxxabi { extern "C" char* __cxa_demangle(char const*, char*, std::size_t*, int*); } # else /* defined(__QNXNTO__) */
# ifdef __GNUC__ # if __GNUC__ < 3
43c55 < # else ---
# else 47c59 < # if __GNUC__ == 3 && __GNUC_MINOR__ == 0
# if __GNUC__ == 3 && __GNUC_MINOR__ == 0 52,54c64,67 < # endif < # endif < # endif
# endif /* __GNUC__ == 3 && __GNUC_MINOR__ == 0 */ # endif /* __GNUC__ < 3 */ # endif /* __GNUC__ */ # endif /* defined(__QNXNTO__) */
Index: python.jam =================================================================== RCS file: /cvsroot/boost/boost/tools/build/v1/python.jam,v retrieving revision 1.94 diff -r1.94 python.jam 88a89,92
else if $(OS) = QNXNTO { PYTHON_EMBEDDED_LIBRARY = python$(PYTHON_VERSION) ; }