[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] util/oslib-posix : qemu_init_exec_dir implementation for Mac
From: |
David CARLIER |
Subject: |
Re: [PATCH] util/oslib-posix : qemu_init_exec_dir implementation for MacOS |
Date: |
Wed, 3 Jun 2020 07:16:56 +0100 |
Little bit better the second version of the patch, difficult to sort
out things with mailing list :-)
>From ce857629697e8b6a2149fd3a1e16b7eea26aafca Mon Sep 17 00:00:00 2001
From: David Carlier <devnexen@gmail.com>
Date: Tue, 26 May 2020 21:35:27 +0100
Subject: [PATCH] util/oslib: current process full path resolution on MacOS
Using existing libproc to fill the path.
Signed-off-by: David Carlier <devnexen@gmail.com>
---
util/oslib-posix.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/util/oslib-posix.c b/util/oslib-posix.c
index 062236a1ab..445af2f9be 100644
--- a/util/oslib-posix.c
+++ b/util/oslib-posix.c
@@ -55,6 +55,10 @@
#include <sys/sysctl.h>
#endif
+#ifdef __APPLE__
+#include <libproc.h>
+#endif
+
#include "qemu/mmap-alloc.h"
#ifdef CONFIG_DEBUG_STACK_USAGE
@@ -366,6 +370,15 @@ void qemu_init_exec_dir(const char *argv0)
p = buf;
}
}
+#elif defined(__APPLE__)
+ {
+ int len;
+ len = proc_pidpath(getpid(), buf, sizeof(buf) - 1);
+ if (len > 0) {
+ buf[len] = 0;
+ p = buf;
+ }
+ }
#endif
/* If we don't have any way of figuring out the actual executable
location then try argv[0]. */
--
2.26.2
On Wed, 3 Jun 2020 at 07:08, Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
>
> Cc'ing more developers.
>
> On 5/26/20 10:40 PM, David CARLIER wrote:
> > From b24a6702beb2a4e2a9c1c03b69c6d1dd07d4cf08 Mon Sep 17 00:00:00 2001
> > From: David Carlier <devnexen@gmail.com>
> > Date: Tue, 26 May 2020 21:35:27 +0100
> > Subject: [PATCH] util/oslib: current process full path resolution on MacOS
> >
> > Using existing libproc to fill the path.
> >
> > Signed-off-by: David Carlier <devnexen@gmail.com>
> > ---
> > util/oslib-posix.c | 13 +++++++++++++
> > 1 file changed, 13 insertions(+)
> >
> > diff --git a/util/oslib-posix.c b/util/oslib-posix.c
> > index 062236a1ab..96f0405ee6 100644
> > --- a/util/oslib-posix.c
> > +++ b/util/oslib-posix.c
> > @@ -55,6 +55,10 @@
> > #include <sys/sysctl.h>
> > #endif
> >
> > +#ifdef __APPLE__
> > +#include <libproc.h>
> > +#endif
> > +
> > #include "qemu/mmap-alloc.h"
> >
> > #ifdef CONFIG_DEBUG_STACK_USAGE
> > @@ -366,6 +370,15 @@ void qemu_init_exec_dir(const char *argv0)
> > p = buf;
> > }
> > }
> > +#elif defined(__APPLE__)
> > + {
> > + uint32_t len;
> > + len = proc_pidpath(getpid(), buf, sizeof(buf) - 1);
> > + if (len > 0) {
> > + buf[len] = 0;
> > + p = buf;
> > + }
> > + }
> > #endif
> > /* If we don't have any way of figuring out the actual executable
> > location then try argv[0]. */
> >
>