diff mbox series

[v2] qemu/compiler: Absorb 'clang-tsa.h'

Message ID 20250116211111.53961-1-philmd@linaro.org (mailing list archive)
State New
Headers show
Series [v2] qemu/compiler: Absorb 'clang-tsa.h' | expand

Commit Message

Philippe Mathieu-Daudé Jan. 16, 2025, 9:11 p.m. UTC
We already have "qemu/compiler.h" for compiler-specific arrangements,
automatically included by "qemu/osdep.h" for each source file. No
need to explicitly include a header for a Clang particularity,
let the common "qemu/compiler.h" deal with that by having it
include "qemu/clang-tsa.h" (renamed as qemu/clang-tsa.h.inc).
Add a check to not include "qemu/clang-tsa.h.inc" directly,
remove previous "qemu/clang-tsa.h" inclusions.

Suggested-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 bsd-user/qemu.h                               | 1 -
 include/block/block_int-common.h              | 1 -
 include/block/graph-lock.h                    | 2 --
 include/exec/page-protection.h                | 2 --
 include/qemu/compiler.h                       | 2 ++
 include/qemu/thread.h                         | 1 -
 include/qemu/{clang-tsa.h => clang-tsa.h.inc} | 8 ++++++--
 block/create.c                                | 1 -
 tests/unit/test-bdrv-drain.c                  | 1 -
 tests/unit/test-block-iothread.c              | 1 -
 util/qemu-thread-posix.c                      | 1 -
 11 files changed, 8 insertions(+), 13 deletions(-)
 rename include/qemu/{clang-tsa.h => clang-tsa.h.inc} (97%)

Comments

