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>
|
||
|---|---|---|
| .. | ||
| kvm | ||
| qemu-guest-agent | ||
| qmp | ||
| tracetool | ||
| acpi_extract.py | ||
| acpi_extract_preprocess.py | ||
| analyse-9p-simpletrace.py | ||
| check-qerror.sh | ||
| checkpatch.pl | ||
| cleanup-trace-events.pl | ||
| create_config | ||
| disas-objdump.pl | ||
| dump-guest-memory.py | ||
| extract-vsssdk-headers | ||
| feature_to_c.sh | ||
| get_maintainer.pl | ||
| gtester-cat | ||
| hxtool | ||
| make-release | ||
| make_device_config.sh | ||
| ordereddict.py | ||
| qapi-commands.py | ||
| qapi-types.py | ||
| qapi-visit.py | ||
| qapi.py | ||
| qemu-binfmt-conf.sh | ||
| qemu-gdb.py | ||
| qtest | ||
| refresh-pxe-roms.sh | ||
| signrom.py | ||
| simpletrace.py | ||
| switch-timer-api | ||
| texi2pod.pl | ||
| tracetool.py | ||
| update-acpi.sh | ||
| update-linux-headers.sh | ||