On Sep 13, 2006, at 18:46, [EMAIL PROTECTED] wrote: > > Building Python with C and then linking in extensions written in or > wrapped > with C++ can present problems, at least in some situations. I > don't know if > it's kosher to build that way, but folks do. We're bumping into such > problems at work using Solaris 10 and Python 2.4 (building > matplotlib, which > is largely written in C++), and it appears others have similar > problems: > > http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6395191 > http://mail.python.org/pipermail/patches/2005-June/017820.html > http://mail.python.org/pipermail/python-bugs-list/2005-November/ > 030900.html > > I attached a comment to the third item yesterday (even though it was > closed). > > One of our C++ gurus (that's definitely not me!) patched the Python > source > to include <wchar.h> at the top of Python.h. That seems to have > solved our > problems, but seems to be a symptomatic fix. I got to thinking, > should we > a) encourage people to compile Python with a C++ compiler if most/ > all of > their extensions are written in C++ anyway (does that even work if > one or > more extensions are written in C?), or b) should the standard > distribution > maybe include a toy extension written in C++ whose sole purpose is > to test > for cross-language problems?
Mixing of C and C++ code is fully supported by the compilers and linkers. There is no need to compile the python core as C++ code, indeed if you did only C++ extension could use it! In the distent past there had been problems with some unix distributions linking python in such a way that C++ code would not initialise. The major distributions seem to have sort these problems out. But clearly Solaris has a problem. It would be worth finding out out why it was necessary to include <wchar.h> to fix the problems. If you do add a C++ test extension it will need to do what ever it was that <wchar.h> fixes. From what I can remember attempts to use std::cout would fail and I think static object initialisation would fail. The test code would need to do all these things and verify they are working. Barry (PyCXX cxx.sourceforge.net) _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com