[Top][All Lists]

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

Re: [Qemu-devel] [PATCH v6 4/8] module: implement module loading functio

From: Daniel P. Berrange
Subject: Re: [Qemu-devel] [PATCH v6 4/8] module: implement module loading function
Date: Thu, 12 Sep 2013 10:13:17 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

On Thu, Sep 12, 2013 at 09:36:43AM +0400, Michael Tokarev wrote:
> 12.09.2013 07:02, Fam Zheng wrote.
> >On Wed, 09/11 11:46, Richard Henderson wrote:
> >>On 09/11/2013 08:48 AM, Daniel P. Berrange wrote:
> >>>We know the precise list of valid modules when building QEMU,
> >>>so IMHO, this should just explicitly load each known module
> >>>name, and *not* readdir. Also it should do something along the
> >>>lines suggested their of poisoning exported symbols with a
> >>>build hash to guarantee the modules loaded match the original
> >>>binary and that the symbols change on every rebuild.
> >>
> >>We need not mangle the symbols, which could be complicated to
> >>actually implement, and irritating to work around within gdb.
> >>
> >Agree with this, some id or hash check should be enough.
> A solution which I proposed at the very beginning -- to export
> a "hashed" init function from modules, and call it from the
> main executable.  Like, instead of, say, qemu_module_init(),
> call qemu_module_init_0xdeadbeaf(), where 0xdeadbeaf is a
> hash of some build-dependent value.  This should be enough
> to keep it going.
> Ofcourse, if a module lacks this function, it should not be
> loaded.

Yep, that would be a reasonable way todo this. THe current
patches use attribute(constructor) so QEMU doesn't actually
call any explicit init function after dlopen()ing. That could
easily be changed though. 

|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|

reply via email to

[Prev in Thread] Current Thread [Next in Thread]