mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-26 11:53:53 -06:00
module: implement module loading
This patch adds loading, stamp checking and initialization of modules. The init function of dynamic module is no longer directly called as __attribute__((constructor)) in static linked version, it is called only after passed the checking of presense of stamp symbol: qemu_stamp_$RELEASEHASH where $RELEASEHASH is generated by hashing version strings and content of configure script. With this, modules built from a different tree/version/configure will not be loaded. The module loading code requires gmodule-2.0. Modules are searched under - CONFIG_MODDIR - executable folder (to allow running qemu-{img,io} in the build directory) - ../ of executable folder (to allow running system emulator in the build directory) Modules are linked under their subdir respectively, then copied to top level of build directory for above convinience, e.g.: $(BUILD_DIR)/block/curl.so -> $(BUILD_DIR)/block-curl.so Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Fam Zheng <famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
17969268f5
commit
e26110cfc6
7 changed files with 217 additions and 12 deletions
10
module-common.c
Normal file
10
module-common.c
Normal file
|
@ -0,0 +1,10 @@
|
|||
#include "config-host.h"
|
||||
#include "qemu/module.h"
|
||||
|
||||
void qemu_module_dummy(void)
|
||||
{
|
||||
}
|
||||
|
||||
void DSO_STAMP_FUN(void)
|
||||
{
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue