* [PULL v2 00/46] Next round of Meson bugfixes and cleanups @ 2020-09-07 16:44 Paolo Bonzini 2020-09-07 16:44 ` [PULL 37/46] meson: get opengl compilation flags from OPENGL_CFLAGS Paolo Bonzini ` (2 more replies) 0 siblings, 3 replies; 5+ messages in thread From: Paolo Bonzini @ 2020-09-07 16:44 UTC (permalink / raw) To: qemu-devel The following changes since commit 62f9256052df85194faa33137bbe0afb1c95b6e6: Merge remote-tracking branch 'remotes/kraxel/tags/vga-20200904-pull-request' into staging (2020-09-07 13:27:20 +0100) are available in the Git repository at: https://gitlab.com/bonzini/qemu.git tags/for-upstream for you to fetch changes up to cfdedc114244adf488242f547af899bc2fe9f3c0: meson: remove linkage of sdl to baum (2020-09-07 18:43:20 +0200) ---------------------------------------------------------------- meson related: * convert unit tests * bugfixes for mtest2make * miscellaneous bugfixes * dead code removal and configure cleanups * oss-fuzz fixes * msys fixes ---------------------------------------------------------------- Alexander Bulekov (3): oss-fuzz: fix rpath meson: specify fuzz linker script as a project arg fuzz: Add support for custom fuzzing library Bruce Rogers (1): meson: remove linkage of sdl to baum Marc-André Lureau (12): meson: build qapi tests library meson: declare tasn1 dependency meson: declare keyutils dependency meson: convert qht-bench meson: move keyutils dependency check meson: remove old socket_scm_helper rule meson: convert vhost-user-bridge meson: convert atomic*-bench tests: do not print benchmark output to stdout tests/migration/stress: remove unused exit_success meson: fix migration/stress compilation with glibc>=2.30 meson: convert migration/initrd-stress Paolo Bonzini (25): qemu-iotests: move check-block back to Makefiles mtest2make: split environment from test command mtest2make: split working directory from test command mtest2make: hide output of successful tests mtest2make: unify tests that appear in multiple suites meson: remove b_lundef option configure: do not include absolute paths in -I and -L paths configure: include cross sdl2-config in meson cross file ninjatool: use constant names for stamp files meson: fix libqos linking meson: convert the speed tests configure: remove dead code for in-tree builds meson: compute config_all_devices directly Makefile: remove dead variables and includes Makefile: inline the relevant parts of rules.mak configure: move disassembler configuration to meson meson: keep all compiler flags detection together configure: move -ldl test to meson configure: remove unnecessary libm test configure: do not look for install(1) meson: get glib compilation flags from GLIB_CFLAGS meson: get opengl compilation flags from OPENGL_CFLAGS configure: do not include dependency flags in QEMU_CFLAGS and LIBS configure: drop dead variables and functions docs: suggest Meson replacements for various configure functions Thomas Huth (2): tests/Makefile: test-image-locking needs CONFIG_POSIX meson: convert the unit tests Yonggang Luo (3): tests: handling signal on win32 properly configure: update dtc submodule meson: Convert undefsym.sh to undefsym.py .gitignore | 2 - Makefile | 63 +++--- Makefile.objs | 34 ---- accel/tcg/meson.build | 2 +- chardev/meson.build | 4 +- configure | 304 ++++------------------------ disas/meson.build | 4 +- docs/devel/build-system.rst | 18 +- hw/arm/meson.build | 2 +- hw/mips/meson.build | 2 +- hw/riscv/meson.build | 2 +- meson.build | 127 ++++++++---- monitor/meson.build | 2 +- rules.mak | 158 --------------- scripts/grepy.sh | 3 - scripts/mtest2make.py | 100 +++++----- scripts/ninjatool.py | 8 +- scripts/oss-fuzz/build.sh | 2 +- scripts/test-driver.py | 35 ++++ scripts/undefsym.py | 49 +++++ scripts/undefsym.sh | 20 -- tests/Makefile.include | 414 ++------------------------------------- tests/benchmark-crypto-cipher.c | 8 +- tests/benchmark-crypto-hash.c | 2 +- tests/benchmark-crypto-hmac.c | 8 +- tests/docker/Makefile.include | 4 + tests/include/meson.build | 16 ++ tests/meson.build | 255 ++++++++++++++++++++++++ tests/migration/initrd-stress.sh | 10 + tests/migration/meson.build | 14 ++ tests/migration/stress.c | 15 +- tests/qemu-iotests/meson.build | 4 - tests/qtest/fuzz/meson.build | 7 +- tests/qtest/libqos/meson.build | 9 +- tests/tcg/Makefile.qemu | 2 - tests/test-crypto-secret.c | 10 +- tests/test-qga.c | 2 +- tests/test-replication.c | 4 + ui/meson.build | 3 +- 39 files changed, 662 insertions(+), 1066 deletions(-) delete mode 100644 Makefile.objs delete mode 100644 rules.mak delete mode 100755 scripts/grepy.sh create mode 100644 scripts/test-driver.py create mode 100644 scripts/undefsym.py delete mode 100755 scripts/undefsym.sh create mode 100644 tests/include/meson.build create mode 100755 tests/migration/initrd-stress.sh create mode 100644 tests/migration/meson.build -- 2.26.2 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PULL 37/46] meson: get opengl compilation flags from OPENGL_CFLAGS 2020-09-07 16:44 [PULL v2 00/46] Next round of Meson bugfixes and cleanups Paolo Bonzini @ 2020-09-07 16:44 ` Paolo Bonzini 2020-09-07 16:44 ` [PULL 38/46] configure: do not include dependency flags in QEMU_CFLAGS and LIBS Paolo Bonzini 2020-09-07 20:49 ` [PULL v2 00/46] Next round of Meson bugfixes and cleanups Peter Maydell 2 siblings, 0 replies; 5+ messages in thread From: Paolo Bonzini @ 2020-09-07 16:44 UTC (permalink / raw) To: qemu-devel The opengl compilation flags were added to QEMU_CFLAGS. We do not want them to be added to all compilation commands, so export them also via OPENGL_CFLAGS rather than via QEMU_CFLAGS. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- configure | 1 + meson.build | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/configure b/configure index d21fb1e733..e18f3e2156 100755 --- a/configure +++ b/configure @@ -7051,6 +7051,7 @@ fi if test "$opengl" = "yes" ; then echo "CONFIG_OPENGL=y" >> $config_host_mak + echo "OPENGL_CFLAGS=$opengl_cflags" >> $config_host_mak echo "OPENGL_LIBS=$opengl_libs" >> $config_host_mak if test "$opengl_dmabuf" = "yes" ; then echo "CONFIG_OPENGL_DMABUF=y" >> $config_host_mak diff --git a/meson.build b/meson.build index eda2dc8b9e..6a0a645a9c 100644 --- a/meson.build +++ b/meson.build @@ -302,7 +302,8 @@ if 'CONFIG_AUDIO_COREAUDIO' in config_host endif opengl = not_found if 'CONFIG_OPENGL' in config_host - opengl = declare_dependency(link_args: config_host['OPENGL_LIBS'].split()) + opengl = declare_dependency(compile_args: config_host['OPENGL_CFLAGS'].split(), + link_args: config_host['OPENGL_LIBS'].split()) else endif gtk = not_found -- 2.26.2 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PULL 38/46] configure: do not include dependency flags in QEMU_CFLAGS and LIBS 2020-09-07 16:44 [PULL v2 00/46] Next round of Meson bugfixes and cleanups Paolo Bonzini 2020-09-07 16:44 ` [PULL 37/46] meson: get opengl compilation flags from OPENGL_CFLAGS Paolo Bonzini @ 2020-09-07 16:44 ` Paolo Bonzini 2020-09-07 20:49 ` [PULL v2 00/46] Next round of Meson bugfixes and cleanups Peter Maydell 2 siblings, 0 replies; 5+ messages in thread From: Paolo Bonzini @ 2020-09-07 16:44 UTC (permalink / raw) To: qemu-devel All Meson executables should specify their dependencies explicitly, either directly or indirectly via declare_dependency. Makefiles instead did not propagate dependencies correctly from static libraries, for example. Therefore, flags for dependencies need not be included in QEMU_CFLAGS. LIBS is not used at all, so drop that one as well. In a few cases the dependencies were not yet specified, so add them. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- Makefile | 2 +- configure | 40 ---------------------------------------- hw/arm/meson.build | 2 +- hw/mips/meson.build | 2 +- hw/riscv/meson.build | 2 +- monitor/meson.build | 2 +- ui/meson.build | 3 ++- 7 files changed, 7 insertions(+), 46 deletions(-) diff --git a/Makefile b/Makefile index 678e76d6f2..d6c5c9fdef 100644 --- a/Makefile +++ b/Makefile @@ -155,7 +155,7 @@ dtc/%: .git-submodule-status # Therefore we replicate some of the logic in the sub-makefile. # Remove all the extra -Warning flags that QEMU uses that Capstone doesn't; # no need to annoy QEMU developers with such things. -CAP_CFLAGS = $(patsubst -W%,,$(CFLAGS) $(QEMU_CFLAGS)) +CAP_CFLAGS = $(patsubst -W%,,$(CFLAGS) $(QEMU_CFLAGS)) $(CAPSTONE_CFLAGS) CAP_CFLAGS += -DCAPSTONE_USE_SYS_DYN_MEM CAP_CFLAGS += -DCAPSTONE_HAS_ARM CAP_CFLAGS += -DCAPSTONE_HAS_ARM64 diff --git a/configure b/configure index e18f3e2156..b94ba9b239 100755 --- a/configure +++ b/configure @@ -832,7 +832,6 @@ FreeBSD) audio_drv_list="oss try-sdl" audio_possible_drivers="oss sdl pa" # needed for kinfo_getvmmap(3) in libutil.h - LIBS="-lutil $LIBS" netmap="" # enable netmap autodetect HOST_VARIANT_DIR="freebsd" ;; @@ -890,13 +889,10 @@ SunOS) QEMU_CFLAGS="-D_XOPEN_SOURCE=600 $QEMU_CFLAGS" # needed for TIOCWIN* defines in termios.h QEMU_CFLAGS="-D__EXTENSIONS__ $QEMU_CFLAGS" - solarisnetlibs="-lsocket -lnsl -lresolv" - LIBS="$solarisnetlibs $LIBS" ;; Haiku) haiku="yes" QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS -DBSD_SOURCE $QEMU_CFLAGS" - LIBS="-lposix_error_mapper -lnetwork -lbsd $LIBS" ;; Linux) audio_drv_list="try-pa oss" @@ -966,11 +962,7 @@ if test "$mingw32" = "yes" ; then HOST_DSOSUF=".dll" # MinGW needs -mthreads for TLS and macro _MT. CFLAGS="-mthreads $CFLAGS" - LIBS="-lwinmm -lws2_32 $LIBS" write_c_skeleton; - if compile_prog "" "-liberty" ; then - LIBS="-liberty $LIBS" - fi prefix="c:/Program Files/QEMU" qemu_suffix="" libs_qga="-lws2_32 -lwinmm -lpowrprof -lwtsapi32 -lwininet -liphlpapi -lnetapi32 $libs_qga" @@ -2691,7 +2683,6 @@ if test "$xen" != "no" ; then if $pkg_config --exists xentoolcore; then xen_pc="$xen_pc xentoolcore" fi - QEMU_CFLAGS="$QEMU_CFLAGS $($pkg_config --cflags $xen_pc)" xen_cflags="$($pkg_config --cflags $xen_pc)" xen_libs="$($pkg_config --libs $xen_pc)" else @@ -3076,8 +3067,6 @@ if test "$gnutls" != "no"; then # At least ubuntu 18.04 ships only shared libraries. write_c_skeleton if compile_prog "" "$gnutls_libs" ; then - LIBS="$gnutls_libs $LIBS" - QEMU_CFLAGS="$QEMU_CFLAGS $gnutls_cflags" pass="yes" fi fi @@ -3147,8 +3136,6 @@ if test "$nettle" != "no"; then # Link test to make sure the given libraries work (e.g for static). write_c_skeleton if compile_prog "" "$nettle_libs" ; then - LIBS="$nettle_libs $LIBS" - QEMU_CFLAGS="$QEMU_CFLAGS $nettle_cflags" if test -z "$gcrypt"; then gcrypt="no" fi @@ -3191,8 +3178,6 @@ if test "$gcrypt" != "no"; then # Link test to make sure the given libraries work (e.g for static). write_c_skeleton if compile_prog "" "$gcrypt_libs" ; then - LIBS="$gcrypt_libs $LIBS" - QEMU_CFLAGS="$QEMU_CFLAGS $gcrypt_cflags" pass="yes" fi fi @@ -3764,7 +3749,6 @@ for i in $glib_modules; do if $pkg_config --atleast-version=$glib_req_ver $i; then glib_cflags=$($pkg_config --cflags $i) glib_libs=$($pkg_config --libs $i) - LIBS="$glib_libs $LIBS" else error_exit "glib-$glib_req_ver $i is required to compile QEMU" fi @@ -4074,11 +4058,6 @@ if test "$linux_io_uring" != "no" ; then linux_io_uring_cflags=$($pkg_config --cflags liburing) linux_io_uring_libs=$($pkg_config --libs liburing) linux_io_uring=yes - - # io_uring is used in libqemuutil.a where per-file -libs variables are not - # seen by programs linking the archive. It's not ideal, but just add the - # library dependency globally. - LIBS="$linux_io_uring_libs $LIBS" else if test "$linux_io_uring" = "yes" ; then feature_not_found "linux io_uring" "Install liburing devel" @@ -4123,7 +4102,6 @@ EOF elif compile_prog "-DCONFIG_LIBATTR" "-lattr" ; then attr=yes libattr_libs="-lattr" - LIBS="$libattr_libs $LIBS" libattr=yes else if test "$attr" = "yes" ; then @@ -4243,7 +4221,6 @@ if test "$opengl" != "no" ; then if test "$gtk" = "yes" && $pkg_config --exists "$gtkpackage >= 3.16"; then gtk_gl="yes" fi - QEMU_CFLAGS="$QEMU_CFLAGS $opengl_cflags" else if test "$opengl" = "yes" ; then feature_not_found "opengl" "Please install opengl (mesa) devel pkgs: $opengl_pkgs" @@ -4998,7 +4975,6 @@ EOF $pkg_config --atleast-version=0.12.3 spice-protocol && \ compile_prog "$spice_cflags" "$spice_libs" ; then spice="yes" - QEMU_CFLAGS="$QEMU_CFLAGS $spice_cflags" else if test "$spice" = "yes" ; then feature_not_found "spice" \ @@ -5181,7 +5157,6 @@ case "$capstone" in git_submodules="${git_submodules} capstone" fi mkdir -p capstone - QEMU_CFLAGS="$QEMU_CFLAGS -I${source_path}/capstone/include" if test "$mingw32" = "yes"; then LIBCAPSTONE=capstone.lib else @@ -5194,7 +5169,6 @@ case "$capstone" in system) capstone_libs="$($pkg_config --libs capstone)" capstone_cflags="$($pkg_config --cflags capstone)" - QEMU_CFLAGS="$QEMU_CFLAGS $($pkg_config --cflags capstone)" ;; no) @@ -5343,8 +5317,6 @@ EOF else urcu_bp_libs="-lurcu-bp" fi - - LIBS="$lttng_ust_libs $urcu_bp_libs $LIBS" else error_exit "Trace backend 'ust' missing lttng-ust header files" fi @@ -6125,7 +6097,6 @@ if test "$libpmem" != "no"; then libpmem="yes" libpmem_libs=$($pkg_config --libs libpmem) libpmem_cflags=$($pkg_config --cflags libpmem) - QEMU_CFLAGS="$QEMU_CFLAGS $libpmem_cflags" else if test "$libpmem" = "yes" ; then feature_not_found "libpmem" "Install nvml or pmdk" @@ -6142,7 +6113,6 @@ if test "$libdaxctl" != "no"; then libdaxctl="yes" libdaxctl_libs=$($pkg_config --libs libdaxctl) libdaxctl_cflags=$($pkg_config --cflags libdaxctl) - QEMU_CFLAGS="$QEMU_CFLAGS $libdaxctl_cflags" else if test "$libdaxctl" = "yes" ; then feature_not_found "libdaxctl" "Install libdaxctl" @@ -6325,11 +6295,6 @@ if test "$libudev" != "no" ; then fi fi -# Now we've finished running tests it's OK to add -Werror to the compiler flags -if test "$werror" = "yes"; then - QEMU_CFLAGS="-Werror $QEMU_CFLAGS" -fi - # Exclude --warn-common with TSan to suppress warnings from the TSan libraries. if test "$solaris" = "no" && test "$tsan" = "no"; then if $ld --version 2>/dev/null | grep "GNU ld" >/dev/null 2>/dev/null ; then @@ -6546,10 +6511,6 @@ echo_version() { fi } -# prepend ftd flags after all config tests are done -QEMU_CFLAGS="$fdt_cflags $QEMU_CFLAGS" -QEMU_LDFLAGS="$fdt_ldflags $QEMU_LDFLAGS" - config_host_mak="config-host.mak" echo "# Automatically generated by configure - do not modify" > $config_host_mak @@ -7482,7 +7443,6 @@ echo "QEMU_LDFLAGS=$QEMU_LDFLAGS" >> $config_host_mak echo "LDFLAGS_NOPIE=$LDFLAGS_NOPIE" >> $config_host_mak echo "LD_REL_FLAGS=$LD_REL_FLAGS" >> $config_host_mak echo "LD_I386_EMULATION=$ld_i386_emulation" >> $config_host_mak -echo "LIBS+=$LIBS" >> $config_host_mak echo "LIBS_TOOLS+=$libs_tools" >> $config_host_mak echo "PTHREAD_LIB=$PTHREAD_LIB" >> $config_host_mak echo "EXESUF=$EXESUF" >> $config_host_mak diff --git a/hw/arm/meson.build b/hw/arm/meson.build index 1ae5e17eeb..8480b7f37d 100644 --- a/hw/arm/meson.build +++ b/hw/arm/meson.build @@ -1,5 +1,5 @@ arm_ss = ss.source_set() -arm_ss.add(files('boot.c')) +arm_ss.add(files('boot.c'), fdt) arm_ss.add(when: 'CONFIG_PLATFORM_BUS', if_true: files('sysbus-fdt.c')) arm_ss.add(when: 'CONFIG_ARM_VIRT', if_true: files('virt.c')) arm_ss.add(when: 'CONFIG_ACPI', if_true: files('virt-acpi-build.c')) diff --git a/hw/mips/meson.build b/hw/mips/meson.build index 6ac9dc4cff..46294b7382 100644 --- a/hw/mips/meson.build +++ b/hw/mips/meson.build @@ -4,7 +4,7 @@ mips_ss.add(when: 'CONFIG_FULOONG', if_true: files('fuloong2e.c')) mips_ss.add(when: 'CONFIG_JAZZ', if_true: files('jazz.c')) mips_ss.add(when: 'CONFIG_MALTA', if_true: files('gt64xxx_pci.c', 'malta.c')) mips_ss.add(when: 'CONFIG_MIPSSIM', if_true: files('mipssim.c')) -mips_ss.add(when: 'CONFIG_MIPS_BOSTON', if_true: files('boston.c')) +mips_ss.add(when: 'CONFIG_MIPS_BOSTON', if_true: [files('boston.c'), fdt]) mips_ss.add(when: 'CONFIG_MIPS_CPS', if_true: files('cps.c')) mips_ss.add(when: 'CONFIG_R4K', if_true: files('r4k.c')) diff --git a/hw/riscv/meson.build b/hw/riscv/meson.build index 25af9db75e..fe2ea75f65 100644 --- a/hw/riscv/meson.build +++ b/hw/riscv/meson.build @@ -1,5 +1,5 @@ riscv_ss = ss.source_set() -riscv_ss.add(files('boot.c')) +riscv_ss.add(files('boot.c'), fdt) riscv_ss.add(files('numa.c')) riscv_ss.add(when: 'CONFIG_HART', if_true: files('riscv_hart.c')) riscv_ss.add(when: 'CONFIG_OPENTITAN', if_true: files('opentitan.c')) diff --git a/monitor/meson.build b/monitor/meson.build index 0484a64341..eb2a534fdc 100644 --- a/monitor/meson.build +++ b/monitor/meson.build @@ -6,4 +6,4 @@ softmmu_ss.add(files( 'qmp-cmds.c', )) -specific_ss.add(when: 'CONFIG_SOFTMMU', if_true: files('misc.c')) +specific_ss.add(when: 'CONFIG_SOFTMMU', if_true: [files('misc.c'), spice]) diff --git a/ui/meson.build b/ui/meson.build index 82f60756d9..dd6c110136 100644 --- a/ui/meson.build +++ b/ui/meson.build @@ -1,5 +1,5 @@ softmmu_ss.add(pixman) -specific_ss.add(pixman) # for the include path +specific_ss.add(when: ['CONFIG_SOFTMMU'], if_true: pixman) # for the include path softmmu_ss.add(files( 'console.c', @@ -35,6 +35,7 @@ softmmu_ss.add_all(when: vnc, if_true: vnc_ss) softmmu_ss.add(when: vnc, if_false: files('vnc-stubs.c')) softmmu_ss.add(when: [opengl, 'CONFIG_OPENGL'], if_true: files('shader.c', 'console-gl.c', 'egl-helpers.c', 'egl-context.c')) softmmu_ss.add(when: [opengl, 'CONFIG_OPENGL_DMABUF'], if_true: files('egl-headless.c')) +specific_ss.add(when: ['CONFIG_SOFTMMU'], if_true: opengl) ui_modules = {} -- 2.26.2 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PULL v2 00/46] Next round of Meson bugfixes and cleanups 2020-09-07 16:44 [PULL v2 00/46] Next round of Meson bugfixes and cleanups Paolo Bonzini 2020-09-07 16:44 ` [PULL 37/46] meson: get opengl compilation flags from OPENGL_CFLAGS Paolo Bonzini 2020-09-07 16:44 ` [PULL 38/46] configure: do not include dependency flags in QEMU_CFLAGS and LIBS Paolo Bonzini @ 2020-09-07 20:49 ` Peter Maydell 2 siblings, 0 replies; 5+ messages in thread From: Peter Maydell @ 2020-09-07 20:49 UTC (permalink / raw) To: Paolo Bonzini; +Cc: QEMU Developers On Mon, 7 Sep 2020 at 17:45, Paolo Bonzini <pbonzini@redhat.com> wrote: > > The following changes since commit 62f9256052df85194faa33137bbe0afb1c95b6e6: > > Merge remote-tracking branch 'remotes/kraxel/tags/vga-20200904-pull-request' into staging (2020-09-07 13:27:20 +0100) > > are available in the Git repository at: > > https://gitlab.com/bonzini/qemu.git tags/for-upstream > > for you to fetch changes up to cfdedc114244adf488242f547af899bc2fe9f3c0: > > meson: remove linkage of sdl to baum (2020-09-07 18:43:20 +0200) > > ---------------------------------------------------------------- > meson related: > * convert unit tests > * bugfixes for mtest2make > * miscellaneous bugfixes > * dead code removal and configure cleanups > * oss-fuzz fixes > * msys fixes Conflict in tests/Makefile.include, resolution not immediately obvious -- could you rebase and resend, please? thanks -- PMM ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PULL 00/46] Next round of Meson bugfixes and cleanups @ 2020-09-04 11:40 Paolo Bonzini 2020-09-04 11:41 ` [PULL 38/46] configure: do not include dependency flags in QEMU_CFLAGS and LIBS Paolo Bonzini 0 siblings, 1 reply; 5+ messages in thread From: Paolo Bonzini @ 2020-09-04 11:40 UTC (permalink / raw) To: qemu-devel The following changes since commit 67a7bfe560a1bba59efab085cb3430f45176d382: Merge remote-tracking branch 'remotes/huth-gitlab/tags/pull-request-2020-09-03' into staging (2020-09-03 16:58:25 +0100) are available in the Git repository at: https://gitlab.com/bonzini/qemu.git tags/for-upstream for you to fetch changes up to 4be1987db8b361f17c50bea582c6056cd54c4752: meson: remove linkage of sdl to baum (2020-09-04 07:33:28 -0400) Finally a favorable diffstat appears... ---------------------------------------------------------------- meson related: * convert unit tests * bugfixes for mtest2make * miscellaneous bugfixes * dead code removal and configure cleanups * oss-fuzz fixes * msys fixes ---------------------------------------------------------------- Alexander Bulekov (3): oss-fuzz: fix rpath meson: specify fuzz linker script as a project arg fuzz: Add support for custom fuzzing library Bruce Rogers (1): meson: remove linkage of sdl to baum Marc-André Lureau (12): meson: build qapi tests library meson: declare tasn1 dependency meson: declare keyutils dependency meson: convert qht-bench meson: move keyutils dependency check meson: remove old socket_scm_helper rule meson: convert vhost-user-bridge meson: convert atomic*-bench tests: do not print benchmark output to stdout tests/migration/stress: remove unused exit_success meson: fix migration/stress compilation with glibc>=2.30 meson: convert migration/initrd-stress Paolo Bonzini (25): qemu-iotests: move check-block back to Makefiles mtest2make: split environment from test command mtest2make: split working directory from test command mtest2make: hide output of successful tests mtest2make: unify tests that appear in multiple suites meson: remove b_lundef option configure: do not include absolute paths in -I and -L paths configure: include cross sdl2-config in meson cross file ninjatool: use constant names for stamp files meson: fix libqos linking meson: convert the speed tests configure: remove dead code for in-tree builds meson: compute config_all_devices directly Makefile: remove dead variables and includes Makefile: inline the relevant parts of rules.mak configure: move disassembler configuration to meson configure: move C++ compiler handling to meson meson: keep all compiler flags detection together configure: move -ldl test to meson configure: remove unnecessary libm test configure: do not look for install(1) meson: get glib compilation flags from GLIB_CFLAGS configure: do not include dependency flags in QEMU_CFLAGS and LIBS configure: drop dead variables and functions docs: suggest Meson replacements for various configure functions Thomas Huth (2): tests/Makefile: test-image-locking needs CONFIG_POSIX meson: convert the unit tests Yonggang Luo (3): tests: handling signal on win32 properly configure: update dtc submodule meson: Convert undefsym.sh to undefsym.py .gitignore | 2 - Makefile | 63 +++--- Makefile.objs | 34 ---- accel/tcg/meson.build | 2 +- chardev/meson.build | 4 +- configure | 353 ++++----------------------------- disas/meson.build | 4 +- docs/devel/build-system.rst | 18 +- hw/arm/meson.build | 2 +- hw/mips/meson.build | 2 +- hw/riscv/meson.build | 2 +- meson.build | 153 +++++++++++---- monitor/meson.build | 2 +- rules.mak | 158 --------------- scripts/empty.c | 6 + scripts/grepy.sh | 3 - scripts/mtest2make.py | 100 +++++----- scripts/ninjatool.py | 8 +- scripts/oss-fuzz/build.sh | 2 +- scripts/test-driver.py | 35 ++++ scripts/undefsym.py | 49 +++++ scripts/undefsym.sh | 20 -- tests/Makefile.include | 414 ++------------------------------------- tests/benchmark-crypto-cipher.c | 8 +- tests/benchmark-crypto-hash.c | 2 +- tests/benchmark-crypto-hmac.c | 8 +- tests/docker/Makefile.include | 4 + tests/include/meson.build | 16 ++ tests/meson.build | 257 ++++++++++++++++++++++++ tests/migration/initrd-stress.sh | 10 + tests/migration/meson.build | 14 ++ tests/migration/stress.c | 15 +- tests/qemu-iotests/meson.build | 4 - tests/qtest/fuzz/meson.build | 7 +- tests/qtest/libqos/meson.build | 9 +- tests/tcg/Makefile.qemu | 2 - tests/test-crypto-secret.c | 10 +- tests/test-qga.c | 2 +- tests/test-replication.c | 4 + 39 files changed, 686 insertions(+), 1122 deletions(-) delete mode 100644 Makefile.objs delete mode 100644 rules.mak create mode 100644 scripts/empty.c delete mode 100755 scripts/grepy.sh create mode 100644 scripts/test-driver.py create mode 100644 scripts/undefsym.py delete mode 100755 scripts/undefsym.sh create mode 100644 tests/include/meson.build create mode 100755 tests/migration/initrd-stress.sh create mode 100644 tests/migration/meson.build -- 2.26.2 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PULL 38/46] configure: do not include dependency flags in QEMU_CFLAGS and LIBS 2020-09-04 11:40 [PULL " Paolo Bonzini @ 2020-09-04 11:41 ` Paolo Bonzini 0 siblings, 0 replies; 5+ messages in thread From: Paolo Bonzini @ 2020-09-04 11:41 UTC (permalink / raw) To: qemu-devel All Meson executables should specify their dependencies explicitly, either directly or indirectly via declare_dependency. Makefiles instead did not propagate dependencies correctly from static libraries, for example. Therefore, flags for dependencies need not be included in QEMU_CFLAGS. LIBS is not used at all, so drop that one as well. In a few cases the dependencies were not yet specified, so add them. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- Makefile | 2 +- configure | 40 ---------------------------------------- hw/arm/meson.build | 2 +- hw/mips/meson.build | 2 +- hw/riscv/meson.build | 2 +- monitor/meson.build | 2 +- 6 files changed, 5 insertions(+), 45 deletions(-) diff --git a/Makefile b/Makefile index 678e76d6f2..d6c5c9fdef 100644 --- a/Makefile +++ b/Makefile @@ -155,7 +155,7 @@ dtc/%: .git-submodule-status # Therefore we replicate some of the logic in the sub-makefile. # Remove all the extra -Warning flags that QEMU uses that Capstone doesn't; # no need to annoy QEMU developers with such things. -CAP_CFLAGS = $(patsubst -W%,,$(CFLAGS) $(QEMU_CFLAGS)) +CAP_CFLAGS = $(patsubst -W%,,$(CFLAGS) $(QEMU_CFLAGS)) $(CAPSTONE_CFLAGS) CAP_CFLAGS += -DCAPSTONE_USE_SYS_DYN_MEM CAP_CFLAGS += -DCAPSTONE_HAS_ARM CAP_CFLAGS += -DCAPSTONE_HAS_ARM64 diff --git a/configure b/configure index e63b356234..0ca0eaf266 100755 --- a/configure +++ b/configure @@ -814,7 +814,6 @@ FreeBSD) audio_drv_list="oss try-sdl" audio_possible_drivers="oss sdl pa" # needed for kinfo_getvmmap(3) in libutil.h - LIBS="-lutil $LIBS" netmap="" # enable netmap autodetect HOST_VARIANT_DIR="freebsd" ;; @@ -872,13 +871,10 @@ SunOS) QEMU_CFLAGS="-D_XOPEN_SOURCE=600 $QEMU_CFLAGS" # needed for TIOCWIN* defines in termios.h QEMU_CFLAGS="-D__EXTENSIONS__ $QEMU_CFLAGS" - solarisnetlibs="-lsocket -lnsl -lresolv" - LIBS="$solarisnetlibs $LIBS" ;; Haiku) haiku="yes" QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS -DBSD_SOURCE $QEMU_CFLAGS" - LIBS="-lposix_error_mapper -lnetwork -lbsd $LIBS" ;; Linux) audio_drv_list="try-pa oss" @@ -948,11 +944,7 @@ if test "$mingw32" = "yes" ; then HOST_DSOSUF=".dll" # MinGW needs -mthreads for TLS and macro _MT. CFLAGS="-mthreads $CFLAGS" - LIBS="-lwinmm -lws2_32 $LIBS" write_c_skeleton; - if compile_prog "" "-liberty" ; then - LIBS="-liberty $LIBS" - fi prefix="c:/Program Files/QEMU" qemu_suffix="" libs_qga="-lws2_32 -lwinmm -lpowrprof -lwtsapi32 -lwininet -liphlpapi -lnetapi32 $libs_qga" @@ -2673,7 +2665,6 @@ if test "$xen" != "no" ; then if $pkg_config --exists xentoolcore; then xen_pc="$xen_pc xentoolcore" fi - QEMU_CFLAGS="$QEMU_CFLAGS $($pkg_config --cflags $xen_pc)" xen_cflags="$($pkg_config --cflags $xen_pc)" xen_libs="$($pkg_config --libs $xen_pc)" else @@ -3058,8 +3049,6 @@ if test "$gnutls" != "no"; then # At least ubuntu 18.04 ships only shared libraries. write_c_skeleton if compile_prog "" "$gnutls_libs" ; then - LIBS="$gnutls_libs $LIBS" - QEMU_CFLAGS="$QEMU_CFLAGS $gnutls_cflags" pass="yes" fi fi @@ -3129,8 +3118,6 @@ if test "$nettle" != "no"; then # Link test to make sure the given libraries work (e.g for static). write_c_skeleton if compile_prog "" "$nettle_libs" ; then - LIBS="$nettle_libs $LIBS" - QEMU_CFLAGS="$QEMU_CFLAGS $nettle_cflags" if test -z "$gcrypt"; then gcrypt="no" fi @@ -3173,8 +3160,6 @@ if test "$gcrypt" != "no"; then # Link test to make sure the given libraries work (e.g for static). write_c_skeleton if compile_prog "" "$gcrypt_libs" ; then - LIBS="$gcrypt_libs $LIBS" - QEMU_CFLAGS="$QEMU_CFLAGS $gcrypt_cflags" pass="yes" fi fi @@ -3746,7 +3731,6 @@ for i in $glib_modules; do if $pkg_config --atleast-version=$glib_req_ver $i; then glib_cflags=$($pkg_config --cflags $i) glib_libs=$($pkg_config --libs $i) - LIBS="$glib_libs $LIBS" else error_exit "glib-$glib_req_ver $i is required to compile QEMU" fi @@ -4056,11 +4040,6 @@ if test "$linux_io_uring" != "no" ; then linux_io_uring_cflags=$($pkg_config --cflags liburing) linux_io_uring_libs=$($pkg_config --libs liburing) linux_io_uring=yes - - # io_uring is used in libqemuutil.a where per-file -libs variables are not - # seen by programs linking the archive. It's not ideal, but just add the - # library dependency globally. - LIBS="$linux_io_uring_libs $LIBS" else if test "$linux_io_uring" = "yes" ; then feature_not_found "linux io_uring" "Install liburing devel" @@ -4105,7 +4084,6 @@ EOF elif compile_prog "-DCONFIG_LIBATTR" "-lattr" ; then attr=yes libattr_libs="-lattr" - LIBS="$libattr_libs $LIBS" libattr=yes else if test "$attr" = "yes" ; then @@ -4225,7 +4203,6 @@ if test "$opengl" != "no" ; then if test "$gtk" = "yes" && $pkg_config --exists "$gtkpackage >= 3.16"; then gtk_gl="yes" fi - QEMU_CFLAGS="$QEMU_CFLAGS $opengl_cflags" else if test "$opengl" = "yes" ; then feature_not_found "opengl" "Please install opengl (mesa) devel pkgs: $opengl_pkgs" @@ -4974,7 +4951,6 @@ EOF $pkg_config --atleast-version=0.12.3 spice-protocol && \ compile_prog "$spice_cflags" "$spice_libs" ; then spice="yes" - QEMU_CFLAGS="$QEMU_CFLAGS $spice_cflags" else if test "$spice" = "yes" ; then feature_not_found "spice" \ @@ -5157,7 +5133,6 @@ case "$capstone" in git_submodules="${git_submodules} capstone" fi mkdir -p capstone - QEMU_CFLAGS="$QEMU_CFLAGS -I${source_path}/capstone/include" if test "$mingw32" = "yes"; then LIBCAPSTONE=capstone.lib else @@ -5170,7 +5145,6 @@ case "$capstone" in system) capstone_libs="$($pkg_config --libs capstone)" capstone_cflags="$($pkg_config --cflags capstone)" - QEMU_CFLAGS="$QEMU_CFLAGS $($pkg_config --cflags capstone)" ;; no) @@ -5319,8 +5293,6 @@ EOF else urcu_bp_libs="-lurcu-bp" fi - - LIBS="$lttng_ust_libs $urcu_bp_libs $LIBS" else error_exit "Trace backend 'ust' missing lttng-ust header files" fi @@ -6101,7 +6073,6 @@ if test "$libpmem" != "no"; then libpmem="yes" libpmem_libs=$($pkg_config --libs libpmem) libpmem_cflags=$($pkg_config --cflags libpmem) - QEMU_CFLAGS="$QEMU_CFLAGS $libpmem_cflags" else if test "$libpmem" = "yes" ; then feature_not_found "libpmem" "Install nvml or pmdk" @@ -6118,7 +6089,6 @@ if test "$libdaxctl" != "no"; then libdaxctl="yes" libdaxctl_libs=$($pkg_config --libs libdaxctl) libdaxctl_cflags=$($pkg_config --cflags libdaxctl) - QEMU_CFLAGS="$QEMU_CFLAGS $libdaxctl_cflags" else if test "$libdaxctl" = "yes" ; then feature_not_found "libdaxctl" "Install libdaxctl" @@ -6301,11 +6271,6 @@ if test "$libudev" != "no" ; then fi fi -# Now we've finished running tests it's OK to add -Werror to the compiler flags -if test "$werror" = "yes"; then - QEMU_CFLAGS="-Werror $QEMU_CFLAGS" -fi - # Exclude --warn-common with TSan to suppress warnings from the TSan libraries. if test "$solaris" = "no" && test "$tsan" = "no"; then if $ld --version 2>/dev/null | grep "GNU ld" >/dev/null 2>/dev/null ; then @@ -6490,10 +6455,6 @@ echo_version() { fi } -# prepend ftd flags after all config tests are done -QEMU_CFLAGS="$fdt_cflags $QEMU_CFLAGS" -QEMU_LDFLAGS="$fdt_ldflags $QEMU_LDFLAGS" - config_host_mak="config-host.mak" echo "# Automatically generated by configure - do not modify" > $config_host_mak @@ -7421,7 +7382,6 @@ echo "QEMU_LDFLAGS=$QEMU_LDFLAGS" >> $config_host_mak echo "LDFLAGS_NOPIE=$LDFLAGS_NOPIE" >> $config_host_mak echo "LD_REL_FLAGS=$LD_REL_FLAGS" >> $config_host_mak echo "LD_I386_EMULATION=$ld_i386_emulation" >> $config_host_mak -echo "LIBS+=$LIBS" >> $config_host_mak echo "LIBS_TOOLS+=$libs_tools" >> $config_host_mak echo "PTHREAD_LIB=$PTHREAD_LIB" >> $config_host_mak echo "EXESUF=$EXESUF" >> $config_host_mak diff --git a/hw/arm/meson.build b/hw/arm/meson.build index 1ae5e17eeb..8480b7f37d 100644 --- a/hw/arm/meson.build +++ b/hw/arm/meson.build @@ -1,5 +1,5 @@ arm_ss = ss.source_set() -arm_ss.add(files('boot.c')) +arm_ss.add(files('boot.c'), fdt) arm_ss.add(when: 'CONFIG_PLATFORM_BUS', if_true: files('sysbus-fdt.c')) arm_ss.add(when: 'CONFIG_ARM_VIRT', if_true: files('virt.c')) arm_ss.add(when: 'CONFIG_ACPI', if_true: files('virt-acpi-build.c')) diff --git a/hw/mips/meson.build b/hw/mips/meson.build index 6ac9dc4cff..46294b7382 100644 --- a/hw/mips/meson.build +++ b/hw/mips/meson.build @@ -4,7 +4,7 @@ mips_ss.add(when: 'CONFIG_FULOONG', if_true: files('fuloong2e.c')) mips_ss.add(when: 'CONFIG_JAZZ', if_true: files('jazz.c')) mips_ss.add(when: 'CONFIG_MALTA', if_true: files('gt64xxx_pci.c', 'malta.c')) mips_ss.add(when: 'CONFIG_MIPSSIM', if_true: files('mipssim.c')) -mips_ss.add(when: 'CONFIG_MIPS_BOSTON', if_true: files('boston.c')) +mips_ss.add(when: 'CONFIG_MIPS_BOSTON', if_true: [files('boston.c'), fdt]) mips_ss.add(when: 'CONFIG_MIPS_CPS', if_true: files('cps.c')) mips_ss.add(when: 'CONFIG_R4K', if_true: files('r4k.c')) diff --git a/hw/riscv/meson.build b/hw/riscv/meson.build index 25af9db75e..fe2ea75f65 100644 --- a/hw/riscv/meson.build +++ b/hw/riscv/meson.build @@ -1,5 +1,5 @@ riscv_ss = ss.source_set() -riscv_ss.add(files('boot.c')) +riscv_ss.add(files('boot.c'), fdt) riscv_ss.add(files('numa.c')) riscv_ss.add(when: 'CONFIG_HART', if_true: files('riscv_hart.c')) riscv_ss.add(when: 'CONFIG_OPENTITAN', if_true: files('opentitan.c')) diff --git a/monitor/meson.build b/monitor/meson.build index 0484a64341..eb2a534fdc 100644 --- a/monitor/meson.build +++ b/monitor/meson.build @@ -6,4 +6,4 @@ softmmu_ss.add(files( 'qmp-cmds.c', )) -specific_ss.add(when: 'CONFIG_SOFTMMU', if_true: files('misc.c')) +specific_ss.add(when: 'CONFIG_SOFTMMU', if_true: [files('misc.c'), spice]) -- 2.26.2 ^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-09-07 20:51 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-09-07 16:44 [PULL v2 00/46] Next round of Meson bugfixes and cleanups Paolo Bonzini 2020-09-07 16:44 ` [PULL 37/46] meson: get opengl compilation flags from OPENGL_CFLAGS Paolo Bonzini 2020-09-07 16:44 ` [PULL 38/46] configure: do not include dependency flags in QEMU_CFLAGS and LIBS Paolo Bonzini 2020-09-07 20:49 ` [PULL v2 00/46] Next round of Meson bugfixes and cleanups Peter Maydell -- strict thread matches above, loose matches on Subject: below -- 2020-09-04 11:40 [PULL " Paolo Bonzini 2020-09-04 11:41 ` [PULL 38/46] configure: do not include dependency flags in QEMU_CFLAGS and LIBS Paolo Bonzini
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).