From e26110cfc67d48331a76e9b1e6f7fed7569e1ab3 Mon Sep 17 00:00:00 2001 From: Fam Zheng Date: Mon, 10 Feb 2014 14:48:57 +0800 Subject: 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 Signed-off-by: Fam Zheng Signed-off-by: Paolo Bonzini --- module-common.c | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 module-common.c (limited to 'module-common.c') diff --git a/module-common.c b/module-common.c new file mode 100644 index 0000000000..50c67500b1 --- /dev/null +++ b/module-common.c @@ -0,0 +1,10 @@ +#include "config-host.h" +#include "qemu/module.h" + +void qemu_module_dummy(void) +{ +} + +void DSO_STAMP_FUN(void) +{ +} -- cgit v1.2.1