All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/9] build cleanups
@ 2012-09-17 16:44 Paolo Bonzini
  2012-09-17 16:44 ` [Qemu-devel] [PATCH 1/9] tools: split monitor-dummy.c, clean up qemu-tool.c Paolo Bonzini
                   ` (9 more replies)
  0 siblings, 10 replies; 12+ messages in thread
From: Paolo Bonzini @ 2012-09-17 16:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: aliguori, afaerber

Here are some cleanups to the build system, removing some unused files
from some of the products or fixing some strange behavior that bit me
while looking at the tree reorganization.

Paolo

Paolo Bonzini (9):
  tools: split monitor-dummy.c, clean up qemu-tool.c
  block: move QEMUIOVector functions to iov.c
  build: avoid duplicate appearance of files
  qemu-ga: do not include the QEMU main loop and dependencies
  build: add object directory to QEMU_INCLUDES
  build: add $(TARGET_DIR) to "GEN config-target.h" lines
  build: use nesting magic for tools-obj-y
  libcacard: add include/ to CFLAGS
  libcacard: remove dependency on QEMU main loop

 Makefile           |   9 ++---
 Makefile.objs      |  19 +++++++---
 cutils.c           | 103 ----------------------------------------------------
 iov.c              | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 libcacard/Makefile |   2 +-
 monitor-dummy.c    |  64 +++++++++++++++++++++++++++++++++
 qemu-tool.c        |  54 ----------------------------
 rules.mak          |   5 ++-
 8 file modificati, 189 inserzioni(+), 171 rimozioni(-)
 create mode 100644 monitor-dummy.c

-- 
1.7.12

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Qemu-devel] [PATCH 1/9] tools: split monitor-dummy.c, clean up qemu-tool.c
  2012-09-17 16:44 [Qemu-devel] [PATCH 0/9] build cleanups Paolo Bonzini
@ 2012-09-17 16:44 ` Paolo Bonzini
  2012-09-17 16:44 ` [Qemu-devel] [PATCH 2/9] block: move QEMUIOVector functions to iov.c Paolo Bonzini
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Paolo Bonzini @ 2012-09-17 16:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: aliguori, afaerber

qemu-ga uses glib mostly, so it does not need a large part of the dummy
functions in qemu-tool.o (which are more related to the main loop and/or
the block layer).  Split the functions required by QAPI out into
monitor-dummy.c.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 Makefile        |  2 +-
 Makefile.objs   |  2 +-
 monitor-dummy.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 qemu-tool.c     | 54 ------------------------------------------------
 4 file modificati, 66 inserzioni(+), 56 rimozioni(-)
 create mode 100644 monitor-dummy.c

diff --git a/Makefile b/Makefile
index 1cd5bc8..6426d85 100644
--- a/Makefile
+++ b/Makefile
@@ -153,7 +153,7 @@ endif
 qemu-img.o: qemu-img-cmds.h
 
 tools-obj-y = $(oslib-obj-y) $(trace-obj-y) qemu-tool.o qemu-timer.o \
-	qemu-timer-common.o main-loop.o notify.o \
+	qemu-timer-common.o main-loop.o notify.o monitor-dummy.o \
 	iohandler.o cutils.o iov.o async.o
 tools-obj-$(CONFIG_POSIX) += compatfd.o
 
diff --git a/Makefile.objs b/Makefile.objs
index 4412757..5c622d6 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -228,7 +228,7 @@ universal-obj-y += $(qapi-obj-y)
 ######################################################################
 # guest agent
 
-qga-obj-y = qga/ qemu-ga.o module.o
+qga-obj-y = qga/ qemu-ga.o module.o monitor-dummy.o
 qga-obj-$(CONFIG_WIN32) += oslib-win32.o
 qga-obj-$(CONFIG_POSIX) += oslib-posix.o qemu-sockets.o qemu-option.o
 
diff --git a/monitor-dummy.c b/monitor-dummy.c
new file mode 100644
index 0000000..9aa87b3
--- /dev/null
+++ b/monitor-dummy.c
@@ -0,0 +1,64 @@
+/*
+ * Compatibility for qemu-img/qemu-nbd
+ *
+ * Copyright IBM, Corp. 2008
+ *
+ * Authors:
+ *  Anthony Liguori   <aliguori@us.ibm.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2.  See
+ * the COPYING file in the top-level directory.
+ *
+ * Contributions after 2012-01-13 are licensed under the terms of the
+ * GNU GPL, version 2 or (at your option) any later version.
+ */
+
+#include "qemu-common.h"
+#include "monitor.h"
+
+Monitor *cur_mon;
+
+int monitor_cur_is_qmp(void)
+{
+    return 0;
+}
+
+void monitor_set_error(Monitor *mon, QError *qerror)
+{
+}
+
+void monitor_vprintf(Monitor *mon, const char *fmt, va_list ap)
+{
+}
+
+void monitor_printf(Monitor *mon, const char *fmt, ...)
+{
+}
+
+void monitor_print_filename(Monitor *mon, const char *filename)
+{
+}
+
+void monitor_protocol_event(MonitorEvent event, QObject *data)
+{
+}
+
+int monitor_fdset_get_fd(int64_t fdset_id, int flags)
+{
+	    return -1;
+}
+
+int monitor_fdset_dup_fd_add(int64_t fdset_id, int dup_fd)
+{
+	    return -1;
+}
+
+int monitor_fdset_dup_fd_remove(int dup_fd)
+{
+	    return -1;
+}
+
+int monitor_fdset_dup_fd_find(int dup_fd)
+{
+	    return -1;
+}
diff --git a/qemu-tool.c b/qemu-tool.c
index 18205ba..ec5a659 100644
--- a/qemu-tool.c
+++ b/qemu-tool.c
@@ -14,7 +14,6 @@
  */
 
 #include "qemu-common.h"
