[vtk-developers] vtk-8.2.0-rc2 problem building wheels

Prabhu Ramachandran prabhu at aero.iitb.ac.in
Tue Nov 27 15:01:01 EST 2018


Hi all,

Here is hopefully the last of the issues I am running into, I just tried to
create wheels for 8.2.0-rc2 and have the following problem. 

First for some background.  Some of the VTK Python libraries seem to link to the
PYTHON_LIBRARY, for the wheels, we do not do this.  JC pointed this out to me
https://www.python.org/dev/peps/pep-0513/#libpythonx-y-so-1

Basically, if we build wheels linking to the libpython* the wheel may not work
on Ubuntu/Debian which would be sad.

In the past what we did to build the wheels is provide a dummy
VTKPythonPackage/scripts/internal/libpython-not-needed-symbols-exported-by-interpreter
and passing that.  This somehow worked by tricking CMake into thinking there was
a library specified but I am not sure how the linker did not complain.  Anyway,
when I try to build the wheels now on MacOS I get this error:

Linking CXX shared library...ib/libvtkPythonInterpreter-8.2.1.dylib
FAILED: lib/libvtkPythonInterpreter-8.2.1.dylib
: && /Library/Developer/CommandLineTools/usr/bin/c++ -O3 -DNDEBUG -arch x86_64
-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk
-mmacosx-version-min=10.9 -dynamiclib -Wl,-headerpad_max_install_names
-undefined dynamic_lookup  -compatibility_version 1.0.0 -current_version 1.0.0
-o lib/libvtkPythonInterpreter-8.2.1.dylib -install_name
@rpath/libvtkPythonInterpreter-8.2.1.dylib
Utilities/PythonInterpreter/CMakeFiles/vtkPythonInterpreter.dir/vtkPythonInterpreter.cxx.o
Utilities/PythonInterpreter/CMakeFiles/vtkPythonInterpreter.dir/vtkPythonInteractiveInterpreter.cxx.o 
-Wl,-rpath,VTKPythonPackage/VTK-osx_3.7/lib
VTKPythonPackage/scripts/internal/libpython-not-needed-symbols-exported-by-interpreter
lib/libvtksys-8.2.1.dylib lib/libvtkCommon-8.2.1.dylib && :
ld: file too small (length=0) file
'VTKPythonPackage/scripts/internal/libpython-not-needed-symbols-exported-by-interpreter'
for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)


Right now, I am able to build wheels only by leaving the PYTHON_LIBRARY entry
blank.  This means that the libvtkPythonInterpreter-8.2.1.dylib does indeed link
to the libpythonx.y.dylib. 

However, I do notice that the other libvtk*Python*8.2.1.dylib do not link to
libpython.  So libvtkPythonInterpreter is the only one linking to libpython. So
I think maybe if a user never uses the libvtkPythonInterpreter or if that is
never explicitly imported or linked to in any Python code, we may be fine with
these wheels.  Also I see that none of the Python extension modules, i.e. all
the vtk*Python.so do not link to libpython or to libvtkPythonInterpreter.

Should I just ignore the libvtkPythonInterpreter and leave the PYTHON_LIBRARY
field blank?

I would appreciate your thoughts on this matter. Thanks!

cheers,

Prabhu

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://public.kitware.com/pipermail/vtk-developers/attachments/20181127/f503ffda/attachment.html>


More information about the vtk-developers mailing list