Pierrick Bouvier Jan. 17, 2025, 1:59 a.m. UTC | #1
On 1/16/25 13:11, Philippe Mathieu-Daudé wrote:
> We already have "qemu/compiler.h" for compiler-specific arrangements,
> automatically included by "qemu/osdep.h" for each source file. No
> need to explicitly include a header for a Clang particularity,
> let the common "qemu/compiler.h" deal with that by having it
> include "qemu/clang-tsa.h" (renamed as qemu/clang-tsa.h.inc).
> Add a check to not include "qemu/clang-tsa.h.inc" directly,
> remove previous "qemu/clang-tsa.h" inclusions.
> 
> Suggested-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   bsd-user/qemu.h                               | 1 -
>   include/block/block_int-common.h              | 1 -
>   include/block/graph-lock.h                    | 2 --
>   include/exec/page-protection.h                | 2 --
>   include/qemu/compiler.h                       | 2 ++
>   include/qemu/thread.h                         | 1 -
>   include/qemu/{clang-tsa.h => clang-tsa.h.inc} | 8 ++++++--
>   block/create.c                                | 1 -
>   tests/unit/test-bdrv-drain.c                  | 1 -
>   tests/unit/test-block-iothread.c              | 1 -
>   util/qemu-thread-posix.c                      | 1 -
>   11 files changed, 8 insertions(+), 13 deletions(-)
>   rename include/qemu/{clang-tsa.h => clang-tsa.h.inc} (97%)
> 
> diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h
> index 3eaa14f3f56..4e97c796318 100644
> --- a/bsd-user/qemu.h
> +++ b/bsd-user/qemu.h
> @@ -40,7 +40,6 @@ extern char **environ;
>   #include "target.h"
>   #include "exec/gdbstub.h"
>   #include "exec/page-protection.h"
> -#include "qemu/clang-tsa.h"
>   #include "accel/tcg/vcpu-state.h"
>   
>   #include "qemu-os.h"
> diff --git a/include/block/block_int-common.h b/include/block/block_int-common.h
> index bb91a0f62fa..ebb4e56a503 100644
> --- a/include/block/block_int-common.h
> +++ b/include/block/block_int-common.h
> @@ -28,7 +28,6 @@
>   #include "block/block-common.h"
>   #include "block/block-global-state.h"
>   #include "block/snapshot.h"
> -#include "qemu/clang-tsa.h"
>   #include "qemu/iov.h"
>   #include "qemu/rcu.h"
>   #include "qemu/stats64.h"
> diff --git a/include/block/graph-lock.h b/include/block/graph-lock.h
> index dc8d9491843..2c26c721081 100644
> --- a/include/block/graph-lock.h
> +++ b/include/block/graph-lock.h
> @@ -20,8 +20,6 @@
>   #ifndef GRAPH_LOCK_H
>   #define GRAPH_LOCK_H
>   
> -#include "qemu/clang-tsa.h"
> -
>   /**
>    * Graph Lock API
>    * This API provides a rwlock used to protect block layer
> diff --git a/include/exec/page-protection.h b/include/exec/page-protection.h
> index bae3355f62c..3e0a8a03331 100644
> --- a/include/exec/page-protection.h
> +++ b/include/exec/page-protection.h
> @@ -40,8 +40,6 @@
>   
>   #ifdef CONFIG_USER_ONLY
>   
> -#include "qemu/clang-tsa.h"
> -
>   void TSA_NO_TSA mmap_lock(void);
>   void TSA_NO_TSA mmap_unlock(void);
>   bool have_mmap_lock(void);
> diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h
> index c06954ccb41..6dfd8da14d9 100644
> --- a/include/qemu/compiler.h
> +++ b/include/qemu/compiler.h
> @@ -7,6 +7,8 @@
>   #ifndef COMPILER_H
>   #define COMPILER_H
>   
> +#include "qemu/clang-tsa.h.inc"
> +
>   #define HOST_BIG_ENDIAN (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
>   
>   /* HOST_LONG_BITS is the size of a native pointer in bits. */
> diff --git a/include/qemu/thread.h b/include/qemu/thread.h
> index 7eba27a7049..6f800aad31a 100644
> --- a/include/qemu/thread.h
> +++ b/include/qemu/thread.h
> @@ -3,7 +3,6 @@
>   
>   #include "qemu/processor.h"
>   #include "qemu/atomic.h"
> -#include "qemu/clang-tsa.h"
>   
>   typedef struct QemuCond QemuCond;
>   typedef struct QemuSemaphore QemuSemaphore;
> diff --git a/include/qemu/clang-tsa.h b/include/qemu/clang-tsa.h.inc
> similarity index 97%
> rename from include/qemu/clang-tsa.h
> rename to include/qemu/clang-tsa.h.inc
> index ba06fb8c924..1273c39f9c5 100644
> --- a/include/qemu/clang-tsa.h
> +++ b/include/qemu/clang-tsa.h.inc
> @@ -1,5 +1,5 @@
> -#ifndef CLANG_TSA_H
> -#define CLANG_TSA_H
> +#ifndef CLANG_TSA_H_INC
> +#define CLANG_TSA_H_INC
>   
>   /*
>    * Copyright 2018 Jarkko Hietaniemi <jhi@iki.fi>
> @@ -24,6 +24,10 @@
>    * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
>    */
>   
> +#ifndef COMPILER_H
> +#error Cannot include this header directly
> +#endif
> +
>   /* http://clang.llvm.org/docs/ThreadSafetyAnalysis.html
>    *
>    * TSA is available since clang 3.6-ish.
> diff --git a/block/create.c b/block/create.c
> index 72abafb4c12..6b23a216753 100644
> --- a/block/create.c
> +++ b/block/create.c
> @@ -24,7 +24,6 @@
>   
>   #include "qemu/osdep.h"
>   #include "block/block_int.h"
> -#include "qemu/clang-tsa.h"
>   #include "qemu/job.h"
>   #include "qemu/main-loop.h"
>   #include "qapi/qapi-commands-block-core.h"
> diff --git a/tests/unit/test-bdrv-drain.c b/tests/unit/test-bdrv-drain.c
> index 98ad89b390c..7410e6f3528 100644
> --- a/tests/unit/test-bdrv-drain.c
> +++ b/tests/unit/test-bdrv-drain.c
> @@ -28,7 +28,6 @@
>   #include "system/block-backend.h"
>   #include "qapi/error.h"
>   #include "qemu/main-loop.h"
> -#include "qemu/clang-tsa.h"
>   #include "iothread.h"
>   
>   static QemuEvent done_event;
> diff --git a/tests/unit/test-block-iothread.c b/tests/unit/test-block-iothread.c
> index 1de04a8a13d..26a6c051758 100644
> --- a/tests/unit/test-block-iothread.c
> +++ b/tests/unit/test-block-iothread.c
> @@ -29,7 +29,6 @@
>   #include "system/block-backend.h"
>   #include "qapi/error.h"
>   #include "qapi/qmp/qdict.h"
> -#include "qemu/clang-tsa.h"
>   #include "qemu/main-loop.h"
>   #include "iothread.h"
>   
> diff --git a/util/qemu-thread-posix.c b/util/qemu-thread-posix.c
> index 6fff4162ac6..b2e26e21205 100644
> --- a/util/qemu-thread-posix.c
> +++ b/util/qemu-thread-posix.c
> @@ -17,7 +17,6 @@
>   #include "qemu-thread-common.h"
>   #include "qemu/tsan.h"
>   #include "qemu/bitmap.h"
> -#include "qemu/clang-tsa.h"
>   
>   #ifdef CONFIG_PTHREAD_SET_NAME_NP
>   #include <pthread_np.h>

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
diff mbox series

Patch

diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h
index 3eaa14f3f56..4e97c796318 100644
--- a/bsd-user/qemu.h
+++ b/bsd-user/qemu.h
@@ -40,7 +40,6 @@  extern char **environ;
 #include "target.h"
 #include "exec/gdbstub.h"
 #include "exec/page-protection.h"
-#include "qemu/clang-tsa.h"
 #include "accel/tcg/vcpu-state.h"
 
 #include "qemu-os.h"
diff --git a/include/block/block_int-common.h b/include/block/block_int-common.h
index bb91a0f62fa..ebb4e56a503 100644
--- a/include/block/block_int-common.h
+++ b/include/block/block_int-common.h
@@ -28,7 +28,6 @@ 
 #include "block/block-common.h"
 #include "block/block-global-state.h"
 #include "block/snapshot.h"
-#include "qemu/clang-tsa.h"
 #include "qemu/iov.h"
 #include "qemu/rcu.h"
 #include "qemu/stats64.h"
diff --git a/include/block/graph-lock.h b/include/block/graph-lock.h
index dc8d9491843..2c26c721081 100644
--- a/include/block/graph-lock.h
+++ b/include/block/graph-lock.h
@@ -20,8 +20,6 @@ 
 #ifndef GRAPH_LOCK_H
 #define GRAPH_LOCK_H
 
-#include "qemu/clang-tsa.h"
-
 /**
  * Graph Lock API
  * This API provides a rwlock used to protect block layer
diff --git a/include/exec/page-protection.h b/include/exec/page-protection.h
index bae3355f62c..3e0a8a03331 100644
--- a/include/exec/page-protection.h
+++ b/include/exec/page-protection.h
@@ -40,8 +40,6 @@ 
 
 #ifdef CONFIG_USER_ONLY
 
-#include "qemu/clang-tsa.h"
-
 void TSA_NO_TSA mmap_lock(void);
 void TSA_NO_TSA mmap_unlock(void);
 bool have_mmap_lock(void);
diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h
index c06954ccb41..6dfd8da14d9 100644
--- a/include/qemu/compiler.h
+++ b/include/qemu/compiler.h
@@ -7,6 +7,8 @@ 
 #ifndef COMPILER_H
 #define COMPILER_H
 
+#include "qemu/clang-tsa.h.inc"
+
 #define HOST_BIG_ENDIAN (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
 
 /* HOST_LONG_BITS is the size of a native pointer in bits. */
