提交 ebedb37c 编写于 作者: P Paolo Bonzini

Makefile: Remove libqemustub.a

Using two libraries (libqemuutil.a and libqemustub.a) would sometimes
result in circular dependencies. To avoid these issues let's just
combine both into a single library that functions as both.
Signed-off-by: NAlistair Francis <alistair.francis@xilinx.com>
Message-Id: <54e6458745493d10901964624479a7d9a872f481.1503077821.git.alistair.francis@xilinx.com>
Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
上级 9ee24e98
...@@ -335,7 +335,7 @@ subdir-dtc:dtc/libfdt dtc/tests ...@@ -335,7 +335,7 @@ subdir-dtc:dtc/libfdt dtc/tests
dtc/%: dtc/%:
mkdir -p $@ mkdir -p $@
$(SUBDIR_RULES): libqemuutil.a libqemustub.a $(common-obj-y) $(chardev-obj-y) \ $(SUBDIR_RULES): libqemuutil.a $(common-obj-y) $(chardev-obj-y) \
$(qom-obj-y) $(crypto-aes-obj-$(CONFIG_USER_ONLY)) $(qom-obj-y) $(crypto-aes-obj-$(CONFIG_USER_ONLY))
ROMSUBDIR_RULES=$(patsubst %,romsubdir-%, $(ROMS)) ROMSUBDIR_RULES=$(patsubst %,romsubdir-%, $(ROMS))
...@@ -355,12 +355,11 @@ Makefile: $(version-obj-y) ...@@ -355,12 +355,11 @@ Makefile: $(version-obj-y)
###################################################################### ######################################################################
# Build libraries # Build libraries
libqemustub.a: $(stub-obj-y) libqemuutil.a: $(util-obj-y) $(trace-obj-y) $(stub-obj-y)
libqemuutil.a: $(util-obj-y) $(trace-obj-y)
###################################################################### ######################################################################
COMMON_LDADDS = libqemuutil.a libqemustub.a COMMON_LDADDS = libqemuutil.a
qemu-img.o: qemu-img-cmds.h qemu-img.o: qemu-img-cmds.h
......
...@@ -193,7 +193,7 @@ all-obj-$(CONFIG_SOFTMMU) += $(io-obj-y) ...@@ -193,7 +193,7 @@ all-obj-$(CONFIG_SOFTMMU) += $(io-obj-y)
$(QEMU_PROG_BUILD): config-devices.mak $(QEMU_PROG_BUILD): config-devices.mak
COMMON_LDADDS = ../libqemuutil.a ../libqemustub.a COMMON_LDADDS = ../libqemuutil.a
# build either PROG or PROGW # build either PROG or PROGW
$(QEMU_PROG_BUILD): $(all-obj-y) $(COMMON_LDADDS) $(QEMU_PROG_BUILD): $(all-obj-y) $(COMMON_LDADDS)
......
...@@ -232,15 +232,15 @@ The utility code that is used by all binaries is built into a ...@@ -232,15 +232,15 @@ The utility code that is used by all binaries is built into a
static archive called libqemuutil.a, which is then linked to all the static archive called libqemuutil.a, which is then linked to all the
binaries. In order to provide hooks that are only needed by some of the binaries. In order to provide hooks that are only needed by some of the
binaries, code in libqemuutil.a may depend on other functions that are binaries, code in libqemuutil.a may depend on other functions that are
not fully implemented by all QEMU binaries. To deal with this there is a not fully implemented by all QEMU binaries. Dummy stubs for all these
second library called libqemustub.a which provides dummy stubs for all functions are also provided by this library, and will only be linked
these functions. These will get lazy linked into the binary if the real into the binary if the real implementation is not present. In a way,
implementation is not present. In this way, the libqemustub.a static the stubs can be thought of as a portable implementation of the weak
library can be thought of as a portable implementation of the weak symbols concept.
symbols concept. All binaries should link to both libqemuutil.a and
libqemustub.a. e.g. All binaries should link to libqemuutil.a, e.g.:
qemu-img$(EXESUF): qemu-img.o ..snip.. libqemuutil.a libqemustub.a qemu-img$(EXESUF): qemu-img.o ..snip.. libqemuutil.a
Windows platform portability Windows platform portability
......
...@@ -561,7 +561,7 @@ QEMU_CFLAGS += -I$(SRC_PATH)/tests ...@@ -561,7 +561,7 @@ QEMU_CFLAGS += -I$(SRC_PATH)/tests
# Deps that are common to various different sets of tests below # Deps that are common to various different sets of tests below
test-util-obj-y = libqemuutil.a libqemustub.a test-util-obj-y = libqemuutil.a
test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y) test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y)
test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \ test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \
tests/test-qapi-event.o tests/test-qmp-introspect.o \ tests/test-qapi-event.o tests/test-qmp-introspect.o \
...@@ -616,8 +616,7 @@ tests/test-vmstate$(EXESUF): tests/test-vmstate.o \ ...@@ -616,8 +616,7 @@ tests/test-vmstate$(EXESUF): tests/test-vmstate.o \
migration/qemu-file-channel.o migration/qjson.o \ migration/qemu-file-channel.o migration/qjson.o \
$(test-io-obj-y) $(test-io-obj-y)
tests/test-timed-average$(EXESUF): tests/test-timed-average.o $(test-util-obj-y) tests/test-timed-average$(EXESUF): tests/test-timed-average.o $(test-util-obj-y)
tests/test-base64$(EXESUF): tests/test-base64.o \ tests/test-base64$(EXESUF): tests/test-base64.o $(test-util-obj-y)
libqemuutil.a libqemustub.a
tests/ptimer-test$(EXESUF): tests/ptimer-test.o tests/ptimer-test-stubs.o hw/core/ptimer.o tests/ptimer-test$(EXESUF): tests/ptimer-test.o tests/ptimer-test-stubs.o hw/core/ptimer.o
tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y) tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册