« Previous | Next » 

Revision e26110cf


Added by Fam Zheng over 6 years ago

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:


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
- executable folder (to allow running qemu-{img,io} in the build
- ../ 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 <>


  • added
  • modified
  • copied
  • renamed
  • deleted

View differences