1. 14 6月, 2017 1 次提交
  2. 08 6月, 2017 1 次提交
    • A
      target/i386: Add GDB XML description for SSE registers · b8158192
      Abdallah Bouassida 提交于
      Add an XML description for SSE registers (XMM+MXCSR) for both X86
      and X86-64 architectures in the GDB stub:
      - configure: Define gdb_xml_files for the X86 targets (32 and 64bit).
      - gdb-xml/i386-32bit-sse.xml & gdb-xml/i386-64bit-sse.xml: The XML files
      that contain a description of the XMM + MXCSR registers.
      - gdb-xml/i386-32bit.xml & gdb-xml/i386-64bit.xml: wrappers that include
      the XML file of the core registers and the other XML file of the SSE registers.
      - target/i386/cpu.c: Modify the gdb_core_xml_file to the new XML wrapper,
        modify the gdb_num_core_regs to fit the registers number defined in each
        XML file.
      Signed-off-by: NAbdallah Bouassida <abdallah.bouassida@lauterbach.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      b8158192
  3. 07 6月, 2017 2 次提交
  4. 06 6月, 2017 1 次提交
  5. 04 6月, 2017 1 次提交
  6. 02 6月, 2017 1 次提交
  7. 25 5月, 2017 1 次提交
  8. 19 5月, 2017 1 次提交
  9. 17 5月, 2017 1 次提交
  10. 16 5月, 2017 1 次提交
  11. 12 5月, 2017 1 次提交
  12. 11 5月, 2017 1 次提交
  13. 10 5月, 2017 1 次提交
    • A
      use _Static_assert in QEMU_BUILD_BUG_ON · 09d35204
      Andreas Grapentin 提交于
      QEMU_BUILD_BUG_ON should use C11's _Static_assert, if the compiler supports it,
      to provide more readable messages on failure.
      
      We check for _Static_assert in configure, and set CONFIG_STATIC_ASSERT
      accordingly. QEMU_BUILD_BUG_ON invokes _Static_assert if CONFIG_STATIC_ASSERT
      is defined, and reverts to the old way otherwise.
      
      That way, systems without C11 conforming compiler will still have the old
      messages, as verified by intentionally breaking the configure check.
      
      the following example output was generated by inverting the condition in
      QEMU_BUILD_BUG_ON:
      
      without _Static_assert:
      
      > In file included from /qemu/include/qemu/osdep.h:36:0,
      >                  from /qemu/qga/commands.c:13:
      > /qemu/qga/commands.c: In function ‘qmp_guest_exec_status’:
      > /qemu/include/qemu/compiler.h:89:12: error: negative width in bit-field ‘<anonymous>’
      >      struct { \
      >             ^
      > /qemu/include/qemu/compiler.h:96:38: note: in expansion of macro  QEMU_BUILD_BUG_ON_STRUCT’
      >  #define QEMU_BUILD_BUG_ON(x) typedef QEMU_BUILD_BUG_ON_STRUCT(x) \
      >                                       ^~~~~~~~~~~~~~~~~~~~~~~~
      > /qemu/include/qemu/atomic.h:146:5: note: in expansion of macro ‘QEMU_BUILD_BUG_ON’
      >      QEMU_BUILD_BUG_ON(sizeof(*ptr) > sizeof(void *));   \
      >      ^~~~~~~~~~~~~~~~~
      > /qemu/include/qemu/atomic.h:417:5: note: in expansion of macro ‘atomic_load_acquire’
      >      atomic_load_acquire(ptr)
      >      ^~~~~~~~~~~~~~~~~~~
      > /qemu/qga/commands.c:160:21: note: in expansion of macro ‘atomic_mb_read’
      >      bool finished = atomic_mb_read(&gei->finished);
      >                      ^~~~~~~~~~~~~~
      
      with _Static_assert:
      
      > In file included from /qemu/include/qemu/osdep.h:36:0,
      >                  from /qemu/qga/commands.c:13:
      > /qemu/qga/commands.c: In function ‘qmp_guest_exec_status’:
      > /qemu/include/qemu/compiler.h:94:30: error: static assertion failed: "not expecting: sizeof(*&gei->finished) > sizeof(void *)"
      >  #define QEMU_BUILD_BUG_ON(x) _Static_assert(!(x), #x)
      >                               ^
      > /qemu/include/qemu/atomic.h:146:5: note: in expansion of macro ‘QEMU_BUILD_BUG_ON’
      >      QEMU_BUILD_BUG_ON(sizeof(*ptr) > sizeof(void *));   \
      >      ^~~~~~~~~~~~~~~~~
      > /qemu/include/qemu/atomic.h:417:5: note: in expansion of macro ‘atomic_load_acquire’
      >      atomic_load_acquire(ptr)
      >      ^~~~~~~~~~~~~~~~~~~
      > /qemu/qga/commands.c:160:21: note: in expansion of macro ‘atomic_mb_read’
      >      bool finished = atomic_mb_read(&gei->finished);
      >                      ^~~~~~~~~~~~~~
      Signed-off-by: NAndreas Grapentin <andreas@grapentin.org>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Reviewed-by: NRichard Henderson <rth@twiddle.net>
      Signed-off-by: NMichael Tokarev <mjt@tls.msk.ru>
      09d35204
  14. 05 5月, 2017 2 次提交
    • A
      use _Static_assert in QEMU_BUILD_BUG_ON · 49e00a18
      Andreas Grapentin 提交于
      QEMU_BUILD_BUG_ON should use C11's _Static_assert, if the compiler supports it,
      to provide more readable messages on failure.
      
      We check for _Static_assert in configure, and set CONFIG_STATIC_ASSERT
      accordingly. QEMU_BUILD_BUG_ON invokes _Static_assert if CONFIG_STATIC_ASSERT
      is defined, and reverts to the old way otherwise.
      
      That way, systems without C11 conforming compiler will still have the old
      messages, as verified by intentionally breaking the configure check.
      
      the following example output was generated by inverting the condition in
      QEMU_BUILD_BUG_ON:
      
      without _Static_assert:
      
      > In file included from /qemu/include/qemu/osdep.h:36:0,
      >                  from /qemu/qga/commands.c:13:
      > /qemu/qga/commands.c: In function ‘qmp_guest_exec_status’:
      > /qemu/include/qemu/compiler.h:89:12: error: negative width in bit-field ‘<anonymous>’
      >      struct { \
      >             ^
      > /qemu/include/qemu/compiler.h:96:38: note: in expansion of macro  QEMU_BUILD_BUG_ON_STRUCT’
      >  #define QEMU_BUILD_BUG_ON(x) typedef QEMU_BUILD_BUG_ON_STRUCT(x) \
      >                                       ^~~~~~~~~~~~~~~~~~~~~~~~
      > /qemu/include/qemu/atomic.h:146:5: note: in expansion of macro ‘QEMU_BUILD_BUG_ON’
      >      QEMU_BUILD_BUG_ON(sizeof(*ptr) > sizeof(void *));   \
      >      ^~~~~~~~~~~~~~~~~
      > /qemu/include/qemu/atomic.h:417:5: note: in expansion of macro ‘atomic_load_acquire’
      >      atomic_load_acquire(ptr)
      >      ^~~~~~~~~~~~~~~~~~~
      > /qemu/qga/commands.c:160:21: note: in expansion of macro ‘atomic_mb_read’
      >      bool finished = atomic_mb_read(&gei->finished);
      >                      ^~~~~~~~~~~~~~
      
      with _Static_assert:
      
      > In file included from /qemu/include/qemu/osdep.h:36:0,
      >                  from /qemu/qga/commands.c:13:
      > /qemu/qga/commands.c: In function ‘qmp_guest_exec_status’:
      > /qemu/include/qemu/compiler.h:94:30: error: static assertion failed: "not expecting: sizeof(*&gei->finished) > sizeof(void *)"
      >  #define QEMU_BUILD_BUG_ON(x) _Static_assert((x), #x)
      >                               ^
      > /qemu/include/qemu/atomic.h:146:5: note: in expansion of macro ‘QEMU_BUILD_BUG_ON’
      >      QEMU_BUILD_BUG_ON(sizeof(*ptr) > sizeof(void *));   \
      >      ^~~~~~~~~~~~~~~~~
      > /qemu/include/qemu/atomic.h:417:5: note: in expansion of macro ‘atomic_load_acquire’
      >      atomic_load_acquire(ptr)
      >      ^~~~~~~~~~~~~~~~~~~
      > /qemu/qga/commands.c:160:21: note: in expansion of macro ‘atomic_mb_read’
      >      bool finished = atomic_mb_read(&gei->finished);
      >                      ^~~~~~~~~~~~~~
      Signed-off-by: NAndreas Grapentin <andreas@grapentin.org>
      Message-Id: <20170314165953.18506-1-andreas@grapentin.org>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      49e00a18
    • A
      target/i386: Add GDB XML register description support · 00fcd100
      Abdallah Bouassida 提交于
      This patch implements XML target description support for X86 and X86-64
      architectures in the GDB stub, as the way with ARM and PowerPC:
      - gdb-xml/32bit-core.xml & gdb-xml/64bit-core.xml: Adding the XML target
        description files, these files are picked from GDB source code.
      - configure: Define gdb_xml_files for X86 targets.
      - target/i386/cpu.c: Define gdb_core_xml_file and gdb_arch_name to add
        XML awareness for this architecture, modify the gdb_num_core_regs to
        fit the registers number defined in each XML file.
      Signed-off-by: NAbdallah Bouassida <abdallah.bouassida@lauterbach.com>
      Message-Id: <2b3c8119-1602-28c7-eab4-296593877103@lauterbach.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      00fcd100
  15. 28 4月, 2017 1 次提交
  16. 27 4月, 2017 1 次提交
    • V
      qga: Add 'guest-get-users' command · 161a56a9
      Vinzenz Feenstra 提交于
      A command that will list all currently logged in users, and the time
      since when they are logged in.
      
      Examples:
      
      virsh # qemu-agent-command F25 '{ "execute": "guest-get-users" }'
      {"return":[{"login-time":1490622289.903835,"user":"root"}]}
      
      virsh # qemu-agent-command Win2k12r2 '{ "execute": "guest-get-users" }'
      {"return":[{"login-time":1490351044.670552,"domain":"LADIDA",
      "user":"Administrator"}]}
      Signed-off-by: NVinzenz Feenstra <vfeenstr@redhat.com>
      * make g_hash_table_contains compat func inline to avoid
        unused warnings
      Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      161a56a9
  17. 25 4月, 2017 1 次提交
  18. 22 4月, 2017 3 次提交
  19. 21 4月, 2017 1 次提交
  20. 10 4月, 2017 1 次提交
  21. 03 4月, 2017 1 次提交
    • P
      configure: Mark SPARC as supported · 6499fd15
      Peter Maydell 提交于
      Thanks to John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
      and the Debian Project, we now have access to a SPARC Linux
      system we can use for build testing. Move SPARC back into
      the "supported" list.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 1490698718-23762-1-git-send-email-peter.maydell@linaro.org
      6499fd15
  22. 31 3月, 2017 1 次提交
    • S
      qga: Make qemu-ga compile statically for Windows · 4eaf7202
      Sameeh Jubran 提交于
      Attempting to compile qemu-ga statically as follows for Windows causes
      the following error:
      
      Compilation:
          ./configure --disable-docs --target-list=x86_64-softmmu \
          --cross-prefix=x86_64-w64-mingw32- --static \
          --enable-guest-agent-msi --with-vss-sdk=/path/to/VSSSDK72
      
          make -j8 qemu-ga
      
      Error:
          path/to/qemu/stubs/error-printf.c:7: undefined reference to `__imp_g_test_config_vars'
          collect2: error: ld returned 1 exit status
          Makefile:444: recipe for target 'qemu-ga.exe' failed
          make: *** [qemu-ga.exe] Error 1
      
      This is caused by a bug in the pkg-config file for glib as it doesn't define
      GLIB_STATIC_COMPILATION for pkg-config --static.
      Signed-off-by: NSameeh Jubran <sameeh@daynix.com>
      Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com>
      Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      4eaf7202
  23. 30 3月, 2017 1 次提交
    • P
      configure: Don't claim 'unsupported host OS' when better message available · fb59dabd
      Peter Maydell 提交于
      The change in commit 898be3e0 which made completely
      unrecognized OSes cause an error_exit "Unsupported host OS"
      has some unfortunate unintended effects:
       * if you run 'configure --help' on an unsupported host OS
         (eg if intending to use it as a build machine for a
         cross compile to a supported host) then the message
         is printed instead of --help
       * if the C compiler doesn't work or is missing (eg if
         you passed an incorrect --cross-prefix by mistake)
         the message is printed instead of the more useful
         'compiler does not exist or does not work' message
      
      Fix this by postponing the error_exit in this situation
      until later, when we have already identified the more
      useful cases for this.
      
      The long term fix for this would be to move handling
      of --help much further up in the configure script,
      and make its output not dependent on checks that configure
      runs. However for 2.9 this would be too invasive.
      Reported-by: NStefan Weil <sw@weilnetz.de>
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NStefan Weil <sw@weilnetz.de>
      Tested-by: NStefan Weil <sw@weilnetz.de>
      fb59dabd
  24. 24 3月, 2017 1 次提交
  25. 21 3月, 2017 3 次提交
  26. 20 3月, 2017 1 次提交
  27. 19 3月, 2017 1 次提交
    • P
      configure: remove Cygwin · 732a8020
      Paolo Bonzini 提交于
      The Cygwin target is really compiling for native Win32 with -mno-cygwin.
      Except, GCC 4.7.0 has finally removed the long deprecated -mno-cygwin
      option, and that happened about five years ago.
      
      Let it rest in peace.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      732a8020
  28. 14 3月, 2017 2 次提交
    • L
      configure: add the missing help output for optional features · c12d66aa
      Lin Ma 提交于
      Signed-off-by: NLin Ma <lma@suse.com>
      Message-Id: <20170310101405.26974-1-lma@suse.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      c12d66aa
    • C
      build: include sys/sysmacros.h for major() and minor() · 4d04351f
      Christopher Covington 提交于
      The definition of the major() and minor() macros are moving within glibc to
      <sys/sysmacros.h>. Include this header when it is available to avoid the
      following sorts of build-stopping messages:
      
      qga/commands-posix.c: In function ‘dev_major_minor’:
      qga/commands-posix.c:656:13: error: In the GNU C Library, "major" is defined
       by <sys/sysmacros.h>. For historical compatibility, it is
       currently defined by <sys/types.h> as well, but we plan to
       remove this soon. To use "major", include <sys/sysmacros.h>
       directly. If you did not intend to use a system-defined macro
       "major", you should undefine it after including <sys/types.h>. [-Werror]
               *devmajor = major(st.st_rdev);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
      
      qga/commands-posix.c:657:13: error: In the GNU C Library, "minor" is defined
       by <sys/sysmacros.h>. For historical compatibility, it is
       currently defined by <sys/types.h> as well, but we plan to
       remove this soon. To use "minor", include <sys/sysmacros.h>
       directly. If you did not intend to use a system-defined macro
       "minor", you should undefine it after including <sys/types.h>. [-Werror]
               *devminor = minor(st.st_rdev);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
      
      The additional include allows the build to complete on Fedora 26 (Rawhide)
      with glibc version 2.24.90.
      Signed-off-by: NChristopher Covington <cov@codeaurora.org>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      4d04351f
  29. 13 3月, 2017 1 次提交
  30. 28 2月, 2017 1 次提交
  31. 24 2月, 2017 3 次提交
    • P
      hw/mips: MIPS Boston board support · df1d8a1f
      Paul Burton 提交于
      Introduce support for emulating the MIPS Boston development board. The
      Boston board is built around an FPGA & 3 PCIe controllers, one of which
      is connected to an Intel EG20T Platform Controller Hub. It is used
      during the development & debug of new CPUs and the software intended to
      run on them, and is essentially the successor to the older MIPS Malta
      board.
      
      This patch does not implement the EG20T, instead connecting an already
      supported ICH-9 AHCI controller. Whilst this isn't accurate it's enough
      for typical stock Boston software (eg. Linux kernels) to work with hard
      disks given that both the ICH-9 & EG20T implement the AHCI
      specification.
      
      Boston boards typically boot kernels in the FIT image format, and this
      patch will treat kernels provided to QEMU as such. When loading a kernel
      directly, the board code will generate minimal firmware much as the
      Malta board code does. This firmware will set up the CM, CPC & GIC
      register base addresses then set argument registers & jump to the kernel
      entry point. Alternatively, bootloader code may be loaded using the bios
      argument in which case no firmware will be generated & execution will
      proceed from the start of the boot code at the default MIPS boot
      exception vector (offset 0x1fc00000 into (c)kseg1).
      
      Currently real Boston boards are always used with FPGA bitfiles that
      include a Global Interrupt Controller (GIC), so the interrupt
      configuration is only defined for such cases. Therefore the board will
      only allow use of CPUs which implement the CPS components, including the
      GIC, and will otherwise exit with a message.
      Signed-off-by: NPaul Burton <paul.burton@imgtec.com>
      Reviewed-by: NYongbok Kim <yongbok.kim@imgtec.com>
      [yongbok.kim@imgtec.com:
        isolated boston machine support for mips64el.
        updated for recent Chardev changes.
        ignore missing bios/kernel for qtest.
        added default -drive to if=ide explicitly.
        changed default memory size into 1G due to make check failure
        on 32-bit hosts]
      Signed-off-by: NYongbok Kim <yongbok.kim@imgtec.com>
      df1d8a1f
    • A
      tcg: enable MTTCG by default for ARM on x86 hosts · ca759f9e
      Alex Bennée 提交于
      This enables the multi-threaded system emulation by default for ARMv7
      and ARMv8 guests using the x86_64 TCG backend. This is because on the
      guest side:
      
        - The ARM translate.c/translate-64.c have been converted to
          - use MTTCG safe atomic primitives
          - emit the appropriate barrier ops
        - The ARM machine has been updated to
          - hold the BQL when modifying shared cross-vCPU state
          - defer powerctl changes to async safe work
      
      All the host backends support the barrier and atomic primitives but
      need to provide same-or-better support for normal load/store
      operations.
      Signed-off-by: NAlex Bennée <alex.bennee@linaro.org>
      Reviewed-by: NRichard Henderson <rth@twiddle.net>
      Acked-by: NPeter Maydell <peter.maydell@linaro.org>
      Tested-by: NPranith Kumar <bobby.prani@gmail.com>
      Reviewed-by: NPranith Kumar <bobby.prani@gmail.com>
      ca759f9e
    • P
      Revert "hw/mips: MIPS Boston board support" · 2d896b45
      Peter Maydell 提交于
      This reverts commit d3473e14.
      
      This commit creates a board which defaults to having 2GB of RAM.
      Unfortunately on 32-bit hosts we can't create boards with 2GB of RAM,
      and so 'make check' fails. I missed this during testing of the
      merge, unfortunately. Luckily the offending commit is the last
      one in the merge request, so we can just revert it for now.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      2d896b45