I was building Python 2.2.1 on Debian/GNU Linux 3.0
(testing pre-release) with gcc and g++ of version 3.0.4,
using --with-cxx=g++ configure option. Then linking of the
"python" executable fails due to an unresolved symbol
(__gxx_personality_v0) in Modules/ccpython.o, because
linking is still done with gcc: LINKCC is set to gcc ($CC)
by configure, rather than to g++ ($CXX).
The configure script attempts to determine the value of
LINKCC and sets it to $CC if the latter can
successfully link
the simplest program "int main(){return 0;}" which was
compiled with $CXX. In this case, linking apparently
succeeds, setting LINKCC to $CC. Yet linking of
Modules/ccpython.o with $CC fails, probably because
Modules/ccpython.c is slightly more complex than the
above configuration test, hence an extra unresolved
symbol generated by g++.
I am not sure how the correct value of LINKCC can be
determined at config time without unnecessarily using
$CXX all the time when it is available. Maybe the
makefile should be modified so it always starts from
$CC and falls through to $CXX if the former fails?
Sincerely,
Dr. Leonid Timochouk
Computing Laboratory
University of Kent at Canterbury
England
|