[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] ocaml bindings



Op donderdag 4 april 2013 15:45:21 schreef Jon Ludlam:
> On 03/04/13 21:33, Andrew Cooper wrote:
> > On 03/04/13 21:24, AL13N wrote:
> >> Op woensdag 3 april 2013 20:36:51 schreef Andrew Cooper:
> >>> On 03/04/13 20:24, AL13N wrote:
> >>>> Op woensdag 3 april 2013 20:18:53 schreef AL13N:
> >>>>> Op woensdag 3 april 2013 18:12:21 schreef Andrew Cooper:
> >>>>>> On 03/04/13 18:03, AL13N wrote:
> >>>>>>> i'm the Mageia Xen package maintainer, and a user reported that i
> >>>>>>> had
> >>>>>>> missing symbols in my ocaml bindings:
> >>>>>>> 
> >>>>>>> https://bugs.mageia.org/show_bug.cgi?id=5199
> >>>>>>> 
> >>>>>>> i'm using Xen 4.2.1 and ocaml 3.12.1
> >>>>>>> 
> >>>>>>> the problem is that if you just to a simple hello world and you're
> >>>>>>> using
> >>>>>>> certain bindings (eg: xeneventch): you get missing symbols. (others
> >>>>>>> appear
> >>>>>>> to be fine).
> >>>>>>> 
> >>>>>>> I know next to nothing about ocaml, and it could be my build
> >>>>>>> process,
> >>>>>>> but
> >>>>>>> i
> >>>>>>> kinda need some help about this.
> >>>>>>> 
> >>>>>>> this is my spec file:
> >>>>>>> http://svnweb.mageia.org/packages/cauldron/xen/current
> >>>>>>> 
> >>>>>>> Thanks in advance
> >>>>>>> 
> >>>>>>> PS: we're at version freeze and release freeze is pretty soon :-S
> >>>>>> 
> >>>>>> This is because the ocaml tools embed the build target links in the
> >>>>>> generated libs.  If you try to link against them later outside the
> >>>>>> build
> >>>>>> environment, it will break.
> >>>>>> 
> >>>>>> Attached is the patch used to fix this problem for XenServer for Xen
> >>>>>> 4.2.
> >>>>> 
> >>>>> thanks alot for the very quick help, i'm testing right now...
> >>>> 
> >>>> it seems the tests definately improve things...
> >>>> 
> >>>> [root@localhost ~]# cat testfile.ml
> >>>> print_string "hello"
> >>>> [root@localhost ~]# ocamlfind ocamlc -o test -thread -package
> >>>> xeneventchn
> >>>> -
> >>>> linkpkg -g testfile.ml
> >>>> [root@localhost ~]# ./test
> >>>> Fatal error: cannot load shared library dllxeneventchn_stubs
> >>>> Reason: dllxeneventchn_stubs.so: cannot open shared object file: No
> >>>> such
> >>>> file or directory
> >>>> 
> >>>> 
> >>>> (i have no idea if i need to ./test execute this, or if this is normal
> >>>> behavior)
> >>> 
> >>> You presumably need tools/ocaml/libs/eventchn/dllxeneventchn_stubs.so on
> >>> your load path.  Under my system, would be installed to
> >>> /usr/local/lib/ocaml/3.11.2/xeneventchn/dllxeneventchn_stubs.so
> >> 
> >> [root@localhost ~]# ls /usr/lib64/ocaml/xeneventchn/ -lsha
> >> total 64K
> >> 
> >>     0 drwxr-xr-x 1 root root  246 Apr  3 19:16 ./
> >>     0 drwxr-xr-x 1 root root 7.2K Apr  3 19:02 ../
> >> 
> >> 4.0K -rw-r--r-- 1 root root  150 Apr  3 18:35 META
> >> 
> >>   12K -rwxr-xr-x 1 root root  11K Apr  3 18:40 dllxeneventchn_stubs.so*
> >>   24K -rw-r--r-- 1 root root  21K Apr  3 18:35 libxeneventchn_stubs.a
> >> 
> >> 8.0K -rw-r--r-- 1 root root 4.5K Apr  3 18:35 xeneventchn.a
> >> 4.0K -rw-r--r-- 1 root root 2.8K Apr  3 18:35 xeneventchn.cma
> >> 4.0K -rw-r--r-- 1 root root 1.2K Apr  3 18:35 xeneventchn.cmi
> >> 4.0K -rw-r--r-- 1 root root  223 Apr  3 18:35 xeneventchn.cmx
> >> 4.0K -rw-r--r-- 1 root root  258 Apr  3 18:35 xeneventchn.cmxa
> >> 
> >> what is this "load path" is this something like LD_LIBRARY_PATH ?
> > 
> > Unfortunately I am no expert in the workings of Ocaml.  I will have to
> > defer to others.  Jon/Dave - any ideas?
> > 
> > ~Andrew
> 
> Hmm. We don't actually use the bytecode compiler/toplevel, so there's a
> good chance that the patch doesn't fix them correctly.
> 
> Could you please check to see whether it sorts out native code
> compilation for you? Try:
> 
> jludlam@humongous:~$ cat test.ml
> let _ =
>      let open Xenctrl in
>      let v = with_intf version in
>      Printf.printf "%d.%d%s\n" v.major v.minor v.extra
> jludlam@humongous:~$ ocamlfind ocamlopt -o test -thread -package xenctrl
> -linkpkg test.ml
> jludlam@humongous:~$ sudo ./test
> 4.2.1
> 
> Meanwhile, I'll investigate to see whether I can repro your problem (my
> ocaml libs are installed slightly differently than usual at the moment).

actually, when i moved the dll*_stubs.so to the /usr/lib64/ocaml/dllstubs/ 
directory it seems i was successfull...

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.