Skip to content
Snippets Groups Projects
  1. May 18, 2021
  2. May 14, 2021
    • Thomas Huth's avatar
      configure: Poison all current target-specific #defines · e0447a83
      Thomas Huth authored
      
      We are generating a lot of target-specific defines in the *-config-devices.h
      and *-config-target.h files. Using them in common code is wrong and leads
      to very subtle bugs since a "#ifdef CONFIG_SOMETHING" is not working there
      as expected. To avoid these issues, we are already poisoning many of the
      macros in include/exec/poison.h - but it's cumbersome to maintain this
      list manually. Thus let's generate an additional list of poisoned macros
      automatically from the current config switches - this should give us a
      much better test coverage via the different CI configurations.
      
      Note that CONFIG_TCG (which is also defined in config-host.h) and
      CONFIG_USER_ONLY are special, so we have to filter these out.
      
      Message-Id: <20210414112004.943383-5-thuth@redhat.com>
      Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
      Signed-off-by: default avatarThomas Huth <thuth@redhat.com>
      e0447a83
  3. May 12, 2021
  4. May 09, 2021
    • Thomas Huth's avatar
      pc-bios/s390-ccw: Allow building with Clang, too · a5b2afd5
      Thomas Huth authored
      
      Clang unfortunately does not support generating code for the z900
      architecture level and starts with the z10 instead. Thus to be able
      to support compiling with Clang, we have to check for the supported
      compiler flags. The disadvantage is of course that the bios image
      will only run with z10 guest CPUs upwards (which is what most people
      use anyway), so just in case let's also emit a warning in that case
      (we will continue to ship firmware images that have been pre-built
      with GCC in future releases, so this should not impact normal users,
      too).
      
      Message-Id: <20210502174836.838816-5-thuth@redhat.com>
      Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
      Reviewed-by: default avatarCornelia Huck <cohuck@redhat.com>
      Signed-off-by: default avatarThomas Huth <thuth@redhat.com>
      a5b2afd5
  5. May 04, 2021
  6. Apr 06, 2021
  7. Apr 01, 2021
    • Miroslav Rezanina's avatar
      configure: Do not use default_feature for EXESUF · c7328271
      Miroslav Rezanina authored
      
      Commit "c87ea116 configure: add --without-default-features" use
      default_feature to set default values for configure option. This value
      is used for EXESUF too.
      
      However, EXESUF is not option to be tested, it is just append to any
      binary name so using --without-default-features set EXESUF to "n"o and
      all binaries using it has form <name>no (e.g. qemu-imgno).
      
      This is not expected behavior as disabling features should not cause
      generating different binary names.
      
      Reverting back to setting EXESUF to empty value unless needed otherwise.
      
      Signed-off-by: default avatarMiroslav Rezanina <mrezanin@redhat.com>
      Message-Id: <20210331081845.105089-1-mrezanin@redhat.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      c7328271
  8. Mar 24, 2021
    • Thomas Huth's avatar
      configure: Don't use the __atomic_*_16 functions for testing 128-bit support · bceac547
      Thomas Huth authored
      
      The test for 128-bit atomics is causing trouble with FreeBSD 12.2 and
      --enable-werror:
      
       cc -Werror -fPIE -DPIE -std=gnu99 -Wall -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wold-style-definition -Wtype-limits -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wempty-body -Wnested-externs -Wendif-labels -Wexpansion-to-defined -Wno-initializer-overrides -Wno-missing-include-dirs -Wno-shift-negative-value -Wno-string-plus-int -Wno-typedef-redefinition -Wno-tautological-type-limit-compare -fstack-protector-strong -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -pie -Wl,-z,relro -Wl,-z,now -m64 -fstack-protector-strong
       config-temp/qemu-conf.c:4:7: error: implicit declaration of function '__atomic_load_16' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
         y = __atomic_load_16(&x, 0);
             ^
       config-temp/qemu-conf.c:5:3: error: implicit declaration of function '__atomic_store_16' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
         __atomic_store_16(&x, y, 0);
         ^
       config-temp/qemu-conf.c:5:3: note: did you mean '__atomic_load_16'?
       config-temp/qemu-conf.c:4:7: note: '__atomic_load_16' declared here
         y = __atomic_load_16(&x, 0);
             ^
       config-temp/qemu-conf.c:6:3: error: implicit declaration of function '__atomic_compare_exchange_16' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
         __atomic_compare_exchange_16(&x, &y, x, 0, 0, 0);
         ^
       3 errors generated.
      
      Looking for they way we are using atomic functions in QEMU, we are not
      using these functions with the _16 suffix anyway. Switch to the same
      functions that we use in the include/qemu/atomic.h header.
      
      Signed-off-by: default avatarThomas Huth <thuth@redhat.com>
      Signed-off-by: default avatarAlex Bennée <alex.bennee@linaro.org>
      Reviewed-by: default avatarRichard Henderson <richard.henderson@linaro.org>
      Acked-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      Message-Id: <20210317110512.583747-2-thuth@redhat.com>
      Message-Id: <20210323165308.15244-12-alex.bennee@linaro.org>
      bceac547
    • Richard Henderson's avatar
      exec: Build page-vary-common.c with -fno-lto · 44b99a6d
      Richard Henderson authored
      
      In bbc17caf, we used an alias attribute to allow target_page
      to be declared const, and yet be initialized late.
      
      This fails when using LTO with several versions of gcc.
      The compiler looks through the alias and decides that the const
      variable is statically initialized to zero, then propagates that
      zero to many uses of the variable.
      
      This can be avoided by compiling one object file with -fno-lto.
      In this way, any initializer cannot be seen, and the constant
      propagation does not occur.
      
      Since we are certain to have this separate compilation unit, we
      can drop the alias attribute as well.  We simply have differing
      declarations for target_page in different compilation units.
      Drop the use of init_target_page, and drop the configure detection
      for CONFIG_ATTRIBUTE_ALIAS.
      
      In order to change the compilation flags for a file with meson,
      we must use a static_library.  This runs into specific_ss, where
      we would need to create many static_library instances.
      
      Fix this by splitting page-vary.c: the page-vary-common.c part is
      compiled once as a static_library, while the page-vary.c part is
      left in specific_ss in order to handle the target-specific value
      of TARGET_PAGE_BITS_MIN.
      
      Reported-by: default avatarGavin Shan <gshan@redhat.com>
      Signed-off-by: default avatarRichard Henderson <richard.henderson@linaro.org>
      Message-Id: <20210321211534.2101231-1-richard.henderson@linaro.org>
      [PMD: Fix typo in subject, split original patch in 3]
      Signed-off-by: default avatarPhilippe Mathieu-Daudé <f4bug@amsat.org>
      Tested-by: default avatarGavin Shan <gshan@redhat.com>
      Message-Id: <20210322112427.4045204-4-f4bug@amsat.org>
      [rth: Update MAINTAINERS]
      Signed-off-by: default avatarRichard Henderson <richard.henderson@linaro.org>
      44b99a6d
  9. Mar 20, 2021
  10. Mar 16, 2021
  11. Mar 09, 2021
  12. Mar 04, 2021
    • Akihiko Odaki's avatar
      configure: Improve OpenGL dependency detections · bc6a3565
      Akihiko Odaki authored
      
      This has the following visible changes:
      
      - GBM is required only for OpenGL dma-buf.
      - X11 is explicitly required by gtk-egl.
      - EGL is now mandatory for the OpenGL displays.
      
      The last one needs some detailed description. Before this change,
      EGL was tested only for OpenGL dma-buf with the check of
      EGL_MESA_image_dma_buf_export. However, all of the OpenGL
      displays depend on EGL and EGL_MESA_image_dma_buf_export is always
      defined by epoxy's EGL interface.
      Therefore, it makes more sense to always check the presence of EGL
      and say the OpenGL displays are available along with OpenGL dma-buf
      if it is present.
      
      Signed-off-by: default avatarAkihiko Odaki <akihiko.odaki@gmail.com>
      Message-Id: <20210223060307.87736-1-akihiko.odaki@gmail.com>
      Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
      bc6a3565
  13. Feb 25, 2021
  14. Feb 09, 2021
  15. Feb 08, 2021
  16. Feb 05, 2021
  17. Jan 29, 2021
  18. Jan 26, 2021
  19. Jan 23, 2021
  20. Jan 21, 2021
    • Paolo Bonzini's avatar
      build-system: clean up TCG/TCI configury · 23a77b2d
      Paolo Bonzini authored
      
      Make CONFIG_TCG_INTERPRETER a Meson option, and enable TCI (though with
      a warning) if the host CPU is unsupported, making it more similar to
      other --enable-* options.
      
      Remove TCG-specific include paths from !CONFIG_TCG builds.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      23a77b2d
    • Joshua Watt's avatar
      configure: MinGW respect --bindir argument · 15588a62
      Joshua Watt authored
      
      There are two cases that need to be accounted for when compiling QEMU
      for MinGW32:
       1) A standalone distribution, where QEMU is self contained and
          extracted by the user, such as a user would download from the QEMU
          website. In this case, all the QEMU executable files should be
          rooted in $prefix to ensure they can be easily found by the user
       2) QEMU integrated into a distribution image/sysroot/SDK and
          distributed with other programs. In this case, the provided
          arguments for bindir/datadir/etc. should be respected as they for a
          Linux build.
      
      Restructures the MinGW path configuration so that all of the paths
      except bindir use the same rules as when building for other platforms.
      This satisfies #2 and #1 since these files do not need to be directly in
      $prefix anyway.
      
      The handling for --bindir is changed so that it defaults to $prefix on
      MinGW (maintaining the compatibility with #1), but if the user specifies
      a specific path when configuring it can also satisfy #2.
      
      Signed-off-by: default avatarJoshua Watt <JPEWhacker@gmail.com>
      Message-Id: <20210112210239.28836-1-JPEWhacker@gmail.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      15588a62
Loading