Original approach build on assumption that ucontext is available and CET
always means Shadow Stack. Both aren't true for OpenBSD.

This patch fixes OpenBSD but might break the other platform.

Index: libphobos/libdruntime/config/x86/switchcontext.S
--- libphobos/libdruntime/config/x86/switchcontext.S.orig
+++ libphobos/libdruntime/config/x86/switchcontext.S
@@ -27,10 +27,10 @@ see the files COPYING3 and COPYING.RUNTIME respectivel
 /* NB: Generate the CET marker for -fcf-protection.  */
 #ifdef __CET__
 # include <cet.h>
+#else
+# define _CET_ENDBR
 #endif
 
-#if !defined(__CET__)
-
 # if defined(__ELF__)
 
 #  if defined(__i386__)
@@ -41,6 +41,7 @@ see the files COPYING3 and COPYING.RUNTIME respectivel
     .align 16
 CSYM(fiber_switchContext):
     .cfi_startproc
+    _CET_ENDBR
     // save current stack state
     push %ebp
     mov  %esp, %ebp
@@ -77,6 +78,7 @@ CSYM(fiber_switchContext):
     .align 16
 CSYM(fiber_switchContext):
     .cfi_startproc
+    _CET_ENDBR
     // Save current stack state.save current stack state
     push %rbp
     mov  %rsp, %rbp
@@ -107,6 +109,8 @@ CSYM(fiber_switchContext):
 #  endif /* defined(__ELF__) && defined(__x86_64__) && !defined(__ILP32__) */
 
 # endif /* defined(__ELF__) */
+
+#if !defined(__CET__)
 
 # if defined(__MACH__)
 
