* [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze
@ 2020-10-26 13:51 Paolo Bonzini
2020-10-26 13:51 ` [PULL 01/17] build: fix macOS --enable-modules build Paolo Bonzini
` (17 more replies)
0 siblings, 18 replies; 26+ messages in thread
From: Paolo Bonzini @ 2020-10-26 13:51 UTC (permalink / raw)
To: qemu-devel
The following changes since commit 4c5b97bfd0dd54dc27717ae8d1cd10e14eef1430:
Merge remote-tracking branch 'remotes/kraxel/tags/modules-20201022-pull-request' into staging (2020-10-22 12:33:21 +0100)
are available in the Git repository at:
https://gitlab.com/bonzini/qemu.git tags/for-upstream
for you to fetch changes up to 8b0e484c8bf82e07bb0439bff04e248c63cdc86a:
machine: move SMP initialization from vl.c (2020-10-26 07:08:40 -0400)
----------------------------------------------------------------
* fix --disable-tcg builds (Claudio)
* Fixes for macOS --enable-modules build and OpenBSD curses/iconv detection (myself)
* Start preparing for meson 0.56 (myself)
* Move directory configuration to meson (myself)
* Start untangling qemu_init (myself)
* Windows fixes (Sunil)
* Remove -no-kbm (Thomas)
----------------------------------------------------------------
Claudio Fontana (2):
qtest: unbreak non-TCG builds in bios-tables-test
replay: do not build if TCG is not available
Luc Michel (1):
hw/core/qdev-clock: add a reference on aliased clocks
Paolo Bonzini (11):
build: fix macOS --enable-modules build
meson: rewrite curses/iconv test
do not use colons in test names
Makefile: separate meson rerun from the rest of the ninja invocation
configure: allow configuring localedir
configure: move directory options from config-host.mak to meson
configure: remove unused variable from config-host.mak
configure: move install_blobs from configure to meson
machine: remove deprecated -machine enforce-config-section option
machine: move UP defaults to class_base_init
machine: move SMP initialization from vl.c
Sunil Muthuswamy (2):
WHPX: Fix WHPX build break
win32: boot broken when bind & data dir are the same
Thomas Huth (1):
Remove deprecated -no-kvm option
.cirrus.yml | 2 +-
Makefile | 44 ++++++---
block/meson.build | 3 +-
configure | 64 +++----------
contrib/vhost-user-gpu/meson.build | 2 +-
docs/system/deprecated.rst | 23 ++---
hw/core/machine.c | 36 +++-----
hw/core/qdev-clock.c | 8 ++
include/hw/boards.h | 1 -
meson.build | 178 ++++++++++++++++++++++---------------
meson_options.txt | 4 +
migration/migration.c | 10 ---
net/meson.build | 3 +-
pc-bios/descriptors/meson.build | 4 +-
pc-bios/meson.build | 15 ++--
qemu-options.hx | 11 ---
replay/meson.build | 4 +-
replay/stubs-system.c | 96 ++++++++++++++++++++
scripts/undefsym.py | 11 ++-
softmmu/vl.c | 16 ----
stubs/meson.build | 4 +-
stubs/replay-tools.c | 83 +++++++++++++++++
stubs/replay-user.c | 9 --
stubs/replay.c | 78 ----------------
tests/fp/meson.build | 6 +-
tests/ptimer-test-stubs.c | 5 --
tests/qtest/bios-tables-test.c | 10 +++
tests/qtest/meson.build | 2 +-
tests/qtest/qmp-cmd-test.c | 3 +
tools/virtiofsd/meson.build | 2 +-
ui/icons/meson.build | 6 +-
ui/meson.build | 2 +-
util/cutils.c | 2 +-
version.texi.in | 2 -
34 files changed, 416 insertions(+), 333 deletions(-)
create mode 100644 replay/stubs-system.c
create mode 100644 stubs/replay-tools.c
delete mode 100644 stubs/replay-user.c
delete mode 100644 version.texi.in
--
2.26.2
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PULL 01/17] build: fix macOS --enable-modules build
2020-10-26 13:51 [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Paolo Bonzini
@ 2020-10-26 13:51 ` Paolo Bonzini
2020-10-27 9:27 ` Philippe Mathieu-Daudé
2020-10-26 13:51 ` [PULL 02/17] meson: rewrite curses/iconv test Paolo Bonzini
` (16 subsequent siblings)
17 siblings, 1 reply; 26+ messages in thread
From: Paolo Bonzini @ 2020-10-26 13:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Emmanuel Blot
Apple's nm implementation includes empty lines in the output that are not
found in GNU binutils. This confuses scripts/undefsym.py, though it did
not confuse the scripts/undefsym.sh script that it replaced. To fix
this, ignore lines that do not have two fields.
Reported-by: Emmanuel Blot <eblot.ml@gmail.com>
Tested-by: Emmanuel Blot <eblot.ml@gmail.com>
Fixes: 604f3e4e90 ("meson: Convert undefsym.sh to undefsym.py", 2020-09-08)
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
.cirrus.yml | 2 +-
scripts/undefsym.py | 11 +++++------
2 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/.cirrus.yml b/.cirrus.yml
index 81a2960b1a..900437dd2a 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -40,7 +40,7 @@ macos_xcode_task:
script:
- mkdir build
- cd build
- - ../configure --extra-cflags='-Wno-error=deprecated-declarations'
+ - ../configure --extra-cflags='-Wno-error=deprecated-declarations' --enable-modules
--enable-werror --cc=clang || { cat config.log meson-logs/meson-log.txt; exit 1; }
- gmake -j$(sysctl -n hw.ncpu)
- gmake check V=1
diff --git a/scripts/undefsym.py b/scripts/undefsym.py
index 69a895cd26..4b6a72d95f 100644
--- a/scripts/undefsym.py
+++ b/scripts/undefsym.py
@@ -15,12 +15,11 @@ def filter_lines_set(stdout, from_staticlib):
linesSet = set()
for line in stdout.splitlines():
tokens = line.split(b' ')
- if len(tokens) >= 1:
- if len(tokens) > 1:
- if from_staticlib and tokens[1] == b'U':
- continue
- if not from_staticlib and tokens[1] != b'U':
- continue
+ if len(tokens) >= 2:
+ if from_staticlib and tokens[1] == b'U':
+ continue
+ if not from_staticlib and tokens[1] != b'U':
+ continue
new_line = b'-Wl,-u,' + tokens[0]
if not new_line in linesSet:
linesSet.add(new_line)
--
2.26.2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 02/17] meson: rewrite curses/iconv test
2020-10-26 13:51 [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Paolo Bonzini
2020-10-26 13:51 ` [PULL 01/17] build: fix macOS --enable-modules build Paolo Bonzini
@ 2020-10-26 13:51 ` Paolo Bonzini
2020-10-26 13:51 ` [PULL 03/17] do not use colons in test names Paolo Bonzini
` (15 subsequent siblings)
17 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2020-10-26 13:51 UTC (permalink / raw)
To: qemu-devel
Redo the curses test to do the same tests that the configure
check used to do. OpenBSD triggers the warning because
it does not support NCURSES_WIDECHAR and thus the cc.links
test fails.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
meson.build | 127 ++++++++++++++++++++++++++++++----------------------
1 file changed, 73 insertions(+), 54 deletions(-)
diff --git a/meson.build b/meson.build
index 7627a0ae46..0edde14ad7 100644
--- a/meson.build
+++ b/meson.build
@@ -465,70 +465,89 @@ endif
iconv = not_found
curses = not_found
if have_system and not get_option('curses').disabled()
- if not get_option('iconv').disabled()
- libiconv = cc.find_library('iconv',
- required: false,
- static: enable_static)
- if cc.links('''
- #include <iconv.h>
- int main(void) {
- iconv_t conv = iconv_open("WCHAR_T", "UCS-2");
- return conv != (iconv_t) -1;
- }''', dependencies: [libiconv])
- iconv = declare_dependency(dependencies: [libiconv])
+ curses_test = '''
+ #include <locale.h>
+ #include <curses.h>
+ #include <wchar.h>
+ int main(void) {
+ wchar_t wch = L'w';
+ setlocale(LC_ALL, "");
+ resize_term(0, 0);
+ addwstr(L"wide chars\n");
+ addnwstr(&wch, 1);
+ add_wch(WACS_DEGREE);
+ return 0;
+ }'''
+
+ curses = dependency((targetos == 'windows' ? 'ncurses' : 'ncursesw'),
+ required: false,
+ method: 'pkg-config',
+ static: enable_static)
+ msg = get_option('curses').enabled() ? 'curses library not found' : ''
+ if curses.found()
+ if cc.links(curses_test, dependencies: [curses])
+ curses = declare_dependency(compile_args: '-DNCURSES_WIDECHAR', dependencies: [curses])
+ else
+ msg = 'curses package not usable'
+ curses = not_found
endif
endif
- if get_option('iconv').enabled() and not iconv.found()
- error('Cannot detect iconv API')
- endif
- if iconv.found()
- curses_libname_list = ['ncursesw', 'ncurses', 'cursesw', 'pdcurses']
- curses_test = '''
- #include <locale.h>
- #include <curses.h>
- #include <wchar.h>
- int main(void) {
- wchar_t wch = L'w';
- setlocale(LC_ALL, "");
- resize_term(0, 0);
- addwstr(L"wide chars\n");
- addnwstr(&wch, 1);
- add_wch(WACS_DEGREE);
- return 0;
- }'''
- foreach curses_libname : curses_libname_list
- libcurses = dependency(curses_libname,
- required: false,
- method: 'pkg-config',
- static: enable_static)
-
- if not libcurses.found()
- dirs = ['/usr/include/ncursesw']
- if targetos == 'windows'
- dirs = []
- endif
+ if not curses.found()
+ curses_compile_args = ['-DNCURSES_WIDECHAR']
+ has_curses_h = cc.has_header('curses.h', args: curses_compile_args)
+ if targetos != 'windows' and not has_curses_h
+ message('Trying with /usr/include/ncursesw')
+ curses_compile_args += ['-I/usr/include/ncursesw']
+ has_curses_h = cc.has_header('curses.h', args: curses_compile_args)
+ endif
+ if has_curses_h
+ curses_libname_list = (targetos == 'windows' ? ['pdcurses'] : ['ncursesw', 'cursesw'])
+ foreach curses_libname : curses_libname_list
libcurses = cc.find_library(curses_libname,
required: false,
- dirs: dirs,
static: enable_static)
- endif
- if libcurses.found()
- if cc.links(curses_test, dependencies: [libcurses])
- curses = declare_dependency(compile_args: '-DNCURSES_WIDECHAR', dependencies: [libcurses])
- break
+ if libcurses.found()
+ if cc.links(curses_test, args: curses_compile_args, dependencies: libcurses)
+ curses = declare_dependency(compile_args: curses_compile_args,
+ dependencies: [libcurses])
+ break
+ else
+ msg = 'curses library not usable'
+ endif
endif
+ endforeach
+ endif
+ endif
+ if not get_option('iconv').disabled()
+ foreach link_args : [ ['-liconv'], [] ]
+ # Programs will be linked with glib and this will bring in libiconv on FreeBSD.
+ # We need to use libiconv if available because mixing libiconv's headers with
+ # the system libc does not work.
+ # However, without adding glib to the dependencies -L/usr/local/lib will not be
+ # included in the command line and libiconv will not be found.
+ if cc.links('''
+ #include <iconv.h>
+ int main(void) {
+ iconv_t conv = iconv_open("WCHAR_T", "UCS-2");
+ return conv != (iconv_t) -1;
+ }''', args: config_host['GLIB_CFLAGS'].split() + config_host['GLIB_LIBS'].split() + link_args)
+ iconv = declare_dependency(link_args: link_args, dependencies: glib)
+ break
endif
endforeach
endif
- if not curses.found()
- if iconv.found()
- if get_option('curses').enabled()
- error('Cannot find curses')
- endif
- elif get_option('curses').enabled()
- error('iconv required for curses UI but not available')
+ if curses.found() and not iconv.found()
+ if get_option('iconv').enabled()
+ error('iconv not available')
+ endif
+ msg = 'iconv required for curses UI but not available'
+ curses = not_found
+ endif
+ if not curses.found() and msg != ''
+ if get_option('curses').enabled()
+ error(msg)
else
- warning('iconv required for curses UI but not available, disabling')
+ warning(msg + ', disabling')
endif
endif
endif
--
2.26.2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 03/17] do not use colons in test names
2020-10-26 13:51 [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Paolo Bonzini
2020-10-26 13:51 ` [PULL 01/17] build: fix macOS --enable-modules build Paolo Bonzini
2020-10-26 13:51 ` [PULL 02/17] meson: rewrite curses/iconv test Paolo Bonzini
@ 2020-10-26 13:51 ` Paolo Bonzini
2020-10-26 13:51 ` [PULL 04/17] hw/core/qdev-clock: add a reference on aliased clocks Paolo Bonzini
` (14 subsequent siblings)
17 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2020-10-26 13:51 UTC (permalink / raw)
To: qemu-devel
Starting with meson 0.56, colons are used to separate the subproject name
from the test name. Use dash or slash depending on what looks nicer.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
tests/fp/meson.build | 6 +++---
tests/qtest/meson.build | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/tests/fp/meson.build b/tests/fp/meson.build
index 24739ad421..3d4fb00f9d 100644
--- a/tests/fp/meson.build
+++ b/tests/fp/meson.build
@@ -603,7 +603,7 @@ fptest_rounding_args = ['-r', 'all']
# FIXME: i32_to_extF80 (broken), i64_to_extF80 (broken)
# extF80_roundToInt (broken)
foreach k, v : softfloat_conv_tests
- test('fp-test:' + k, fptest,
+ test('fp-test-' + k, fptest,
args: fptest_args + fptest_rounding_args + v.split(),
suite: ['softfloat', 'softfloat-conv'])
endforeach
@@ -612,13 +612,13 @@ endforeach
# extF80_{mulAdd} (missing)
foreach k, v : softfloat_tests
extF80_broken = ['lt_quiet', 'rem'].contains(k)
- test('fp-test:' + k, fptest,
+ test('fp-test-' + k, fptest,
args: fptest_args + fptest_rounding_args +
['f16_' + k, 'f32_' + k, 'f64_' + k, 'f128_' + k] +
(extF80_broken ? [] : ['extF80_' + k]),
suite: ['softfloat', 'softfloat-' + v])
endforeach
-test('fp-test:mulAdd', fptest,
+test('fp-test-mulAdd', fptest,
# no fptest_rounding_args
args: fptest_args +
['f16_mulAdd', 'f32_mulAdd', 'f64_mulAdd', 'f128_mulAdd'],
diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build
index 28d4068718..4e0d9e24aa 100644
--- a/tests/qtest/meson.build
+++ b/tests/qtest/meson.build
@@ -251,7 +251,7 @@ foreach dir : target_dirs
}
endif
# FIXME: missing dependency on the emulator binary and qemu-img
- test('qtest-@0@: @1@'.format(target_base, test),
+ test('qtest-@0@/@1@'.format(target_base, test),
qtest_executables[test],
depends: [test_deps, qtest_emulator],
env: qtest_env,
--
2.26.2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 04/17] hw/core/qdev-clock: add a reference on aliased clocks
2020-10-26 13:51 [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Paolo Bonzini
` (2 preceding siblings ...)
2020-10-26 13:51 ` [PULL 03/17] do not use colons in test names Paolo Bonzini
@ 2020-10-26 13:51 ` Paolo Bonzini
2020-10-26 13:51 ` [PULL 05/17] qtest: unbreak non-TCG builds in bios-tables-test Paolo Bonzini
` (13 subsequent siblings)
17 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2020-10-26 13:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Luc Michel, Philippe Mathieu-Daudé
From: Luc Michel <luc@lmichel.fr>
When aliasing a clock with the qdev_alias_clock() function, a new link
property is created on the device aliasing the clock. The link points
to the aliased clock and use the OBJ_PROP_LINK_STRONG flag. This
property is read only since it does not provide a check callback for
modifications.
The object_property_add_link() documentation stats that with
OBJ_PROP_LINK_STRONG properties, the linked object reference count get
decremented when the property is deleted. But it is _not_ incremented on
creation (object_property_add_link() does not actually know the link).
This commit increments the reference count on the aliased clock to
ensure the aliased clock stays alive during the property lifetime, and
to avoid a double-free memory error when the property gets deleted.
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Luc Michel <luc@lmichel.fr>
Message-Id: <20201020091024.320381-1-luc@lmichel.fr>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/core/qdev-clock.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hw/core/qdev-clock.c b/hw/core/qdev-clock.c
index 6a9a340d0f..eb05f2a13c 100644
--- a/hw/core/qdev-clock.c
+++ b/hw/core/qdev-clock.c
@@ -61,6 +61,14 @@ static NamedClockList *qdev_init_clocklist(DeviceState *dev, const char *name,
object_get_typename(OBJECT(clk)),
(Object **) &ncl->clock,
NULL, OBJ_PROP_LINK_STRONG);
+ /*
+ * Since the link property has the OBJ_PROP_LINK_STRONG flag, the clk
+ * object reference count gets decremented on property deletion.
+ * However object_property_add_link does not increment it since it
+ * doesn't know the linked object. Increment it here to ensure the
+ * aliased clock stays alive during this device life-time.
+ */
+ object_ref(OBJECT(clk));
}
ncl->clock = clk;
--
2.26.2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 05/17] qtest: unbreak non-TCG builds in bios-tables-test
2020-10-26 13:51 [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Paolo Bonzini
` (3 preceding siblings ...)
2020-10-26 13:51 ` [PULL 04/17] hw/core/qdev-clock: add a reference on aliased clocks Paolo Bonzini
@ 2020-10-26 13:51 ` Paolo Bonzini
2020-10-26 13:51 ` [PULL 06/17] replay: do not build if TCG is not available Paolo Bonzini
` (12 subsequent siblings)
17 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2020-10-26 13:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Claudio Fontana
From: Claudio Fontana <cfontana@suse.de>
the tests assume TCG is available, thus breaking
for TCG-only tests, where only the TCG accelerator option
is passed to the QEMU binary.
Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Claudio Fontana <cfontana@suse.de>
Message-Id: <20201013192123.22632-3-cfontana@suse.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
tests/qtest/bios-tables-test.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
index 3830a40d10..f23a5335a8 100644
--- a/tests/qtest/bios-tables-test.c
+++ b/tests/qtest/bios-tables-test.c
@@ -127,6 +127,9 @@ static void free_test_data(test_data *data)
{
int i;
+ if (!data->tables) {
+ return;
+ }
for (i = 0; i < data->tables->len; ++i) {
cleanup_table_descriptor(&g_array_index(data->tables, AcpiSdtTable, i));
}
@@ -656,6 +659,13 @@ static void test_acpi_one(const char *params, test_data *data)
char *args;
bool use_uefi = data->uefi_fl1 && data->uefi_fl2;
+#ifndef CONFIG_TCG
+ if (data->tcg_only) {
+ g_test_skip("TCG disabled, skipping ACPI tcg_only test");
+ return;
+ }
+#endif /* CONFIG_TCG */
+
if (use_uefi) {
/*
* TODO: convert '-drive if=pflash' to new syntax (see e33763be7cd3)
--
2.26.2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 06/17] replay: do not build if TCG is not available
2020-10-26 13:51 [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Paolo Bonzini
` (4 preceding siblings ...)
2020-10-26 13:51 ` [PULL 05/17] qtest: unbreak non-TCG builds in bios-tables-test Paolo Bonzini
@ 2020-10-26 13:51 ` Paolo Bonzini
2020-10-26 13:51 ` [PULL 07/17] Remove deprecated -no-kvm option Paolo Bonzini
` (11 subsequent siblings)
17 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2020-10-26 13:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Claudio Fontana
From: Claudio Fontana <cfontana@suse.de>
this fixes non-TCG builds broken recently by replay reverse debugging.
Stub the needed functions in stub/, splitting roughly between functions
needed only by system emulation, by system emulation and tools,
and by everyone. This includes duplicating some code in replay/, and
puts the logic for non-replay related events in the replay/ module (+
the stubs), so this should be revisited in the future.
Surprisingly, only _one_ qtest was affected by this, ide-test.c, which
resulted in a buzz as the bh events were never delivered, and the bh
never executed.
Many other subsystems _should_ have been affected.
This fixes the immediate issue, however a better way to group replay
functionality to TCG-only code could be developed in the long term.
Signed-off-by: Claudio Fontana <cfontana@suse.de>
Message-Id: <20201013192123.22632-4-cfontana@suse.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
block/meson.build | 3 +-
net/meson.build | 3 +-
replay/meson.build | 4 +-
replay/stubs-system.c | 96 ++++++++++++++++++++++++++++++++++++++
stubs/meson.build | 4 +-
stubs/replay-tools.c | 83 ++++++++++++++++++++++++++++++++
stubs/replay-user.c | 9 ----
stubs/replay.c | 78 -------------------------------
tests/ptimer-test-stubs.c | 5 --
tests/qtest/qmp-cmd-test.c | 3 ++
10 files changed, 191 insertions(+), 97 deletions(-)
create mode 100644 replay/stubs-system.c
create mode 100644 stubs/replay-tools.c
delete mode 100644 stubs/replay-user.c
diff --git a/block/meson.build b/block/meson.build
index 78e8b25232..5dcc1e5cce 100644
--- a/block/meson.build
+++ b/block/meson.build
@@ -7,7 +7,6 @@ block_ss.add(files(
'backup-top.c',
'blkdebug.c',
'blklogwrites.c',
- 'blkreplay.c',
'blkverify.c',
'block-backend.c',
'block-copy.c',
@@ -42,6 +41,8 @@ block_ss.add(files(
'write-threshold.c',
), zstd, zlib)
+softmmu_ss.add(when: 'CONFIG_TCG', if_true: files('blkreplay.c'))
+
block_ss.add(when: 'CONFIG_QCOW1', if_true: files('qcow.c'))
block_ss.add(when: 'CONFIG_VDI', if_true: files('vdi.c'))
block_ss.add(when: 'CONFIG_CLOOP', if_true: files('cloop.c'))
diff --git a/net/meson.build b/net/meson.build
index 1c7e3a3cb9..1076b0a7ab 100644
--- a/net/meson.build
+++ b/net/meson.build
@@ -7,7 +7,6 @@ softmmu_ss.add(files(
'eth.c',
'filter-buffer.c',
'filter-mirror.c',
- 'filter-replay.c',
'filter-rewriter.c',
'filter.c',
'hub.c',
@@ -17,6 +16,8 @@ softmmu_ss.add(files(
'util.c',
))
+softmmu_ss.add(when: 'CONFIG_TCG', if_true: files('filter-replay.c'))
+
softmmu_ss.add(when: 'CONFIG_L2TPV3', if_true: files('l2tpv3.c'))
softmmu_ss.add(when: slirp, if_true: files('slirp.c'))
softmmu_ss.add(when: ['CONFIG_VDE', vde], if_true: files('vde.c'))
diff --git a/replay/meson.build b/replay/meson.build
index f91163fb1e..21aefad220 100644
--- a/replay/meson.build
+++ b/replay/meson.build
@@ -1,4 +1,4 @@
-softmmu_ss.add(files(
+softmmu_ss.add(when: 'CONFIG_TCG', if_true: files(
'replay.c',
'replay-internal.c',
'replay-events.c',
@@ -10,4 +10,4 @@ softmmu_ss.add(files(
'replay-audio.c',
'replay-random.c',
'replay-debugging.c',
-))
+), if_false: files('stubs-system.c'))
diff --git a/replay/stubs-system.c b/replay/stubs-system.c
new file mode 100644
index 0000000000..5c262b08f1
--- /dev/null
+++ b/replay/stubs-system.c
@@ -0,0 +1,96 @@
+#include "qemu/osdep.h"
+#include "sysemu/replay.h"
+#include "ui/input.h"
+
+void replay_input_event(QemuConsole *src, InputEvent *evt)
+{
+ qemu_input_event_send_impl(src, evt);
+}
+
+void replay_input_sync_event(void)
+{
+ qemu_input_event_sync_impl();
+}
+
+void replay_add_blocker(Error *reason)
+{
+}
+void replay_audio_in(size_t *recorded, void *samples, size_t *wpos, size_t size)
+{
+}
+void replay_audio_out(size_t *played)
+{
+}
+void replay_breakpoint(void)
+{
+}
+bool replay_can_snapshot(void)
+{
+ return true;
+}
+void replay_configure(struct QemuOpts *opts)
+{
+}
+void replay_flush_events(void)
+{
+}
+void replay_gdb_attached(void)
+{
+}
+bool replay_running_debug(void)
+{
+ return false;
+}
+void replay_shutdown_request(ShutdownCause cause)
+{
+}
+void replay_start(void)
+{
+}
+void replay_vmstate_init(void)
+{
+}
+
+#include "monitor/monitor.h"
+#include "monitor/hmp.h"
+#include "qapi/qapi-commands-replay.h"
+#include "qapi/error.h"
+#include "qemu/error-report.h"
+
+void hmp_info_replay(Monitor *mon, const QDict *qdict)
+{
+ error_report("replay support not available");
+}
+void hmp_replay_break(Monitor *mon, const QDict *qdict)
+{
+ error_report("replay support not available");
+}
+void hmp_replay_delete_break(Monitor *mon, const QDict *qdict)
+{
+ error_report("replay support not available");
+}
+void hmp_replay_seek(Monitor *mon, const QDict *qdict)
+{
+ error_report("replay support not available");
+}
+ReplayInfo *qmp_query_replay(Error **errp)
+{
+ error_set(errp, ERROR_CLASS_COMMAND_NOT_FOUND,
+ "replay support not available");
+ return NULL;
+}
+void qmp_replay_break(int64_t icount, Error **errp)
+{
+ error_set(errp, ERROR_CLASS_COMMAND_NOT_FOUND,
+ "replay support not available");
+}
+void qmp_replay_delete_break(Error **errp)
+{
+ error_set(errp, ERROR_CLASS_COMMAND_NOT_FOUND,
+ "replay support not available");
+}
+void qmp_replay_seek(int64_t icount, Error **errp)
+{
+ error_set(errp, ERROR_CLASS_COMMAND_NOT_FOUND,
+ "replay support not available");
+}
diff --git a/stubs/meson.build b/stubs/meson.build
index 67f2a8c069..057d7682e5 100644
--- a/stubs/meson.build
+++ b/stubs/meson.build
@@ -32,7 +32,6 @@ stub_ss.add(files('qtest.c'))
stub_ss.add(files('ram-block.c'))
stub_ss.add(files('ramfb.c'))
stub_ss.add(files('replay.c'))
-stub_ss.add(files('replay-user.c'))
stub_ss.add(files('runstate-check.c'))
stub_ss.add(files('set-fd-handler.c'))
stub_ss.add(files('sysbus.c'))
@@ -46,6 +45,9 @@ stub_ss.add(files('vmstate.c'))
stub_ss.add(files('vm-stop.c'))
stub_ss.add(files('win32-kbd-hook.c'))
stub_ss.add(files('cpu-synchronize-state.c'))
+if have_block
+ stub_ss.add(files('replay-tools.c'))
+endif
if have_system
stub_ss.add(files('semihost.c'))
stub_ss.add(files('xen-hw-stub.c'))
diff --git a/stubs/replay-tools.c b/stubs/replay-tools.c
new file mode 100644
index 0000000000..c06b360e22
--- /dev/null
+++ b/stubs/replay-tools.c
@@ -0,0 +1,83 @@
+#include "qemu/osdep.h"
+#include "sysemu/replay.h"
+#include "block/aio.h"
+
+bool replay_events_enabled(void)
+{
+ return false;
+}
+
+int64_t replay_save_clock(unsigned int kind, int64_t clock, int64_t raw_icount)
+{
+ abort();
+ return 0;
+}
+
+int64_t replay_read_clock(unsigned int kind)
+{
+ abort();
+ return 0;
+}
+
+uint64_t replay_get_current_icount(void)
+{
+ return 0;
+}
+
+void replay_bh_schedule_event(QEMUBH *bh)
+{
+ qemu_bh_schedule(bh);
+}
+
+void replay_bh_schedule_oneshot_event(AioContext *ctx,
+ QEMUBHFunc *cb, void *opaque)
+{
+ aio_bh_schedule_oneshot(ctx, cb, opaque);
+}
+
+bool replay_checkpoint(ReplayCheckpoint checkpoint)
+{
+ return true;
+}
+
+void replay_mutex_lock(void)
+{
+}
+
+void replay_mutex_unlock(void)
+{
+}
+
+void replay_register_char_driver(Chardev *chr)
+{
+}
+
+void replay_chr_be_write(Chardev *s, uint8_t *buf, int len)
+{
+ abort();
+}
+
+void replay_char_write_event_save(int res, int offset)
+{
+ abort();
+}
+
+void replay_char_write_event_load(int *res, int *offset)
+{
+ abort();
+}
+
+int replay_char_read_all_load(uint8_t *buf)
+{
+ abort();
+}
+
+void replay_char_read_all_save_error(int res)
+{
+ abort();
+}
+
+void replay_char_read_all_save_buf(uint8_t *buf, int offset)
+{
+ abort();
+}
diff --git a/stubs/replay-user.c b/stubs/replay-user.c
deleted file mode 100644
index 2ad9e27203..0000000000
--- a/stubs/replay-user.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#include "qemu/osdep.h"
-#include "sysemu/replay.h"
-#include "sysemu/sysemu.h"
-
-void replay_bh_schedule_oneshot_event(AioContext *ctx,
- QEMUBHFunc *cb, void *opaque)
-{
- aio_bh_schedule_oneshot(ctx, cb, opaque);
-}
diff --git a/stubs/replay.c b/stubs/replay.c
index 45ebe77fb9..9d5b4be339 100644
--- a/stubs/replay.c
+++ b/stubs/replay.c
@@ -3,83 +3,10 @@
ReplayMode replay_mode;
-int64_t replay_save_clock(unsigned int kind, int64_t clock, int64_t raw_icount)
-{
- abort();
- return 0;
-}
-
-int64_t replay_read_clock(unsigned int kind)
-{
- abort();
- return 0;
-}
-
-bool replay_checkpoint(ReplayCheckpoint checkpoint)
-{
- return true;
-}
-
-bool replay_events_enabled(void)
-{
- return false;
-}
-
void replay_finish(void)
{
}
-void replay_register_char_driver(Chardev *chr)
-{
-}
-
-void replay_chr_be_write(Chardev *s, uint8_t *buf, int len)
-{
- abort();
-}
-
-void replay_char_write_event_save(int res, int offset)
-{
- abort();
-}
-
-void replay_char_write_event_load(int *res, int *offset)
-{
- abort();
-}
-
-int replay_char_read_all_load(uint8_t *buf)
-{
- abort();
-}
-
-void replay_char_read_all_save_error(int res)
-{
- abort();
-}
-
-void replay_char_read_all_save_buf(uint8_t *buf, int offset)
-{
- abort();
-}
-
-void replay_block_event(QEMUBH *bh, uint64_t id)
-{
-}
-
-uint64_t blkreplay_next_id(void)
-{
- return 0;
-}
-
-void replay_mutex_lock(void)
-{
-}
-
-void replay_mutex_unlock(void)
-{
-}
-
void replay_save_random(int ret, void *buf, size_t len)
{
}
@@ -89,11 +16,6 @@ int replay_read_random(void *buf, size_t len)
return 0;
}
-uint64_t replay_get_current_icount(void)
-{
- return 0;
-}
-
bool replay_reverse_step(void)
{
return false;
diff --git a/tests/ptimer-test-stubs.c b/tests/ptimer-test-stubs.c
index e935a1395e..7f801a4d09 100644
--- a/tests/ptimer-test-stubs.c
+++ b/tests/ptimer-test-stubs.c
@@ -122,8 +122,3 @@ void qemu_bh_delete(QEMUBH *bh)
{
g_free(bh);
}
-
-void replay_bh_schedule_event(QEMUBH *bh)
-{
- bh->cb(bh->opaque);
-}
diff --git a/tests/qtest/qmp-cmd-test.c b/tests/qtest/qmp-cmd-test.c
index 8a4c570e83..1c7186e53c 100644
--- a/tests/qtest/qmp-cmd-test.c
+++ b/tests/qtest/qmp-cmd-test.c
@@ -31,6 +31,9 @@ static int query_error_class(const char *cmd)
#ifndef CONFIG_SPICE
{ "query-spice", ERROR_CLASS_COMMAND_NOT_FOUND },
#endif
+#ifndef CONFIG_TCG
+ { "query-replay", ERROR_CLASS_COMMAND_NOT_FOUND },
+#endif
#ifndef CONFIG_VNC
{ "query-vnc", ERROR_CLASS_GENERIC_ERROR },
{ "query-vnc-servers", ERROR_CLASS_GENERIC_ERROR },
--
2.26.2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 07/17] Remove deprecated -no-kvm option
2020-10-26 13:51 [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Paolo Bonzini
` (5 preceding siblings ...)
2020-10-26 13:51 ` [PULL 06/17] replay: do not build if TCG is not available Paolo Bonzini
@ 2020-10-26 13:51 ` Paolo Bonzini
2020-10-26 13:51 ` [PULL 08/17] Makefile: separate meson rerun from the rest of the ninja invocation Paolo Bonzini
` (10 subsequent siblings)
17 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2020-10-26 13:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Thomas Huth
From: Thomas Huth <thuth@redhat.com>
The option has never been mentioned in our documentation, it's been
deprecated since years, it's marked with QEMU_ARCH_I386 (which does
not make sense anymore since KVM is available on other architectures,
too), it does not do anything by default in upstream QEMU (since TCG
is the default here anyway), and we're spending too much precious time
each year discussing whether it makes sense to keep this option as a
nice suger or not... let's finally put an end on this and remove it.
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20201020160504.62460-1-thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
docs/system/deprecated.rst | 11 ++++++-----
qemu-options.hx | 3 ---
softmmu/vl.c | 4 ----
3 files changed, 6 insertions(+), 12 deletions(-)
diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index 905628f3a0..895433c356 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -27,11 +27,6 @@ System emulator command line arguments
The ``enforce-config-section`` parameter is replaced by the
``-global migration.send-configuration={on|off}`` option.
-``-no-kvm`` (since 1.3.0)
-'''''''''''''''''''''''''
-
-The ``-no-kvm`` argument is now a synonym for setting ``-accel tcg``.
-
``-usbdevice`` (since 2.10.0)
'''''''''''''''''''''''''''''
@@ -504,6 +499,12 @@ System emulator command line arguments
The ``name`` parameter of the ``-net`` option was a synonym
for the ``id`` parameter, which should now be used instead.
+``-no-kvm`` (removed in 5.2)
+''''''''''''''''''''''''''''
+
+The ``-no-kvm`` argument was a synonym for setting ``-machine accel=tcg``.
+
+
QEMU Machine Protocol (QMP) commands
------------------------------------
diff --git a/qemu-options.hx b/qemu-options.hx
index 1da52a269c..9e1ace04f7 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -4351,9 +4351,6 @@ SRST
Enable FIPS 140-2 compliance mode.
ERST
-HXCOMM Deprecated by -accel tcg
-DEF("no-kvm", 0, QEMU_OPTION_no_kvm, "", QEMU_ARCH_I386)
-
DEF("msg", HAS_ARG, QEMU_OPTION_msg,
"-msg [timestamp[=on|off]][,guest-name=[on|off]]\n"
" control error message format\n"
diff --git a/softmmu/vl.c b/softmmu/vl.c
index 14fc527fc6..09b033ff73 100644
--- a/softmmu/vl.c
+++ b/softmmu/vl.c
@@ -3502,10 +3502,6 @@ void qemu_init(int argc, char **argv, char **envp)
exit(1);
}
break;
- case QEMU_OPTION_no_kvm:
- olist = qemu_find_opts("machine");
- qemu_opts_parse_noisily(olist, "accel=tcg", false);
- break;
case QEMU_OPTION_accel:
accel_opts = qemu_opts_parse_noisily(qemu_find_opts("accel"),
optarg, true);
--
2.26.2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 08/17] Makefile: separate meson rerun from the rest of the ninja invocation
2020-10-26 13:51 [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Paolo Bonzini
` (6 preceding siblings ...)
2020-10-26 13:51 ` [PULL 07/17] Remove deprecated -no-kvm option Paolo Bonzini
@ 2020-10-26 13:51 ` Paolo Bonzini
2020-10-26 13:51 ` [PULL 09/17] configure: allow configuring localedir Paolo Bonzini
` (9 subsequent siblings)
17 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2020-10-26 13:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Havard Skinnemoen
The rules to build Makefile.mtest are suffering from the "tunnel vision"
problem that is common with recursive makefiles. Makefile.mtest depends
on build.ninja, but Make does not know when build.ninja needs to be
rebuilt before creating Makefile.mtest.
To fix this, separate the ninja invocation into the "regenerate build
files" phase and the QEMU build phase. Sentinel files such as
meson-private/coredata.dat or build.ninja are used to figure out the
phases that haven't run yet; however, because those files' timestamps
are not guaranteed to be touched, the usual makefile stamp-file trick
is used on top.
Reported-by: Havard Skinnemoen <hskinnemoen@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
Makefile | 40 +++++++++++++++++++++++++++++-----------
1 file changed, 29 insertions(+), 11 deletions(-)
diff --git a/Makefile b/Makefile
index 18f026eac3..5236464d1f 100644
--- a/Makefile
+++ b/Makefile
@@ -92,6 +92,8 @@ endif
ifeq ($(NINJA),)
.PHONY: config-host.mak
x := $(shell rm -rf meson-private meson-info meson-logs)
+else
+export NINJA
endif
ifeq ($(wildcard build.ninja),)
.PHONY: config-host.mak
@@ -100,31 +102,44 @@ endif
# 1. ensure config-host.mak is up-to-date
config-host.mak: $(SRC_PATH)/configure $(SRC_PATH)/pc-bios $(SRC_PATH)/VERSION
- @echo $@ is out-of-date, running configure
+ @echo config-host.mak is out-of-date, running configure
@if test -f meson-private/coredata.dat; then \
./config.status --skip-meson; \
else \
- ./config.status; \
+ ./config.status && touch build.ninja.stamp; \
fi
-# 2. ensure generated build files are up-to-date
+# 2. meson.stamp exists if meson has run at least once (so ninja reconfigure
+# works), but otherwise never needs to be updated
+meson-private/coredata.dat: meson.stamp
+meson.stamp: config-host.mak
+ @touch meson.stamp
+
+# 3. ensure generated build files are up-to-date
ifneq ($(NINJA),)
-# A separate rule is needed for Makefile dependencies to avoid -n
-export NINJA
Makefile.ninja: build.ninja
- $(quiet-@){ echo 'ninja-targets = \'; $(NINJA) -t targets all | sed 's/:.*//; $$!s/$$/ \\/'; } > $@
+ $(quiet-@){ \
+ echo 'ninja-targets = \'; \
+ $(NINJA) -t targets all | sed 's/:.*//; $$!s/$$/ \\/'; \
+ echo 'build-files = \'; \
+ $(NINJA) -t query build.ninja | sed -n '1,/^ input:/d; /^ outputs:/q; s/$$/ \\/p'; \
+ } > $@.tmp && mv $@.tmp $@
-include Makefile.ninja
+
+# A separate rule is needed for Makefile dependencies to avoid -n
+build.ninja: build.ninja.stamp
+build.ninja.stamp: meson.stamp $(build-files)
+ $(NINJA) $(if $V,-v,) build.ninja && touch $@
endif
ifneq ($(MESON),)
-# The dependency on config-host.mak ensures that meson has run
-Makefile.mtest: build.ninja scripts/mtest2make.py config-host.mak
+Makefile.mtest: build.ninja scripts/mtest2make.py
$(MESON) introspect --targets --tests --benchmarks | $(PYTHON) scripts/mtest2make.py > $@
-include Makefile.mtest
endif
-# 3. Rules to bridge to other makefiles
+# 4. Rules to bridge to other makefiles
ifneq ($(NINJA),)
NINJAFLAGS = $(if $V,-v,) \
@@ -135,7 +150,10 @@ ninja-cmd-goals = $(or $(MAKECMDGOALS), all)
ninja-cmd-goals += $(foreach t, $(.tests), $(.test.deps.$t))
makefile-targets := build.ninja ctags TAGS cscope dist clean uninstall
-ninja-targets := $(filter-out $(makefile-targets), $(ninja-targets))
+# "ninja -t targets" also lists all prerequisites. If build system
+# files are marked as PHONY, however, Make will always try to execute
+# "ninja build.ninja".
+ninja-targets := $(filter-out $(build-files) $(makefile-targets), $(ninja-targets))
.PHONY: $(ninja-targets) run-ninja
$(ninja-targets): run-ninja
@@ -214,7 +232,7 @@ distclean: clean
rm -f qemu-plugins-ld.symbols qemu-plugins-ld64.symbols
rm -f *-config-target.h *-config-devices.mak *-config-devices.h
rm -rf meson-private meson-logs meson-info compile_commands.json
- rm -f Makefile.ninja Makefile.mtest
+ rm -f Makefile.ninja Makefile.mtest build.ninja.stamp meson.stamp
rm -f config.log
rm -f linux-headers/asm
rm -Rf .sdk
--
2.26.2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 09/17] configure: allow configuring localedir
2020-10-26 13:51 [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Paolo Bonzini
` (7 preceding siblings ...)
2020-10-26 13:51 ` [PULL 08/17] Makefile: separate meson rerun from the rest of the ninja invocation Paolo Bonzini
@ 2020-10-26 13:51 ` Paolo Bonzini
2020-10-26 13:51 ` [PULL 10/17] configure: move directory options from config-host.mak to meson Paolo Bonzini
` (8 subsequent siblings)
17 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2020-10-26 13:51 UTC (permalink / raw)
To: qemu-devel
Meson has a localedir option, so passing the path through that option
is the cleanest way when we move directories out of config-host.mak.
In preparation for doing that without changing semantics and without
special-casing localedir code, add a configure option.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
configure | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/configure b/configure
index e6754c1e87..c214e9b38e 100755
--- a/configure
+++ b/configure
@@ -962,6 +962,8 @@ for opt do
;;
--docdir=*) docdir="$optarg"
;;
+ --localedir=*) localedir="$optarg"
+ ;;
--sysconfdir=*) sysconfdir="$optarg"
;;
--localstatedir=*) local_statedir="$optarg"
@@ -971,7 +973,7 @@ for opt do
--host=*|--build=*|\
--disable-dependency-tracking|\
--sbindir=*|--sharedstatedir=*|\
- --oldincludedir=*|--datarootdir=*|--infodir=*|--localedir=*|\
+ --oldincludedir=*|--datarootdir=*|--infodir=*|\
--htmldir=*|--dvidir=*|--pdfdir=*|--psdir=*)
# These switches are silently ignored, for compatibility with
# autoconf-generated configure scripts. This allows QEMU's
@@ -1525,6 +1527,7 @@ firmwarepath="${firmwarepath:-$prefix/share/qemu-firmware}"
libdir="${libdir:-$prefix/lib}"
libexecdir="${libexecdir:-$prefix/libexec}"
includedir="${includedir:-$prefix/include}"
+localedir="${localedir:-$datadir/locale}"
if test "$mingw32" = "yes" ; then
mandir="$prefix"
@@ -1670,6 +1673,7 @@ Advanced options (experts only):
--static enable static build [$static]
--mandir=PATH install man pages in PATH
--datadir=PATH install firmware in PATH/$qemu_suffix
+ --localedir=PATH install translation in PATH/$qemu_suffix
--docdir=PATH install documentation in PATH/$qemu_suffix
--bindir=PATH install binaries in PATH
--libdir=PATH install libraries in PATH
@@ -5728,7 +5732,6 @@ fi
qemu_confdir="$sysconfdir/$qemu_suffix"
qemu_moddir="$libdir/$qemu_suffix"
qemu_datadir="$datadir/$qemu_suffix"
-qemu_localedir="$datadir/locale"
qemu_icondir="$datadir/icons"
qemu_desktopdir="$datadir/applications"
@@ -5912,7 +5915,7 @@ if test "$mingw32" = "no" ; then
echo "qemu_localstatedir=$local_statedir" >> $config_host_mak
fi
echo "qemu_helperdir=$libexecdir" >> $config_host_mak
-echo "qemu_localedir=$qemu_localedir" >> $config_host_mak
+echo "qemu_localedir=$localedir" >> $config_host_mak
echo "qemu_icondir=$qemu_icondir" >> $config_host_mak
echo "qemu_desktopdir=$qemu_desktopdir" >> $config_host_mak
echo "GIT=$git" >> $config_host_mak
--
2.26.2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 10/17] configure: move directory options from config-host.mak to meson
2020-10-26 13:51 [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Paolo Bonzini
` (8 preceding siblings ...)
2020-10-26 13:51 ` [PULL 09/17] configure: allow configuring localedir Paolo Bonzini
@ 2020-10-26 13:51 ` Paolo Bonzini
2020-10-26 13:51 ` [PULL 11/17] configure: remove unused variable from config-host.mak Paolo Bonzini
` (7 subsequent siblings)
17 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2020-10-26 13:51 UTC (permalink / raw)
To: qemu-devel
Since installation is not part of Makefiles anymore, Make need not
know the directories anymore. Meson already knows them through
built-in options, do everything using them instead of the config_host
dictionary.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
Makefile | 4 +++
configure | 31 ++++----------------
contrib/vhost-user-gpu/meson.build | 2 +-
meson.build | 47 ++++++++++++++++++++----------
meson_options.txt | 2 ++
pc-bios/descriptors/meson.build | 2 +-
pc-bios/meson.build | 2 +-
tools/virtiofsd/meson.build | 2 +-
ui/icons/meson.build | 6 ++--
ui/meson.build | 2 +-
version.texi.in | 2 --
11 files changed, 51 insertions(+), 51 deletions(-)
delete mode 100644 version.texi.in
diff --git a/Makefile b/Makefile
index 5236464d1f..4d1fa8bb3d 100644
--- a/Makefile
+++ b/Makefile
@@ -99,6 +99,10 @@ ifeq ($(wildcard build.ninja),)
.PHONY: config-host.mak
x := $(shell rm -rf meson-private meson-info meson-logs)
endif
+ifeq ($(origin prefix),file)
+.PHONY: config-host.mak
+x := $(shell rm -rf meson-private meson-info meson-logs)
+endif
# 1. ensure config-host.mak is up-to-date
config-host.mak: $(SRC_PATH)/configure $(SRC_PATH)/pc-bios $(SRC_PATH)/VERSION
diff --git a/configure b/configure
index c214e9b38e..29e6732f47 100755
--- a/configure
+++ b/configure
@@ -1523,11 +1523,9 @@ for opt do
esac
done
-firmwarepath="${firmwarepath:-$prefix/share/qemu-firmware}"
libdir="${libdir:-$prefix/lib}"
libexecdir="${libexecdir:-$prefix/libexec}"
includedir="${includedir:-$prefix/include}"
-localedir="${localedir:-$datadir/locale}"
if test "$mingw32" = "yes" ; then
mandir="$prefix"
@@ -1535,7 +1533,7 @@ if test "$mingw32" = "yes" ; then
docdir="$prefix"
bindir="$prefix"
sysconfdir="$prefix"
- local_statedir=
+ local_statedir="$prefix"
else
mandir="${mandir:-$prefix/share/man}"
datadir="${datadir:-$prefix/share}"
@@ -1544,6 +1542,8 @@ else
sysconfdir="${sysconfdir:-$prefix/etc}"
local_statedir="${local_statedir:-$prefix/var}"
fi
+firmwarepath="${firmwarepath:-$datadir/qemu-firmware}"
+localedir="${localedir:-$datadir/locale}"
case "$cpu" in
ppc)
@@ -5729,12 +5729,6 @@ if test "$mingw32" = "yes" ; then
done
fi
-qemu_confdir="$sysconfdir/$qemu_suffix"
-qemu_moddir="$libdir/$qemu_suffix"
-qemu_datadir="$datadir/$qemu_suffix"
-qemu_icondir="$datadir/icons"
-qemu_desktopdir="$datadir/applications"
-
# We can only support ivshmem if we have eventfd
if [ "$eventfd" = "yes" ]; then
ivshmem=yes
@@ -5901,23 +5895,6 @@ echo "# Automatically generated by configure - do not modify" > $config_host_mak
echo >> $config_host_mak
echo all: >> $config_host_mak
-echo "prefix=$prefix" >> $config_host_mak
-echo "bindir=$bindir" >> $config_host_mak
-echo "libdir=$libdir" >> $config_host_mak
-echo "libexecdir=$libexecdir" >> $config_host_mak
-echo "includedir=$includedir" >> $config_host_mak
-echo "sysconfdir=$sysconfdir" >> $config_host_mak
-echo "qemu_confdir=$qemu_confdir" >> $config_host_mak
-echo "qemu_datadir=$qemu_datadir" >> $config_host_mak
-echo "qemu_firmwarepath=$firmwarepath" >> $config_host_mak
-echo "qemu_moddir=$qemu_moddir" >> $config_host_mak
-if test "$mingw32" = "no" ; then
- echo "qemu_localstatedir=$local_statedir" >> $config_host_mak
-fi
-echo "qemu_helperdir=$libexecdir" >> $config_host_mak
-echo "qemu_localedir=$localedir" >> $config_host_mak
-echo "qemu_icondir=$qemu_icondir" >> $config_host_mak
-echo "qemu_desktopdir=$qemu_desktopdir" >> $config_host_mak
echo "GIT=$git" >> $config_host_mak
echo "GIT_SUBMODULES=$git_submodules" >> $config_host_mak
echo "GIT_UPDATE=$git_update" >> $config_host_mak
@@ -7000,8 +6977,10 @@ NINJA=$ninja $meson setup \
--datadir "$datadir" \
--mandir "$mandir" \
--sysconfdir "$sysconfdir" \
+ --localedir "$localedir" \
--localstatedir "$local_statedir" \
-Ddocdir="$docdir" \
+ -Dqemu_firmwarepath="$firmwarepath" \
-Dqemu_suffix="$qemu_suffix" \
-Doptimization=$(if test "$debug" = yes; then echo 0; else echo 2; fi) \
-Ddebug=$(if test "$debug_info" = yes; then echo true; else echo false; fi) \
diff --git a/contrib/vhost-user-gpu/meson.build b/contrib/vhost-user-gpu/meson.build
index 7d9b29da8b..37ecca13ca 100644
--- a/contrib/vhost-user-gpu/meson.build
+++ b/contrib/vhost-user-gpu/meson.build
@@ -9,6 +9,6 @@ if 'CONFIG_TOOLS' in config_host and 'CONFIG_VIRGL' in config_host \
configure_file(input: '50-qemu-gpu.json.in',
output: '50-qemu-gpu.json',
- configuration: config_host,
+ configuration: { 'libexecdir' : get_option('libexecdir') },
install_dir: qemu_datadir / 'vhost-user')
endif
diff --git a/meson.build b/meson.build
index 0edde14ad7..4b6cca9238 100644
--- a/meson.build
+++ b/meson.build
@@ -29,8 +29,14 @@ if get_option('qemu_suffix').startswith('/')
error('qemu_suffix cannot start with a /')
endif
+qemu_confdir = get_option('sysconfdir') / get_option('qemu_suffix')
qemu_datadir = get_option('datadir') / get_option('qemu_suffix')
qemu_docdir = get_option('docdir') / get_option('qemu_suffix')
+qemu_moddir = get_option('libdir') / get_option('qemu_suffix')
+
+qemu_desktopdir = get_option('datadir') / 'applications'
+qemu_icondir = get_option('datadir') / 'icons'
+
config_host_data = configuration_data()
genh = []
@@ -734,6 +740,19 @@ endif
# config-host.h #
#################
+config_host_data.set_quoted('CONFIG_BINDIR', get_option('prefix') / get_option('bindir'))
+config_host_data.set_quoted('CONFIG_PREFIX', get_option('prefix'))
+config_host_data.set_quoted('CONFIG_QEMU_CONFDIR', get_option('prefix') / qemu_confdir)
+config_host_data.set_quoted('CONFIG_QEMU_DATADIR', get_option('prefix') / qemu_datadir)
+config_host_data.set_quoted('CONFIG_QEMU_DESKTOPDIR', get_option('prefix') / qemu_desktopdir)
+config_host_data.set_quoted('CONFIG_QEMU_FIRMWAREPATH', get_option('qemu_firmwarepath'))
+config_host_data.set_quoted('CONFIG_QEMU_HELPERDIR', get_option('prefix') / get_option('libexecdir'))
+config_host_data.set_quoted('CONFIG_QEMU_ICONDIR', get_option('prefix') / qemu_icondir)
+config_host_data.set_quoted('CONFIG_QEMU_LOCALEDIR', get_option('prefix') / get_option('localedir'))
+config_host_data.set_quoted('CONFIG_QEMU_LOCALSTATEDIR', get_option('prefix') / get_option('localstatedir'))
+config_host_data.set_quoted('CONFIG_QEMU_MODDIR', get_option('prefix') / qemu_moddir)
+config_host_data.set_quoted('CONFIG_SYSCONFDIR', get_option('prefix') / get_option('sysconfdir'))
+
config_host_data.set('CONFIG_COCOA', cocoa.found())
config_host_data.set('CONFIG_LIBUDEV', libudev.found())
config_host_data.set('CONFIG_MPATH', mpathpersist.found())
@@ -756,9 +775,7 @@ config_host_data.set('QEMU_VERSION_MICRO', meson.project_version().split('.')[2]
ignored = ['CONFIG_QEMU_INTERP_PREFIX'] # actually per-target
arrays = ['CONFIG_AUDIO_DRIVERS', 'CONFIG_BDRV_RW_WHITELIST', 'CONFIG_BDRV_RO_WHITELIST']
-strings = ['HOST_DSOSUF', 'CONFIG_IASL', 'bindir', 'prefix', 'qemu_confdir', 'qemu_datadir',
- 'qemu_moddir', 'qemu_localstatedir', 'qemu_helperdir', 'qemu_localedir',
- 'qemu_icondir', 'qemu_desktopdir', 'qemu_firmwarepath', 'sysconfdir']
+strings = ['HOST_DSOSUF', 'CONFIG_IASL']
foreach k, v: config_host
if ignored.contains(k)
# do nothing
@@ -1639,7 +1656,7 @@ foreach m : block_mods + softmmu_mods
name_prefix: '',
link_whole: m,
install: true,
- install_dir: config_host['qemu_moddir'])
+ install_dir: qemu_moddir)
endforeach
softmmu_ss.add(authz, block, chardev, crypto, io, qmp)
@@ -1800,7 +1817,7 @@ foreach target : target_dirs
output: exe['name'] + stp['ext'],
capture: true,
install: stp['install'],
- install_dir: qemu_datadir / '../systemtap/tapset',
+ install_dir: get_option('datadir') / 'systemtap/tapset',
command: [
tracetool, '--group=all', '--format=' + stp['fmt'],
'--binary=' + stp['bin'],
@@ -1913,17 +1930,17 @@ endif
#########################
summary_info = {}
-summary_info += {'Install prefix': config_host['prefix']}
-summary_info += {'BIOS directory': config_host['qemu_datadir']}
-summary_info += {'firmware path': config_host['qemu_firmwarepath']}
-summary_info += {'binary directory': config_host['bindir']}
-summary_info += {'library directory': config_host['libdir']}
-summary_info += {'module directory': config_host['qemu_moddir']}
-summary_info += {'libexec directory': config_host['libexecdir']}
-summary_info += {'include directory': config_host['includedir']}
-summary_info += {'config directory': config_host['sysconfdir']}
+summary_info += {'Install prefix': get_option('prefix')}
+summary_info += {'BIOS directory': qemu_datadir}
+summary_info += {'firmware path': get_option('qemu_firmwarepath')}
+summary_info += {'binary directory': get_option('bindir')}
+summary_info += {'library directory': get_option('libdir')}
+summary_info += {'module directory': qemu_moddir}
+summary_info += {'libexec directory': get_option('libexecdir')}
+summary_info += {'include directory': get_option('includedir')}
+summary_info += {'config directory': get_option('sysconfdir')}
if targetos != 'windows'
- summary_info += {'local state directory': config_host['qemu_localstatedir']}
+ summary_info += {'local state directory': get_option('localstatedir')}
summary_info += {'Manual directory': get_option('mandir')}
else
summary_info += {'local state directory': 'queried at runtime'}
diff --git a/meson_options.txt b/meson_options.txt
index 967229b66e..02b446013a 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -2,6 +2,8 @@ option('qemu_suffix', type : 'string', value: 'qemu',
description: 'Suffix for QEMU data/modules/config directories (can be empty)')
option('docdir', type : 'string', value : 'doc',
description: 'Base directory for documentation installation (can be empty)')
+option('qemu_firmwarepath', type : 'string', value : '',
+ description: 'search PATH for firmware files')
option('sphinx_build', type : 'string', value : '',
description: 'Use specified sphinx-build [$sphinx_build] for building document (default to be empty)')
diff --git a/pc-bios/descriptors/meson.build b/pc-bios/descriptors/meson.build
index 3798d32372..a200e5ebc3 100644
--- a/pc-bios/descriptors/meson.build
+++ b/pc-bios/descriptors/meson.build
@@ -8,7 +8,7 @@ foreach f: [
]
configure_file(input: files(f),
output: f,
- configuration: {'DATADIR': config_host['qemu_datadir']},
+ configuration: {'DATADIR': qemu_datadir},
install: install_blobs,
install_dir: qemu_datadir / 'firmware')
endforeach
diff --git a/pc-bios/meson.build b/pc-bios/meson.build
index a0d21be432..03df50c485 100644
--- a/pc-bios/meson.build
+++ b/pc-bios/meson.build
@@ -86,7 +86,7 @@ blobs = files(
)
if install_blobs
- install_data(blobs, install_dir: config_host['qemu_datadir'])
+ install_data(blobs, install_dir: qemu_datadir)
endif
subdir('descriptors')
diff --git a/tools/virtiofsd/meson.build b/tools/virtiofsd/meson.build
index 50022ed89e..e1a4dc98d9 100644
--- a/tools/virtiofsd/meson.build
+++ b/tools/virtiofsd/meson.build
@@ -15,5 +15,5 @@ executable('virtiofsd', files(
configure_file(input: '50-qemu-virtiofsd.json.in',
output: '50-qemu-virtiofsd.json',
- configuration: config_host,
+ configuration: { 'libexecdir' : get_option('libexecdir') },
install_dir: qemu_datadir / 'vhost-user')
diff --git a/ui/icons/meson.build b/ui/icons/meson.build
index b6e21f6ad7..12c52080eb 100644
--- a/ui/icons/meson.build
+++ b/ui/icons/meson.build
@@ -2,12 +2,12 @@ foreach s: [16, 24, 32, 48, 64, 128, 256, 512]
s = '@0@x@0@'.format(s.to_string())
install_data('qemu_@0@.png'.format(s),
rename: 'qemu.png',
- install_dir: config_host['qemu_icondir'] / 'hicolor' / s / 'apps')
+ install_dir: qemu_icondir / 'hicolor' / s / 'apps')
endforeach
install_data('qemu_32x32.bmp',
rename: 'qemu.bmp',
- install_dir: config_host['qemu_icondir'] / 'hicolor' / '32x32' / 'apps')
+ install_dir: qemu_icondir / 'hicolor' / '32x32' / 'apps')
install_data('qemu.svg',
- install_dir: config_host['qemu_icondir'] / 'hicolor' / 'scalable' / 'apps')
+ install_dir: qemu_icondir / 'hicolor' / 'scalable' / 'apps')
diff --git a/ui/meson.build b/ui/meson.build
index 5d4906c023..013258a01c 100644
--- a/ui/meson.build
+++ b/ui/meson.build
@@ -139,7 +139,7 @@ subdir('shader')
if have_system
subdir('icons')
- install_data('qemu.desktop', install_dir: config_host['qemu_desktopdir'])
+ install_data('qemu.desktop', install_dir: qemu_desktopdir)
endif
modules += {'ui': ui_modules}
diff --git a/version.texi.in b/version.texi.in
deleted file mode 100644
index 0a723b8be6..0000000000
--- a/version.texi.in
+++ /dev/null
@@ -1,2 +0,0 @@
-@set VERSION @VERSION@
-@set CONFDIR @qemu_confdir@
--
2.26.2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 11/17] configure: remove unused variable from config-host.mak
2020-10-26 13:51 [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Paolo Bonzini
` (9 preceding siblings ...)
2020-10-26 13:51 ` [PULL 10/17] configure: move directory options from config-host.mak to meson Paolo Bonzini
@ 2020-10-26 13:51 ` Paolo Bonzini
2020-10-26 13:51 ` [PULL 12/17] configure: move install_blobs from configure to meson Paolo Bonzini
` (6 subsequent siblings)
17 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2020-10-26 13:51 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
configure | 2 --
1 file changed, 2 deletions(-)
diff --git a/configure b/configure
index 29e6732f47..6bd2cafb33 100755
--- a/configure
+++ b/configure
@@ -3612,7 +3612,6 @@ else
if test "$found" = "no"; then
LIBS="$pthread_lib $LIBS"
fi
- PTHREAD_LIB="$pthread_lib"
break
fi
done
@@ -6742,7 +6741,6 @@ echo "GLIB_LIBS=$glib_libs" >> $config_host_mak
echo "QEMU_LDFLAGS=$QEMU_LDFLAGS" >> $config_host_mak
echo "LDFLAGS_NOPIE=$LDFLAGS_NOPIE" >> $config_host_mak
echo "LD_I386_EMULATION=$ld_i386_emulation" >> $config_host_mak
-echo "PTHREAD_LIB=$PTHREAD_LIB" >> $config_host_mak
echo "EXESUF=$EXESUF" >> $config_host_mak
echo "HOST_DSOSUF=$HOST_DSOSUF" >> $config_host_mak
echo "LIBS_QGA=$libs_qga" >> $config_host_mak
--
2.26.2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 12/17] configure: move install_blobs from configure to meson
2020-10-26 13:51 [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Paolo Bonzini
` (10 preceding siblings ...)
2020-10-26 13:51 ` [PULL 11/17] configure: remove unused variable from config-host.mak Paolo Bonzini
@ 2020-10-26 13:51 ` Paolo Bonzini
2020-10-26 13:51 ` [PULL 13/17] WHPX: Fix WHPX build break Paolo Bonzini
` (5 subsequent siblings)
17 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2020-10-26 13:51 UTC (permalink / raw)
To: qemu-devel
Move the conditions under which edk2 blobs are decompressed
and installed to pc-bios/meson.build.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
configure | 26 +++-----------------------
meson.build | 2 +-
meson_options.txt | 2 ++
pc-bios/descriptors/meson.build | 2 +-
pc-bios/meson.build | 13 +++++++------
5 files changed, 14 insertions(+), 31 deletions(-)
diff --git a/configure b/configure
index 6bd2cafb33..55e07c82dd 100755
--- a/configure
+++ b/configure
@@ -362,8 +362,7 @@ cocoa="auto"
softmmu="yes"
linux_user="no"
bsd_user="no"
-blobs="yes"
-edk2_blobs="no"
+blobs="true"
pkgversion=""
pie=""
qom_cast_debug="yes"
@@ -1205,7 +1204,7 @@ for opt do
;;
--enable-membarrier) membarrier="yes"
;;
- --disable-blobs) blobs="no"
+ --disable-blobs) blobs="false"
;;
--with-pkgversion=*) pkgversion="$optarg"
;;
@@ -2221,18 +2220,6 @@ case " $target_list " in
;;
esac
-for target in $target_list; do
- case "$target" in
- arm-softmmu | aarch64-softmmu | i386-softmmu | x86_64-softmmu)
- edk2_blobs="yes"
- ;;
- esac
-done
-# The EDK2 binaries are compressed with bzip2
-if test "$edk2_blobs" = "yes" && ! has bzip2; then
- error_exit "The bzip2 program is required for building QEMU"
-fi
-
feature_not_found() {
feature=$1
remedy=$2
@@ -6276,9 +6263,6 @@ fi
if test "$vhost_user_fs" = "yes" ; then
echo "CONFIG_VHOST_USER_FS=y" >> $config_host_mak
fi
-if test "$blobs" = "yes" ; then
- echo "INSTALL_BLOBS=yes" >> $config_host_mak
-fi
if test "$iovec" = "yes" ; then
echo "CONFIG_IOVEC=y" >> $config_host_mak
fi
@@ -6755,10 +6739,6 @@ if test "$fuzzing" != "no"; then
fi
echo "FUZZ_EXE_LDFLAGS=$FUZZ_EXE_LDFLAGS" >> $config_host_mak
-if test "$edk2_blobs" = "yes" ; then
- echo "DECOMPRESS_EDK2_BLOBS=y" >> $config_host_mak
-fi
-
if test "$rng_none" = "yes"; then
echo "CONFIG_RNG_NONE=y" >> $config_host_mak
fi
@@ -6995,7 +6975,7 @@ NINJA=$ninja $meson setup \
-Dgettext=$gettext -Dxkbcommon=$xkbcommon -Du2f=$u2f \
-Dcapstone=$capstone -Dslirp=$slirp -Dfdt=$fdt \
-Diconv=$iconv -Dcurses=$curses -Dlibudev=$libudev\
- -Ddocs=$docs -Dsphinx_build=$sphinx_build \
+ -Ddocs=$docs -Dsphinx_build=$sphinx_build -Dinstall_blobs=$blobs \
$cross_arg \
"$PWD" "$source_path"
diff --git a/meson.build b/meson.build
index 4b6cca9238..342b8bcab5 100644
--- a/meson.build
+++ b/meson.build
@@ -2052,7 +2052,7 @@ summary_info += {'netmap support': config_host.has_key('CONFIG_NETMAP')}
summary_info += {'Linux AIO support': config_host.has_key('CONFIG_LINUX_AIO')}
summary_info += {'Linux io_uring support': config_host.has_key('CONFIG_LINUX_IO_URING')}
summary_info += {'ATTR/XATTR support': config_host.has_key('CONFIG_ATTR')}
-summary_info += {'Install blobs': config_host.has_key('INSTALL_BLOBS')}
+summary_info += {'Install blobs': get_option('install_blobs')}
summary_info += {'KVM support': config_all.has_key('CONFIG_KVM')}
summary_info += {'HAX support': config_all.has_key('CONFIG_HAX')}
summary_info += {'HVF support': config_all.has_key('CONFIG_HVF')}
diff --git a/meson_options.txt b/meson_options.txt
index 02b446013a..48ab4ce7d0 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -11,6 +11,8 @@ option('docs', type : 'feature', value : 'auto',
description: 'Documentations build support')
option('gettext', type : 'boolean', value : true,
description: 'Localization of the GTK+ user interface')
+option('install_blobs', type : 'boolean', value : true,
+ description: 'install provided firmware blobs')
option('sparse', type : 'feature', value : 'auto',
description: 'sparse checker')
diff --git a/pc-bios/descriptors/meson.build b/pc-bios/descriptors/meson.build
index a200e5ebc3..7040834573 100644
--- a/pc-bios/descriptors/meson.build
+++ b/pc-bios/descriptors/meson.build
@@ -9,6 +9,6 @@ foreach f: [
configure_file(input: files(f),
output: f,
configuration: {'DATADIR': qemu_datadir},
- install: install_blobs,
+ install: get_option('install_blobs'),
install_dir: qemu_datadir / 'firmware')
endforeach
diff --git a/pc-bios/meson.build b/pc-bios/meson.build
index 03df50c485..fab323af84 100644
--- a/pc-bios/meson.build
+++ b/pc-bios/meson.build
@@ -1,7 +1,8 @@
-bzip2 = find_program('bzip2')
-
-install_blobs = 'INSTALL_BLOBS' in config_host
-if 'DECOMPRESS_EDK2_BLOBS' in config_host
+if 'arm-softmmu' in target_dirs or \
+ 'aarch64-softmmu' in target_dirs or \
+ 'i386-softmmu' in target_dirs or \
+ 'x86_64-softmmu' in target_dirs
+ bzip2 = find_program('bzip2', required: true)
fds = [
'edk2-aarch64-code.fd',
'edk2-arm-code.fd',
@@ -18,7 +19,7 @@ if 'DECOMPRESS_EDK2_BLOBS' in config_host
output: f,
input: '@0@.bz2'.format(f),
capture: true,
- install: install_blobs,
+ install: get_option('install_blobs'),
install_dir: qemu_datadir,
command: [ bzip2, '-dc', '@INPUT0@' ])
endforeach
@@ -85,7 +86,7 @@ blobs = files(
'npcm7xx_bootrom.bin',
)
-if install_blobs
+if get_option('install_blobs')
install_data(blobs, install_dir: qemu_datadir)
endif
--
2.26.2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 13/17] WHPX: Fix WHPX build break
2020-10-26 13:51 [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Paolo Bonzini
` (11 preceding siblings ...)
2020-10-26 13:51 ` [PULL 12/17] configure: move install_blobs from configure to meson Paolo Bonzini
@ 2020-10-26 13:51 ` Paolo Bonzini
2020-10-26 13:51 ` [PULL 14/17] win32: boot broken when bind & data dir are the same Paolo Bonzini
` (4 subsequent siblings)
17 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2020-10-26 13:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Sunil Muthuswamy
From: Sunil Muthuswamy <sunilmut@microsoft.com>
With upstream commit#8a19980e3fc4, logic was introduced to only
allow WHPX build on x64. But, the logic checks for the cpu family
and not the cpu. On my fedora container build, the cpu family is
x86 and the cpu is x86_64. Fixing the build break by checking for
the cpu, instead of the cpu family.
Signed-off-by: Sunil Muthuswamy <sunilmut@microsoft.com>
Message-Id: <SN4PR2101MB0880D706A85793DDFC411304C01D0@SN4PR2101MB0880.namprd21.prod.outlook.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index 342b8bcab5..61919c024a 100644
--- a/meson.build
+++ b/meson.build
@@ -204,7 +204,7 @@ else
have_xen_pci_passthrough = false
endif
if not get_option('whpx').disabled() and targetos == 'windows'
- if get_option('whpx').enabled() and cpu != 'x86_64'
+ if get_option('whpx').enabled() and host_machine.cpu() != 'x86_64'
error('WHPX requires 64-bit host')
elif cc.has_header('WinHvPlatform.h', required: get_option('whpx')) and \
cc.has_header('WinHvEmulation.h', required: get_option('whpx'))
--
2.26.2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 14/17] win32: boot broken when bind & data dir are the same
2020-10-26 13:51 [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Paolo Bonzini
` (12 preceding siblings ...)
2020-10-26 13:51 ` [PULL 13/17] WHPX: Fix WHPX build break Paolo Bonzini
@ 2020-10-26 13:51 ` Paolo Bonzini
2020-10-26 13:51 ` [PULL 15/17] machine: remove deprecated -machine enforce-config-section option Paolo Bonzini
` (3 subsequent siblings)
17 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2020-10-26 13:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Sunil Muthuswamy
From: Sunil Muthuswamy <sunilmut@microsoft.com>
With upstream commit#ea1edcd7da1a "vl: relocate paths to data
directories", the data dir logic was unified between POSIX &
Win32. That patch moved to using 'get_relocated_path()', to
find the data dir. There is a latent bug in get_relocated_path
which can cause it to spin indefinitely, when the bind dir is
the same as the passed in dir (in this case, it was the data
dir).
Signed-off-by: Sunil Muthuswamy <sunilmut@microsoft.com>
Message-Id: <SN4PR2101MB08802BF242C429A15DDB32ACC01B0@SN4PR2101MB0880.namprd21.prod.outlook.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
util/cutils.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/util/cutils.c b/util/cutils.c
index be4e43a9ef..c395974fab 100644
--- a/util/cutils.c
+++ b/util/cutils.c
@@ -949,7 +949,7 @@ char *get_relocated_path(const char *dir)
bindir += len_bindir;
dir = next_component(dir, &len_dir);
bindir = next_component(bindir, &len_bindir);
- } while (len_dir == len_bindir && !memcmp(dir, bindir, len_dir));
+ } while (len_dir && len_dir == len_bindir && !memcmp(dir, bindir, len_dir));
/* Ascend from bindir to the common prefix with dir. */
while (len_bindir) {
--
2.26.2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 15/17] machine: remove deprecated -machine enforce-config-section option
2020-10-26 13:51 [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Paolo Bonzini
` (13 preceding siblings ...)
2020-10-26 13:51 ` [PULL 14/17] win32: boot broken when bind & data dir are the same Paolo Bonzini
@ 2020-10-26 13:51 ` Paolo Bonzini
2020-10-26 13:51 ` [PULL 16/17] machine: move UP defaults to class_base_init Paolo Bonzini
` (2 subsequent siblings)
17 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2020-10-26 13:51 UTC (permalink / raw)
To: qemu-devel
Deprecated since 3.1 and complicates the initialization sequence,
remove it.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
docs/system/deprecated.rst | 12 ++++++------
hw/core/machine.c | 23 -----------------------
include/hw/boards.h | 1 -
migration/migration.c | 10 ----------
qemu-options.hx | 8 --------
5 files changed, 6 insertions(+), 48 deletions(-)
diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index 895433c356..0ebce37a19 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -21,12 +21,6 @@ deprecated.
System emulator command line arguments
--------------------------------------
-``-machine enforce-config-section=on|off`` (since 3.1)
-''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-The ``enforce-config-section`` parameter is replaced by the
-``-global migration.send-configuration={on|off}`` option.
-
``-usbdevice`` (since 2.10.0)
'''''''''''''''''''''''''''''
@@ -689,6 +683,12 @@ Support for invalid topologies is removed, the user must ensure
topologies described with -smp include all possible cpus, i.e.
*sockets* * *cores* * *threads* = *maxcpus*.
+``-machine enforce-config-section=on|off`` (removed 5.2)
+''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+The ``enforce-config-section`` property was replaced by the
+``-global migration.send-configuration={on|off}`` option.
+
Block devices
-------------
diff --git a/hw/core/machine.c b/hw/core/machine.c
index d740a7e963..7a0b263cda 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -411,24 +411,6 @@ static bool machine_get_suppress_vmdesc(Object *obj, Error **errp)
return ms->suppress_vmdesc;
}
-static void machine_set_enforce_config_section(Object *obj, bool value,
- Error **errp)
-{
- MachineState *ms = MACHINE(obj);
-
- warn_report("enforce-config-section is deprecated, please use "
- "-global migration.send-configuration=on|off instead");
-
- ms->enforce_config_section = value;
-}
-
-static bool machine_get_enforce_config_section(Object *obj, Error **errp)
-{
- MachineState *ms = MACHINE(obj);
-
- return ms->enforce_config_section;
-}
-
static char *machine_get_memory_encryption(Object *obj, Error **errp)
{
MachineState *ms = MACHINE(obj);
@@ -857,11 +839,6 @@ static void machine_class_init(ObjectClass *oc, void *data)
object_class_property_set_description(oc, "suppress-vmdesc",
"Set on to disable self-describing migration");
- object_class_property_add_bool(oc, "enforce-config-section",
- machine_get_enforce_config_section, machine_set_enforce_config_section);
- object_class_property_set_description(oc, "enforce-config-section",
- "Set on to enforce configuration section migration");
-
object_class_property_add_str(oc, "memory-encryption",
machine_get_memory_encryption, machine_set_memory_encryption);
object_class_property_set_description(oc, "memory-encryption",
diff --git a/include/hw/boards.h b/include/hw/boards.h
index bf53e8a16e..a49e3a6b44 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -268,7 +268,6 @@ struct MachineState {
char *firmware;
bool iommu;
bool suppress_vmdesc;
- bool enforce_config_section;
bool enable_graphics;
char *memory_encryption;
char *ram_memdev_id;
diff --git a/migration/migration.c b/migration/migration.c
index 0575ecb379..deb6005b8d 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -145,7 +145,6 @@ static void migrate_fd_cancel(MigrationState *s);
void migration_object_init(void)
{
- MachineState *ms = MACHINE(qdev_get_machine());
Error *err = NULL;
/* This can only be called once. */
@@ -170,15 +169,6 @@ void migration_object_init(void)
error_report_err(err);
exit(1);
}
-
- /*
- * We cannot really do this in migration_instance_init() since at
- * that time global properties are not yet applied, then this
- * value will be definitely replaced by something else.
- */
- if (ms->enforce_config_section) {
- current_migration->send_configuration = true;
- }
}
void migration_shutdown(void)
diff --git a/qemu-options.hx b/qemu-options.hx
index 9e1ace04f7..2c83390504 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -34,7 +34,6 @@ DEF("machine", HAS_ARG, QEMU_OPTION_machine, \
" dea-key-wrap=on|off controls support for DEA key wrapping (default=on)\n"
" suppress-vmdesc=on|off disables self-describing migration (default=off)\n"
" nvdimm=on|off controls NVDIMM support (default=off)\n"
- " enforce-config-section=on|off enforce configuration section migration (default=off)\n"
" memory-encryption=@var{} memory encryption object to use (default=none)\n"
" hmat=on|off controls ACPI HMAT support (default=off)\n",
QEMU_ARCH_ALL)
@@ -91,13 +90,6 @@ SRST
``nvdimm=on|off``
Enables or disables NVDIMM support. The default is off.
- ``enforce-config-section=on|off``
- If ``enforce-config-section`` is set to on, force migration code
- to send configuration section even if the machine-type sets the
- ``migration.send-configuration`` property to off. NOTE: this
- parameter is deprecated. Please use ``-global``
- ``migration.send-configuration``\ =on\|off instead.
-
``memory-encryption=``
Memory encryption object to use. The default is none.
--
2.26.2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 16/17] machine: move UP defaults to class_base_init
2020-10-26 13:51 [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Paolo Bonzini
` (14 preceding siblings ...)
2020-10-26 13:51 ` [PULL 15/17] machine: remove deprecated -machine enforce-config-section option Paolo Bonzini
@ 2020-10-26 13:51 ` Paolo Bonzini
2020-10-26 13:51 ` [PULL 17/17] machine: move SMP initialization from vl.c Paolo Bonzini
2020-10-26 17:18 ` [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Peter Maydell
17 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2020-10-26 13:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Thomas Huth
Clean up vl.c, default min/max/default_cpus to uniprocessor
directly in the QOM class initialization code.
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/core/machine.c | 6 +++++-
softmmu/vl.c | 5 -----
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/hw/core/machine.c b/hw/core/machine.c
index 7a0b263cda..57463ad77a 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -853,8 +853,12 @@ static void machine_class_init(ObjectClass *oc, void *data)
static void machine_class_base_init(ObjectClass *oc, void *data)
{
+ MachineClass *mc = MACHINE_CLASS(oc);
+ mc->max_cpus = mc->max_cpus ?: 1;
+ mc->min_cpus = mc->min_cpus ?: 1;
+ mc->default_cpus = mc->default_cpus ?: 1;
+
if (!object_class_is_abstract(oc)) {
- MachineClass *mc = MACHINE_CLASS(oc);
const char *cname = object_class_get_name(oc);
assert(g_str_has_suffix(cname, TYPE_MACHINE_SUFFIX));
mc->name = g_strndup(cname,
diff --git a/softmmu/vl.c b/softmmu/vl.c
index 09b033ff73..9b67ea300e 100644
--- a/softmmu/vl.c
+++ b/softmmu/vl.c
@@ -3970,11 +3970,6 @@ void qemu_init(int argc, char **argv, char **envp)
exit(0);
}
- /* machine_class: default to UP */
- machine_class->max_cpus = machine_class->max_cpus ?: 1;
- machine_class->min_cpus = machine_class->min_cpus ?: 1;
- machine_class->default_cpus = machine_class->default_cpus ?: 1;
-
/* default to machine_class->default_cpus */
current_machine->smp.cpus = machine_class->default_cpus;
current_machine->smp.max_cpus = machine_class->default_cpus;
--
2.26.2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 17/17] machine: move SMP initialization from vl.c
2020-10-26 13:51 [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Paolo Bonzini
` (15 preceding siblings ...)
2020-10-26 13:51 ` [PULL 16/17] machine: move UP defaults to class_base_init Paolo Bonzini
@ 2020-10-26 13:51 ` Paolo Bonzini
2020-10-26 17:18 ` [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Peter Maydell
17 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2020-10-26 13:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Philippe Mathieu-Daudé
Initialize the object's values from the class when the object is
created, no need to have vl.c do it for us.
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/core/machine.c | 7 +++++++
softmmu/vl.c | 7 -------
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/hw/core/machine.c b/hw/core/machine.c
index 57463ad77a..c5e0e79e6d 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -907,6 +907,13 @@ static void machine_initfn(Object *obj)
/* Register notifier when init is done for sysbus sanity checks */
ms->sysbus_notifier.notify = machine_init_notify;
qemu_add_machine_init_done_notifier(&ms->sysbus_notifier);
+
+ /* default to mc->default_cpus */
+ ms->smp.cpus = mc->default_cpus;
+ ms->smp.max_cpus = mc->default_cpus;
+ ms->smp.cores = 1;
+ ms->smp.threads = 1;
+ ms->smp.sockets = 1;
}
static void machine_finalize(Object *obj)
diff --git a/softmmu/vl.c b/softmmu/vl.c
index 9b67ea300e..b7d7f43c88 100644
--- a/softmmu/vl.c
+++ b/softmmu/vl.c
@@ -3970,13 +3970,6 @@ void qemu_init(int argc, char **argv, char **envp)
exit(0);
}
- /* default to machine_class->default_cpus */
- current_machine->smp.cpus = machine_class->default_cpus;
- current_machine->smp.max_cpus = machine_class->default_cpus;
- current_machine->smp.cores = 1;
- current_machine->smp.threads = 1;
- current_machine->smp.sockets = 1;
-
machine_class->smp_parse(current_machine,
qemu_opts_find(qemu_find_opts("smp-opts"), NULL));
--
2.26.2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze
2020-10-26 13:51 [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Paolo Bonzini
` (16 preceding siblings ...)
2020-10-26 13:51 ` [PULL 17/17] machine: move SMP initialization from vl.c Paolo Bonzini
@ 2020-10-26 17:18 ` Peter Maydell
2020-10-26 18:59 ` 罗勇刚(Yonggang Luo)
17 siblings, 1 reply; 26+ messages in thread
From: Peter Maydell @ 2020-10-26 17:18 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: QEMU Developers
On Mon, 26 Oct 2020 at 14:04, Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> The following changes since commit 4c5b97bfd0dd54dc27717ae8d1cd10e14eef1430:
>
> Merge remote-tracking branch 'remotes/kraxel/tags/modules-20201022-pull-request' into staging (2020-10-22 12:33:21 +0100)
>
> are available in the Git repository at:
>
> https://gitlab.com/bonzini/qemu.git tags/for-upstream
>
> for you to fetch changes up to 8b0e484c8bf82e07bb0439bff04e248c63cdc86a:
>
> machine: move SMP initialization from vl.c (2020-10-26 07:08:40 -0400)
>
> ----------------------------------------------------------------
> * fix --disable-tcg builds (Claudio)
> * Fixes for macOS --enable-modules build and OpenBSD curses/iconv detection (myself)
> * Start preparing for meson 0.56 (myself)
> * Move directory configuration to meson (myself)
> * Start untangling qemu_init (myself)
> * Windows fixes (Sunil)
> * Remove -no-kbm (Thomas)
>
> ----------------------------------------------------------------
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/5.2
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze
2020-10-26 17:18 ` [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Peter Maydell
@ 2020-10-26 18:59 ` 罗勇刚(Yonggang Luo)
2020-10-26 20:58 ` Paolo Bonzini
0 siblings, 1 reply; 26+ messages in thread
From: 罗勇刚(Yonggang Luo) @ 2020-10-26 18:59 UTC (permalink / raw)
To: Peter Maydell; +Cc: Paolo Bonzini, QEMU Developers
[-- Attachment #1: Type: text/plain, Size: 1488 bytes --]
This pull request confused me, the windows msys2 build time slow down from
40min to more than one hour.
On Tue, Oct 27, 2020 at 1:54 AM Peter Maydell <peter.maydell@linaro.org>
wrote:
>
> On Mon, 26 Oct 2020 at 14:04, Paolo Bonzini <pbonzini@redhat.com> wrote:
> >
> > The following changes since commit
4c5b97bfd0dd54dc27717ae8d1cd10e14eef1430:
> >
> > Merge remote-tracking branch
'remotes/kraxel/tags/modules-20201022-pull-request' into staging
(2020-10-22 12:33:21 +0100)
> >
> > are available in the Git repository at:
> >
> > https://gitlab.com/bonzini/qemu.git tags/for-upstream
> >
> > for you to fetch changes up to 8b0e484c8bf82e07bb0439bff04e248c63cdc86a:
> >
> > machine: move SMP initialization from vl.c (2020-10-26 07:08:40 -0400)
> >
> > ----------------------------------------------------------------
> > * fix --disable-tcg builds (Claudio)
> > * Fixes for macOS --enable-modules build and OpenBSD curses/iconv
detection (myself)
> > * Start preparing for meson 0.56 (myself)
> > * Move directory configuration to meson (myself)
> > * Start untangling qemu_init (myself)
> > * Windows fixes (Sunil)
> > * Remove -no-kbm (Thomas)
> >
> > ----------------------------------------------------------------
>
>
> Applied, thanks.
>
> Please update the changelog at https://wiki.qemu.org/ChangeLog/5.2
> for any user-visible changes.
>
> -- PMM
>
--
此致
礼
罗勇刚
Yours
sincerely,
Yonggang Luo
[-- Attachment #2: Type: text/html, Size: 1981 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze
2020-10-26 18:59 ` 罗勇刚(Yonggang Luo)
@ 2020-10-26 20:58 ` Paolo Bonzini
2020-10-26 21:04 ` 罗勇刚(Yonggang Luo)
0 siblings, 1 reply; 26+ messages in thread
From: Paolo Bonzini @ 2020-10-26 20:58 UTC (permalink / raw)
To: Yonggang Luo; +Cc: Peter Maydell, QEMU Developers
[-- Attachment #1: Type: text/plain, Size: 718 bytes --]
Il lun 26 ott 2020, 19:59 罗勇刚(Yonggang Luo) <luoyonggang@gmail.com> ha
scritto:
> This pull request confused me, the windows msys2 build time slow down from
> 40min to more than one hour.
>
Probably just the cache being rebuilt. Cirrus CI times seem to vary a lot
but 40min and 1h5min seem to be the common cases before or after these
changes:
https://cirrus-ci.com/task/5531259461959680
With this PR: 35+2 (build+test)
https://cirrus-ci.com/task/4570682912669696
With this PR: 10+4
https://cirrus-ci.com/task/6662289128423424
With this PR: 35+2, +20 to rebuild cirrus cache
https://cirrus-ci.com/task/5383432727429120
Without this PR: 30+2, +18 to rebuild cirrus cache
Paolo
>
[-- Attachment #2: Type: text/html, Size: 1804 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze
2020-10-26 20:58 ` Paolo Bonzini
@ 2020-10-26 21:04 ` 罗勇刚(Yonggang Luo)
0 siblings, 0 replies; 26+ messages in thread
From: 罗勇刚(Yonggang Luo) @ 2020-10-26 21:04 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: Peter Maydell, QEMU Developers
[-- Attachment #1: Type: text/plain, Size: 1109 bytes --]
On Tue, Oct 27, 2020 at 4:58 AM Paolo Bonzini <pbonzini@redhat.com> wrote:
>
>
>
> Il lun 26 ott 2020, 19:59 罗勇刚(Yonggang Luo) <luoyonggang@gmail.com> ha
scritto:
>>
>> This pull request confused me, the windows msys2 build time slow down
from 40min to more than one hour.
>
>
> Probably just the cache being rebuilt. Cirrus CI times seem to vary a lot
but 40min and 1h5min seem to be the common cases before or after these
changes:
>
> https://cirrus-ci.com/task/5531259461959680
> With this PR: 35+2 (build+test)
>
> https://cirrus-ci.com/task/4570682912669696
> With this PR: 10+4
>
> https://cirrus-ci.com/task/6662289128423424
> With this PR: 35+2, +20 to rebuild cirrus cache
>
> https://cirrus-ci.com/task/5383432727429120
> Without this PR: 30+2, +18 to rebuild cirrus cache
>
> Paolo
That's correct, cirrus's building time are not stable. My own build are
already passed.
https://cirrus-ci.com/task/5357017537708032, if the cache are works, then
it's definitely won't exceed the time
--
此致
礼
罗勇刚
Yours
sincerely,
Yonggang Luo
[-- Attachment #2: Type: text/html, Size: 1693 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PULL 01/17] build: fix macOS --enable-modules build
2020-10-26 13:51 ` [PULL 01/17] build: fix macOS --enable-modules build Paolo Bonzini
@ 2020-10-27 9:27 ` Philippe Mathieu-Daudé
2020-10-27 13:27 ` Paolo Bonzini
0 siblings, 1 reply; 26+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-10-27 9:27 UTC (permalink / raw)
To: Paolo Bonzini, qemu-devel; +Cc: Thomas Huth, Emmanuel Blot, Gerd Hoffmann
On 10/26/20 2:51 PM, Paolo Bonzini wrote:
> Apple's nm implementation includes empty lines in the output that are not
> found in GNU binutils. This confuses scripts/undefsym.py, though it did
> not confuse the scripts/undefsym.sh script that it replaced. To fix
> this, ignore lines that do not have two fields.
>
> Reported-by: Emmanuel Blot <eblot.ml@gmail.com>
> Tested-by: Emmanuel Blot <eblot.ml@gmail.com>
> Fixes: 604f3e4e90 ("meson: Convert undefsym.sh to undefsym.py", 2020-09-08)
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> .cirrus.yml | 2 +-
> scripts/undefsym.py | 11 +++++------
> 2 files changed, 6 insertions(+), 7 deletions(-)
>
> diff --git a/.cirrus.yml b/.cirrus.yml
> index 81a2960b1a..900437dd2a 100644
> --- a/.cirrus.yml
> +++ b/.cirrus.yml
> @@ -40,7 +40,7 @@ macos_xcode_task:
> script:
> - mkdir build
> - cd build
> - - ../configure --extra-cflags='-Wno-error=deprecated-declarations'
> + - ../configure --extra-cflags='-Wno-error=deprecated-declarations' --enable-modules
> --enable-werror --cc=clang || { cat config.log meson-logs/meson-log.txt; exit 1; }
I'm confused as this broke the catalina-xcode test:
PASS 5 qtest-aarch64/device-introspect-test
/aarch64/device/introspect/abstract-interfaces
missing object type 'virtio-gpu-device'
Broken pipe
../tests/qtest/libqtest.c:176: kill_qemu() detected QEMU death from
signal 6 (Abort trap: 6)
ERROR qtest-aarch64/device-introspect-test - too few tests run (expected
6, got 5)
gmake: *** [Makefile.mtest:905: run-test-111] Error 1
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PULL 01/17] build: fix macOS --enable-modules build
2020-10-27 9:27 ` Philippe Mathieu-Daudé
@ 2020-10-27 13:27 ` Paolo Bonzini
2020-10-27 15:21 ` Gerd Hoffmann
0 siblings, 1 reply; 26+ messages in thread
From: Paolo Bonzini @ 2020-10-27 13:27 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Thomas Huth, Emmanuel Blot, Gerd Hoffmann
On 27/10/20 10:27, Philippe Mathieu-Daudé wrote:
> I'm confused as this broke the catalina-xcode test:
>
> PASS 5 qtest-aarch64/device-introspect-test
> /aarch64/device/introspect/abstract-interfaces
> missing object type 'virtio-gpu-device'
> Broken pipe
> ../tests/qtest/libqtest.c:176: kill_qemu() detected QEMU death from
> signal 6 (Abort trap: 6)
> ERROR qtest-aarch64/device-introspect-test - too few tests run (expected
> 6, got 5)
> gmake: *** [Makefile.mtest:905: run-test-111] Error 1
>
It's showing that there is still a bug with macOS modules, Gerd was
looking at it (Emmanuel could so as well :)).
Paolo
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PULL 01/17] build: fix macOS --enable-modules build
2020-10-27 13:27 ` Paolo Bonzini
@ 2020-10-27 15:21 ` Gerd Hoffmann
2020-10-27 15:33 ` Gerd Hoffmann
0 siblings, 1 reply; 26+ messages in thread
From: Gerd Hoffmann @ 2020-10-27 15:21 UTC (permalink / raw)
To: Paolo Bonzini
Cc: Thomas Huth, Emmanuel Blot, Philippe Mathieu-Daudé, qemu-devel
On Tue, Oct 27, 2020 at 02:27:42PM +0100, Paolo Bonzini wrote:
> On 27/10/20 10:27, Philippe Mathieu-Daudé wrote:
> > I'm confused as this broke the catalina-xcode test:
> >
> > PASS 5 qtest-aarch64/device-introspect-test
> > /aarch64/device/introspect/abstract-interfaces
> > missing object type 'virtio-gpu-device'
> > Broken pipe
> > ../tests/qtest/libqtest.c:176: kill_qemu() detected QEMU death from
> > signal 6 (Abort trap: 6)
> > ERROR qtest-aarch64/device-introspect-test - too few tests run (expected
> > 6, got 5)
> > gmake: *** [Makefile.mtest:905: run-test-111] Error 1
> >
>
> It's showing that there is still a bug with macOS modules, Gerd was
> looking at it (Emmanuel could so as well :)).
Turned out to be simple.
https://patchwork.ozlabs.org/project/qemu-devel/patch/20201027120603.3625-1-kraxel@redhat.com/
take care,
Gerd
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PULL 01/17] build: fix macOS --enable-modules build
2020-10-27 15:21 ` Gerd Hoffmann
@ 2020-10-27 15:33 ` Gerd Hoffmann
0 siblings, 0 replies; 26+ messages in thread
From: Gerd Hoffmann @ 2020-10-27 15:33 UTC (permalink / raw)
To: Paolo Bonzini
Cc: Thomas Huth, Emmanuel Blot, Philippe Mathieu-Daudé, qemu-devel
On Tue, Oct 27, 2020 at 04:21:50PM +0100, Gerd Hoffmann wrote:
> https://patchwork.ozlabs.org/project/qemu-devel/patch/20201027120603.3625-1-kraxel@redhat.com/
FYI: have pending pull req with this and 3 more module patches,
ci running atm, probably goes out tomorrow ... )
take care,
Gerd
^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2020-10-27 15:35 UTC | newest]
Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-26 13:51 [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Paolo Bonzini
2020-10-26 13:51 ` [PULL 01/17] build: fix macOS --enable-modules build Paolo Bonzini
2020-10-27 9:27 ` Philippe Mathieu-Daudé
2020-10-27 13:27 ` Paolo Bonzini
2020-10-27 15:21 ` Gerd Hoffmann
2020-10-27 15:33 ` Gerd Hoffmann
2020-10-26 13:51 ` [PULL 02/17] meson: rewrite curses/iconv test Paolo Bonzini
2020-10-26 13:51 ` [PULL 03/17] do not use colons in test names Paolo Bonzini
2020-10-26 13:51 ` [PULL 04/17] hw/core/qdev-clock: add a reference on aliased clocks Paolo Bonzini
2020-10-26 13:51 ` [PULL 05/17] qtest: unbreak non-TCG builds in bios-tables-test Paolo Bonzini
2020-10-26 13:51 ` [PULL 06/17] replay: do not build if TCG is not available Paolo Bonzini
2020-10-26 13:51 ` [PULL 07/17] Remove deprecated -no-kvm option Paolo Bonzini
2020-10-26 13:51 ` [PULL 08/17] Makefile: separate meson rerun from the rest of the ninja invocation Paolo Bonzini
2020-10-26 13:51 ` [PULL 09/17] configure: allow configuring localedir Paolo Bonzini
2020-10-26 13:51 ` [PULL 10/17] configure: move directory options from config-host.mak to meson Paolo Bonzini
2020-10-26 13:51 ` [PULL 11/17] configure: remove unused variable from config-host.mak Paolo Bonzini
2020-10-26 13:51 ` [PULL 12/17] configure: move install_blobs from configure to meson Paolo Bonzini
2020-10-26 13:51 ` [PULL 13/17] WHPX: Fix WHPX build break Paolo Bonzini
2020-10-26 13:51 ` [PULL 14/17] win32: boot broken when bind & data dir are the same Paolo Bonzini
2020-10-26 13:51 ` [PULL 15/17] machine: remove deprecated -machine enforce-config-section option Paolo Bonzini
2020-10-26 13:51 ` [PULL 16/17] machine: move UP defaults to class_base_init Paolo Bonzini
2020-10-26 13:51 ` [PULL 17/17] machine: move SMP initialization from vl.c Paolo Bonzini
2020-10-26 17:18 ` [PULL 00/17] Build system changes and misc fixes for QEMU 5.2 soft freeze Peter Maydell
2020-10-26 18:59 ` 罗勇刚(Yonggang Luo)
2020-10-26 20:58 ` Paolo Bonzini
2020-10-26 21:04 ` 罗勇刚(Yonggang Luo)
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.