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

Re: [libvirt] libvirt library binary name for linux

?Well, as I have said I work on .Net/Mono bindings.

To make bindings, we use largely the marshaling methods of .Net/Mono. I was working on bindings virConnectOpenAuth, so I have de marshal virConnectCredential struct, these kind of thing. Matthias Bolte help me a lot to make all the process thru callback working. And we have discover that the virConnectCredential was reseted by the marshaling process (in particular marshaling process free the result member of the virConnectCredential, and in fact, for libvirt, it's the driver responsability to free the result member). So Matthias suggest me to bind strdup to .Net and use it to be sure that the result member is not freed by marshaling. And it works. I know, it is not very elegant, and right now I'm working on another possible solution thru custom marshaling (I hope it will work). Anyway, As I plan to make bindings works for Mono and .Net, I have made some tests with Mono/Windows Mono/Linux and .Net/Windows. And all seems to work fine, I have made a sample application that connect to a ESX hypervisor and list domains and it works fine, thanks for your help.

As you can see, I'm not a linux expert, and ldd and nm tools can help me to find things, so thanks for these infos.


PS : really sorry for my english, I hope I'm clear let me know anyway

From: "Justin Clift" <jclift redhat com>
Sent: Tuesday, October 19, 2010 2:53 PM
To: <arnaud champion devatom fr>
Cc: "Eric Blake" <eblake redhat com>; <libvir-list redhat com>
Subject: Re: [libvirt] libvirt library binary name for linux

On 10/19/2010 11:25 PM, arnaud champion devatom fr wrote:
?I have tried libc.so and it doesn't contains _strdup, amybe it's strdup
instead I will try. Anyway I have a little question (a windowsian
question :) ). Under windows I have a tool named "depends.exe" with it,
I can sse what is exposed thru a dll, is there any equivalent under linux ?

Hmmm, two tools might be useful, but I don't personally know them in
much depth:

 + ldd
 + nm

ldd can be used on an executable file, to show which dynamic libraries
that file needs.  For example, if I have the program "/bin/bash":

  $ ldd /bin/bash
          linux-vdso.so.1 =>  (0x00007fff999ff000)
          libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00000030cd600000)
          libdl.so.2 => /lib64/libdl.so.2 (0x00000030bc200000)
          libc.so.6 => /lib64/libc.so.6 (0x00000030bba00000)
          /lib64/ld-linux-x86-64.so.2 (0x00000030bb600000)

The "nm" program, can be used on a dynamic library to show which
symbols it provides.  For example, on /lib64/libc.so.6:

  $ nm /lib64/libc.so.6
  00000030bbd7ba60 B __daylight
  00000030bba2c550 T __dcgettext
  00000030bba2c550 t __dcgettext_internal
  00000030bba2d5e0 t __dcigettext
  00000030bba2dfc0 t __dcngettext
  00000030bba7c600 T __default_morecore
  00000030bba33140 t __default_sigpause
  00000030bba2c560 T __dgettext
  00000030bba95be0 t __difftime
  00000030bbb1e7c0 t __dl_iterate_phdr
  00000030bba2dfd0 t __dngettext
  00000030bba4f150 t __dprintf
  <snip - it is a long list>

Both nm and ldd can be given options, which change what they display.

Looking at the questions you are asking, they are a bit unusual.

There is nothing _wrong_ with your questions, but they make me curious
what you are trying to do.  If you are ok to explain the idea you are
trying, we might know of a better or easier way.  (no guarantees
though!)  :)

Regards and best wishes,

Justin Clift


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