[Python-Dev] Linux Python linking with G++? (original) (raw)
David Abrahams dave at boost-consulting.com
Sun Jul 10 15:30:02 CEST 2005
- Previous message: [Python-Dev] Linux Python linking with G++?
- Next message: [Python-Dev] Linux Python linking with G++?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"Martin v. Löwis" <martin at v.loewis.de> writes:
David Abrahams wrote:
Not entirely. By extending Modules/Setup
You mean http://cvs.sourceforge.net/viewcvs.py/python/python/dist/src/Modules/Setup.dist?view=markup ? I mean Modules/Setup. It is generated from Modules/Setup.dist (plus some additional information) in the build process. I contend that either: a. Anyone making that sort of extension with a C++ module should explicitly request --with-cxx, or b. The python build system should automatically detect that --with-cxx is needed based on the presence of C++ extension modules. Frankly I think b. would require an impractical amount of work and, speaking as an author of C++ extension modules, I don't think a. is much of a burden to impose. It is the burden of change.
Well, as you say:
What has changed now is that the configure test suddenly determines that you need to link with g++ on Linux if main was compiled with g++. This was not the case before, but now is (since g++ 3.2 or something).
Contributions are welcome.
Let me first try to discover what contribution would be acceptable. What if:
we add a configure test that runs after the existing test determines that --with-cxx is needed (but not when --with-cxx is explicitly specified on the command line)
This test runs a 'C' executable that tries to load a C++ dynamic library with dlopen.
The test returns an error code if the the dynamic library's static and dynamic initializers have not been run properly
If the test fails we disable --with-cxx
??
I'm trying to intrude on the existing behavior as little as possible, yet get the semantics we want for ELF/Linux in a way that stands a good chance of generalizing to other platforms.
However, you will find that with a), people will still pass --with-cxx, because they tend to "enable" all features they can find.
That's acceptable to me. We could probably circumvent some of those cases by improving the configure --help text.
I personally could accept --with-cxx and ccpython.cc to be removed again, but I'm uncertain whether that may break distutils in some way.
Well, that would certainly be an easy "solution," but it would break HP/UX, and it would break anyone that needs to statically link C++ modules on some platforms. It's a much more drastic change than it would be to only have the system use --with-cxx when the person running configure asks for it explicitly.
-- Dave Abrahams Boost Consulting www.boost-consulting.com
- Previous message: [Python-Dev] Linux Python linking with G++?
- Next message: [Python-Dev] Linux Python linking with G++?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]