diff --git a/src/backend/storage/lmgr/s_lock.c b/src/backend/storage/lmgr/s_lock.c
index 40d8156331feb4e3044bd88a44165292a1a2a8a3..247d7b8199d27b60664daeaa947212e610b42333 100644
--- a/src/backend/storage/lmgr/s_lock.c
+++ b/src/backend/storage/lmgr/s_lock.c
@@ -251,7 +251,7 @@ static void
 tas_dummy()
 {
 	__asm__ __volatile__(
-#if defined(__NetBSD__) && defined(__ELF__)
+#if (defined(__NetBSD__) || defined(__OpenBSD__)) && defined(__ELF__)
 /* no underscore for label and % for registers */
 						 "\
 .global		tas 				\n\
@@ -276,7 +276,7 @@ _tas:							\n\
 _success:						\n\
 			moveq 	#0,d0		\n\
 			rts					\n"
-#endif							/* __NetBSD__ && __ELF__ */
+#endif							/* (__NetBSD__ || __OpenBSD__) && __ELF__ */
 		);
 }
 #endif							/* __m68k__ && !__linux__ */