-#include "monitor.h"
 #include "qemu-timer.h"
 #include "qemu-log.h"
 #include "migration.h"
@@ -24,64 +23,11 @@
 
 #include <sys/time.h>
 
-struct QEMUBH
-{
-    QEMUBHFunc *cb;
-    void *opaque;
-};
-
 const char *qemu_get_vm_name(void)
 {
     return NULL;
 }
 
-Monitor *cur_mon;
-
-int monitor_cur_is_qmp(void)
-{
-    return 0;
-}
-
-void monitor_set_error(Monitor *mon, QError *qerror)
-{
-}
-
-void monitor_vprintf(Monitor *mon, const char *fmt, va_list ap)
-{
-}
-
-void monitor_printf(Monitor *mon, const char *fmt, ...)
-{
-}
-
-void monitor_print_filename(Monitor *mon, const char *filename)
-{
-}
-
-void monitor_protocol_event(MonitorEvent event, QObject *data)
-{
-}
-
-int monitor_fdset_get_fd(int64_t fdset_id, int flags)
-{
-    return -1;
-}
-
-int monitor_fdset_dup_fd_add(int64_t fdset_id, int dup_fd)
-{
-    return -1;
-}
-
-int monitor_fdset_dup_fd_remove(int dup_fd)
-{
-    return -1;
-}
-
-int monitor_fdset_dup_fd_find(int dup_fd)
-{
-    return -1;
-}
-
 int64_t cpu_get_clock(void)
 {
     return qemu_get_clock_ns(rt_clock);
-- 
1.7.12

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [Qemu-devel] [PATCH 2/9] block: move QEMUIOVector functions to iov.c
  2012-09-17 16:44 [Qemu-devel] [PATCH 0/9] build cleanups Paolo Bonzini
  2012-09-17 16:44 ` [Qemu-devel] [PATCH 1/9] tools: split monitor-dummy.c, clean up qemu-tool.c Paolo Bonzini
@ 2012-09-17 16:44 ` Paolo Bonzini
  2012-09-17 16:44 ` [Qemu-devel] [PATCH 3/9] build: avoid duplicate appearance of files Paolo Bonzini
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Paolo Bonzini @ 2012-09-17 16:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: aliguori, afaerber

They do not really belong in cutils.c, and this way we can remove
iov.c from user-mode emulation.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 Makefile.objs |   2 +-
 cutils.c      | 103 ---------------------------------------------------------
 iov.c         | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 file modificati, 105 inserzioni(+), 104 rimozioni(-)

diff --git a/Makefile.objs b/Makefile.objs
index 5c622d6..abb7d0f 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -108,7 +108,7 @@ endif
 user-obj-y =
 user-obj-y += envlist.o path.o
 user-obj-y += tcg-runtime.o host-utils.o
-user-obj-y += cutils.o iov.o cache-utils.o
+user-obj-y += cutils.o cache-utils.o
 user-obj-y += module.o
 user-obj-y += qemu-user.o
 user-obj-y += $(trace-obj-y)
diff --git a/cutils.c b/cutils.c
index 8ef648f..8fe2dd2 100644
--- a/cutils.c
+++ b/cutils.c
@@ -142,109 +142,6 @@ int qemu_fdatasync(int fd)
 #endif
 }
 
-/* io vectors */
-
-void qemu_iovec_init(QEMUIOVector *qiov, int alloc_hint)
-{
-    qiov->iov = g_malloc(alloc_hint * sizeof(struct iovec));
-    qiov->niov = 0;
-    qiov->nalloc = alloc_hint;
-    qiov->size = 0;
-}
-
-void qemu_iovec_init_external(QEMUIOVector *qiov, struct iovec *iov, int niov)
-{
-    int i;
-
-    qiov->iov = iov;
-    qiov->niov = niov;
-    qiov->nalloc = -1;
-    qiov->size = 0;
-    for (i = 0; i < niov; i++)
-        qiov->size += iov[i].iov_len;
-}
-
-void qemu_iovec_add(QEMUIOVector *qiov, void *base, size_t len)
-{
-    assert(qiov->nalloc != -1);
-
-    if (qiov->niov == qiov->nalloc) {
-        qiov->nalloc = 2 * qiov->nalloc + 1;
-        qiov->iov = g_realloc(qiov->iov, qiov->nalloc * sizeof(struct iovec));
-    }
-    qiov->iov[qiov->niov].iov_base = base;
-    qiov->iov[qiov->niov].iov_len = len;
-    qiov->size += len;
-    ++qiov->niov;
-}
-
-/*
- * Concatenates (partial) iovecs from src to the end of dst.
- * It starts copying after skipping `soffset' bytes at the
- * beginning of src and adds individual vectors from src to
- * dst copies up to `sbytes' bytes total, or up to the end
- * of src if it comes first.  This way, it is okay to specify
- * very large value for `sbytes' to indicate "up to the end
- * of src".
- * Only vector pointers are processed, not the actual data buffers.
- */
-void qemu_iovec_concat(QEMUIOVector *dst,
-                       QEMUIOVector *src, size_t soffset, size_t sbytes)
-{
-    int i;
-    size_t done;
-    struct iovec *siov = src->iov;
-    assert(dst->nalloc != -1);
-    assert(src->size >= soffset);
-    for (i = 0, done = 0; done < sbytes && i < src->niov; i++) {
-        if (soffset < siov[i].iov_len) {
-            size_t len = MIN(siov[i].iov_len - soffset, sbytes - done);
-            qemu_iovec_add(dst, siov[i].iov_base + soffset, len);
-            done += len;
-            soffset = 0;
-        } else {
-            soffset -= siov[i].iov_len;
-        }
-    }
-    /* return done; */
-}
-
-void qemu_iovec_destroy(QEMUIOVector *qiov)
-{
-    assert(qiov->nalloc != -1);
-
-    qemu_iovec_reset(qiov);
-    g_free(qiov->iov);
-    qiov->nalloc = 0;
-    qiov->iov = NULL;
-}
-
-void qemu_iovec_reset(QEMUIOVector *qiov)
-{
-    assert(qiov->nalloc != -1);
-
-    qiov->niov = 0;
-    qiov->size = 0;
-}
-
-size_t qemu_iovec_to_buf(QEMUIOVector *qiov, size_t offset,
-                         void *buf, size_t bytes)
-{
-    return iov_to_buf(qiov->iov, qiov->niov, offset, buf, bytes);
-}
-
-size_t qemu_iovec_from_buf(QEMUIOVector *qiov, size_t offset,
-                           const void *buf, size_t bytes)
-{
-    return iov_from_buf(qiov->iov, qiov->niov, offset, buf, bytes);
-}
-
-size_t qemu_iovec_memset(QEMUIOVector *qiov, size_t offset,
-                         int fillc, size_t bytes)
-{
-    return iov_memset(qiov->iov, qiov->niov, offset, fillc, bytes);
-}
-
 /*
  * Checks if a buffer is all zeroes
  *
diff --git a/iov.c b/iov.c
index 60705c7..493e712 100644
--- a/iov.c
+++ b/iov.c
@@ -228,3 +228,107 @@ void iov_hexdump(const struct iovec *iov, const unsigned int iov_cnt,
         fprintf(fp, "\n");
     }
 }
+
+
+/* dynamically-allocated io vectors */
+
+void qemu_iovec_init(QEMUIOVector *qiov, int alloc_hint)
+{
+    qiov->iov = g_malloc(alloc_hint * sizeof(struct iovec));
+    qiov->niov = 0;
+    qiov->nalloc = alloc_hint;
+    qiov->size = 0;
+}
+
+void qemu_iovec_init_external(QEMUIOVector *qiov, struct iovec *iov, int niov)
+{
+    int i;
+
+    qiov->iov = iov;
+    qiov->niov = niov;
+    qiov->nalloc = -1;
+    qiov->size = 0;
+    for (i = 0; i < niov; i++)
+        qiov->size += iov[i].iov_len;
+}
+
+void qemu_iovec_add(QEMUIOVector *qiov, void *base, size_t len)
+{
+    assert(qiov->nalloc != -1);
+
+    if (qiov->niov == qiov->nalloc) {
+        qiov->nalloc = 2 * qiov->nalloc + 1;
+        qiov->iov = g_realloc(qiov->iov, qiov->nalloc * sizeof(struct iovec));
+    }
+    qiov->iov[qiov->niov].iov_base = base;
+    qiov->iov[qiov->niov].iov_len = len;
+    qiov->size += len;
+    ++qiov->niov;
+}
+
+/*
+ * Concatenates (partial) iovecs from src to the end of dst.
+ * It starts copying after skipping `soffset' bytes at the
+ * beginning of src and adds individual vectors from src to
+ * dst copies up to `sbytes' bytes total, or up to the end
+ * of src if it comes first.  This way, it is okay to specify
+ * very large value for `sbytes' to indicate "up to the end
+ * of src".
+ * Only vector pointers are processed, not the actual data buffers.
+ */
+void qemu_iovec_concat(QEMUIOVector *dst,
+                       QEMUIOVector *src, size_t soffset, size_t sbytes)
+{
+    int i;
+    size_t done;
+    struct iovec *siov = src->iov;
+    assert(dst->nalloc != -1);
+    assert(src->size >= soffset);
+    for (i = 0, done = 0; done < sbytes && i < src->niov; i++) {
+        if (soffset < siov[i].iov_len) {
+            size_t len = MIN(siov[i].iov_len - soffset, sbytes - done);
+            qemu_iovec_add(dst, siov[i].iov_base + soffset, len);
+            done += len;
+            soffset = 0;
+        } else {
+            soffset -= siov[i].iov_len;
+        }
+    }
+    /* return done; */
+}
+
+void qemu_iovec_destroy(QEMUIOVector *qiov)
+{
+    assert(qiov->nalloc != -1);
+
+    qemu_iovec_reset(qiov);
+    g_free(qiov->iov);
+    qiov->nalloc = 0;
+    qiov->iov = NULL;
+}
+
+void qemu_iovec_reset(QEMUIOVector *qiov)
+{
+    assert(qiov->nalloc != -1);
+
+    qiov->niov = 0;
+    qiov->size = 0;
+}
+
+size_t qemu_iovec_to_buf(QEMUIOVector *qiov, size_t offset,
+                         void *buf, size_t bytes)
+{
+    return iov_to_buf(qiov->iov, qiov->niov, offset, buf, bytes);
+}
+
+size_t qemu_iovec_from_buf(QEMUIOVector *qiov, size_t offset,
+                           const void *buf, size_t bytes)
+{
+    return iov_from_buf(qiov->iov, qiov->niov, offset, buf, bytes);
+}
+
+size_t qemu_iovec_memset(QEMUIOVector *qiov, size_t offset,
+                         int fillc, size_t bytes)
+{
+    return iov_memset(qiov->iov, qiov->niov, offset, fillc, bytes);
+}
-- 
1.7.12

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [Qemu-devel] [PATCH 3/9] build: avoid duplicate appearance of files
  2012-09-17 16:44 [Qemu-devel] [PATCH 0/9] build cleanups Paolo Bonzini
  2012-09-17 16:44 ` [Qemu-devel] [PATCH 1/9] tools: split monitor-dummy.c, clean up qemu-tool.c Paolo Bonzini
  2012-09-17 16:44 ` [Qemu-devel] [PATCH 2/9] block: move QEMUIOVector functions to iov.c Paolo Bonzini
@ 2012-09-17 16:44 ` Paolo Bonzini
  2012-09-17 16:44 ` [Qemu-devel] [PATCH 4/9] qemu-ga: do not include the QEMU main loop and dependencies Paolo Bonzini
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Paolo Bonzini @ 2012-09-17 16:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: aliguori, afaerber

cutils.c and iov.c appeared in the Makefile in multiple spots.  Clean
this up by moving them respectively to oslib-obj-y and block-obj-y.
Notably, qemu-ga and user-mode emulation both need cutils.c but not iov.c.

async.o was linked in tools via both tools-obj-y and block-obj-y.
Remove the former, which is unnecessary.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 Makefile      | 2 +-
 Makefile.objs | 8 ++++----
 2 file modificati, 5 inserzioni(+), 5 rimozioni(-)

diff --git a/Makefile b/Makefile
index 6426d85..5240834 100644
--- a/Makefile
+++ b/Makefile
@@ -154,7 +154,7 @@ qemu-img.o: qemu-img-cmds.h
 
 tools-obj-y = $(oslib-obj-y) $(trace-obj-y) qemu-tool.o qemu-timer.o \
 	qemu-timer-common.o main-loop.o notify.o monitor-dummy.o \
-	iohandler.o cutils.o iov.o async.o
+	iohandler.o
 tools-obj-$(CONFIG_POSIX) += compatfd.o
 
 qemu-img$(EXESUF): qemu-img.o $(tools-obj-y) $(block-obj-y)
diff --git a/Makefile.objs b/Makefile.objs
index abb7d0f..cf00fd5 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -19,7 +19,7 @@ universal-obj-y += $(qom-obj-y)
 
 #######################################################################
 # oslib-obj-y is code depending on the OS (win32 vs posix)
-oslib-obj-y = osdep.o
+oslib-obj-y = osdep.o cutils.o
 oslib-obj-$(CONFIG_WIN32) += oslib-win32.o qemu-thread-win32.o
 oslib-obj-$(CONFIG_POSIX) += oslib-posix.o qemu-thread-posix.o
 
@@ -41,7 +41,7 @@ coroutine-obj-$(CONFIG_WIN32) += coroutine-win32.o
 #######################################################################
 # block-obj-y is code used by both qemu system emulation and qemu-img
 
-block-obj-y = cutils.o iov.o cache-utils.o qemu-option.o module.o async.o
+block-obj-y = iov.o cache-utils.o qemu-option.o module.o async.o
 block-obj-y += nbd.o block.o aio.o aes.o qemu-config.o qemu-progress.o qemu-sockets.o
 block-obj-y += $(coroutine-obj-y) $(qobject-obj-y) $(version-obj-y)
 block-obj-$(CONFIG_POSIX) += posix-aio-compat.o
@@ -89,7 +89,7 @@ common-obj-y += hw/
 common-obj-y += ui/
 common-obj-y += bt-host.o bt-vhci.o
 
-common-obj-y += iov.o acl.o
+common-obj-y += acl.o
 common-obj-$(CONFIG_POSIX) += compatfd.o
 common-obj-y += notify.o event_notifier.o
 common-obj-y += qemu-timer.o qemu-timer-common.o
@@ -108,7 +108,7 @@ endif
 user-obj-y =
 user-obj-y += envlist.o path.o
 user-obj-y += tcg-runtime.o host-utils.o
-user-obj-y += cutils.o cache-utils.o
+user-obj-y += cache-utils.o
 user-obj-y += module.o
 user-obj-y += qemu-user.o
 user-obj-y += $(trace-obj-y)
-- 
1.7.12

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [Qemu-devel] [PATCH 4/9] qemu-ga: do not include the QEMU main loop and dependencies
  2012-09-17 16:44 [Qemu-devel] [PATCH 0/9] build cleanups Paolo Bonzini
                   ` (2 preceding siblings ...)
  2012-09-17 16:44 ` [Qemu-devel] [PATCH 3/9] build: avoid duplicate appearance of files Paolo Bonzini
@ 2012-09-17 16:44 ` Paolo Bonzini
  2012-09-17 16:44 ` [Qemu-devel] [PATCH 5/9] build: add object directory to QEMU_INCLUDES Paolo Bonzini
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Paolo Bonzini @ 2012-09-17 16:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: aliguori, afaerber

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 Makefile | 2 +-
 1 file modificato, 1 inserzione(+). 1 rimozione(-)

diff --git a/Makefile b/Makefile
index 5240834..fffbbb8 100644
--- a/Makefile
+++ b/Makefile
@@ -206,7 +206,7 @@ $(SRC_PATH)/qapi-schema.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py)
 QGALIB_GEN=$(addprefix qga/qapi-generated/, qga-qapi-types.h qga-qapi-visit.h qga-qmp-commands.h)
 $(qga-obj-y) qemu-ga.o: $(QGALIB_GEN)
 
