1. 20 2月, 2014 7 次提交
    • D
      configure: Disable libtool if -fPIE does not work with it (bug #1257099) · 66518bf6
      Don Slutz 提交于
      Adjust TMPO and added TMPB, TMPL, and TMPA.  libtool needs the names
      to be fixed (TMPB).
      
      Add new functions do_libtool and libtool_prog.
      
      Add check for broken gcc and libtool.
      Signed-off-by: NDon Slutz <dslutz@verizon.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      66518bf6
    • F
      block: convert block drivers linked with libs to modules · d3399d7c
      Fam Zheng 提交于
      The converted block drivers are:
      
          curl
          iscsi
          rbd
          ssh
          glusterfs
      Signed-off-by: NFam Zheng <famz@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      d3399d7c
    • F
      module: implement module loading · e26110cf
      Fam Zheng 提交于
      This patch adds loading, stamp checking and initialization of modules.
      
      The init function of dynamic module is no longer directly called as
      __attribute__((constructor)) in static linked version, it is called
      only after passed the checking of presense of stamp symbol:
      
          qemu_stamp_$RELEASEHASH
      
      where $RELEASEHASH is generated by hashing version strings and content
      of configure script.
      
      With this, modules built from a different tree/version/configure will
      not be loaded.
      
      The module loading code requires gmodule-2.0.
      
      Modules are searched under
       - CONFIG_MODDIR
       - executable folder (to allow running qemu-{img,io} in the build
         directory)
       - ../ of executable folder (to allow running system emulator in the
         build directory)
      
      Modules are linked under their subdir respectively, then copied to top
      level of build directory for above convinience, e.g.:
          $(BUILD_DIR)/block/curl.so -> $(BUILD_DIR)/block-curl.so
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NFam Zheng <famz@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      e26110cf
    • F
      rules.mak: introduce DSO rules · 17969268
      Fam Zheng 提交于
      Add necessary rules and flags for shared object generation.
      The new rules introduced here are:
      
      1) %.o in $(common-obj-m) is compiled to %.o, then linked to %.so.
      
      2) %.mo in $(common-obj-m) is the placeholder for %.so for pattern
      matching in Makefile. It's linked to "-shared" with all its dependencies
      (multiple *.o) as input. Which means the list of depended objects must
      be specified in each sub-Makefile.objs:
      
          foo.mo-objs := bar.o baz.o qux.o
      
      in the same style with foo.o-cflags and foo.o-libs. The objects here
      will be prefixed with "$(obj)/" if it's a subdirectory Makefile.objs.
      
      3) For all files ending up in %.so, the following is added automatically:
      
          foo.o-cflags += -fPIC -DBUILD_DSO
      
      Also introduce --enable-modules in configure, the option will enable
      support of shared object build. Otherwise objects are static linked to
      executables.
      Signed-off-by: NFam Zheng <famz@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      17969268
    • P
      darwin: do not use -mdynamic-no-pic · 13b6ce0e
      Paolo Bonzini 提交于
      While -mdynamic-no-pic can speed up the code somewhat, it is only used
      on the legacy PowerPC Mac OS X, and I am not sure if anyone is still
      testing that.  Disabling PIC can cause problems when enabling modules,
      so do not do that.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NFam Zheng <famz@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      13b6ce0e
    • F
      block: use per-object cflags and libs · 6ebc91e5
      Fam Zheng 提交于
      No longer adds flags and libs for them to global variables, instead
      create config-host.mak variables like FOO_CFLAGS and FOO_LIBS, which is
      used as per object cflags and libs.
      
      This removes unwanted dependencies from libcacard.
      Signed-off-by: NFam Zheng <famz@redhat.com>
      [Split from Fam's patch to enable modules. - Paolo]
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NFam Zheng <famz@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      6ebc91e5
    • F
      rules.mak: fix $(obj) to a real relative path · ba1183da
      Fam Zheng 提交于
      Makefile.target includes rule.mak and unnested common-obj-y, then prefix
      them with '../', this will ignore object specific QEMU_CFLAGS in subdir
      Makefile.objs:
      
          $(obj)/curl.o: QEMU_CFLAGS += $(CURL_CFLAGS)
      
      Because $(obj) here is './block', instead of '../block'. This doesn't
      hurt compiling because we basically build all .o from top Makefile,
      before entering Makefile.target, but it will affact arriving per-object
      libs support.
      
      The starting point of $(obj) is passed in as argument of unnest-vars, as
      well as nested variables, so that different Makefiles can pass in a
      right value.
      Signed-off-by: NFam Zheng <famz@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      ba1183da
  2. 17 2月, 2014 1 次提交
    • B
      Fix QEMU build on OpenBSD on x86 archs · 46eef33b
      Brad 提交于
      This resolves the build issue with building the ROMs on OpenBSD on x86 archs.
      As of OpenBSD 5.3 the compiler builds PIE binaries by default and thus the
      whole OS/packages and so forth. The ROMs need to have PIE disabled.
      Check in configure whether the compiler supports the flags for disabling
      PIE, and if it does then use them for building the ROMs. This fixes the
      following buildbot failure:
      
      >From the OpenBSD buildbots..
        Building optionrom/multiboot.img
      ld: multiboot.o: relocation R_X86_64_16 can not be used when making a shared object; recompile with -fPIC
      
      Signed-off by: Brad Smith <brad@comstyle.com>
      Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com>
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      46eef33b
  3. 15 2月, 2014 2 次提交
  4. 09 2月, 2014 1 次提交
    • P
      block: add native support for NFS · 6542aa9c
      Peter Lieven 提交于
      This patch adds native support for accessing images on NFS
      shares without the requirement to actually mount the entire
      NFS share on the host.
      
      NFS Images can simply be specified by an url of the form:
      nfs://<host>/<export>/<filename>[?param=value[&param2=value2[&...]]]
      
      For example:
      qemu-img create -f qcow2 nfs://10.0.0.1/qemu-images/test.qcow2
      
      You need LibNFS from Ronnie Sahlberg available at:
         git://github.com/sahlberg/libnfs.git
      for this to work.
      
      During configure it is automatically probed for libnfs and support
      is enabled on-the-fly. You can forbid or enforce libnfs support
      with --disable-libnfs or --enable-libnfs respectively.
      
      Due to NFS restrictions you might need to execute your binaries
      as root, allow them to open priviledged ports (<1024) or specify
      insecure option on the NFS server.
      
      For additional information on ROOT vs. non-ROOT operation and URL
      format + parameters see:
         https://raw.github.com/sahlberg/libnfs/master/README
      
      Supported by qemu are the uid, gid and tcp-syncnt URL parameters.
      
      LibNFS currently support NFS version 3 only.
      Signed-off-by: NPeter Lieven <pl@kamp.de>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      6542aa9c
  5. 08 2月, 2014 1 次提交
    • C
      disas: Implement disassembly output for A64 · 999b53ec
      Claudio Fontana 提交于
      Use libvixl to implement disassembly output in debug
      logs for A64, for use with both AArch64 hosts and targets.
      Signed-off-by: NClaudio Fontana <claudio.fontana@linaro.org>
      [PMM:
       * added support for target disassembly
       * switched to custom QEMUDisassembler so the output format
         matches what QEMU expects
       * make sure we correctly fall back to "just print hex"
         if we didn't build the AArch64 disassembler because of
         lack of a C++ compiler
       * rename from 'aarch64' to 'arm-a64' because this is a
         disassembler for the A64 instruction set
       * merge aarch64.c and aarch64-cxx.cc into one C++ file
       * simplify the aarch64.c<->aarch64-cxx.cc interface]
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      999b53ec
  6. 26 1月, 2014 1 次提交
  7. 22 1月, 2014 1 次提交
  8. 01 1月, 2014 2 次提交
    • S
      configure: Python tests must be done before help message · f6f0b7d9
      Stefan Weil 提交于
      The help message uses $python and displays its value, so that macro
      should be tested and set early.
      
      With this modification, configure --help displays the correct value
      (usually python -B) and no longer creates several *.pyc files.
      Signed-off-by: NStefan Weil <sw@weilnetz.de>
      Signed-off-by: NMichael Tokarev <mjt@tls.msk.ru>
      f6f0b7d9
    • S
      configure: Rewrite code for help message · 08fb77ed
      Stefan Weil 提交于
      In the new form most lines of the code now look like the final output:
      there is no leading echo command and the lines are shorter.
      
      The resulting output is nearly identical: the only difference is a blank
      character which was deliberately removed:
      
      @@ -8,7 +8,7 @@
         --interp-prefix=PREFIX   where to find shared libraries, etc.
                                  use %M for cpu name [/usr/gnemul/qemu-%M]
         --target-list=LIST       set target list (default: build everything)
      -                           Available targets:  alpha-softmmu arm-softmmu
      +                           Available targets: alpha-softmmu arm-softmmu
                                  cris-softmmu i386-softmmu lm32-softmmu m68k-softmmu
                                  microblaze-softmmu microblazeel-softmmu mips-softmmu
                                  mips64-softmmu mips64el-softmmu mipsel-softmmu
      Signed-off-by: NStefan Weil <sw@weilnetz.de>
      Signed-off-by: NMichael Tokarev <mjt@tls.msk.ru>
      08fb77ed
  9. 20 12月, 2013 1 次提交
  10. 18 12月, 2013 2 次提交
  11. 09 12月, 2013 2 次提交
    • V
      net: Adding netmap network backend · 58952137
      Vincenzo Maffione 提交于
      This patch adds support for a network backend based on netmap.
      netmap is a framework for high speed packet I/O. You can use it
      to build extremely fast traffic generators, monitors, software
      switches or network middleboxes. Its companion software switch
      VALE lets you interconnect virtual machines.
      netmap and VALE are implemented as a non-intrusive kernel module,
      support NICs from multiple vendors, are part of standard FreeBSD
      distributions and available in source format for Linux too.
      
      To compile QEMU with netmap support, use the following configure
      options:
          ./configure [...] --enable-netmap --extra-cflags=-I/path/to/netmap/sys
      where "/path/to/netmap" contains the netmap source code, available at
          http://info.iet.unipi.it/~luigi/netmap/
      
      The same webpage contains more information about the netmap project
      (together with papers and presentations).
      Signed-off-by: NVincenzo Maffione <v.maffione@gmail.com>
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      58952137
    • P
      block/iscsi: introduce bdrv_co_{readv, writev, flush_to_disk} · 063c3378
      Peter Lieven 提交于
      this converts read, write and flush functions from aio to coroutines
      eliminating almost 200 lines of code.
      
      The requirement for libiscsi is bumped to version 1.4.0 which was
      released in may 2012.
      Signed-off-by: NPeter Lieven <pl@kamp.de>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      063c3378
  12. 24 11月, 2013 1 次提交
  13. 22 11月, 2013 1 次提交
  14. 17 11月, 2013 1 次提交
  15. 07 11月, 2013 2 次提交
  16. 06 11月, 2013 1 次提交
  17. 26 10月, 2013 1 次提交
    • M
      configure: create fsdev/ directory · 2b170eff
      Michael Tokarev 提交于
      In some cases when building with parallelism (make -jN),
      build fails because the directory where output files are
      supposed to be does not exist.  In particular, when make
      decides to build virtfs-proxy-helper.1 before other files
      in fsdev/, build will fail with the following error:
      
      perl -Ww -- BUILDDIR/scripts/texi2pod.pl BUILDDIR/fsdev/virtfs-proxy-helper.texi fsdev/virtfs-proxy-helper.pod && pod2man --utf8 --section=1 --center=" " --release=" " fsdev/virtfs-proxy-helper.pod > fsdev/virtfs-proxy-helper.1
      opening "fsdev/virtfs-proxy-helper.pod": No such file or directory
      Signed-off-by: NMichael Tokarev <mjt@tls.msk.ru>
      Acked-by: NPaolo Bonzini <pbonzini@redhat.com>
      2b170eff
  18. 14 10月, 2013 1 次提交
  19. 11 10月, 2013 2 次提交
  20. 25 9月, 2013 2 次提交
  21. 24 9月, 2013 1 次提交
  22. 21 9月, 2013 1 次提交
  23. 19 9月, 2013 1 次提交
    • G
      usb: remove old usb-host code · b5613fdc
      Gerd Hoffmann 提交于
      The usb-host code has been rewritten for qemu 1.5 to use libusb,
      the old code has been left in as temporary fallback.  Now we are
      two releases further out, targeting the 1.7 release.  No major
      issues with the new code poped up until now.  Time to remove it
      from tre tree.  Should we ever need it again for some reason --
      git has a copy for us in the history.
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      b5613fdc
  24. 12 9月, 2013 2 次提交
  25. 11 9月, 2013 1 次提交
  26. 10 9月, 2013 1 次提交
    • T
      qemu-ga: Add Windows VSS provider and requester as DLL · b39297ae
      Tomoki Sekiyama 提交于
      Adds VSS provider and requester as a qga-vss.dll, which is loaded by
      Windows VSS service as well as by qemu-ga.
      
      "provider.cpp" implements a basic stub of a software VSS provider.
      Currently, this module only relays a frozen event from VSS service to the
      agent, and thaw event from the agent to VSS service, to block VSS process
      to keep the system frozen while snapshots are taken at the host.
      
      To register the provider to the guest system as COM+ application, the type
      library (.tlb) for qga-vss.dll is required. To build it from COM IDL (.idl),
      VisualC++, MIDL and stdole2.tlb in Windows SDK are required. This patch also
      adds pre-compiled .tlb file in the repository in order to enable
      cross-compile qemu-ga.exe for Windows with VSS support.
      
      "requester.cpp" provides the VSS requester to kick the VSS snapshot process.
      Qemu-ga.exe works without the DLL, although fsfreeze features are disabled.
      
      These functions are only supported in Windows 2003 or later. In older
      systems, fsfreeze features are disabled.
      
      In several versions of Windows which don't support attribute
      VSS_VOLSNAP_ATTR_NO_AUTORECOVERY, DoSnapshotSet fails with error
      VSS_E_OBJECT_NOT_FOUND. In this patch, we just ignore this error.
      To solve this fundamentally, we need a framework to handle mount writable
      snapshot on guests, which is required by VSS auto-recovery feature
      (cleanup phase after a snapshot is taken).
      Signed-off-by: NTomoki Sekiyama <tomoki.sekiyama@hds.com>
      Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      b39297ae