1
The following changes since commit 0db1851becbefe3e50cfc03776fb1f75817376af:
1
The following changes since commit 64175afc695c0672876fbbfc31b299c86d562cb4:
2
2
3
Merge remote-tracking branch 'remotes/vivier/tags/m68k-for-2.10-pull-request' into staging (2017-06-07 11:56:00 +0100)
3
arm_gicv3: Fix ICC_BPR1 reset value when EL3 not implemented (2017-06-07 17:21:44 +0100)
4
4
5
are available in the git repository at:
5
are available in the git repository at:
6
6
7
git://github.com/stefanha/qemu.git tags/block-pull-request
7
git://github.com/codyprime/qemu-kvm-jtc.git tags/block-pull-request
8
8
9
for you to fetch changes up to 11cde1c81093a33c46c7a4039bf750bb61551087:
9
for you to fetch changes up to 56faeb9bb6872b3f926b3b3e0452a70beea10af2:
10
10
11
configure: split c and cxx extra flags (2017-06-07 15:29:46 +0100)
11
block/gluster.c: Handle qdict_array_entries() failure (2017-06-09 08:41:29 -0400)
12
12
13
----------------------------------------------------------------
13
----------------------------------------------------------------
14
14
Gluster patch
15
----------------------------------------------------------------
15
----------------------------------------------------------------
16
16
17
Bruno Dominguez (1):
17
Peter Maydell (1):
18
configure: split c and cxx extra flags
18
block/gluster.c: Handle qdict_array_entries() failure
19
19
20
Philippe Mathieu-Daudé (2):
20
block/gluster.c | 3 +--
21
oslib: strip trailing '\n' from error_setg() string argument
21
1 file changed, 1 insertion(+), 2 deletions(-)
22
coccinelle: fix typo in comment
23
24
Roman Pen (1):
25
coroutine-lock: do not touch coroutine after another one has been
26
entered
27
28
Stefan Hajnoczi (1):
29
.gdbinit: load QEMU sub-commands when gdb starts
30
31
configure | 75 ++++++++++++++++++--------------
32
disas/libvixl/Makefile.objs | 4 +-
33
util/oslib-posix.c | 2 +-
34
util/qemu-coroutine-lock.c | 19 +++++++-
35
util/qemu-coroutine.c | 5 +++
36
.gdbinit | 8 ++++
37
rules.mak | 3 --
38
scripts/coccinelle/return_directly.cocci | 2 +-
39
8 files changed, 77 insertions(+), 41 deletions(-)
40
create mode 100644 .gdbinit
41
22
42
--
23
--
43
2.9.4
24
2.9.3
44
25
45
26
diff view generated by jsdifflib
Deleted patch
1
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
2
1
3
spotted by Coccinelle script scripts/coccinelle/err-bad-newline.cocci
4
5
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
6
Reviewed-by: Eric Blake <eblake@redhat.com>
7
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
8
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
9
---
10
util/oslib-posix.c | 2 +-
11
1 file changed, 1 insertion(+), 1 deletion(-)
12
13
diff --git a/util/oslib-posix.c b/util/oslib-posix.c
14
index XXXXXXX..XXXXXXX 100644
15
--- a/util/oslib-posix.c
16
+++ b/util/oslib-posix.c
17
@@ -XXX,XX +XXX,XX @@ void os_mem_prealloc(int fd, char *area, size_t memory, int smp_cpus,
18
/* touch pages simultaneously */
19
if (touch_all_pages(area, hpagesize, numpages, smp_cpus)) {
20
error_setg(errp, "os_mem_prealloc: Insufficient free host memory "
21
- "pages available to allocate guest RAM\n");
22
+ "pages available to allocate guest RAM");
23
}
24
25
ret = sigaction(SIGBUS, &oldact, NULL);
26
--
27
2.9.4
28
29
diff view generated by jsdifflib
Deleted patch
1
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
2
1
3
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
4
Reviewed-by: Eric Blake <eblake@redhat.com>
5
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
6
---
7
scripts/coccinelle/return_directly.cocci | 2 +-
8
1 file changed, 1 insertion(+), 1 deletion(-)
9
10
diff --git a/scripts/coccinelle/return_directly.cocci b/scripts/coccinelle/return_directly.cocci
11
index XXXXXXX..XXXXXXX 100644
12
--- a/scripts/coccinelle/return_directly.cocci
13
+++ b/scripts/coccinelle/return_directly.cocci
14
@@ -XXX,XX +XXX,XX @@
15
-// replace 'R = X; return R;' with 'return R;'
16
+// replace 'R = X; return R;' with 'return X;'
17
@@
18
identifier VAR;
19
expression E;
20
--
21
2.9.4
22
23
diff view generated by jsdifflib
Deleted patch
1
The scripts/qemu-gdb.py file is not easily discoverable. Add a .gdbinit
2
file so GDB either loads qemu-gdb.py automatically or prints a message
3
informing the user how to enable them (some systems disable ./.gdbinit
4
loading for security reasons).
5
1
6
Symlink .gdbinit and the scripts directory in order to make out-of-tree
7
builds work. The scripts directory is used to find the qemu-gdb.py file
8
specified by a relative path in .gdbinit.
9
10
Suggested-by: Eric Blake <eblake@redhat.com>
11
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
12
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
13
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
14
Tested-by: Eric Blake <eblake@redhat.com>
15
Message-id: 20170517124042.1430-1-stefanha@redhat.com
16
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
17
---
18
configure | 1 +
19
.gdbinit | 8 ++++++++
20
2 files changed, 9 insertions(+)
21
create mode 100644 .gdbinit
22
23
diff --git a/configure b/configure
24
index XXXXXXX..XXXXXXX 100755
25
--- a/configure
26
+++ b/configure
27
@@ -XXX,XX +XXX,XX @@ FILES="$FILES pc-bios/spapr-rtas/Makefile"
28
FILES="$FILES pc-bios/s390-ccw/Makefile"
29
FILES="$FILES roms/seabios/Makefile roms/vgabios/Makefile"
30
FILES="$FILES pc-bios/qemu-icon.bmp"
31
+FILES="$FILES .gdbinit scripts" # scripts needed by relative path in .gdbinit
32
for bios_file in \
33
$source_path/pc-bios/*.bin \
34
$source_path/pc-bios/*.lid \
35
diff --git a/.gdbinit b/.gdbinit
36
new file mode 100644
37
index XXXXXXX..XXXXXXX
38
--- /dev/null
39
+++ b/.gdbinit
40
@@ -XXX,XX +XXX,XX @@
41
+# GDB may have ./.gdbinit loading disabled by default. In that case you can
42
+# follow the instructions it prints. They boil down to adding the following to
43
+# your home directory's ~/.gdbinit file:
44
+#
45
+# add-auto-load-safe-path /path/to/qemu/.gdbinit
46
+
47
+# Load QEMU-specific sub-commands and settings
48
+source scripts/qemu-gdb.py
49
--
50
2.9.4
51
52
diff view generated by jsdifflib
Deleted patch
1
From: Roman Pen <roman.penyaev@profitbricks.com>
2
1
3
Submission of requests on linux aio is a bit tricky and can lead to
4
requests completions on submission path:
5
6
44713c9e8547 ("linux-aio: Handle io_submit() failure gracefully")
7
0ed93d84edab ("linux-aio: process completions from ioq_submit()")
8
9
That means that any coroutine which has been yielded in order to wait
10
for completion can be resumed from submission path and be eventually
11
terminated (freed).
12
13
The following use-after-free crash was observed when IO throttling
14
was enabled:
15
16
Program received signal SIGSEGV, Segmentation fault.
17
[Switching to Thread 0x7f5813dff700 (LWP 56417)]
18
virtqueue_unmap_sg (elem=0x7f5804009a30, len=1, vq=<optimized out>) at virtio.c:252
19
(gdb) bt
20
#0 virtqueue_unmap_sg (elem=0x7f5804009a30, len=1, vq=<optimized out>) at virtio.c:252
21
^^^^^^^^^^^^^^
22
remember the address
23
24
#1 virtqueue_fill (vq=0x5598b20d21b0, elem=0x7f5804009a30, len=1, idx=0) at virtio.c:282
25
#2 virtqueue_push (vq=0x5598b20d21b0, elem=elem@entry=0x7f5804009a30, len=<optimized out>) at virtio.c:308
26
#3 virtio_blk_req_complete (req=req@entry=0x7f5804009a30, status=status@entry=0 '\000') at virtio-blk.c:61
27
#4 virtio_blk_rw_complete (opaque=<optimized out>, ret=0) at virtio-blk.c:126
28
#5 blk_aio_complete (acb=0x7f58040068d0) at block-backend.c:923
29
#6 coroutine_trampoline (i0=<optimized out>, i1=<optimized out>) at coroutine-ucontext.c:78
30
31
(gdb) p * elem
32
$8 = {index = 77, out_num = 2, in_num = 1,
33
in_addr = 0x7f5804009ad8, out_addr = 0x7f5804009ae0,
34
in_sg = 0x0, out_sg = 0x7f5804009a50}
35
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
36
'in_sg' and 'out_sg' are invalid.
37
e.g. it is impossible that 'in_sg' is zero,
38
instead its value must be equal to:
39
40
(gdb) p/x 0x7f5804009ad8 + sizeof(elem->in_addr[0]) + 2 * sizeof(elem->out_addr[0])
41
$26 = 0x7f5804009af0
42
43
Seems 'elem' was corrupted. Meanwhile another thread raised an abort:
44
45
Thread 12 (Thread 0x7f57f2ffd700 (LWP 56426)):
46
#0 raise () from /lib/x86_64-linux-gnu/libc.so.6
47
#1 abort () from /lib/x86_64-linux-gnu/libc.so.6
48
#2 qemu_coroutine_enter (co=0x7f5804009af0) at qemu-coroutine.c:113
49
#3 qemu_co_queue_run_restart (co=0x7f5804009a30) at qemu-coroutine-lock.c:60
50
#4 qemu_coroutine_enter (co=0x7f5804009a30) at qemu-coroutine.c:119
51
^^^^^^^^^^^^^^^^^^
52
WTF?? this is equal to elem from crashed thread
53
54
#5 qemu_co_queue_run_restart (co=0x7f57e7f16ae0) at qemu-coroutine-lock.c:60
55
#6 qemu_coroutine_enter (co=0x7f57e7f16ae0) at qemu-coroutine.c:119
56
#7 qemu_co_queue_run_restart (co=0x7f5807e112a0) at qemu-coroutine-lock.c:60
57
#8 qemu_coroutine_enter (co=0x7f5807e112a0) at qemu-coroutine.c:119
58
#9 qemu_co_queue_run_restart (co=0x7f5807f17820) at qemu-coroutine-lock.c:60
59
#10 qemu_coroutine_enter (co=0x7f5807f17820) at qemu-coroutine.c:119
60
#11 qemu_co_queue_run_restart (co=0x7f57e7f18e10) at qemu-coroutine-lock.c:60
61
#12 qemu_coroutine_enter (co=0x7f57e7f18e10) at qemu-coroutine.c:119
62
#13 qemu_co_enter_next (queue=queue@entry=0x5598b1e742d0) at qemu-coroutine-lock.c:106
63
#14 timer_cb (blk=0x5598b1e74280, is_write=<optimized out>) at throttle-groups.c:419
64
65
Crash can be explained by access of 'co' object from the loop inside
66
qemu_co_queue_run_restart():
67
68
while ((next = QSIMPLEQ_FIRST(&co->co_queue_wakeup))) {
69
QSIMPLEQ_REMOVE_HEAD(&co->co_queue_wakeup, co_queue_next);
70
^^^^^^^^^^^^^^^^^^^^
71
on each iteration 'co' is accessed,
72
but 'co' can be already freed
73
74
qemu_coroutine_enter(next);
75
}
76
77
When 'next' coroutine is resumed (entered) it can in its turn resume
78
'co', and eventually free it. That's why we see 'co' (which was freed)
79
has the same address as 'elem' from the first backtrace.
80
81
The fix is obvious: use temporary queue and do not touch coroutine after
82
first qemu_coroutine_enter() is invoked.
83
84
The issue is quite rare and happens every ~12 hours on very high IO
85
and CPU load (building linux kernel with -j512 inside guest) when IO
86
throttling is enabled. With the fix applied guest is running ~35 hours
87
and is still alive so far.
88
89
Signed-off-by: Roman Pen <roman.penyaev@profitbricks.com>
90
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
91
Message-id: 20170601160847.23720-1-roman.penyaev@profitbricks.com
92
Cc: Paolo Bonzini <pbonzini@redhat.com>
93
Cc: Fam Zheng <famz@redhat.com>
94
Cc: Stefan Hajnoczi <stefanha@redhat.com>
95
Cc: Kevin Wolf <kwolf@redhat.com>
96
Cc: qemu-devel@nongnu.org
97
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
98
---
99
util/qemu-coroutine-lock.c | 19 +++++++++++++++++--
100
util/qemu-coroutine.c | 5 +++++
101
2 files changed, 22 insertions(+), 2 deletions(-)
102
103
diff --git a/util/qemu-coroutine-lock.c b/util/qemu-coroutine-lock.c
104
index XXXXXXX..XXXXXXX 100644
105
--- a/util/qemu-coroutine-lock.c
106
+++ b/util/qemu-coroutine-lock.c
107
@@ -XXX,XX +XXX,XX @@ void coroutine_fn qemu_co_queue_wait(CoQueue *queue, CoMutex *mutex)
108
void qemu_co_queue_run_restart(Coroutine *co)
109
{
110
Coroutine *next;
111
+ QSIMPLEQ_HEAD(, Coroutine) tmp_queue_wakeup =
112
+ QSIMPLEQ_HEAD_INITIALIZER(tmp_queue_wakeup);
113
114
trace_qemu_co_queue_run_restart(co);
115
- while ((next = QSIMPLEQ_FIRST(&co->co_queue_wakeup))) {
116
- QSIMPLEQ_REMOVE_HEAD(&co->co_queue_wakeup, co_queue_next);
117
+
118
+ /* Because "co" has yielded, any coroutine that we wakeup can resume it.
119
+ * If this happens and "co" terminates, co->co_queue_wakeup becomes
120
+ * invalid memory. Therefore, use a temporary queue and do not touch
121
+ * the "co" coroutine as soon as you enter another one.
122
+ *
123
+ * In its turn resumed "co" can pupulate "co_queue_wakeup" queue with
124
+ * new coroutines to be woken up. The caller, who has resumed "co",
125
+ * will be responsible for traversing the same queue, which may cause
126
+ * a different wakeup order but not any missing wakeups.
127
+ */
128
+ QSIMPLEQ_CONCAT(&tmp_queue_wakeup, &co->co_queue_wakeup);
129
+
130
+ while ((next = QSIMPLEQ_FIRST(&tmp_queue_wakeup))) {
131
+ QSIMPLEQ_REMOVE_HEAD(&tmp_queue_wakeup, co_queue_next);
132
qemu_coroutine_enter(next);
133
}
134
}
135
diff --git a/util/qemu-coroutine.c b/util/qemu-coroutine.c
136
index XXXXXXX..XXXXXXX 100644
137
--- a/util/qemu-coroutine.c
138
+++ b/util/qemu-coroutine.c
139
@@ -XXX,XX +XXX,XX @@ void qemu_aio_coroutine_enter(AioContext *ctx, Coroutine *co)
140
141
qemu_co_queue_run_restart(co);
142
143
+ /* Beware, if ret == COROUTINE_YIELD and qemu_co_queue_run_restart()
144
+ * has started any other coroutine, "co" might have been reentered
145
+ * and even freed by now! So be careful and do not touch it.
146
+ */
147
+
148
switch (ret) {
149
case COROUTINE_YIELD:
150
return;
151
--
152
2.9.4
153
154
diff view generated by jsdifflib
1
From: Bruno Dominguez <bru.dominguez@gmail.com>
1
From: Peter Maydell <peter.maydell@linaro.org>
2
2
3
There was no possibility to add specific cxx flags using the configure
3
In qemu_gluster_parse_json(), the call to qdict_array_entries()
4
file. So A new entrance has been created to support it.
4
could return a negative error code, which we were ignoring
5
because we assigned the result to an unsigned variable.
6
Fix this by using the 'int' type instead, which matches the
7
return type of qdict_array_entries() and also the type
8
we use for the loop enumeration variable 'i'.
5
9
6
Duplication of information in configure and rules.mak. Taking
10
(Spotted by Coverity, CID 1360960.)
7
QEMU_CFLAGS and add them to QEMU_CXXFLAGS, now the value of
8
QEMU_CXXFLAGS is stored in config-host.mak, so there is no need for
9
it.
10
11
11
The makefile for libvixl was adding flags for QEMU_CXXFLAGS in
12
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12
QEMU_CFLAGS because of the addition in rules.mak. That was removed, so
13
Reviewed-by: Eric Blake <eblake@redhat.com>
13
adding them where it should be.
14
Reviewed-by: Jeff Cody <jcody@redhat.com>
15
Message-id: 1496682098-1540-1-git-send-email-peter.maydell@linaro.org
16
Signed-off-by: Jeff Cody <jcody@redhat.com>
17
---
18
block/gluster.c | 3 +--
19
1 file changed, 1 insertion(+), 2 deletions(-)
14
20
15
Signed-off-by: Bruno Dominguez <bru.dominguez@gmail.com>
21
diff --git a/block/gluster.c b/block/gluster.c
16
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
17
Message-id: 1496754467-20893-1-git-send-email-bru.dominguez@gmail.com
18
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
19
---
20
configure | 74 +++++++++++++++++++++++++--------------------
21
disas/libvixl/Makefile.objs | 4 +--
22
rules.mak | 3 --
23
3 files changed, 44 insertions(+), 37 deletions(-)
24
25
diff --git a/configure b/configure
26
index XXXXXXX..XXXXXXX 100755
27
--- a/configure
28
+++ b/configure
29
@@ -XXX,XX +XXX,XX @@ update_cxxflags() {
30
# Set QEMU_CXXFLAGS from QEMU_CFLAGS by filtering out those
31
# options which some versions of GCC's C++ compiler complain about
32
# because they only make sense for C programs.
33
- QEMU_CXXFLAGS=
34
+ QEMU_CXXFLAGS="$QEMU_CXXFLAGS -D__STDC_LIMIT_MACROS"
35
+
36
for arg in $QEMU_CFLAGS; do
37
case $arg in
38
-Wstrict-prototypes|-Wmissing-prototypes|-Wnested-externs|\
39
@@ -XXX,XX +XXX,XX @@ for opt do
40
--extra-cflags=*) QEMU_CFLAGS="$QEMU_CFLAGS $optarg"
41
EXTRA_CFLAGS="$optarg"
42
;;
43
+ --extra-cxxflags=*) QEMU_CXXFLAGS="$QEMU_CXXFLAGS $optarg"
44
+ EXTRA_CXXFLAGS="$optarg"
45
+ ;;
46
--extra-ldflags=*) LDFLAGS="$LDFLAGS $optarg"
47
EXTRA_LDFLAGS="$optarg"
48
;;
49
@@ -XXX,XX +XXX,XX @@ for opt do
50
;;
51
--extra-cflags=*)
52
;;
53
+ --extra-cxxflags=*)
54
+ ;;
55
--extra-ldflags=*)
56
;;
57
--enable-debug-info)
58
@@ -XXX,XX +XXX,XX @@ Advanced options (experts only):
59
--cxx=CXX use C++ compiler CXX [$cxx]
60
--objcc=OBJCC use Objective-C compiler OBJCC [$objcc]
61
--extra-cflags=CFLAGS append extra C compiler flags QEMU_CFLAGS
62
+ --extra-cxxflags=CXXFLAGS append extra C++ compiler flags QEMU_CXXFLAGS
63
--extra-ldflags=LDFLAGS append extra linker flags LDFLAGS
64
--make=MAKE use specified make [$make]
65
--install=INSTALL use specified install [$install]
66
@@ -XXX,XX +XXX,XX @@ if test "$bogus_os" = "yes"; then
67
error_exit "Unrecognized host OS $targetos"
68
fi
69
70
-# Check that the C++ compiler exists and works with the C compiler
71
-if has $cxx; then
72
- cat > $TMPC <<EOF
73
-int c_function(void);
74
-int main(void) { return c_function(); }
75
-EOF
76
-
77
- compile_object
78
-
79
- cat > $TMPCXX <<EOF
80
-extern "C" {
81
- int c_function(void);
82
-}
83
-int c_function(void) { return 42; }
84
-EOF
85
-
86
- update_cxxflags
87
-
88
- if do_cxx $QEMU_CXXFLAGS -o $TMPE $TMPCXX $TMPO $LDFLAGS; then
89
- # C++ compiler $cxx works ok with C compiler $cc
90
- :
91
- else
92
- echo "C++ compiler $cxx does not work with C compiler $cc"
93
- echo "Disabling C++ specific optional code"
94
- cxx=
95
- fi
96
-else
97
- echo "No C++ compiler available; disabling C++ specific optional code"
98
- cxx=
99
-fi
100
-
101
gcc_flags="-Wold-style-declaration -Wold-style-definition -Wtype-limits"
102
gcc_flags="-Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers $gcc_flags"
103
gcc_flags="-Wno-missing-include-dirs -Wempty-body -Wnested-externs $gcc_flags"
104
@@ -XXX,XX +XXX,XX @@ EOF
105
fi
106
fi
107
108
+# Check that the C++ compiler exists and works with the C compiler.
109
+# All the QEMU_CXXFLAGS are based on QEMU_CFLAGS. Keep this at the end to don't miss any other that could be added.
110
+if has $cxx; then
111
+ cat > $TMPC <<EOF
112
+int c_function(void);
113
+int main(void) { return c_function(); }
114
+EOF
115
+
116
+ compile_object
117
+
118
+ cat > $TMPCXX <<EOF
119
+extern "C" {
120
+ int c_function(void);
121
+}
122
+int c_function(void) { return 42; }
123
+EOF
124
+
125
+ update_cxxflags
126
+
127
+ if do_cxx $QEMU_CXXFLAGS -o $TMPE $TMPCXX $TMPO $LDFLAGS; then
128
+ # C++ compiler $cxx works ok with C compiler $cc
129
+ :
130
+ else
131
+ echo "C++ compiler $cxx does not work with C compiler $cc"
132
+ echo "Disabling C++ specific optional code"
133
+ cxx=
134
+ fi
135
+else
136
+ echo "No C++ compiler available; disabling C++ specific optional code"
137
+ cxx=
138
+fi
139
+
140
echo_version() {
141
if test "$1" = "yes" ; then
142
echo "($2)"
143
@@ -XXX,XX +XXX,XX @@ if test "$mingw32" = "no" ; then
144
fi
145
echo "qemu_helperdir=$libexecdir" >> $config_host_mak
146
echo "extra_cflags=$EXTRA_CFLAGS" >> $config_host_mak
147
+echo "extra_cxxflags=$EXTRA_CXXFLAGS" >> $config_host_mak
148
echo "extra_ldflags=$EXTRA_LDFLAGS" >> $config_host_mak
149
echo "qemu_localedir=$qemu_localedir" >> $config_host_mak
150
echo "libs_softmmu=$libs_softmmu" >> $config_host_mak
151
@@ -XXX,XX +XXX,XX @@ echo "WINDRES=$windres" >> $config_host_mak
152
echo "CFLAGS=$CFLAGS" >> $config_host_mak
153
echo "CFLAGS_NOPIE=$CFLAGS_NOPIE" >> $config_host_mak
154
echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak
155
+echo "QEMU_CXXFLAGS=$QEMU_CXXFLAGS" >> $config_host_mak
156
echo "QEMU_INCLUDES=$QEMU_INCLUDES" >> $config_host_mak
157
if test "$sparse" = "yes" ; then
158
echo "CC := REAL_CC=\"\$(CC)\" cgcc" >> $config_host_mak
159
diff --git a/disas/libvixl/Makefile.objs b/disas/libvixl/Makefile.objs
160
index XXXXXXX..XXXXXXX 100644
22
index XXXXXXX..XXXXXXX 100644
161
--- a/disas/libvixl/Makefile.objs
23
--- a/block/gluster.c
162
+++ b/disas/libvixl/Makefile.objs
24
+++ b/block/gluster.c
163
@@ -XXX,XX +XXX,XX @@ libvixl_OBJS = vixl/utils.o \
25
@@ -XXX,XX +XXX,XX @@ static int qemu_gluster_parse_json(BlockdevOptionsGluster *gconf,
164
26
Error *local_err = NULL;
165
# The -Wno-sign-compare is needed only for gcc 4.6, which complains about
27
char *str = NULL;
166
# some signed-unsigned equality comparisons which later gcc versions do not.
28
const char *ptr;
167
-$(addprefix $(obj)/,$(libvixl_OBJS)): QEMU_CFLAGS := -I$(SRC_PATH)/disas/libvixl $(QEMU_CFLAGS) -Wno-sign-compare
29
- size_t num_servers;
168
+$(addprefix $(obj)/,$(libvixl_OBJS)): QEMU_CXXFLAGS := -I$(SRC_PATH)/disas/libvixl $(QEMU_CXXFLAGS) -Wno-sign-compare
30
- int i, type;
169
# Ensure that C99 macros are defined regardless of the inclusion order of
31
+ int i, type, num_servers;
170
# headers in vixl. This is required at least on NetBSD.
32
171
-$(addprefix $(obj)/,$(libvixl_OBJS)): QEMU_CFLAGS += -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_FORMAT_MACROS
33
/* create opts info from runtime_json_opts list */
172
+$(addprefix $(obj)/,$(libvixl_OBJS)): QEMU_CXXFLAGS += -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS
34
opts = qemu_opts_create(&runtime_json_opts, NULL, 0, &error_abort);
173
174
common-obj-$(CONFIG_ARM_A64_DIS) += $(libvixl_OBJS)
175
diff --git a/rules.mak b/rules.mak
176
index XXXXXXX..XXXXXXX 100644
177
--- a/rules.mak
178
+++ b/rules.mak
179
@@ -XXX,XX +XXX,XX @@ MAKEFLAGS += -rR
180
%.mak:
181
clean-target:
182
183
-# Flags for C++ compilation
184
-QEMU_CXXFLAGS = -D__STDC_LIMIT_MACROS $(filter-out -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wold-style-declaration -Wold-style-definition -Wredundant-decls, $(QEMU_CFLAGS))
185
-
186
# Flags for dependency generation
187
QEMU_DGFLAGS += -MMD -MP -MT $@ -MF $(@D)/$(*F).d
188
189
--
35
--
190
2.9.4
36
2.9.3
191
37
192
38
diff view generated by jsdifflib