-qemu-ga$(EXESUF): qemu-ga.o $(qga-obj-y) $(tools-obj-y) $(qapi-obj-y) $(qobject-obj-y) $(version-obj-y)
+qemu-ga$(EXESUF): qemu-ga.o $(qga-obj-y) $(trace-obj-y) $(oslib-obj-y) $(qapi-obj-y) $(qobject-obj-y) $(version-obj-y)
 
 QEMULIBS=libhw32 libhw64 libuser libdis libdis-user
 
-- 
1.7.12

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [Qemu-devel] [PATCH 5/9] build: add object directory to QEMU_INCLUDES
  2012-09-17 16:44 [Qemu-devel] [PATCH 0/9] build cleanups Paolo Bonzini
                   ` (3 preceding siblings ...)
  2012-09-17 16:44 ` [Qemu-devel] [PATCH 4/9] qemu-ga: do not include the QEMU main loop and dependencies Paolo Bonzini
@ 2012-09-17 16:44 ` Paolo Bonzini
  2012-09-17 16:45 ` [Qemu-devel] [PATCH 6/9] build: add $(TARGET_DIR) to "GEN config-target.h" lines Paolo Bonzini
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Paolo Bonzini @ 2012-09-17 16:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: aliguori, afaerber

When using a recursive make, -I. will automatically let you include
generated files from a nested directory.  This doesn't work for
nonrecursive make such as the one used by QEMU.  Add a rule that
fixes this.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 rules.mak | 3 +++
 1 file modificato, 3 inserzioni(+)

