Here is a diff to add getexecpath() support for QEMU.

Index: Makefile
===================================================================
RCS file: /cvs/ports/emulators/qemu/Makefile,v
retrieving revision 1.266
diff -u -p -u -p -r1.266 Makefile
--- Makefile    3 Sep 2026 08:58:14 -0000       1.266
+++ Makefile    18 Sep 2026 05:59:29 -0000
@@ -8,6 +8,7 @@ COMMENT-ga=     QEMU guest agent
 
 VERSION=       11.1.1
 DISTNAME=      qemu-${VERSION}
+REVISION=      0
 CATEGORIES=    emulators
 SITES=         https://download.qemu.org/
 EXTRACT_SUFX=  .tar.xz
Index: patches/patch-meson_build
===================================================================
RCS file: /cvs/ports/emulators/qemu/patches/patch-meson_build,v
retrieving revision 1.23
diff -u -p -u -p -r1.23 patch-meson_build
--- patches/patch-meson_build   3 Sep 2026 08:58:14 -0000       1.23
+++ patches/patch-meson_build   18 Sep 2026 05:59:29 -0000
@@ -1,3 +1,5 @@
+- util/cutils: Use getexecpath() on OpenBSD for qemu_init_exec_dir()
+
 - localstatedir does not belong under prefix
 - remove hardcoding of optimization
 
@@ -13,7 +15,22 @@ Index: meson.build
  config_host_data.set_quoted('CONFIG_QEMU_MODDIR', get_option('prefix') / 
qemu_moddir)
  config_host_data.set_quoted('CONFIG_SYSCONFDIR', get_option('prefix') / 
get_option('sysconfdir'))
  
-@@ -4753,9 +4753,6 @@ if have_rust
+@@ -3030,6 +3030,14 @@ config_host_data.set('CONFIG_ELF_AUX_INFO', cc.links(o
+     return hwcap;
+   }'''))
+ 
++config_host_data.set('CONFIG_GETEXECPATH', cc.links(osdep_prefix + '''
++  #include <limits.h>
++  #include <unistd.h>
++  int main(void) {
++    char buf[PATH_MAX];
++    getexecpath(buf, sizeof(buf));
++  }'''))
++
+ config_host_data.set('CONFIG_USBFS', have_linux_user and cc.compiles('''
+   #include <linux/usbdevice_fs.h>
+ 
+@@ -4753,9 +4761,6 @@ if have_rust
    summary_info += {'bindgen version': bindgen.version()}
  endif
  option_cflags = (get_option('debug') ? ['-g'] : [])
Index: patches/patch-util_cutils_c
===================================================================
RCS file: patches/patch-util_cutils_c
diff -N patches/patch-util_cutils_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-util_cutils_c 18 Sep 2026 05:59:29 -0000
@@ -0,0 +1,18 @@
+- util/cutils: Use getexecpath() on OpenBSD for qemu_init_exec_dir()
+
+Index: util/cutils.c
+--- util/cutils.c.orig
++++ util/cutils.c
+@@ -1091,6 +1091,12 @@ void qemu_init_exec_dir(const char *argv0)
+             p = buf;
+         }
+     }
++#elif defined(__OpenBSD__) && defined(CONFIG_GETEXECPATH)
++    {
++        if (getexecpath(buf, sizeof(buf)) == 0) {
++            p = buf;
++        }
++    }
+ #elif defined(__APPLE__)
+     {
+         char fpath[PATH_MAX];

Reply via email to