qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] c160f1: osdep.h: Drop no-longer-needed Coveri


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] c160f1: osdep.h: Drop no-longer-needed Coverity workarounds
Date: Tue, 14 Apr 2020 12:15:27 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: c160f17cd6f5fc3f8698b408a451149b34b1a647
      
https://github.com/qemu/qemu/commit/c160f17cd6f5fc3f8698b408a451149b34b1a647
  Author: Peter Maydell <address@hidden>
  Date:   2020-04-14 (Tue, 14 Apr 2020)

  Changed paths:
    M include/qemu/osdep.h

  Log Message:
  -----------
  osdep.h: Drop no-longer-needed Coverity workarounds

In commit a1a98357e3fd in 2018 we added some workarounds for Coverity
not being able to handle the _Float* types introduced by recent
glibc.  Newer versions of the Coverity scan tools have support for
these types, and will fail with errors about duplicate typedefs if we
have our workaround.  Remove our copy of the typedefs.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Message-id: address@hidden


  Commit: 062c73c51e19da0703d7505f9497a70e5398cf89
      
https://github.com/qemu/qemu/commit/062c73c51e19da0703d7505f9497a70e5398cf89
  Author: Peter Maydell <address@hidden>
  Date:   2020-04-14 (Tue, 14 Apr 2020)

  Changed paths:
    M include/qemu/thread.h

  Log Message:
  -----------
  thread.h: Fix Coverity version of qemu_cond_timedwait()

For Coverity's benefit, we provide simpler versions of functions like
qemu_mutex_lock(), qemu_cond_wait() and qemu_cond_timedwait().  When
we added qemu_cond_timedwait() in commit 3dcc9c6ec4ea, a cut and
paste error meant that the Coverity version of qemu_cond_timedwait()
was using the wrong _impl function, which makes the Coverity parser
complain:

"/qemu/include/qemu/thread.h", line 159: warning #140: too many arguments in
          function call
      return qemu_cond_timedwait(cond, mutex, ms);
             ^

"/qemu/include/qemu/thread.h", line 159: warning #120: return value type does
          not match the function type
      return qemu_cond_timedwait(cond, mutex, ms);
             ^

