]> granicus.if.org Git - php/commitdiff
Haiku opcache jit build update
authorDavid Carlier <devnexen@gmail.com>
Sat, 20 Jun 2020 16:45:01 +0000 (16:45 +0000)
committerDmitry Stogov <dmitry@zend.com>
Mon, 22 Jun 2020 06:28:58 +0000 (09:28 +0300)
ext/opcache/jit/zend_elf.c
ext/opcache/jit/zend_jit_perf_dump.c

index f8a1325db213f3f402b7a1b36c8e191e3a9c2c1b..2618f5a488d2d2ea8db4a79a4443584ec26d4c05 100644 (file)
@@ -21,6 +21,8 @@
 #include <sys/stat.h>
 #if defined(__FreeBSD__)
 #include <sys/sysctl.h>
+#elif defined(__HAIKU__)
+#include <kernel/image.h>
 #endif
 #include <fcntl.h>
 #include <unistd.h>
@@ -64,6 +66,21 @@ void zend_elf_load_symbols(void)
 #elif defined(__sun)
        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) {
+               return;
+       }
+
+       int fd = open(ii.name, O_RDONLY);
 #else
        // To complete eventually for other ELF platforms.
        // Otherwise APPLE is Mach-O
index e61c49289535e60d3322815e0a490e73c085b64b..94feba1f07d8c9a4a118a1314f7d5181e67a7ae1 100644 (file)
@@ -35,6 +35,8 @@
 #elif defined(__sun)
 // avoiding thread.h inclusion as it conflicts with vtunes types.
 extern unsigned int thr_self(void);
+#elif defined(__HAIKU__)
+#include <kernel/image.h>
 #endif
 
 #include "zend_elf.h"
@@ -133,6 +135,21 @@ static void zend_jit_perf_jitdump_open(void)
 #elif defined(__sun)
        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) {
+               return;
+       }
+
+       fd = open(ii.name, O_RDONLY);
 #else
        fd = -1;
 #endif