[C++-sig] [Python-Dev] GCC version compatibility
cludwig at cdc.informatik.tu-darmstadt.de
Tue Jul 12 09:47:55 CEST 2005
On Tue, Jul 12, 2005 at 01:07:56AM +0200, "Martin v. Löwis" wrote:
> Christoph Ludwig wrote:
> > Yes, but on ELF/Linux the default configuration should be --without-cxx
> > in the first place. If the build instructions make it sufficiently clear that
> > you should prefer this configuration whenever possible then this should be a
> > non-issue on platforms like ELF/Linux.
> Some users will complain about this. Specifying --without-cxx also
> causes configure not to look for a C++ compiler, meaning that distutils
> won't know what the C++ compiler is, meaning that it will link extension
> modules with the C compiler instead.
If I understood Dave Abraham's reply somewhere above in this thread correctly
then you can build different C++ extension modules with different C++
compilers on ELF/Linux. (I don't have the time right now to actually try it,
sorry.) There is no need to fix the C++ compiler as soon as python is built.
If distutils builds C++ extensions with the C compiler then I consider this a
bug in distutils because it is unlikely to work. (Unless the compiler can
figure out from the source file suffixes in the compilation step *and* some
info in the object files in the linking step that it is supposed to act like a
C++ compiler. None of the compilers I am familiar with does the latter.)
distutils should rather look for a C++ compiler in the PATH or explicitly ask
the user to specify the command that calls the C++ compiler.
It is different if --with-cxx=<compiler> was used. I agree that in this case
distutils should use <compiler> to build C++ extensions.
(distutils does not behave correctly when building C++ extensions anyway. It
calls the C compiler to compile the C++ source files and passes options that
gcc accepts only in C mode. The compiler version I am using is docile and only
issues warnings. But these warnings are unnecessary and and I would not blame
gcc if the next compiler release refused to compile C++ sources if the command
line contains C specific options. But the distutils mailing list is a better
place to bring this eventually up, I guess.)
More information about the Cplusplus-sig