diff --git a/rules.mak b/rules.mak
index 1b173aa..0327426 100644
--- a/rules.mak
+++ b/rules.mak
@@ -14,6 +14,9 @@ MAKEFLAGS += -rR
 # Flags for dependency generation
 QEMU_DGFLAGS += -MMD -MP -MT $@ -MF $(*D)/$(*F).d
 
+# Same as -I., but for the object directory
+QEMU_CFLAGS += -I$(@D)
+
 %.o: %.c
 	$(call quiet-command,$(CC) $(QEMU_INCLUDES) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<,"  CC    $(TARGET_DIR)$@")
 
-- 
1.7.12

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [Qemu-devel] [PATCH 6/9] build: add $(TARGET_DIR) to "GEN config-target.h" lines
  2012-09-17 16:44 [Qemu-devel] [PATCH 0/9] build cleanups Paolo Bonzini
                   ` (4 preceding siblings ...)
  2012-09-17 16:44 ` [Qemu-devel] [PATCH 5/9] build: add object directory to QEMU_INCLUDES Paolo Bonzini
@ 2012-09-17 16:45 ` Paolo Bonzini
  2012-09-17 16:45 ` [Qemu-devel] [PATCH 7/9] build: use nesting magic for tools-obj-y Paolo Bonzini
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Paolo Bonzini @ 2012-09-17 16:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: aliguori, afaerber

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 rules.mak | 2 +-
 1 file modificato, 1 inserzione(+). 1 rimozione(-)

