diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2012-11-16 18:35:27 +0100 |
---|---|---|
committer | Blue Swirl <blauwirbel@gmail.com> | 2012-11-18 19:19:23 +0000 |
commit | 3bc2f570ec9fc930619a8ef26a22dd6d03c25dac (patch) | |
tree | ec92ca7ecc6b9da1c5c8f18e52e6498e42908f50 /Makefile.objs | |
parent | 2c5c4451e69a69c0fad3303c25cc7eaad6950f79 (diff) | |
download | qemu-3bc2f570ec9fc930619a8ef26a22dd6d03c25dac.zip qemu-3bc2f570ec9fc930619a8ef26a22dd6d03c25dac.tar.gz qemu-3bc2f570ec9fc930619a8ef26a22dd6d03c25dac.tar.bz2 |
build: replace weak symbols with a static library
Weak symbols were a nice idea, but they turned out not to be a good one.
Toolchain support is just too sparse, in particular llvm-gcc is totally
broken.
This patch uses a surprisingly low-tech approach: a static library.
Symbols in a static library are always overridden by symbols in an
object file. Furthermore, if you place each function in a separate
source file, object files for unused functions will not be taken in.
This means that each function can use all the dependencies that it needs
(especially QAPI stuff such as error_setg).
Thus, all stubs are placed in separate object files and put together in
a static library. The library then is linked to all programs.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Tested-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Tested-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'Makefile.objs')
-rw-r--r-- | Makefile.objs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Makefile.objs b/Makefile.objs index dc1e699..3c7abca 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -1,4 +1,8 @@ ####################################################################### +# Stub library, linked in tools +stub-obj-y = stubs/ + +####################################################################### # Target-independent parts used in system and user emulation universal-obj-y = universal-obj-y += qemu-log.o @@ -239,6 +243,7 @@ vl.o: QEMU_CFLAGS+=$(SDL_CFLAGS) QEMU_CFLAGS+=$(GLIB_CFLAGS) nested-vars += \ + stub-obj-y \ qga-obj-y \ qom-obj-y \ qapi-obj-y \ |