On 200811 1825, Philippe Mathieu-Daudé wrote: > On 8/11/20 6:20 PM, Philippe Mathieu-Daudé wrote: > > On 8/10/20 7:08 PM, Paolo Bonzini wrote: > >> Move the create-config logic to meson.build; create a > >> configuration_data object and let meson handle the > >> quoting and output. > >> > >> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > >> --- > >> Makefile | 2 +- > >> block.c | 4 +- > >> configure | 9 ++- > >> meson.build | 100 ++++++++++++++++++++++--------- > >> scripts/create_config | 131 > >> ----------------------------------------- > >> tests/qtest/bios-tables-test.c | 2 +- > >> 6 files changed, 80 insertions(+), 168 deletions(-) > >> delete mode 100755 scripts/create_config > >> > >> diff --git a/Makefile b/Makefile > >> index cd4eeb5..1eec727 100644 > >> --- a/Makefile > >> +++ b/Makefile > >> @@ -189,7 +189,7 @@ clean: recurse-clean > >> rm -f fsdev/*.pod scsi/*.pod > >> rm -f $(foreach f,$(generated-files-y),$(f) $(f)-timestamp) > >> > >> -VERSION ?= $(shell cat VERSION) > >> +VERSION = $(shell cat $(SRC_PATH)/VERSION) > >> > >> dist: qemu-$(VERSION).tar.bz2 > >> > >> diff --git a/block.c b/block.c > >> index 67c5028..67ca543 100644 > >> --- a/block.c > >> +++ b/block.c > >> @@ -443,13 +443,13 @@ static int bdrv_format_is_whitelisted(const char > >> *format_name, bool read_only) > >> return 1; /* no whitelist, anything goes */ > >> } > >> > >> - for (p = whitelist_rw; *p; p++) { > >> + for (p = whitelist_rw; p < &whitelist_rw[ARRAY_SIZE(whitelist_rw)]; > >> p++) { > > > > Alexander reported [*] a problem when ARRAY_SIZE(whitelist_rw) == 0 you > > access an undefined address: > > The question is why CONFIG_BDRV_RW_WHITELIST & CONFIG_BDRV_RO_WHITELIST > aren't generated by meson.build...
Something like this? diff --git a/meson.build b/meson.build index 300256bf70..d06fa56190 100644 --- a/meson.build +++ b/meson.build @@ -378,6 +378,8 @@ foreach k, v: config_host if arrays.contains(k) if v != '' v = '"' + '", "'.join(v.split()) + '", ' + else + v = 'NULL' endif config_host_data.set(k, v) elif k == 'ARCH' > > > > > block.c:442:10: runtime error: index 0 out of bounds for type 'const > > char *[0]' > > > > [*] https://lists.gnu.org/archive/html/qemu-devel/2020-08/msg02066.html > > > >> if (!strcmp(format_name, *p)) { > >> return 1; > >> } > >> } > >> if (read_only) { > >> - for (p = whitelist_ro; *p; p++) { > >> + for (p = whitelist_ro; p < > >> &whitelist_ro[ARRAY_SIZE(whitelist_ro)]; p++) { > > > > Ditto. > > > >> if (!strcmp(format_name, *p)) { > >> return 1; > >> } > > [...] > > >