diff --git a/rules.mak b/rules.mak
index 0327426..13ba62b 100644
--- a/rules.mak
+++ b/rules.mak
@@ -71,7 +71,7 @@ TRACETOOL=$(PYTHON) $(SRC_PATH)/scripts/tracetool.py
 	@test -f $@ || cp $< $@
 
 %.h-timestamp: %.mak
-	$(call quiet-command, sh $(SRC_PATH)/scripts/create_config < $< > $@, "  GEN   $*.h")
+	$(call quiet-command, sh $(SRC_PATH)/scripts/create_config < $< > $@, "  GEN   $(TARGET_DIR)$*.h")
 	@cmp $@ $*.h >/dev/null 2>&1 || cp $@ $*.h
 
 # will delete the target of a rule if commands exit with a nonzero exit status
-- 
1.7.12

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [Qemu-devel] [PATCH 7/9] build: use nesting magic for tools-obj-y
  2012-09-17 16:44 [Qemu-devel] [PATCH 0/9] build cleanups Paolo Bonzini
                   ` (5 preceding siblings ...)
  2012-09-17 16:45 ` [Qemu-devel] [PATCH 6/9] build: add $(TARGET_DIR) to "GEN config-target.h" lines Paolo Bonzini
@ 2012-09-17 16:45 ` Paolo Bonzini
  2012-09-17 16:45 ` [Qemu-devel] [PATCH 8/9] libcacard: add include/ to CFLAGS Paolo Bonzini
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Paolo Bonzini @ 2012-09-17 16:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: aliguori, afaerber

