1. 18 12月, 2017 1 次提交
    • P
      Makefile: use $(MAKE) variable · b98a3bae
      Philippe Mathieu-Daudé 提交于
      For some systems (i.e. FreeBSD) the default 'make' is not compatible with the
      GNU extensions used by QEMU makefiles.
      
      Calling the GNU make (gmake) works, however the help displayed refers to the
      host 'make' and copy/paste leads to lot of unobvious errors:
      
        $ gmake check-help
        [...]
         make check                Run all tests
      
        $ make check
        make: "Makefile" line 28: Missing dependency operator
        make: "Makefile" line 37: Need an operator
        make: "Makefile" line 41: warning: duplicate script for target "git-submodule-update" ignored
        make: "rules.mak" line 70: warning: duplicate script for target "%.o" ignored
        make: Unknown modifier ' '
        make: Unclosed substitution for eval modules (= missing)
        make: "tests/Makefile.include" line 24: Variable/Value missing from "export"
        make: "tests/" line 1: warning: Zero byte read from file, skipping rest of line.
        make: "tests/" line 1: Need an operator
        make: "Makefile" line 660: warning: duplicate script for target "ifneq" ignored
        make: "Makefile" line 78: warning: using previous script for "ifneq" defined here
        make: Fatal errors encountered -- cannot continue
      
      Using the $(MAKE) variable, the help displayed is consistent with the 'make'
      program used.
      Signed-off-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Signed-off-by: NMichael Tokarev <mjt@tls.msk.ru>
      b98a3bae
  2. 18 11月, 2017 1 次提交
  3. 29 10月, 2017 1 次提交
  4. 20 10月, 2017 1 次提交
  5. 11 10月, 2017 1 次提交
  6. 20 9月, 2017 1 次提交
  7. 19 9月, 2017 4 次提交
  8. 04 9月, 2017 1 次提交
  9. 01 9月, 2017 1 次提交
    • E
      qapi: Fix error handling code on alternate conflict · fda72ab4
      Eduardo Habkost 提交于
      The conflict check added by commit c0644771 ("qapi: Reject
      alternates that can't work with keyval_parse()") doesn't work
      with the following declaration:
      
        { 'alternate': 'Alt',
          'data': { 'one': 'bool',
                    'two': 'str' } }
      
      It crashes with:
      
        Traceback (most recent call last):
          File "./scripts/qapi-types.py", line 295, in <module>
            schema = QAPISchema(input_file)
          File "/home/ehabkost/rh/proj/virt/qemu/scripts/qapi.py", line 1468, in __init__
            self.exprs = check_exprs(parser.exprs)
          File "/home/ehabkost/rh/proj/virt/qemu/scripts/qapi.py", line 958, in check_exprs
            check_alternate(expr, info)
          File "/home/ehabkost/rh/proj/virt/qemu/scripts/qapi.py", line 830, in check_alternate
            % (name, key, types_seen[qtype]))
        KeyError: 'QTYPE_QSTRING'
      
      This happens because the previously-seen conflicting member
      ('one') can't be found at types_seen[qtype], but at
      types_seen['QTYPE_BOOL'].
      
      Fix the bug by moving the error check to the same loop that adds
      new items to types_seen, raising an exception if types_seen[qt]
      is already set.
      
      Add two additional test cases that can detect the bug.
      Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
      Message-Id: <20170717180926.14924-1-ehabkost@redhat.com>
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      fda72ab4
  10. 31 8月, 2017 3 次提交
  11. 15 8月, 2017 1 次提交
  12. 03 8月, 2017 1 次提交
  13. 31 7月, 2017 2 次提交
  14. 20 7月, 2017 2 次提交
  15. 19 7月, 2017 3 次提交
  16. 15 7月, 2017 1 次提交
  17. 11 7月, 2017 1 次提交
  18. 04 7月, 2017 1 次提交
  19. 20 6月, 2017 1 次提交
  20. 15 6月, 2017 1 次提交
  21. 31 5月, 2017 1 次提交
    • M
      qapi: Reject alternates that can't work with keyval_parse() · c0644771
      Markus Armbruster 提交于
      Alternates are sum types like unions, but use the JSON type on the
      wire / QType in QObject instead of an explicit tag.  That's why we
      require alternate members to have distinct QTypes.
      
      The recently introduced keyval_parse() (commit d454dbe0) can only
      produce string scalars.  The qobject_input_visitor_new_keyval() input
      visitor mostly hides the difference, so code using a QObject input
      visitor doesn't have to care whether its input was parsed from JSON or
      KEY=VALUE,...  The difference leaks for alternates, as noted in commit
      0ee9ae7c: a non-string, non-enum scalar alternate value can't currently
      be expressed.
      
      In part, this is just our insufficiently sophisticated implementation.
      Consider alternate type 'GuestFileWhence'.  It has an integer member
      and a 'QGASeek' member.  The latter is an enumeration with values
      'set', 'cur', 'end'.  The meaning of b=set, b=cur, b=end, b=0, b=1 and
      so forth is perfectly obvious.  However, our current implementation
      falls apart at run time for b=0, b=1, and so forth.  Fixable, but not
      today; add a test case and a TODO comment.
      
      Now consider an alternate type with a string and an integer member.
      What's the meaning of a=42?  Is it the string "42" or the integer 42?
      Whichever meaning you pick makes the other inexpressible.  This isn't
      just an implementation problem, it's fundamental.  Our current
      implementation will pick string.
      
      So far, we haven't needed such alternates.  To make sure we stop and
      think before we add one that cannot sanely work with keyval_parse(),
      let's require alternate members to have sufficiently distinct
      representation in KEY=VALUE,... syntax:
      
      * A string member clashes with any other scalar member
      
      * An enumeration member clashes with bool members when it has value
        'on' or 'off'.
      
      * An enumeration member clashes with numeric members when it has a
        value that starts with '-', '+', or a decimal digit.  This is a
        rather lazy approximation of the actual number syntax accepted by
        the visitor.
      
        Note that enumeration values starting with '-' and '+' are rejected
        elsewhere already, but better safe than sorry.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Message-Id: <1495471335-23707-5-git-send-email-armbru@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Reviewed-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
      c0644771
  22. 19 5月, 2017 1 次提交
  23. 17 5月, 2017 1 次提交
  24. 12 5月, 2017 1 次提交
  25. 26 4月, 2017 1 次提交
  26. 21 4月, 2017 1 次提交
    • X
      trace: Put all trace.o into libqemuutil.a · 3d1baccb
      Xu, Anthony 提交于
      Currently all trace.o are linked into qemu-system, qemu-img,
      qemu-nbd, qemu-io etc., even the corresponding components
      are not included.
      Put all trace.o into libqemuutil.a that the linker would only pull in .o
      files containing symbols that are actually referenced by the
      program.
      
      Signed-off -by: Anthony Xu <anthony.xu@intel.com>
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      3d1baccb
  27. 21 3月, 2017 2 次提交
  28. 16 3月, 2017 3 次提交