diff mbox series

[v7,13/22] osdep: Avoid using Clang-specific __builtin_available()

Message ID 20220306231753.50277-14-philippe.mathieu.daude@gmail.com
State New
Headers show
Series host: Support macOS 12 | expand

Commit Message

Philippe Mathieu-Daudé March 6, 2022, 11:17 p.m. UTC
From: Philippe Mathieu-Daudé <f4bug@amsat.org>

Remove the Clang specific __builtin_available() to allow building
with GCC, otherwise we get:

  include/qemu/osdep.h: In function 'qemu_thread_jit_write':
  include/qemu/osdep.h:787:9: warning: implicit declaration of function '__builtin_available'; did you mean '__builtin_scalbl'? [-Wimplicit-function-declaration]
    787 |     if (__builtin_available(macOS 11.0, *)) {
        |         ^~~~~~~~~~~~~~~~~~~
        |         __builtin_scalbl
  include/qemu/osdep.h:787:9: warning: nested extern declaration of '__builtin_available' [-Wnested-externs]
  include/qemu/osdep.h:787:29: error: 'macOS' undeclared (first use in this function)
    787 |     if (__builtin_available(macOS 11.0, *)) {
        |                             ^~~~~
  include/qemu/osdep.h:787:29: note: each undeclared identifier is reported only once for each function it appears in
  include/qemu/osdep.h:787:34: error: expected ')' before numeric constant
    787 |     if (__builtin_available(macOS 11.0, *)) {
        |                            ~     ^~~~~
        |                                  )

Beside, on macOS Catalina we get 2254 times:

  include/qemu/osdep.h:780:5: warning: 'pthread_jit_write_protect_np' is only available on macOS 11.0 or newer [-Wunguarded-availability-new]
      pthread_jit_write_protect_np(true);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fix by using a stricker toolchain version low range, replacing
MAC_OS_X_VERSION_MAX_ALLOWED by MAC_OS_X_VERSION_MIN_REQUIRED.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 include/qemu/osdep.h | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

Comments

Akihiko Odaki March 7, 2022, 4:11 a.m. UTC | #1
Reviewed-by: Akihiko Odaki <akihiko.odaki@gmail.com>
Tested-by: Akihiko Odaki <akihiko.odaki@gmail.com>

On Mon, Mar 7, 2022 at 8:19 AM Philippe Mathieu-Daudé
<philippe.mathieu.daude@gmail.com> wrote:
>
> From: Philippe Mathieu-Daudé <f4bug@amsat.org>
>
> Remove the Clang specific __builtin_available() to allow building
> with GCC, otherwise we get:
>
>   include/qemu/osdep.h: In function 'qemu_thread_jit_write':
>   include/qemu/osdep.h:787:9: warning: implicit declaration of function '__builtin_available'; did you mean '__builtin_scalbl'? [-Wimplicit-function-declaration]
>     787 |     if (__builtin_available(macOS 11.0, *)) {
>         |         ^~~~~~~~~~~~~~~~~~~
>         |         __builtin_scalbl
>   include/qemu/osdep.h:787:9: warning: nested extern declaration of '__builtin_available' [-Wnested-externs]
>   include/qemu/osdep.h:787:29: error: 'macOS' undeclared (first use in this function)
>     787 |     if (__builtin_available(macOS 11.0, *)) {
>         |                             ^~~~~
>   include/qemu/osdep.h:787:29: note: each undeclared identifier is reported only once for each function it appears in
>   include/qemu/osdep.h:787:34: error: expected ')' before numeric constant
>     787 |     if (__builtin_available(macOS 11.0, *)) {
>         |                            ~     ^~~~~
>         |                                  )
>
> Beside, on macOS Catalina we get 2254 times:
>
>   include/qemu/osdep.h:780:5: warning: 'pthread_jit_write_protect_np' is only available on macOS 11.0 or newer [-Wunguarded-availability-new]
>       pthread_jit_write_protect_np(true);
>       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Fix by using a stricker toolchain version low range, replacing
> MAC_OS_X_VERSION_MAX_ALLOWED by MAC_OS_X_VERSION_MIN_REQUIRED.
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>  include/qemu/osdep.h | 10 +++-------
>  1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
> index 7bcce3bceb..488a286300 100644
> --- a/include/qemu/osdep.h
> +++ b/include/qemu/osdep.h
> @@ -642,19 +642,15 @@ size_t qemu_get_host_physmem(void);
>   * for the current thread.
>   */
>  #if defined(MAC_OS_VERSION_11_0) && \
> -    MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_11_0
> +    MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_VERSION_11_0
>  static inline void qemu_thread_jit_execute(void)
>  {
> -    if (__builtin_available(macOS 11.0, *)) {
> -        pthread_jit_write_protect_np(true);
> -    }
> +    pthread_jit_write_protect_np(true);
>  }
>
>  static inline void qemu_thread_jit_write(void)
>  {
> -    if (__builtin_available(macOS 11.0, *)) {
> -        pthread_jit_write_protect_np(false);
> -    }
> +    pthread_jit_write_protect_np(false);
>  }
>  #else
>  static inline void qemu_thread_jit_write(void) {}
> --
> 2.34.1
>
diff mbox series

Patch

diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
index 7bcce3bceb..488a286300 100644
--- a/include/qemu/osdep.h
+++ b/include/qemu/osdep.h
@@ -642,19 +642,15 @@  size_t qemu_get_host_physmem(void);
  * for the current thread.
  */
 #if defined(MAC_OS_VERSION_11_0) && \
-    MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_11_0
+    MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_VERSION_11_0
 static inline void qemu_thread_jit_execute(void)
 {
-    if (__builtin_available(macOS 11.0, *)) {
-        pthread_jit_write_protect_np(true);
-    }
+    pthread_jit_write_protect_np(true);
 }
 
 static inline void qemu_thread_jit_write(void)
 {
-    if (__builtin_available(macOS 11.0, *)) {
-        pthread_jit_write_protect_np(false);
-    }
+    pthread_jit_write_protect_np(false);
 }
 #else
 static inline void qemu_thread_jit_write(void) {}