Move this variable to Makefile.objs, together with all the other lists
of object files.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 Makefile      | 5 -----
 Makefile.objs | 9 +++++++++
 2 file modificati, 9 inserzioni(+), 5 rimozioni(-)

diff --git a/Makefile b/Makefile
index fffbbb8..a8078ec 100644
--- a/Makefile
+++ b/Makefile
@@ -152,11 +152,6 @@ endif
 
 qemu-img.o: qemu-img-cmds.h
 
-tools-obj-y = $(oslib-obj-y) $(trace-obj-y) qemu-tool.o qemu-timer.o \
-	qemu-timer-common.o main-loop.o notify.o monitor-dummy.o \
-	iohandler.o
-tools-obj-$(CONFIG_POSIX) += compatfd.o
-
 qemu-img$(EXESUF): qemu-img.o $(tools-obj-y) $(block-obj-y)
 qemu-nbd$(EXESUF): qemu-nbd.o $(tools-obj-y) $(block-obj-y)
 qemu-io$(EXESUF): qemu-io.o cmd.o $(tools-obj-y) $(block-obj-y)
diff --git a/Makefile.objs b/Makefile.objs
index cf00fd5..85bd70b 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -226,6 +226,14 @@ common-obj-y += qmp.o hmp.o
 universal-obj-y += $(qapi-obj-y)
 
 ######################################################################
+# tools-obj-y is shared by qemu-img, qemu-io, qemu-nbd
+
+tools-obj-y = $(oslib-obj-y) $(trace-obj-y) qemu-tool.o qemu-timer.o
+tools-obj-y += qemu-timer-common.o main-loop.o notify.o monitor-dummy.o
+tools-obj-y += iohandler.o
+tools-obj-$(CONFIG_POSIX) += compatfd.o
+
+######################################################################
 # guest agent
 
 qga-obj-y = qga/ qemu-ga.o module.o monitor-dummy.o
@@ -246,5 +254,6 @@ nested-vars += \
 	qapi-obj-y \
 	user-obj-y \
 	common-obj-y \
+	tools-obj-y \
 	extra-obj-y
 dummy := $(call unnest-vars)
-- 
1.7.12

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [Qemu-devel] [PATCH 8/9] libcacard: add include/ to CFLAGS
  2012-09-17 16:44 [Qemu-devel] [PATCH 0/9] build cleanups Paolo Bonzini
                   ` (6 preceding siblings ...)
  2012-09-17 16:45 ` [Qemu-devel] [PATCH 7/9] build: use nesting magic for tools-obj-y Paolo Bonzini
