qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]