[zeromq-dev] Build failure in python?

Adrian von Bidder avbidder at fortytwo.ch
Mon Jan 25 07:34:38 CET 2010


Heyho!

Working off the beta2 tarball (and offline, so can't try git just now.):  
The build fails for me while trying to link the python bindings.

When I first saw it, it was trying to link the Python library with '-
luby1.8', when I run configure without --with-ruby, no language library 
would be specified at all.  Dropping -lruby1.8 and adding -lpython2.5, the 
build succeeds.

Build is:

./configure  \                                              
            --prefix=/usr \                                 
            --with-pgm \                                    
            --with-forwarder \                              
            --with-streamer \                               
            --with-queue \                                  
            --with-c \                                      
            --with-cpp \                                    
            --with-python \                                 
            --with-ruby \                                   
            --with-ruby-headersdir=/usr/lib/ruby/1.8/i486-linux \
            --with-java \                                        
            --with-cl=/usr/share/common-lisp/systems \           
            CFLAGS="" \                                          
            LDFLAGS="-Wl,-z,defs" \                              
            JAVA_HOME=/usr/lib/jvm/java-6-openjdk

The configure runs ok and also reports that it's found the python stuff.

Build then fails with:

++++
make[3]: Entering directory `/home/avbidder/0mq/zeromq/bindings/python'         
/bin/bash ../../libtool --tag=CXX   --mode=link g++  -g -O2 -avoid-version -Wl,-z,defs -o libpyzmq.la -rpath /usr/lib/python2.5/site-
packages pyzmq.lo ../../src/libzmq.la -lruby1.8 -luuid -lstdc++ -lpthread                                  
libtool: link: g++ -shared -nostdlib /usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../lib/crti.o /usr/lib/gcc/i486-linux-gnu/4.3.4/crtbeginS.o  
.libs/pyzmq.o   -Wl,-rpath -Wl,/home/avbidder/0mq/zeromq/src/.libs ../../src/.libs/libzmq.so -lruby1.8 -luuid -lpthread -L/usr/lib/gcc/i486-
linux-gnu/4.3.4 -L/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/i486-linux-
gnu/4.3.4/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/i486-linux-gnu/4.3.4/crtendS.o /usr/lib/gcc/i486-linux-
gnu/4.3.4/../../../../lib/crtn.o  -Wl,-z -Wl,defs   -pthread -Wl,-soname -Wl,libpyzmq.so -o .libs/libpyzmq.so            
.libs/pyzmq.o: In function `initlibpyzmq':                                      
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:462: undefined reference to `PyType_Ready'                                                                  
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:464: undefined reference to `PyType_Ready'                                                                  
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:467: undefined reference to `Py_InitModule4'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:473: undefined reference to `PyModule_AddObject'                                                            
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:475: undefined reference to `PyModule_AddObject'                                                            
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:477: undefined reference to `PyModule_GetDict'                                                              
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:480: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:481: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:483: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:484: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:486: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:487: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:489: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:490: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:492: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:493: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:495: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:496: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:498: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:499: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:501: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:502: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:504: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:505: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:507: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:508: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:510: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:511: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:513: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:514: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:516: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:517: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:519: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:520: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:522: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:523: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:525: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:526: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:528: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:529: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:531: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:532: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:534: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:535: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:537: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:538: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:540: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:541: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:543: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:544: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:546: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:547: undefined reference to `PyDict_SetItemString'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:549: undefined reference to `PyInt_FromLong'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:550: undefined reference to `PyDict_SetItemString'                                                          
.libs/pyzmq.o: In function `socket_recv(socket_t*, _object*, _object*)':        
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:282: undefined reference to `PyArg_ParseTupleAndKeywords'                                                   
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:292: undefined reference to `PyEval_SaveThread'                                                             
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:294: undefined reference to `PyEval_RestoreThread'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:307: undefined reference to `PyString_FromStringAndSize'                                                    
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:302: undefined reference to `PyExc_SystemError'                                                             
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:302: undefined reference to `PyErr_SetString'                                                               
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:297: undefined reference to `_Py_NoneStruct'                                                                
.libs/pyzmq.o: In function `socket_flush(socket_t*, _object*, _object*)':       
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:263: undefined reference to `PyArg_ParseTupleAndKeywords'                                                   
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:274: undefined reference to `_Py_NoneStruct'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:270: undefined reference to `PyExc_SystemError'                                                             
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:270: undefined reference to `PyErr_SetString'                                                               
.libs/pyzmq.o: In function `socket_send(socket_t*, _object*, _object*)':        
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:227: undefined reference to `PyArg_ParseTupleAndKeywords'                                                   
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:234: undefined reference to `PyString_Size'                                                                 
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:240: undefined reference to `PyString_AsString'                                                             
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:242: undefined reference to `PyEval_SaveThread'                                                             
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:244: undefined reference to `PyEval_RestoreThread'                                                          
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:257: undefined reference to `PyBool_FromLong'                                                               
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:236: undefined reference to `PyExc_SystemError'                                                             
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:236: undefined reference to `PyErr_SetString'                                                               
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:250: undefined reference to `PyBool_FromLong'                                                               
.libs/pyzmq.o: In function `socket_connect(socket_t*, _object*, _object*)':     
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:206: undefined reference to `PyArg_ParseTupleAndKeywords'                                                   
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:218: undefined reference to `_Py_NoneStruct'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:214: undefined reference to `PyExc_SystemError'                                                             
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:214: undefined reference to `PyErr_SetString'                                                               
.libs/pyzmq.o: In function `socket_bind(socket_t*, _object*, _object*)':        
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:186: undefined reference to `PyArg_ParseTupleAndKeywords'                                                   
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:198: undefined reference to `_Py_NoneStruct'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:194: undefined reference to `PyExc_SystemError'                                                             
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:194: undefined reference to `PyErr_SetString'                                                               
.libs/pyzmq.o: In function `socket_setsockopt(socket_t*, _object*, _object*)':  
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:140: undefined reference to `PyArg_ParseTupleAndKeywords'                                                   
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:174: undefined reference to `PyExc_SystemError'                                                             
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:174: undefined reference to `PyErr_SetString'                                                               
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:165: undefined reference to `PyString_Size'                                                                 
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:165: undefined reference to `PyString_AsString'                                                             
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:178: undefined reference to `_Py_NoneStruct'                                                                
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:157: undefined reference to `PyInt_AsLong'
.libs/pyzmq.o: In function `socket_dealloc(socket_t*)':
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:129: undefined reference to `PyExc_SystemError'
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:129: undefined reference to `PyErr_SetString'
.libs/pyzmq.o: In function `socket_init(socket_t*, _object*, _object*)':
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:108: undefined reference to `PyArg_ParseTupleAndKeywords'
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:117: undefined reference to `PyExc_SystemError'
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:117: undefined reference to `PyErr_SetString'
.libs/pyzmq.o: In function `context_dealloc(context_t*)':
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:79: undefined reference to `PyExc_SystemError'
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:79: undefined reference to `PyErr_SetString'
.libs/pyzmq.o: In function `context_init(context_t*, _object*, _object*)':
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:58: undefined reference to `PyArg_ParseTupleAndKeywords'
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:67: undefined reference to `PyExc_SystemError'
/home/avbidder/0mq/zeromq/bindings/python/pyzmq.cpp:67: undefined reference to `PyErr_SetString'
collect2: ld returned 1 exit status
make[3]: *** [libpyzmq.la] Error 1
make[3]: Leaving directory `/home/avbidder/0mq/zeromq/bindings/python'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/avbidder/0mq/zeromq/bindings'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/avbidder/0mq/zeromq'
make: *** [build-stamp] Error 2
++++

Note the "-lruby1.8".  running configure without --with-ruby, the link 
command is the same just without -lruby1.8.  Adding -lpython2.5 in this
command fixes the issue.

(And another presumably autoconf/automake related bug: as far as I could 
see, --without-xxx doesn't work.  But that's really minor...)

cheers
-- vbi


-- 
Verbing weirds language.
        -- Calvin & Hobbes



More information about the zeromq-dev mailing list