e26110cfc6
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> |
||
---|---|---|
.. | ||
acl.h | ||
aes.h | ||
atomic.h | ||
bitmap.h | ||
bitops.h | ||
bswap.h | ||
cache-utils.h | ||
compatfd.h | ||
compiler.h | ||
config-file.h | ||
crc32c.h | ||
envlist.h | ||
error-report.h | ||
event_notifier.h | ||
fifo8.h | ||
hbitmap.h | ||
host-utils.h | ||
int128.h | ||
iov.h | ||
log.h | ||
main-loop.h | ||
module.h | ||
notify.h | ||
option_int.h | ||
option.h | ||
osdep.h | ||
queue.h | ||
range.h | ||
ratelimit.h | ||
readline.h | ||
seqlock.h | ||
sockets.h | ||
thread-posix.h | ||
thread-win32.h | ||
thread.h | ||
throttle.h | ||
timer.h | ||
tls.h | ||
typedefs.h | ||
uri.h | ||
xattr.h |