[PATCH v2 0/8] configure: Change to -std=gnu11

Richard Henderson posted 8 patches 2 years, 10 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/next-importer-push tags/patchew/20210614233143.1221879-1-richard.henderson@linaro.org
Maintainers: Stefan Weil <sw@weilnetz.de>, Paolo Bonzini <pbonzini@redhat.com>, Aurelien Jarno <aurelien@aurel32.net>, Peter Maydell <peter.maydell@linaro.org>, "Alex Bennée" <alex.bennee@linaro.org>
configure                   | 22 +--------
meson.build                 |  2 +-
include/qemu/compiler.h     | 51 ---------------------
include/qemu/lockable.h     | 90 +++++++++++++++++--------------------
include/qemu/thread-posix.h | 14 +++---
include/qemu/thread-win32.h |  6 ---
include/qemu/thread.h       | 15 ++++++-
fpu/softfloat.c             | 16 ++++---
util/qemu-thread-posix.c    | 24 +++++++++-
util/qemu-thread-win32.c    |  2 +-
10 files changed, 98 insertions(+), 144 deletions(-)
[PATCH v2 0/8] configure: Change to -std=gnu11
Posted by Richard Henderson 2 years, 10 months ago
Now that we assume gcc 7.5 as a minimum, we have the option of
changing to a newer C standard.  The two major new features that
I think apply are _Generic and _Static_assert.

While Paolo created a remarkably functional replacement for _Generic
using builtins, the error messages that you get out of the keyword
are *vastly* more intelligable, and the syntax is easier to read.

While I'd like to prefer _Static_assert over QEMU_BUILD_BUG_ON
going forward, and would like to convert existing uses, that is
a much bigger job.  Especially since the test condition is inverted.
In the meantime, can drop the configure detection.

Changes for v2:
  * Remove QEMU_LOCK_FUNC and QEMU_UNLOCK_FUNC as unused.


r~


Richard Henderson (8):
  configure: Use -std=gnu11
  softfloat: Use _Generic instead of QEMU_GENERIC
  util: Use real functions for thread-posix QemuRecMutex
  util: Pass file+line to qemu_rec_mutex_unlock_impl
  util: Use unique type for QemuRecMutex in thread-posix.h
  include/qemu/lockable: Use _Generic instead of QEMU_GENERIC
  qemu/compiler: Remove QEMU_GENERIC
  configure: Remove probe for _Static_assert

 configure                   | 22 +--------
 meson.build                 |  2 +-
 include/qemu/compiler.h     | 51 ---------------------
 include/qemu/lockable.h     | 90 +++++++++++++++++--------------------
 include/qemu/thread-posix.h | 14 +++---
 include/qemu/thread-win32.h |  6 ---
 include/qemu/thread.h       | 15 ++++++-
 fpu/softfloat.c             | 16 ++++---
 util/qemu-thread-posix.c    | 24 +++++++++-
 util/qemu-thread-win32.c    |  2 +-
 10 files changed, 98 insertions(+), 144 deletions(-)

-- 
2.25.1


Re: [PATCH v2 0/8] configure: Change to -std=gnu11
Posted by Paolo Bonzini 2 years, 10 months ago
On 15/06/21 01:31, Richard Henderson wrote:
> Now that we assume gcc 7.5 as a minimum, we have the option of
> changing to a newer C standard.  The two major new features that
> I think apply are _Generic and _Static_assert.
> 
> While Paolo created a remarkably functional replacement for _Generic
> using builtins, the error messages that you get out of the keyword
> are *vastly* more intelligable, and the syntax is easier to read.
> 
> While I'd like to prefer _Static_assert over QEMU_BUILD_BUG_ON
> going forward, and would like to convert existing uses, that is
> a much bigger job.  Especially since the test condition is inverted.
> In the meantime, can drop the configure detection.
> 
> Changes for v2:
>    * Remove QEMU_LOCK_FUNC and QEMU_UNLOCK_FUNC as unused.
> 
> 
> r~
> 
> 
> Richard Henderson (8):
>    configure: Use -std=gnu11
>    softfloat: Use _Generic instead of QEMU_GENERIC
>    util: Use real functions for thread-posix QemuRecMutex
>    util: Pass file+line to qemu_rec_mutex_unlock_impl
>    util: Use unique type for QemuRecMutex in thread-posix.h
>    include/qemu/lockable: Use _Generic instead of QEMU_GENERIC
>    qemu/compiler: Remove QEMU_GENERIC
>    configure: Remove probe for _Static_assert
> 
>   configure                   | 22 +--------
>   meson.build                 |  2 +-
>   include/qemu/compiler.h     | 51 ---------------------
>   include/qemu/lockable.h     | 90 +++++++++++++++++--------------------
>   include/qemu/thread-posix.h | 14 +++---
>   include/qemu/thread-win32.h |  6 ---
>   include/qemu/thread.h       | 15 ++++++-
>   fpu/softfloat.c             | 16 ++++---
>   util/qemu-thread-posix.c    | 24 +++++++++-
>   util/qemu-thread-win32.c    |  2 +-
>   10 files changed, 98 insertions(+), 144 deletions(-)
> 

