summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/opcache/jit/zend_elf.c17
-rw-r--r--ext/opcache/jit/zend_jit_perf_dump.c17
2 files changed, 10 insertions, 24 deletions
diff --git a/ext/opcache/jit/zend_elf.c b/ext/opcache/jit/zend_elf.c
index 2618f5a488..58d6fdd72c 100644
--- a/ext/opcache/jit/zend_elf.c
+++ b/ext/opcache/jit/zend_elf.c
@@ -22,7 +22,7 @@
#if defined(__FreeBSD__)
#include <sys/sysctl.h>
#elif defined(__HAIKU__)
-#include <kernel/image.h>
+#include <FindDirectory.h>
#endif
#include <fcntl.h>
#include <unistd.h>
@@ -67,20 +67,13 @@ void zend_elf_load_symbols(void)
const char *path = getexecname();
int fd = open(path, O_RDONLY);
#elif defined(__HAIKU__)
- image_info ii;
- int32_t ic = 0;
-
- while (get_next_image_info(0, &ic, &ii) == B_OK) {
- if (ii.type == B_APP_IMAGE) {
- break;
- }
- }
-
- if (ii.type != B_APP_IMAGE) {
+ char path[PATH_MAX];
+ if (find_path(B_APP_IMAGE_SYMBOL, B_FIND_PATH_IMAGE_PATH,
+ NULL, path, sizeof(path)) != B_OK) {
return;
}
- int fd = open(ii.name, O_RDONLY);
+ int fd = open(path, O_RDONLY);
#else
// To complete eventually for other ELF platforms.
// Otherwise APPLE is Mach-O
diff --git a/ext/opcache/jit/zend_jit_perf_dump.c b/ext/opcache/jit/zend_jit_perf_dump.c
index 94feba1f07..613280c217 100644
--- a/ext/opcache/jit/zend_jit_perf_dump.c
+++ b/ext/opcache/jit/zend_jit_perf_dump.c
@@ -36,7 +36,7 @@
// avoiding thread.h inclusion as it conflicts with vtunes types.
extern unsigned int thr_self(void);
#elif defined(__HAIKU__)
-#include <kernel/image.h>
+#include <FindDirectory.h>
#endif
#include "zend_elf.h"
@@ -136,20 +136,13 @@ static void zend_jit_perf_jitdump_open(void)
const char *path = getexecname();
fd = open(path, O_RDONLY);
#elif defined(__HAIKU__)
- image_info ii;
- int32_t ic = 0;
-
- while (get_next_image_info(0, &ic, &ii) == B_OK) {
- if (ii.type == B_APP_IMAGE) {
- break;
- }
- }
-
- if (ii.type != B_APP_IMAGE) {
+ char path[PATH_MAX];
+ if (find_path(B_APP_IMAGE_SYMBOL, B_FIND_PATH_IMAGE_PATH,
+ NULL, path, sizeof(path)) != B_OK) {
return;
}
- fd = open(ii.name, O_RDONLY);
+ fd = open(path, O_RDONLY);
#else
fd = -1;
#endif