This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Andy.Salnikov
Recipients Andy.Salnikov, eric.araujo, tarek
Date 2012-10-25.19:44:23
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1351194264.28.0.869819451271.issue16326@psf.upfronthosting.co.za>
In-reply-to
Content
Hi,

when trying to build extension modules with distutils I ran into
a problem that linking fails with an errors like:

gcc -pthread -shared -L build/temp.linux-x86_64-2.7/h5py/defs.o -L/reg/g/psdm/sw/external/hdf5/1.8.4p1/x86_64-rhel6-gcc44-opt/lib -L. -Wl,-R/reg/g/psdm/sw/external/hdf5/1.8.4p1/x86_64-rhel6-gcc44-opt/lib -lhdf5 -lpython2.7 -o build/lib.linux-x86_64-2.7/h5py/defs.so
/usr/bin/ld: cannot find -lpython2.7
collect2: ld returned 1 exit status

For some reason location of the python library is not added to the 
command line with -L option.

I tracked the reason down to a particular environment that we have, 
in out environment python executable found in a $PATH is a symbolic link
to a binary installed in some non-standard location. I believe this 
piece of code in build_ext.py fails to realize this:

            if sys.executable.startswith(os.path.join(sys.exec_prefix, "bin")):
                # building third party extensions
                self.library_dirs.append(sysconfig.get_config_var('LIBDIR'))
            else:
                # building python standard extensions
                self.library_dirs.append('.')

apparently sys.executable in our case refers to a symlink path, while 
sys.exec_prefix refers to actual installation directory.

I think fix for our case should be easy (I can't say about other cases
which may be broken by this logic), one just need to apply os.path.realpath()
to sys.executable before comparing it to sys.exec_prefix.

Andy
History
Date User Action Args
2012-10-25 19:44:24Andy.Salnikovsetrecipients: + Andy.Salnikov, tarek, eric.araujo
2012-10-25 19:44:24Andy.Salnikovsetmessageid: <1351194264.28.0.869819451271.issue16326@psf.upfronthosting.co.za>
2012-10-25 19:44:24Andy.Salnikovlinkissue16326 messages
2012-10-25 19:44:23Andy.Salnikovcreate