diff --git a/include/qemu/thread.h b/include/qemu/thread.h
index 7eba27a7049..6f800aad31a 100644
--- a/include/qemu/thread.h
+++ b/include/qemu/thread.h
@@ -3,7 +3,6 @@ 
 
 #include "qemu/processor.h"
 #include "qemu/atomic.h"
-#include "qemu/clang-tsa.h"
 
 typedef struct QemuCond QemuCond;
 typedef struct QemuSemaphore QemuSemaphore;
diff --git a/include/qemu/clang-tsa.h b/include/qemu/clang-tsa.h.inc
similarity index 97%
rename from include/qemu/clang-tsa.h
rename to include/qemu/clang-tsa.h.inc
index ba06fb8c924..1273c39f9c5 100644
--- a/include/qemu/clang-tsa.h
+++ b/include/qemu/clang-tsa.h.inc
@@ -1,5 +1,5 @@ 
-#ifndef CLANG_TSA_H
-#define CLANG_TSA_H
+#ifndef CLANG_TSA_H_INC
+#define CLANG_TSA_H_INC
 
 /*
  * Copyright 2018 Jarkko Hietaniemi <jhi@iki.fi>
@@ -24,6 +24,10 @@ 
  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 
+#ifndef COMPILER_H
+#error Cannot include this header directly
+#endif
+
 /* http://clang.llvm.org/docs/ThreadSafetyAnalysis.html
  *
  * TSA is available since clang 3.6-ish.
diff --git a/block/create.c b/block/create.c
index 72abafb4c12..6b23a216753 100644
--- a/block/create.c
+++ b/block/create.c
@@ -24,7 +24,6 @@ 
 
 #include "qemu/osdep.h"
 #include "block/block_int.h"
-#include "qemu/clang-tsa.h"
 #include "qemu/job.h"
 #include "qemu/main-loop.h"
 #include "qapi/qapi-commands-block-core.h"
diff --git a/tests/unit/test-bdrv-drain.c b/tests/unit/test-bdrv-drain.c
index 98ad89b390c..7410e6f3528 100644
--- a/tests/unit/test-bdrv-drain.c
+++ b/tests/unit/test-bdrv-drain.c
@@ -28,7 +28,6 @@ 
 #include "system/block-backend.h"
 #include "qapi/error.h"
 #include "qemu/main-loop.h"
-#include "qemu/clang-tsa.h"
 #include "iothread.h"
 
 static QemuEvent done_event;
diff --git a/tests/unit/test-block-iothread.c b/tests/unit/test-block-iothread.c
index 1de04a8a13d..26a6c051758 100644
--- a/tests/unit/test-block-iothread.c
+++ b/tests/unit/test-block-iothread.c
@@ -29,7 +29,6 @@ 
 #include "system/block-backend.h"
 #include "qapi/error.h"
 #include "qapi/qmp/qdict.h"
-#include "qemu/clang-tsa.h"
 #include "qemu/main-loop.h"
 #include "iothread.h"
 
diff --git a/util/qemu-thread-posix.c b/util/qemu-thread-posix.c
index 6fff4162ac6..b2e26e21205 100644
--- a/util/qemu-thread-posix.c
+++ b/util/qemu-thread-posix.c
@@ -17,7 +17,6 @@ 
 #include "qemu-thread-common.h"
 #include "qemu/tsan.h"
 #include "qemu/bitmap.h"
-#include "qemu/clang-tsa.h"
 
 #ifdef CONFIG_PTHREAD_SET_NAME_NP
 #include <pthread_np.h>