I am trying to build a number of projects that use Python extensions on Solaris 10 and I've discovered that nothing with extensions will link unless I explicitly pass in a '-L/path/to/python/lib/dir' because libpython2.5.so is not otherwise found when the '-lpython2.5' argument is specified during linking. This doesn't seem right as I don't have to specify this explicitly on Linux or Windows.

Admittedly I'm using a custom built Python, so perhaps I missed some configure argument? Here's my Python build process:

./configure --prefix=/home/dpeterson/py/build --enable-shared
make
make test
make install

It is built with the gcc provided by Sun in a default install of Solaris 10, which means the gcc compiler and the sun linker. "gcc -v" gives:

Reading specs from /usr/sfw/lib/gcc/i386-pc-solaris2.10/3.4.3/specs
Configured with: /builds/sfw10-gate/usr/src/cmd/gcc/gcc-3.4.3/configure --prefix=/usr/sfw --with-as=/usr/sfw/bin/gas --with-gnu-as --with-ld=/usr/ccs/bin/ld --without-gnu-ld --enable-languages=c,c++ --enable-shared
Thread model: posix
gcc version 3.4.3 (csl-sol210-3_4-branch+sol_rpath)


If that all seems correct, then it appears the issue is the finalize_options() source in lib/distutils/commands/build_ext.py. There are a number of "if" blocks that explicitly append the value of distutils.sysconfig.get_config_vars('LIBDIR') to the list of library_dirs used to link built extensions with. However, there doesn't seem to be one of these for Solaris / sunos. Is this just an oversite? I've verified that adding a simple block with a 'sunos' value gate solves the problem and I no longer need to be explicit about providing '-L'. Am I missing something or should this patch be submitted as a bugfix on the issue tracker?


-- Dave

_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to