"/qemu/include/qemu/thread.h", line 156: warning #1563: function
          "qemu_cond_timedwait" not emitted, consider modeling it or review
          parse diagnostics to improve fidelity
  static inline bool (qemu_cond_timedwait)(QemuCond *cond, QemuMutex *mutex,
                      ^

These aren't fatal, but reduce the scope of the analysis. Fix the error.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-id: address@hidden


  Commit: 2e7980244585a5be6f2c1b4e14c19d7932ee2fcb
      
https://github.com/qemu/qemu/commit/2e7980244585a5be6f2c1b4e14c19d7932ee2fcb
  Author: Peter Maydell <address@hidden>
  Date:   2020-04-14 (Tue, 14 Apr 2020)

  Changed paths:
    M include/qemu/thread.h

  Log Message:
  -----------
  thread.h: Remove trailing semicolons from Coverity qemu_mutex_lock() etc

All the Coverity-specific definitions of qemu_mutex_lock() and friends
have a trailing semicolon. This works fine almost everywhere because
of QEMU's mandatory-braces coding style and because most callsites are
simple, but target/s390x/sigp.c has a use of qemu_mutex_trylock() as
an if() statement, which makes the ';' a syntax error:
"../target/s390x/sigp.c", line 461: warning #18: expected a ")"
      if (qemu_mutex_trylock(&qemu_sigp_mutex)) {
          ^

Remove the bogus semicolons from the macro definitions.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-id: address@hidden


  Commit: 94db8de179334a7ab261165f7aa82c3800b542c8
      
https://github.com/qemu/qemu/commit/94db8de179334a7ab261165f7aa82c3800b542c8
  Author: Peter Maydell <address@hidden>
  Date:   2020-04-14 (Tue, 14 Apr 2020)

  Changed paths:
    M linux-user/flatload.c

  Log Message:
  -----------
  linux-user/flatload.c: Use "" for include of QEMU header target_flat.h

The target_flat.h file is a QEMU header, so we should include it using
quotes, not angle brackets.

Coverity otherwise is unable to find the header:

"../linux-user/flatload.c", line 40: error #1712: cannot open source file
          "target_flat.h"
  #include <target_flat.h>
                          ^

because the relevant directory is only on the -iquote path, not the -I path.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-id: address@hidden


  Commit: 9c263d07fd80d18dcee99b74335505779d150db1
      
https://github.com/qemu/qemu/commit/9c263d07fd80d18dcee99b74335505779d150db1
  Author: Peter Maydell <address@hidden>
  Date:   2020-04-14 (Tue, 14 Apr 2020)

  Changed paths:
    M MAINTAINERS
    A scripts/coverity-scan/run-coverity-scan

  Log Message:
  -----------
  scripts/run-coverity-scan: Script to run Coverity Scan build

Add a new script to automate the process of running the Coverity
Scan build tools and uploading the resulting tarball to the
website.

This is intended eventually to be driven from Travis,
but it can be run locally, if you are a maintainer of the
QEMU project on the Coverity Scan website and have the secret
upload token.

The script must be run on a Fedora 30 system.  Support for using a
Docker container is added in a following commit.

Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>
Message-id: address@hidden


  Commit: 9edfa3580fd46c74328433544396b2af60522061
      
https://github.com/qemu/qemu/commit/9edfa3580fd46c74328433544396b2af60522061
  Author: Peter Maydell <address@hidden>
  Date:   2020-04-14 (Tue, 14 Apr 2020)

  Changed paths:
    A scripts/coverity-scan/coverity-scan.docker
    M scripts/coverity-scan/run-coverity-scan

  Log Message:
  -----------
  scripts/coverity-scan: Add Docker support

Add support for running the Coverity Scan tools inside a Docker
container rather than directly on the host system.

Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>
Message-id: address@hidden


  Commit: e5910d42dd7a12c66c3a0b050d5f1d2b00b99ea8
      
https://github.com/qemu/qemu/commit/e5910d42dd7a12c66c3a0b050d5f1d2b00b99ea8
  Author: Peter Maydell <address@hidden>
  Date:   2020-04-14 (Tue, 14 Apr 2020)

  Changed paths:
    M docs/system/gdb.rst
    M qemu-options.hx

  Log Message:
  -----------
  docs: Improve our gdbstub documentation

The documentation of our -s and -gdb options is quite old; in
particular it still claims that it will cause QEMU to stop and wait
for the gdb connection, when this has not been true for some time:
you also need to pass -S if you want to make QEMU not launch the
guest on startup.

Improve the documentation to mention this requirement in the
executable's --help output, the documentation of the -gdb option in
the manual, and in the "GDB usage" chapter.

Includes some minor tweaks to these paragraphs of documentation
since I was editing them anyway (such as dropping the description
of our gdb support as "primitive").

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>
Message-id: address@hidden


  Commit: 516e8b7d4a531b3c71ed77199cc2c8904ccd60b4
      
https://github.com/qemu/qemu/commit/516e8b7d4a531b3c71ed77199cc2c8904ccd60b4
  Author: Peter Maydell <address@hidden>
  Date:   2020-04-14 (Tue, 14 Apr 2020)

  Changed paths:
    M Makefile
    M configure

  Log Message:
  -----------
  configure: Honour --disable-werror for Sphinx

If we are not making warnings fatal for compilation, make them
non-fatal when building the Sphinx documentation also.  (For instance
Sphinx 3.0 warns about some constructs that older versions were happy
with, which is a build failure if we use the warnings-as-errors
flag.)

This provides a workaround at least for LP:1872113.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Reviewed-by: Alex Bennée <address@hidden>


  Commit: a62d563796e369b910073eeec02d604f23dcbe89
      
https://github.com/qemu/qemu/commit/a62d563796e369b910073eeec02d604f23dcbe89
  Author: Peter Maydell <address@hidden>
  Date:   2020-04-14 (Tue, 14 Apr 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  scripts/kernel-doc: Add missing close-paren in c:function directives

When kernel-doc generates a 'c:function' directive for a function
one of whose arguments is a function pointer, it fails to print
the close-paren after the argument list of the function pointer
argument, for instance in the memory API documentation:
  .. c:function:: void memory_region_init_resizeable_ram (MemoryRegion * mr, 
struct Object * owner, const char * name, uint64_t size, uint64_t max_size, 
void (*resized) (const char*, uint64_t length, void *host, Error ** errp)

which should have a ')' after the 'void *host' which is the
last argument to 'resized'.

Older versions of Sphinx don't try to parse the argumnet
to c:function, but Sphinx 3.0 does do this and will complain:

  
/home/petmay01/linaro/qemu-from-laptop/qemu/docs/../include/exec/memory.h:834: 
WARNING: Error in declarator or parameters
  Invalid C declaration: Expecting "," or ")" in parameters, got "EOF". [error 
at 208]
    void memory_region_init_resizeable_ram (MemoryRegion * mr, struct Object * 
owner, const char * name, uint64_t size, uint64_t max_size, void (*resized) 
(const char*, uint64_t length, void *host, Error ** errp)
    
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------^

Add the missing close-paren.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Reviewed-by: Alex Bennée <address@hidden>


  Commit: 152d1967f650f67b7ece3a5dda77d48069d72647
      
https://github.com/qemu/qemu/commit/152d1967f650f67b7ece3a5dda77d48069d72647
  Author: Peter Maydell <address@hidden>
  Date:   2020-04-14 (Tue, 14 Apr 2020)

  Changed paths:
    M docs/sphinx/kerneldoc.py
    M scripts/kernel-doc

  Log Message:
  -----------
  kernel-doc: Use c:struct for Sphinx 3.0 and later

The kernel-doc Sphinx plugin and associated script currently emit
'c:type' directives for "struct foo" documentation.

Sphinx 3.0 warns about this:
  /home/petmay01/linaro/qemu-from-laptop/qemu/docs/../include/exec/memory.h:3: 
WARNING: Type must be either just a name or a typedef-like declaration.
  If just a name:
    Error in declarator or parameters
    Invalid C declaration: Expected identifier in nested name, got keyword: 
struct [error at 6]
      struct MemoryListener
      ------^
  If typedef-like declaration:
    Error in declarator or parameters
    Invalid C declaration: Expected identifier in nested name. [error at 21]
      struct MemoryListener
      ---------------------^

because it wants us to use the new-in-3.0 'c:struct' instead.

Plumb the Sphinx version through to the kernel-doc script
and use it to select 'c:struct' for newer versions than 3.0.

Fixes: LP:1872113
Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>


  Commit: bf3f857342b27e04871b22e3015fef5068a85723
      
https://github.com/qemu/qemu/commit/bf3f857342b27e04871b22e3015fef5068a85723
  Author: Peter Maydell <address@hidden>
  Date:   2020-04-14 (Tue, 14 Apr 2020)

  Changed paths:
    M docs/conf.py

  Log Message:
  -----------
  docs: Require Sphinx 1.6 or better

Versions of Sphinx older than 1.6 can't build all of our documentation,
because they are too picky about the syntax of the argument to the
option:: directive; see Sphinx bugs #646, #3366:

  https://github.com/sphinx-doc/sphinx/issues/646
  https://github.com/sphinx-doc/sphinx/issues/3366

Trying to build with a 1.4.x Sphinx fails with
 docs/system/images.rst:4: SEVERE: Duplicate ID: "cmdoption-qcow2-arg-encrypt"
and a 1.5.x Sphinx fails with
 docs/system/invocation.rst:544: WARNING: Malformed option description 
'[enable=]PATTERN', should look like "opt", "-opt
args", "--opt args", "/opt args" or "+opt args"

Update our needs_sphinx setting to indicate that we require at least
1.6.  This will allow configure to fall back to "don't build the
docs" rather than causing the build to fail entirely, which is
probably what most users building on a host old enough to have such
an old Sphinx would want; if they do want the docs then they'll have
a useful indication of what they need to do (upgrade Sphinx!) rather
than a confusing error message.

In theory our distro support policy would suggest that we should
support building on the Sphinx shipped in those distros, but:
 * EPEL7 has Sphinx 1.2.3 (which we've never supported!)
 * Debian Stretch has Sphinx 1.4.8

Trying to get our docs to work with Sphinx 1.4 is not tractable
for the 5.0 release and I'm not sure it's worthwhile effort anyway;
at least with this change the build as a whole now succeeds.

Thanks to John Snow for doing the investigation and testing to
confirm what Sphinx versions fail in what ways and what distros
shipped what.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 84f82ddcbb4ac4ed04c8675e85155329f23184f0
      
https://github.com/qemu/qemu/commit/84f82ddcbb4ac4ed04c8675e85155329f23184f0
  Author: Peter Maydell <address@hidden>
  Date:   2020-04-14 (Tue, 14 Apr 2020)

  Changed paths:
    M docs/system/deprecated.rst

  Log Message:
  -----------
  Deprecate KVM support for AArch32

The Linux kernel has dropped support for allowing 32-bit Arm systems
to host KVM guests (kernel commit 541ad0150ca4aa663a2, which just
landed upstream in the 5.7 merge window).  Mark QEMU's support for
this configuration as deprecated, so that we can delete that support
code in 5.2.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Andrew Jones <address@hidden>


  Commit: a457215ed2aaa9598bd4ebbc6745d2a494ba9990
      
https://github.com/qemu/qemu/commit/a457215ed2aaa9598bd4ebbc6745d2a494ba9990
  Author: Peter Maydell <address@hidden>
  Date:   2020-04-14 (Tue, 14 Apr 2020)

  Changed paths:
    M MAINTAINERS
    M Makefile
    M configure
    M docs/conf.py
    M docs/sphinx/kerneldoc.py
    M docs/system/deprecated.rst
    M docs/system/gdb.rst
    M include/qemu/osdep.h
    M include/qemu/thread.h
    M linux-user/flatload.c
    M qemu-options.hx
    A scripts/coverity-scan/coverity-scan.docker
    A scripts/coverity-scan/run-coverity-scan
    M scripts/kernel-doc

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20200414' 
into staging

patch queue:
 * Fix some problems that trip up Coverity's scanner
 * run-coverity-scan: New script automating the scan-and-upload process
 * docs: Improve our gdbstub documentation
 * configure: Honour --disable-werror for Sphinx
 * docs: Fix errors produced when building with Sphinx 3.0
 * docs: Require Sphinx 1.6 or better
 * Add deprecation notice for KVM support on AArch32 hosts

# gpg: Signature made Tue 14 Apr 2020 17:25:22 BST
# gpg:                using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE
# gpg:                issuer "address@hidden"
# gpg: Good signature from "Peter Maydell <address@hidden>" [ultimate]
# gpg:                 aka "Peter Maydell <address@hidden>" [ultimate]
# gpg:                 aka "Peter Maydell <address@hidden>" [ultimate]
# Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE

* remotes/pmaydell/tags/pull-target-arm-20200414:
  Deprecate KVM support for AArch32
  docs: Require Sphinx 1.6 or better
  kernel-doc: Use c:struct for Sphinx 3.0 and later
  scripts/kernel-doc: Add missing close-paren in c:function directives
  configure: Honour --disable-werror for Sphinx
  docs: Improve our gdbstub documentation
  scripts/coverity-scan: Add Docker support
  scripts/run-coverity-scan: Script to run Coverity Scan build
  linux-user/flatload.c: Use "" for include of QEMU header target_flat.h
  thread.h: Remove trailing semicolons from Coverity qemu_mutex_lock() etc
  thread.h: Fix Coverity version of qemu_cond_timedwait()
  osdep.h: Drop no-longer-needed Coverity workarounds

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/14e5526b5191...a457215ed2aa



reply via email to

[Prev in Thread] Current Thread [Next in Thread]