@ 2012-09-17 16:45 ` Paolo Bonzini
  2012-09-17 16:45 ` [Qemu-devel] [PATCH 9/9] libcacard: remove dependency on QEMU main loop Paolo Bonzini
  2012-09-19 14:38 ` [Qemu-devel] [PATCH 0/9] build cleanups Paolo Bonzini
  9 siblings, 0 replies; 12+ messages in thread
From: Paolo Bonzini @ 2012-09-17 16:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: aliguori, afaerber

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 libcacard/Makefile | 2 +-
 1 file modificato, 1 inserzione(+). 1 rimozione(-)

diff --git a/libcacard/Makefile b/libcacard/Makefile
index 63990b7..c2c0212 100644
--- a/libcacard/Makefile
+++ b/libcacard/Makefile
@@ -10,7 +10,7 @@ $(call set-vpath, $(SRC_PATH))
 QEMU_OBJS=$(oslib-obj-y) qemu-timer-common.o $(trace-obj-y)
 QEMU_OBJS_LIB=$(patsubst %.o,%.lo,$(QEMU_OBJS))
 
-QEMU_CFLAGS+=-I../
+QEMU_CFLAGS+=-I../ -I$(SRC_PATH)/include
 
 libcacard.lib-y=$(patsubst %.o,%.lo,$(libcacard-y))
 
-- 
1.7.12

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [Qemu-devel] [PATCH 9/9] libcacard: remove dependency on QEMU main loop
  2012-09-17 16:44 [Qemu-devel] [PATCH 0/9] build cleanups Paolo Bonzini
                   ` (7 preceding siblings ...)
  2012-09-17 16:45 ` [Qemu-devel] [PATCH 8/9] libcacard: add include/ to CFLAGS Paolo Bonzini
@ 2012-09-17 16:45 ` Paolo Bonzini
  2012-09-19 14:38 ` [Qemu-devel] [PATCH 0/9] build cleanups Paolo Bonzini
  9 siblings, 0 replies; 12+ messages in thread
From: Paolo Bonzini @ 2012-09-17 16:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: aliguori, afaerber

libcacard does not use the QEMU main loop, do not link it in.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 Makefile | 2 +-
 1 file modificato, 1 inserzione(+). 1 rimozione(-)

diff --git a/Makefile b/Makefile
index a8078ec..4cc4e3a 100644
--- a/Makefile
+++ b/Makefile
@@ -158,7 +158,7 @@ qemu-io$(EXESUF): qemu-io.o cmd.o $(tools-obj-y) $(block-obj-y)
 
 qemu-bridge-helper$(EXESUF): qemu-bridge-helper.o
 
-vscclient$(EXESUF): $(libcacard-y) $(oslib-obj-y) $(trace-obj-y) $(tools-obj-y) qemu-timer-common.o libcacard/vscclient.o
+vscclient$(EXESUF): $(libcacard-y) $(oslib-obj-y) $(trace-obj-y) monitor-dummy.o qemu-timer-common.o libcacard/vscclient.o
 	$(call quiet-command,$(CC) $(LDFLAGS) -o $@ $^ $(libcacard_libs) $(LIBS),"  LINK  $@")
 
 fsdev/virtfs-proxy-helper$(EXESUF): fsdev/virtfs-proxy-helper.o fsdev/virtio-9p-marshal.o oslib-posix.o $(trace-obj-y)
-- 
1.7.12

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [Qemu-devel] [PATCH 0/9] build cleanups
  2012-09-17 16:44 [Qemu-devel] [PATCH 0/9] build cleanups Paolo Bonzini
                   ` (8 preceding siblings ...)
  2012-09-17 16:45 ` [Qemu-devel] [PATCH 9/9] libcacard: remove dependency on QEMU main loop Paolo Bonzini
@ 2012-09-19 14:38 ` Paolo Bonzini
  2012-09-25 21:04   ` Anthony Liguori
  9 siblings, 1 reply; 12+ messages in thread
From: Paolo Bonzini @ 2012-09-19 14:38 UTC (permalink / raw)
  To: qemu-devel

Il 17/09/2012 18:44, Paolo Bonzini ha scritto:
> Here are some cleanups to the build system, removing some unused files
> from some of the products or fixing some strange behavior that bit me
> while looking at the tree reorganization.
> 
> Paolo
> 
> Paolo Bonzini (9):
>   tools: split monitor-dummy.c, clean up qemu-tool.c
>   block: move QEMUIOVector functions to iov.c
>   build: avoid duplicate appearance of files
>   qemu-ga: do not include the QEMU main loop and dependencies
>   build: add object directory to QEMU_INCLUDES
>   build: add $(TARGET_DIR) to "GEN config-target.h" lines
>   build: use nesting magic for tools-obj-y
>   libcacard: add include/ to CFLAGS
>   libcacard: remove dependency on QEMU main loop
> 
>  Makefile           |   9 ++---
>  Makefile.objs      |  19 +++++++---
>  cutils.c           | 103 ----------------------------------------------------
>  iov.c              | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++++
>  libcacard/Makefile |   2 +-
>  monitor-dummy.c    |  64 +++++++++++++++++++++++++++++++++
>  qemu-tool.c        |  54 ----------------------------
>  rules.mak          |   5 ++-
>  8 file modificati, 189 inserzioni(+), 171 rimozioni(-)
>  create mode 100644 monitor-dummy.c
> 

Doesn't apply anymore. :(

Paolo

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Qemu-devel] [PATCH 0/9] build cleanups
  2012-09-19 14:38 ` [Qemu-devel] [PATCH 0/9] build cleanups Paolo Bonzini
