Browse Source
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>
pull/6/merge
committed by
Paolo Bonzini
7 changed files with 217 additions and 12 deletions
@ -0,0 +1,10 @@ |
|||
#include "config-host.h" |
|||
#include "qemu/module.h" |
|||
|
|||
void qemu_module_dummy(void) |
|||
{ |
|||
} |
|||
|
|||
void DSO_STAMP_FUN(void) |
|||
{ |
|||
} |
|||
Loading…
Reference in new issue