[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v20 11/11] oslib: port qemu_init_exec_dir to Darwin
From: |
Fam Zheng |
Subject: |
[Qemu-devel] [PATCH v20 11/11] oslib: port qemu_init_exec_dir to Darwin |
Date: |
Mon, 10 Feb 2014 14:49:01 +0800 |
Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>
---
util/oslib-posix.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/util/oslib-posix.c b/util/oslib-posix.c
index c2eeb4f..3214e44 100644
--- a/util/oslib-posix.c
+++ b/util/oslib-posix.c
@@ -59,6 +59,12 @@ extern int daemon(int, int);
#include <sys/mman.h>
#include <libgen.h>
+/* Get declaration of _NSGetExecutablePath on MacOS X 10.2 or newer. */
+#if defined(__APPLE__) && defined(__MACH__)
+#define ENUM_DYLD_BOOL
+#include <mach-o/dyld.h>
+#endif
+
#ifdef CONFIG_LINUX
#include <sys/syscall.h>
#endif
@@ -307,6 +313,15 @@ void qemu_init_exec_dir(const char *argv0)
p = buf;
}
}
+#elif defined(__APPLE__) && defined(__MACH__)
+ {
+ char result[PATH_MAX];
+ uint32_t length = PATH_MAX;
+ if (_NSGetExecutablePath(result, &length) != 0 || result[0] != '/') {
+ return;
+ }
+ p = realpath(result, buf);
+ }
#endif
/* If we don't have any way of figuring out the actual executable
location then try argv[0]. */
--
1.8.5.4
- [Qemu-devel] [PATCH v20 02/11] rules.mak: fix $(obj) to a real relative path, (continued)
- [Qemu-devel] [PATCH v20 02/11] rules.mak: fix $(obj) to a real relative path, Fam Zheng, 2014/02/10
- [Qemu-devel] [PATCH v20 01/11] util: Split out exec_dir from os_find_datadir, Fam Zheng, 2014/02/10
- [Qemu-devel] [PATCH v20 03/11] rules.mak: allow per object cflags and libs, Fam Zheng, 2014/02/10
- [Qemu-devel] [PATCH v20 04/11] block: use per-object cflags and libs, Fam Zheng, 2014/02/10
- [Qemu-devel] [PATCH v20 05/11] darwin: do not use -mdynamic-no-pic, Fam Zheng, 2014/02/10
- [Qemu-devel] [PATCH v20 06/11] rules.mak: introduce DSO rules, Fam Zheng, 2014/02/10
- [Qemu-devel] [PATCH v20 08/11] Makefile: install modules with "make install", Fam Zheng, 2014/02/10
- [Qemu-devel] [PATCH v20 07/11] module: implement module loading, Fam Zheng, 2014/02/10
- [Qemu-devel] [PATCH v20 09/11] Makefile: introduce common-obj-m and block-obj-m for DSO, Fam Zheng, 2014/02/10
- [Qemu-devel] [PATCH v20 10/11] block: convert block drivers linked with libs to modules, Fam Zheng, 2014/02/10
- [Qemu-devel] [PATCH v20 11/11] oslib: port qemu_init_exec_dir to Darwin,
Fam Zheng <=
- Re: [Qemu-devel] [PATCH v20 00/11] Shared library module support, Fam Zheng, 2014/02/17