[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL 07/12] module: implement module loading
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PULL 07/12] module: implement module loading |
Date: |
Tue, 25 Feb 2014 16:13:40 +0000 |
On 20 February 2014 12:28, Paolo Bonzini <address@hidden> wrote:
> From: Fam Zheng <address@hidden>
>
> 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
This commit breaks a static build of arm-linux-user:
rm -rf build/arm-linux && mkdir build/arm-linux && (cd build/arm-linux
&& '../../configure' '--target-list=arm-linux-user' '--cc=ccache gcc'
'--disable-tools' '--static' '--enable-debug' --disable-tools) && make
-C build/arm-linux -j4
[...]
/usr/bin/ld.bfd.real: dynamic STT_GNU_IFUNC symbol `strcmp' with
pointer equality in
`/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libc.a(strcmp.o)'
can not be used when making an executable; recompile with -fPIE and
relink with -pie
(this is when linking tests/qemu-iotests/socket_scm_helper)
thanks
-- PMM
- [Qemu-devel] [PULL respin 00/12] Build system changes for 2014-02-20, Paolo Bonzini, 2014/02/20
- [Qemu-devel] [PULL 02/12] rules.mak: fix $(obj) to a real relative path, Paolo Bonzini, 2014/02/20
- [Qemu-devel] [PULL 01/12] util: Split out exec_dir from os_find_datadir, Paolo Bonzini, 2014/02/20
- [Qemu-devel] [PULL 03/12] rules.mak: allow per object cflags and libs, Paolo Bonzini, 2014/02/20
- [Qemu-devel] [PULL 04/12] block: use per-object cflags and libs, Paolo Bonzini, 2014/02/20
- [Qemu-devel] [PULL 05/12] darwin: do not use -mdynamic-no-pic, Paolo Bonzini, 2014/02/20
- [Qemu-devel] [PULL 06/12] rules.mak: introduce DSO rules, Paolo Bonzini, 2014/02/20
- [Qemu-devel] [PULL 07/12] module: implement module loading, Paolo Bonzini, 2014/02/20
- Re: [Qemu-devel] [PULL 07/12] module: implement module loading,
Peter Maydell <=
- [Qemu-devel] [PULL 11/12] configure: Disable libtool if -fPIE does not work with it (bug #1257099), Paolo Bonzini, 2014/02/20
- [Qemu-devel] [PULL 08/12] Makefile: install modules with "make install", Paolo Bonzini, 2014/02/20
- [Qemu-devel] [PULL 09/12] Makefile: introduce common-obj-m and block-obj-m for DSO, Paolo Bonzini, 2014/02/20
- [Qemu-devel] [PULL 10/12] block: convert block drivers linked with libs to modules, Paolo Bonzini, 2014/02/20
- [Qemu-devel] [PULL 12/12] build: softmmu targets do not have a "main.o" file, Paolo Bonzini, 2014/02/20
- Re: [Qemu-devel] [PULL respin 00/12] Build system changes for 2014-02-20, Peter Maydell, 2014/02/24