mirror of
https://github.com/Motorhead1991/qemu.git
synced 2026-02-27 06:35:23 -07: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
|
|
@ -108,6 +108,9 @@ case $line in
|
|||
value=${line#*=}
|
||||
echo "#define $name $value"
|
||||
;;
|
||||
DSOSUF=*)
|
||||
echo "#define HOST_DSOSUF \"${line#*=}\""
|
||||
;;
|
||||
esac
|
||||
|
||||
done # read
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue