[patch] python binding on mingw-make Re: [libvirt] libvirt on mingw: undefined reference to htonl/ntohl

Atsushi SAKAI sakaia at jp.fujitsu.com
Fri Jun 20 01:32:27 UTC 2008


Hi, Brecht

  How about apply this patch.
(dll.a is created.)
But need to dig into the code.
(many errors are appeared.)

Attached patch should be applied after 
https://www.redhat.com/archives/libvir-list/2008-June/msg00196.html
(the patch is waiting for Dan review)
Instruction should be in
==Step1==
https://www.redhat.com/archives/libvir-list/2008-June/msg00201.html
==Step2==
https://www.redhat.com/archives/libvir-list/2008-June/msg00221.html

PS issue is internationalization of language issue.
Please neglect.
(ASCII[A-Z] can also write in 2-byte code)

Thanks
Atsushi SAKAI



Brecht Sanders <brecht at sanders.org> wrote:

> Hi,
> On my end I also had built libvirtmod.a, but without a DLL version of
> this file I don't think it will be loadable as a Python module.
> Or is there a way to load or link static libraries somehow in Python?
> Brecht
> 
> P.S.: I didn't understand your spelling remark.
> 
> Atsushi SAKAI wrote:
> > Hi, Brecht
> >
> > I can compile and generate .a file on python directory.
> > Sorry for spelling (I am using Zen-kaku(2byte) character in your name.)
> >
> > Thanks
> > Atsushi SAKAI
> >
> >
> > Atsushi SAKAI <sakaia at jp.fujitsu.com> wrote:
> >
> >   
> >> Hi, Brecht
> >>
> >> I can make .a file(not .dll).
> >> With following instruction.
> >>
> >> ==1==
> >> Install 
> >> http://www.python.org/ftp/python/2.5.2/python-2.5.2.msi
> >> to /usr/local/(C:\msys\1.0\local)
> >>
> >> and copy to include file to /usr/include/python2.5
> >> and copy /usr/local/python.exe pythonw.exe to /usr/local/bin
> >>
> >> ==2==
> >> Install to /usr/local (C:\msys\1.0\local)
> >> http://ftp.gnome.org/pub/GNOME/binaries/win32/pygobject/2.14/pygobject-2.14.1-1.win32-py2.5.exe
> >>
> >> make and make install seems work fine.
> >>
> >> Thanks
> >> Atsushi SAKAI
> >>
> >>
> >>
> >>
> >>
> >> Atsushi SAKAI <sakaia at jp.fujitsu.com> wrote:
> >>
> >>     
> >>> Hi, Brecht
> >>>
> >>>       
> >>>> Just out of curiosity, have you done anything with virsh or the DLL you 
> >>>> have built?
> >>>>         
> >>> Yes
> >>>
> >>> By the way, I am doing to build Python bingings on MinGW.
> >>> But it will need to do tomorrow, since many compilation warnings.
> >>>
> >>> Thanks
> >>> Atsushi SAKAI
> >>>
> >>>
> >>>
> >>>
> >>> Brecht Sanders <brecht at sanders.org> wrote:
> >>>
> >>>       
> >>>> Hi,
> >>>> I guesss I had got as far as you did.
> >>>> To Install Python on Windows you will need to download and install the 
> >>>> following:
> >>>>     http://www.python.org/ftp/python/2.5.2/python-2.5.2.msi
> >>>>     
> >>>> http://ftp.gnome.org/pub/GNOME/binaries/win32/pygobject/2.14/pygobject-2.14.1-1.win32-py2.5.exe
> >>>>     
> >>>> http://ftp.gnome.org/pub/GNOME/binaries/win32/pycairo/1.4/pycairo-1.4.12-1.win32-py2.5.exe
> >>>>     
> >>>> http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.12/pygtk-2.12.1-2.win32-py2.5.exe
> >>>> Also, don't forget to set some environment variables:
> >>>>     export PYDIR=/C/Prog/Python25
> >>>>     export PYTHONHOME=$PYDIR
> >>>>     export PYTHONPATH=$PYDIR/Lib/site-packages
> >>>>     export PATH=$MINGWPREFIX:$MINGWPREFIX/bin:$PATH
> >>>> Just out of curiosity, have you done anything with virsh or the DLL you 
> >>>> have built?
> >>>> Regards,
> >>>>     Brecht
> >>>>
> >>>> Atsushi SAKAI wrote:
> >>>>         
> >>>>> Hi, Bericht
> >>>>>
> >>>>> By your suggestion, I am recognizing python bindings are not created(on my configuration).
> >>>>> If you notice me to install python on MinGW, I will try to investigate it.
> >>>>>
> >>>>> My posting mail is follows(it does not create python library)
> >>>>> https://www.redhat.com/archives/libvir-list/2008-June/msg00201.html
> >>>>> It creates general library and virsh only.
> >>>>>
> >>>>> Thanks
> >>>>> Atsushi SAKAI
> >>>>>
> >>>>>
> >>>>> Brecht Sanders <brecht at sanders.org> wrote:
> >>>>>
> >>>>>   
> >>>>>           
> >>>>>> No. Can you tell me where to find it?
> >>>>>> I also noticed that I only produced one DLL: libvirt-0.dll.
> >>>>>> No Python module DLL was built. Were you able to build this?
> >>>>>>
> >>>>>> Atsushi SAKAI wrote:
> >>>>>>     
> >>>>>>             
> >>>>>>> Hi,
> >>>>>>>
> >>>>>>> Did you check my instruction for libvirt on MinGW?
> >>>>>>>
> >>>>>>> Thanks
> >>>>>>> Atsushi SAKAI
> >>>>>>>
> >>>>>>>
> >>>>>>> Brecht Sanders <brecht at sanders.org> wrote:
> >>>>>>>
> >>>>>>>   
> >>>>>>>       
> >>>>>>>               
> >>>>>>>> Hi,
> >>>>>>>> Some time passed by and I thought I'd have another go at compiling 
> >>>>>>>> libvirt for win32 using MinGW/MSYS again.
> >>>>>>>> I tried to compile libvirt-0.4.3 and I got around most obstacles. Now it 
> >>>>>>>> just seems I am stuck when it is trying to link.
> >>>>>>>> My search on google showed me that I am not the first one to see this issue.
> >>>>>>>> Usually i means -lws2_32 is in the wrong place. However I tried moving 
> >>>>>>>> it around without luck.
> >>>>>>>> Also it doesn't make sense to me that only htonl and ntohl are missing. 
> >>>>>>>> It appears anything else used from the winsock library is found during 
> >>>>>>>> linking.
> >>>>>>>> I feel we're very close to getting libvirt compiled on win32. Or do you 
> >>>>>>>> know if anyone already succeeded?
> >>>>>>>> Regards
> >>>>>>>>     Brecht Sanders
> >>>>>>>>
> >>>>>>>> gcc -shared  .libs/libvirt_la-libvirt.o .libs/libvirt_la-memory.o 
> >>>>>>>> .libs/libvirt_la-hash.o .libs/libvirt_la-test.o .libs/libvirt_la-buf.o 
> >>>>>>>> .libs/libvirt_la-qparams.o .libs/libvirt_la-capabilities.o 
> >>>>>>>> .libs/libvirt_la-xml.o .libs/libvirt_la-event.o 
> >>>>>>>> .libs/libvirt_la-xen_unified.o .libs/libvirt_la-xen_internal.o 
> >>>>>>>> .libs/libvirt_la-xs_internal.o .libs/libvirt_la-xend_internal.o 
> >>>>>>>> .libs/libvirt_la-stats_linux.o .libs/libvirt_la-sexpr.o 
> >>>>>>>> .libs/libvirt_la-virterror.o .libs/libvirt_la-proxy_internal.o 
> >>>>>>>> .libs/libvirt_la-conf.o .libs/libvirt_la-xm_internal.o 
> >>>>>>>> .libs/libvirt_la-remote_internal.o .libs/libvirt_la-bridge.o 
> >>>>>>>> .libs/libvirt_la-iptables.o .libs/libvirt_la-uuid.o 
> >>>>>>>> .libs/libvirt_la-qemu_driver.o .libs/libvirt_la-qemu_conf.o 
> >>>>>>>> .libs/libvirt_la-openvz_conf.o .libs/libvirt_la-openvz_driver.o 
> >>>>>>>> .libs/libvirt_la-lxc_driver.o .libs/libvirt_la-lxc_conf.o 
> >>>>>>>> .libs/libvirt_la-lxc_container.o .libs/libvirt_la-nodeinfo.o 
> >>>>>>>> .libs/libvirt_la-util.o .libs/libvirt_la-remote_protocol.o 
> >>>>>>>> -Wl,--whole-archive ../gnulib/lib/.libs/libgnu.a -Wl,--no-whole-archive  
> >>>>>>>> -L/mingw/lib /mingw/lib/libxml2.dll.a /mingw/lib/libgnutls.dll.a 
> >>>>>>>> -L/home/bsanders/inst_libgcrypt-1.4.1/lib -lintl -lpthread 
> >>>>>>>> /mingw/lib/libportablexdr.dll.a -lws2_32  
> >>>>>>>> -Wl,--version-script=./libvirt_sym.version -o .libs/libvirt-0.dll 
> >>>>>>>> -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker 
> >>>>>>>> .libs/libvirt.dll.a
> >>>>>>>> Creating library file: .libs/libvirt.dll.a
> >>>>>>>> .libs/libvirt_la-remote_protocol.o:remote_protocol.c:(.text+0xa46): 
> >>>>>>>> undefined reference to `htonl'
> >>>>>>>> .libs/libvirt_la-remote_protocol.o:remote_protocol.c:(.text+0xa5f): 
> >>>>>>>> undefined reference to `htonl'
> >>>>>>>> .libs/libvirt_la-remote_protocol.o:remote_protocol.c:(.text+0xa78): 
> >>>>>>>> undefined reference to `htonl'
> >>>>>>>> .libs/libvirt_la-remote_protocol.o:remote_protocol.c:(.text+0xa91): 
> >>>>>>>> undefined reference to `htonl'
> >>>>>>>> .libs/libvirt_la-remote_protocol.o:remote_protocol.c:(.text+0xaaa): 
> >>>>>>>> undefined reference to `htonl'
> >>>>>>>> .libs/libvirt_la-remote_protocol.o:remote_protocol.c:(.text+0xac3): more 
> >>>>>>>> undefined references to `htonl' follow
> >>>>>>>> .libs/libvirt_la-remote_protocol.o:remote_protocol.c:(.text+0xc5d): 
> >>>>>>>> undefined reference to `ntohl'
> >>>>>>>> .libs/libvirt_la-remote_protocol.o:remote_protocol.c:(.text+0xc74): 
> >>>>>>>> undefined reference to `ntohl'
> >>>>>>>> .libs/libvirt_la-remote_protocol.o:remote_protocol.c:(.text+0xc8b): 
> >>>>>>>> undefined reference to `ntohl'
> >>>>>>>> .libs/libvirt_la-remote_protocol.o:remote_protocol.c:(.text+0xca2): 
> >>>>>>>> undefined reference to `ntohl'
> >>>>>>>> .libs/libvirt_la-remote_protocol.o:remote_protocol.c:(.text+0xcb9): 
> >>>>>>>> undefined reference to `ntohl'
> >>>>>>>> .libs/libvirt_la-remote_protocol.o:remote_protocol.c:(.text+0xccc): more 
> >>>>>>>> undefined references to `ntohl' follow
> >>>>>>>> collect2: ld returned 1 exit status
> >>>>>>>> make[2]: *** [libvirt.la] Error 1
> >>>>>>>> make[2]: Leaving directory `/home/bsanders/libvirt-0.4.3/src'
> >>>>>>>> make[1]: *** [all-recursive] Error 1
> >>>>>>>> make[1]: Leaving directory `/home/bsanders/libvirt-0.4.3'
> >>>>>>>> make: *** [all] Error 2
> >>>>>>>>
> >>>>>>>> --
> >>>>>>>> Libvir-list mailing list
> >>>>>>>> Libvir-list at redhat.com
> >>>>>>>> https://www.redhat.com/mailman/listinfo/libvir-list
> >>>>>>>>     
> >>>>>>>>         
> >>>>>>>>                 
> >>>>>>>
> >>>>>>>   
> >>>>>>>       
> >>>>>>>               
> >>>>>
> >>>>>
> >>>>>
> >>>>>   
> >>>>>           
> >>> --
> >>> Libvir-list mailing list
> >>> Libvir-list at redhat.com
> >>> https://www.redhat.com/mailman/listinfo/libvir-list
> >>>       
> >>     
> >
> >
> >
> >
> >
> >   
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fix_python_for_mingw.patch
Type: application/octet-stream
Size: 661 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20080620/49396b85/attachment-0001.obj>


More information about the libvir-list mailing list