[PATCH for-7.1] cutils: Add missing dyld(3) include on macOS

Philippe Mathieu-Daudé via posted 1 patch 1 year, 8 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20220809222046.30812-1-f4bug@amsat.org
Maintainers: Paolo Bonzini <pbonzini@redhat.com>
util/cutils.c      | 4 ++++
util/oslib-posix.c | 4 ----
2 files changed, 4 insertions(+), 4 deletions(-)
[PATCH for-7.1] cutils: Add missing dyld(3) include on macOS
Posted by Philippe Mathieu-Daudé via 1 year, 8 months ago
Commit 06680b15b4 moved qemu_*_exec_dir() to cutils but forgot
to move the macOS dyld(3) include, resulting in the following
error (when building with Homebrew GCC on macOS Monterey 12.4):

  [313/1197] Compiling C object libqemuutil.a.p/util_cutils.c.o
  FAILED: libqemuutil.a.p/util_cutils.c.o
  ../../util/cutils.c:1039:13: error: implicit declaration of function '_NSGetExecutablePath' [-Werror=implicit-function-declaration]
   1039 |         if (_NSGetExecutablePath(fpath, &len) == 0) {
        |             ^~~~~~~~~~~~~~~~~~~~
  ../../util/cutils.c:1039:13: error: nested extern declaration of '_NSGetExecutablePath' [-Werror=nested-externs]

Fix by moving the include line to cutils.

Fixes: 06680b15b4 ("include: move qemu_*_exec_dir() to cutils")
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
Cc: Markus Armbruster <armbru@redhat.com>
---
 util/cutils.c      | 4 ++++
 util/oslib-posix.c | 4 ----
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/util/cutils.c b/util/cutils.c
index cb43dda213..def9c746ce 100644
--- a/util/cutils.c
+++ b/util/cutils.c
@@ -39,6 +39,10 @@
 #include <kernel/image.h>
 #endif
 
+#ifdef __APPLE__
+#include <mach-o/dyld.h>
+#endif
+
 #ifdef G_OS_WIN32
 #include <pathcch.h>
 #include <wchar.h>
diff --git a/util/oslib-posix.c b/util/oslib-posix.c
index bffec18869..d55af69c11 100644
--- a/util/oslib-posix.c
+++ b/util/oslib-posix.c
@@ -58,10 +58,6 @@
 #include <lwp.h>
 #endif
 
-#ifdef __APPLE__
-#include <mach-o/dyld.h>
-#endif
-
 #include "qemu/mmap-alloc.h"
 
 #ifdef CONFIG_DEBUG_STACK_USAGE
-- 
2.36.1


Re: [PATCH for-7.1] cutils: Add missing dyld(3) include on macOS
Posted by Peter Maydell 1 year, 8 months ago
On Tue, 9 Aug 2022 at 23:22, Philippe Mathieu-Daudé via
<qemu-devel@nongnu.org> wrote:
>
> Commit 06680b15b4 moved qemu_*_exec_dir() to cutils but forgot
> to move the macOS dyld(3) include, resulting in the following
> error (when building with Homebrew GCC on macOS Monterey 12.4):
>
>   [313/1197] Compiling C object libqemuutil.a.p/util_cutils.c.o
>   FAILED: libqemuutil.a.p/util_cutils.c.o
>   ../../util/cutils.c:1039:13: error: implicit declaration of function '_NSGetExecutablePath' [-Werror=implicit-function-declaration]
>    1039 |         if (_NSGetExecutablePath(fpath, &len) == 0) {
>         |             ^~~~~~~~~~~~~~~~~~~~
>   ../../util/cutils.c:1039:13: error: nested extern declaration of '_NSGetExecutablePath' [-Werror=nested-externs]
>
> Fix by moving the include line to cutils.
>
> Fixes: 06680b15b4 ("include: move qemu_*_exec_dir() to cutils")
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
> Cc: Markus Armbruster <armbru@redhat.com>

I wonder why this doesn't show up with clang?

Anyway, obvious fix. I'll take it via target-arm.next for my
pull for rc3, unless anybody has a different preference.

thanks
-- PMM
Re: [PATCH for-7.1] cutils: Add missing dyld(3) include on macOS
Posted by Philippe Mathieu-Daudé via 1 year, 8 months ago
+Thomas

On 10/8/22 00:20, Philippe Mathieu-Daudé wrote:
> Commit 06680b15b4 moved qemu_*_exec_dir() to cutils but forgot
> to move the macOS dyld(3) include, resulting in the following
> error (when building with Homebrew GCC on macOS Monterey 12.4):
> 
>    [313/1197] Compiling C object libqemuutil.a.p/util_cutils.c.o
>    FAILED: libqemuutil.a.p/util_cutils.c.o
>    ../../util/cutils.c:1039:13: error: implicit declaration of function '_NSGetExecutablePath' [-Werror=implicit-function-declaration]
>     1039 |         if (_NSGetExecutablePath(fpath, &len) == 0) {
>          |             ^~~~~~~~~~~~~~~~~~~~
>    ../../util/cutils.c:1039:13: error: nested extern declaration of '_NSGetExecutablePath' [-Werror=nested-externs]
> 
> Fix by moving the include line to cutils.
> 
> Fixes: 06680b15b4 ("include: move qemu_*_exec_dir() to cutils")
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
> Cc: Markus Armbruster <armbru@redhat.com>
> ---
>   util/cutils.c      | 4 ++++
>   util/oslib-posix.c | 4 ----
>   2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/util/cutils.c b/util/cutils.c
> index cb43dda213..def9c746ce 100644
> --- a/util/cutils.c
> +++ b/util/cutils.c
> @@ -39,6 +39,10 @@
>   #include <kernel/image.h>
>   #endif
>   
> +#ifdef __APPLE__
> +#include <mach-o/dyld.h>
> +#endif
> +
>   #ifdef G_OS_WIN32
>   #include <pathcch.h>
>   #include <wchar.h>
> diff --git a/util/oslib-posix.c b/util/oslib-posix.c
> index bffec18869..d55af69c11 100644
> --- a/util/oslib-posix.c
> +++ b/util/oslib-posix.c
> @@ -58,10 +58,6 @@
>   #include <lwp.h>
>   #endif
>   
> -#ifdef __APPLE__
> -#include <mach-o/dyld.h>
> -#endif
> -
>   #include "qemu/mmap-alloc.h"
>   
>   #ifdef CONFIG_DEBUG_STACK_USAGE