--- coregrind/m_stacktrace.c.orig
+++ coregrind/m_stacktrace.c
@@ -93,7 +93,8 @@
 /* ------------------------ x86 ------------------------- */
 
 #if defined(VGP_x86_linux) || defined(VGP_x86_darwin) \
-    || defined(VGP_x86_solaris) || defined(VGP_x86_freebsd)
+    || defined(VGP_x86_solaris) || defined(VGP_x86_freebsd) \
+    || defined(VGP_x86_openbsd)
 
 #define N_FP_CF_VERIF 1021
 // prime number so that size of fp_CF_verif is just below 4K or 8K
@@ -239,14 +240,15 @@
    if (fp_min + 512 >= fp_max) {
       /* If the stack limits look bogus, don't poke around ... but
          don't bomb out either. */
-#  elif defined(VGO_solaris) || defined(VGO_freebsd)
+#  elif defined(VGO_solaris) || defined(VGO_freebsd) || defined(VGO_openbsd)
    if (fp_max == 0) {
       /* VG_(get_StackTrace)() can be called by tools very early when
          various tracing options are enabled. Don't proceed further
          if the stack limits look bogus.
        */
 #  endif
-#  if defined(VGO_linux) || defined(VGO_solaris) || defined(VGO_freebsd)
+#  if defined(VGO_linux) || defined(VGO_solaris) || defined(VGO_freebsd) \
+      || defined(VGO_openbsd)
       if (sps) sps[0] = uregs.xsp;
       if (fps) fps[0] = uregs.xbp;
       ips[0] = uregs.xip;
@@ -519,7 +521,8 @@
 /* ----------------------- amd64 ------------------------ */
 
 #if defined(VGP_amd64_linux) || defined(VGP_amd64_darwin) \
-    || defined(VGP_amd64_solaris) || defined(VGP_amd64_freebsd)
+    || defined(VGP_amd64_solaris) || defined(VGP_amd64_freebsd) \
+    || defined(VGP_amd64_openbsd)
 
 UInt VG_(get_StackTrace_wrk) ( ThreadId tid_if_known,
                                /*OUT*/Addr* ips, UInt max_n_ips,
