Am 28.11.2011 19:34, schrieb Stefan Weil:
Am 22.11.2011 18:27, schrieb Stefano Stabellini:
Signed-off-by: Stefano Stabellini <stefano.stabell...@eu.citrix.com>
diff --git a/Makefile b/Makefile
index 168093c..885065f 100644
--- a/Makefile
+++ b/Makefile
@@ -167,7 +167,7 @@ check-qjson: check-qjson.o $(qobject-obj-y)
$(tools-obj-y)
test-coroutine: test-coroutine.o qemu-timer-common.o async.o
$(coroutine-obj-y) $(tools-obj-y)
$(qapi-obj-y): $(GENERATED_HEADERS)
-qapi-dir := qapi-generated
+qapi-dir := $(SRC_PATH)/qapi-generated
test-visitor.o test-qmp-commands.o qemu-ga$(EXESUF): QEMU_CFLAGS +=
-I $(qapi-dir)
qemu-ga$(EXESUF): LIBS = $(LIBS_QGA)
This patch was committed to latest QEMU and breaks in-tree and
out-of-tree builds.
Without it, both kinds of builds work in my standard Debian
configuration.
Regards,
Stefan Weil
gcc output (extract):
CC /home/stefan/src/qemu/qemu.org/patches/qapi-generated/qga-qapi-types.o
/home/stefan/src/qemu/qemu.org/patches/qapi-generated/qga-qapi-types.c: In
function ‘qapi_free_GuestAgentInfoList’:
/home/stefan/src/qemu/qemu.org/patches/qapi-generated/qga-qapi-types.c:39:
warning: implicit declaration of function ‘visit_type_GuestAgentInfoList’
/home/stefan/src/qemu/qemu.org/patches/qapi-generated/qga-qapi-types.c:39:
warning: nested extern declaration of ‘visit_type_GuestAgentInfoList’
/home/stefan/src/qemu/qemu.org/patches/qapi-generated/qga-qapi-types.c: In
function ‘qapi_free_GuestAgentInfo’:
/home/stefan/src/qemu/qemu.org/patches/qapi-generated/qga-qapi-types.c:54:
warning: implicit declaration of function ‘visit_type_GuestAgentInfo’
/home/stefan/src/qemu/qemu.org/patches/qapi-generated/qga-qapi-types.c:54:
warning: nested extern declaration of ‘visit_type_GuestAgentInfo’
/home/stefan/src/qemu/qemu.org/patches/qapi-generated/qga-qapi-types.c: In
function ‘qapi_free_GuestFileReadList’:
/home/stefan/src/qemu/qemu.org/patches/qapi-generated/qga-qapi-types.c:69:
warning: implicit declaration of function ‘visit_type_GuestFileReadList’
The broken build can be reproduced with a source path containing at
least one dot.
Source paths without any dot will show no problems. My source path was
~/src/qemu/qemu.org/qemu.
File scripts/qapi.py fails to create unique guard names when given a
filename with 2 or more dots:
def guardname(filename):
if filename.startswith('./'):
filename = filename[2:]
return filename.replace("/", "_").replace("-",
"_").split(".")[0].upper() + '_H'
The function always returns the same guard name (in my case
_HOME_STEFAN_SRC_QEMU_QEMU_H)
which won't work when used for more than one header file.
I expect that blanks in the source path will also give unexpected results.
Even when this function were fixed, I think that
qapi-dir := $(BUILD_DIR)/qapi-generated
would be better.
Regards,
Stefan Weil