[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading
From: |
Fam Zheng |
Subject: |
Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading |
Date: |
Mon, 16 Sep 2013 19:46:41 +0800 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Mon, 09/16 13:33, Paolo Bonzini wrote:
> Il 16/09/2013 13:29, Fam Zheng ha scritto:
> > An idea for single .so file:
> > - before loads a .so, an empty initializer list is created.
> > - module_init adds a __attribute__((constructor)) function, which
> > appends
> > its real initializer to the initializer list. So this function is
> > automatically called after dlopen().
> > - make init_$(date +%s$$$RANDOM) a dummy symbol.
> > - module_load first checks the presense of the symbol, if yes, call the
> > functions in the initializer list. Else clean up and unload .so.
> >
> > Does this enable multiple calls of module_init()?
>
> Yes. Basically you are delaying the constructors; that would work.
>
> > OTOH. As for multiple spice modules, is it possible to solve it by having a
> > spice-common.o and link all spice modules to it, to share code?
>
> Looks like there is global state in ui/spice-core.c, so likely no.
>
What if the modules can be loaded by name? Then in spice-qemu-char.so, it can
call require_module("spice-core") before initializing itself, which will load
this dependency if not yet. This may be the simplest implementation of
dependency resolving.
Fam
- Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading, (continued)
- Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading, Fam Zheng, 2013/09/16
- Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading, Paolo Bonzini, 2013/09/16
- Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading, Fam Zheng, 2013/09/16
- Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading, Paolo Bonzini, 2013/09/16
- Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading, Daniel P. Berrange, 2013/09/16
- Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading, Paolo Bonzini, 2013/09/16
- Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading, Daniel P. Berrange, 2013/09/16
- Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading, Paolo Bonzini, 2013/09/16
- Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading, Fam Zheng, 2013/09/16
- Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading, Paolo Bonzini, 2013/09/16
- Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading,
Fam Zheng <=
- Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading, Richard Henderson, 2013/09/16
- Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading, Fam Zheng, 2013/09/16
- Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading, Richard Henderson, 2013/09/17
- Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading, Paolo Bonzini, 2013/09/18
- Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading, Richard Henderson, 2013/09/18
- Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading, Paolo Bonzini, 2013/09/18
- Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading, Wenchao Xia, 2013/09/17
- Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading, Gerd Hoffmann, 2013/09/16
- Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading, Paolo Bonzini, 2013/09/16
- Re: [Qemu-devel] [PATCH v10 5/8] module: implement module loading, Richard Henderson, 2013/09/16