@ 2012-09-25 21:04   ` Anthony Liguori
  0 siblings, 0 replies; 12+ messages in thread
From: Anthony Liguori @ 2012-09-25 21:04 UTC (permalink / raw)
  To: Paolo Bonzini, qemu-devel

Paolo Bonzini <pbonzini@redhat.com> writes:

> Il 17/09/2012 18:44, Paolo Bonzini ha scritto:
>> Here are some cleanups to the build system, removing some unused files
>> from some of the products or fixing some strange behavior that bit me
>> while looking at the tree reorganization.
>> 
>> Paolo
>> 
>> Paolo Bonzini (9):
>>   tools: split monitor-dummy.c, clean up qemu-tool.c
>>   block: move QEMUIOVector functions to iov.c
>>   build: avoid duplicate appearance of files
>>   qemu-ga: do not include the QEMU main loop and dependencies
>>   build: add object directory to QEMU_INCLUDES
>>   build: add $(TARGET_DIR) to "GEN config-target.h" lines
>>   build: use nesting magic for tools-obj-y
>>   libcacard: add include/ to CFLAGS
>>   libcacard: remove dependency on QEMU main loop
>> 
>>  Makefile           |   9 ++---
>>  Makefile.objs      |  19 +++++++---
>>  cutils.c           | 103 ----------------------------------------------------
>>  iov.c              | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++++
>>  libcacard/Makefile |   2 +-
>>  monitor-dummy.c    |  64 +++++++++++++++++++++++++++++++++
>>  qemu-tool.c        |  54 ----------------------------
>>  rules.mak          |   5 ++-
>>  8 file modificati, 189 inserzioni(+), 171 rimozioni(-)
>>  create mode 100644 monitor-dummy.c
>> 
>
> Doesn't apply anymore. :(


FWIW, it breaks make check too:

  LINK  tests/check-qdict
iohandler.o: In function `qemu_init_child_watch':
/home/anthony/git/qemu/iohandler.c:172: undefined reference to `qemu_bh_new'
iohandler.o: In function `sigchld_handler':
/home/anthony/git/qemu/iohandler.c:154: undefined reference to `qemu_bh_schedule'
main-loop.o: In function `main_loop_wait':
/home/anthony/git/qemu/main-loop.c:506: undefined reference to `qemu_bh_poll'
/home/anthony/git/qemu/main-loop.c:481: undefined reference to `qemu_bh_update_timeout'
collect2: ld returned 1 exit status
make: *** [tests/check-qdict] Error 1

Regards,

Anthony Liguori

>
> Paolo

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2012-09-25 21:04 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-09-17 16:44 [Qemu-devel] [PATCH 0/9] build cleanups Paolo Bonzini
2012-09-17 16:44 ` [Qemu-devel] [PATCH 1/9] tools: split monitor-dummy.c, clean up qemu-tool.c Paolo Bonzini
2012-09-17 16:44 ` [Qemu-devel] [PATCH 2/9] block: move QEMUIOVector functions to iov.c Paolo Bonzini
2012-09-17 16:44 ` [Qemu-devel] [PATCH 3/9] build: avoid duplicate appearance of files Paolo Bonzini
2012-09-17 16:44 ` [Qemu-devel] [PATCH 4/9] qemu-ga: do not include the QEMU main loop and dependencies Paolo Bonzini
2012-09-17 16:44 ` [Qemu-devel] [PATCH 5/9] build: add object directory to QEMU_INCLUDES Paolo Bonzini
2012-09-17 16:45 ` [Qemu-devel] [PATCH 6/9] build: add $(TARGET_DIR) to "GEN config-target.h" lines Paolo Bonzini
2012-09-17 16:45 ` [Qemu-devel] [PATCH 7/9] build: use nesting magic for tools-obj-y Paolo Bonzini
2012-09-17 16:45 ` [Qemu-devel] [PATCH 8/9] libcacard: add include/ to CFLAGS Paolo Bonzini
2012-09-17 16:45 ` [Qemu-devel] [PATCH 9/9] libcacard: remove dependency on QEMU main loop Paolo Bonzini
2012-09-19 14:38 ` [Qemu-devel] [PATCH 0/9] build cleanups Paolo Bonzini
2012-09-25 21:04   ` Anthony Liguori

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.