Queued, thanks.

Paolo


Re: [PATCH v2 0/8] configure: Change to -std=gnu11
Posted by no-reply@patchew.org 2 years, 10 months ago
Patchew URL: https://patchew.org/QEMU/20210614233143.1221879-1-richard.henderson@linaro.org/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: 20210614233143.1221879-1-richard.henderson@linaro.org
Subject: [PATCH v2 0/8] configure: Change to -std=gnu11

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 * [new tag]         patchew/20210614233143.1221879-1-richard.henderson@linaro.org -> patchew/20210614233143.1221879-1-richard.henderson@linaro.org
Switched to a new branch 'test'
1a974ee configure: Remove probe for _Static_assert
8a8c552 qemu/compiler: Remove QEMU_GENERIC
d52ca80 include/qemu/lockable: Use _Generic instead of QEMU_GENERIC
d751cc8 util: Use unique type for QemuRecMutex in thread-posix.h
aafe079 util: Pass file+line to qemu_rec_mutex_unlock_impl
069b4e3 util: Use real functions for thread-posix QemuRecMutex
df9952e softfloat: Use _Generic instead of QEMU_GENERIC
067736a configure: Use -std=gnu11

=== OUTPUT BEGIN ===
1/8 Checking commit 067736abd82a (configure: Use -std=gnu11)
2/8 Checking commit df9952ebdce3 (softfloat: Use _Generic instead of QEMU_GENERIC)
ERROR: spaces required around that '*' (ctx:WxO)
#22: FILE: fpu/softfloat.c:689:
+    _Generic((P), FloatParts64 *: parts64_##NAME, \
                                ^

ERROR: spaces required around that ':' (ctx:OxW)
#22: FILE: fpu/softfloat.c:689:
+    _Generic((P), FloatParts64 *: parts64_##NAME, \
                                 ^

ERROR: spaces required around that '*' (ctx:WxO)
#23: FILE: fpu/softfloat.c:690:
+                  FloatParts128 *: parts128_##NAME)
                                 ^

ERROR: spaces required around that ':' (ctx:OxW)
#23: FILE: fpu/softfloat.c:690:
+                  FloatParts128 *: parts128_##NAME)
                                  ^

ERROR: spaces required around that '*' (ctx:WxO)
#28: FILE: fpu/softfloat.c:693:
+    _Generic((P), FloatParts64 *: parts64_##NAME, \
                                ^

ERROR: spaces required around that ':' (ctx:OxW)
#28: FILE: fpu/softfloat.c:693:
+    _Generic((P), FloatParts64 *: parts64_##NAME, \
                                 ^

ERROR: spaces required around that '*' (ctx:WxO)
#29: FILE: fpu/softfloat.c:694:
+                  FloatParts128 *: parts128_##NAME, \
                                 ^

ERROR: spaces required around that ':' (ctx:OxW)
#29: FILE: fpu/softfloat.c:694:
+                  FloatParts128 *: parts128_##NAME, \
                                  ^

ERROR: spaces required around that '*' (ctx:WxO)
#30: FILE: fpu/softfloat.c:695:
+                  FloatParts256 *: parts256_##NAME)
                                 ^

ERROR: spaces required around that ':' (ctx:OxW)
#30: FILE: fpu/softfloat.c:695:
+                  FloatParts256 *: parts256_##NAME)
                                  ^

ERROR: spaces required around that '*' (ctx:WxO)
#39: FILE: fpu/softfloat.c:897:
+    _Generic((P), FloatParts64 *: frac64_##NAME, \
                                ^

ERROR: spaces required around that ':' (ctx:OxW)
#39: FILE: fpu/softfloat.c:897:
+    _Generic((P), FloatParts64 *: frac64_##NAME, \
                                 ^

ERROR: spaces required around that '*' (ctx:WxO)
#40: FILE: fpu/softfloat.c:898:
+                  FloatParts128 *: frac128_##NAME)
                                 ^

ERROR: spaces required around that ':' (ctx:OxW)
#40: FILE: fpu/softfloat.c:898:
+                  FloatParts128 *: frac128_##NAME)
                                  ^

ERROR: spaces required around that '*' (ctx:WxO)
#45: FILE: fpu/softfloat.c:901:
+    _Generic((P), FloatParts64 *: frac64_##NAME, \
                                ^

ERROR: spaces required around that ':' (ctx:OxW)
#45: FILE: fpu/softfloat.c:901:
+    _Generic((P), FloatParts64 *: frac64_##NAME, \
                                 ^

ERROR: spaces required around that '*' (ctx:WxO)
#46: FILE: fpu/softfloat.c:902:
+                  FloatParts128 *: frac128_##NAME, \
                                 ^

ERROR: spaces required around that ':' (ctx:OxW)
#46: FILE: fpu/softfloat.c:902:
+                  FloatParts128 *: frac128_##NAME, \
                                  ^

ERROR: spaces required around that '*' (ctx:WxO)
#47: FILE: fpu/softfloat.c:903:
+                  FloatParts256 *: frac256_##NAME)
                                 ^

ERROR: spaces required around that ':' (ctx:OxW)
#47: FILE: fpu/softfloat.c:903:
+                  FloatParts256 *: frac256_##NAME)
                                  ^

total: 20 errors, 0 warnings, 32 lines checked

Patch 2/8 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

3/8 Checking commit 069b4e39c6b3 (util: Use real functions for thread-posix QemuRecMutex)
WARNING: line over 80 characters
#63: FILE: include/qemu/thread.h:34:
+int qemu_rec_mutex_trylock_impl(QemuRecMutex *mutex, const char *file, int line);

total: 0 errors, 1 warnings, 69 lines checked

Patch 3/8 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
4/8 Checking commit aafe07917c3a (util: Pass file+line to qemu_rec_mutex_unlock_impl)
WARNING: line over 80 characters
#27: FILE: include/qemu/thread.h:35:
+void qemu_rec_mutex_unlock_impl(QemuRecMutex *mutex, const char *file, int line);

total: 0 errors, 1 warnings, 47 lines checked

Patch 4/8 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
5/8 Checking commit d751cc87cfad (util: Use unique type for QemuRecMutex in thread-posix.h)
6/8 Checking commit d52ca8068133 (include/qemu/lockable: Use _Generic instead of QEMU_GENERIC)
ERROR: spaces required around that '*' (ctx:WxO)
#117: FILE: include/qemu/lockable.h:70:
+    _Generic((x), QemuLockable *: (x),                                  \
                                ^

ERROR: spaces required around that ':' (ctx:OxW)
#117: FILE: include/qemu/lockable.h:70:
+    _Generic((x), QemuLockable *: (x),                                  \
                                 ^

ERROR: spaces required around that '*' (ctx:WxO)
#118: FILE: include/qemu/lockable.h:71:
+             void *: qemu_null_lockable(x),                             \
                   ^

ERROR: spaces required around that ':' (ctx:OxW)
#118: FILE: include/qemu/lockable.h:71:
+             void *: qemu_null_lockable(x),                             \
                    ^

ERROR: spaces required around that '*' (ctx:WxO)
#119: FILE: include/qemu/lockable.h:72:
+             QemuMutex *: qemu_make_lockable(x, QML_OBJ_(x, mutex)),    \
                        ^

ERROR: spaces required around that ':' (ctx:OxW)
#119: FILE: include/qemu/lockable.h:72:
+             QemuMutex *: qemu_make_lockable(x, QML_OBJ_(x, mutex)),    \
                         ^

ERROR: spaces required around that '*' (ctx:WxO)
#120: FILE: include/qemu/lockable.h:73:
+             QemuRecMutex *: qemu_make_lockable(x, QML_OBJ_(x, rec_mutex)), \
                           ^

ERROR: spaces required around that ':' (ctx:OxW)
#120: FILE: include/qemu/lockable.h:73:
+             QemuRecMutex *: qemu_make_lockable(x, QML_OBJ_(x, rec_mutex)), \
                            ^

ERROR: spaces required around that '*' (ctx:WxO)
#121: FILE: include/qemu/lockable.h:74:
+             CoMutex *: qemu_make_lockable(x, QML_OBJ_(x, co_mutex)),   \
                      ^

ERROR: spaces required around that ':' (ctx:OxW)
#121: FILE: include/qemu/lockable.h:74:
+             CoMutex *: qemu_make_lockable(x, QML_OBJ_(x, co_mutex)),   \
                       ^

ERROR: spaces required around that '*' (ctx:WxO)
#122: FILE: include/qemu/lockable.h:75:
+             QemuSpin *: qemu_make_lockable(x, QML_OBJ_(x, spin)))
                       ^

ERROR: spaces required around that ':' (ctx:OxW)
#122: FILE: include/qemu/lockable.h:75:
+             QemuSpin *: qemu_make_lockable(x, QML_OBJ_(x, spin)))
                        ^

ERROR: spaces required around that '*' (ctx:WxO)
#138: FILE: include/qemu/lockable.h:87:
+    _Generic((x), QemuLockable *: (x),                          \
                                ^

ERROR: spaces required around that ':' (ctx:OxW)
#138: FILE: include/qemu/lockable.h:87:
+    _Generic((x), QemuLockable *: (x),                          \
                                 ^

ERROR: spaces required around that '*' (ctx:WxO)
#139: FILE: include/qemu/lockable.h:88:
+                  QemuMutex *: QML_OBJ_(x, mutex),              \
                             ^

ERROR: spaces required around that ':' (ctx:OxW)
#139: FILE: include/qemu/lockable.h:88:
+                  QemuMutex *: QML_OBJ_(x, mutex),              \
                              ^

ERROR: spaces required around that '*' (ctx:WxO)
#140: FILE: include/qemu/lockable.h:89:
+                  QemuRecMutex *: QML_OBJ_(x, rec_mutex),       \
                                ^

ERROR: spaces required around that ':' (ctx:OxW)
#140: FILE: include/qemu/lockable.h:89:
+                  QemuRecMutex *: QML_OBJ_(x, rec_mutex),       \
                                 ^

ERROR: spaces required around that '*' (ctx:WxO)
#141: FILE: include/qemu/lockable.h:90:
+                  CoMutex *: QML_OBJ_(x, co_mutex),             \
                           ^

ERROR: spaces required around that ':' (ctx:OxW)
#141: FILE: include/qemu/lockable.h:90:
+                  CoMutex *: QML_OBJ_(x, co_mutex),             \
                            ^

ERROR: spaces required around that '*' (ctx:WxO)
#142: FILE: include/qemu/lockable.h:91:
+                  QemuSpin *: QML_OBJ_(x, spin))
                            ^

ERROR: spaces required around that ':' (ctx:OxW)
#142: FILE: include/qemu/lockable.h:91:
+                  QemuSpin *: QML_OBJ_(x, spin))
                             ^

total: 22 errors, 0 warnings, 120 lines checked

Patch 6/8 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

7/8 Checking commit 8a8c55217a6f (qemu/compiler: Remove QEMU_GENERIC)
8/8 Checking commit 1a974eea8590 (configure: Remove probe for _Static_assert)
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20210614233143.1221879-1-richard.henderson@linaro.org/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com