[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] RFC: DSO (dynamic shared objects) support
From: |
Michael Tokarev |
Subject: |
Re: [Qemu-devel] RFC: DSO (dynamic shared objects) support |
Date: |
Tue, 18 Jun 2013 16:19:08 +0400 |
User-agent: |
Mozilla/5.0 (X11; Linux i686 on x86_64; rv:17.0) Gecko/17.0 Icedove/17.0 |
18.06.2013 16:17, Laszlo Ersek wrote:
> On 06/18/13 13:37, Michael Tokarev wrote:
>
>> Next, and this is the most complex part. The build system for
>> modules, and configuring it. I heard there were plans to use
>> something like kbuild system for that, has anything been done
>> in this context?
>
> Sorry for responding separately... Some module/symbol versioning will be
> necessary, as the binding will be delayed until runtime, and users
> *will* mix and match qemu and modules, and get random crashes. AFAIK
> versioning is a good way to avoid that (you would get an error in
> dlopen(), and dlerror() would pinpoint problem).
>
> No idea how to implement this though, except I expect there's no chance
> to do it halfway portably without libtool.
Well, I think this is trivial really.
Duding build, we re-#define register_module_init() to have a version
number (or even a build id), for example register_module_init_1_6_0().
This is a function which each plugin will call inside its constructor.
Being unable to find this symbol in calling qemu it will fail to load.
Thanks,
/mjt