$OpenBSD: patch-src_lib_syscall_c,v 1.1 2018/01/29 21:44:30 gsoares Exp $

Index: src/lib/syscall.c
--- src/lib/syscall.c.orig
+++ src/lib/syscall.c
@@ -84,7 +84,8 @@ static LIBC_ACCEPT_RET_TYPE handle_accept(va_list args
 	return tsocks_accept(sockfd, addr, &addrlen);
 }
 
-#if (defined(__linux__) || defined(__darwin__) || (defined(__FreeBSD_kernel__) && defined(__i386__)) || defined(__NetBSD__))
+#if (defined(__linux__) || defined(__darwin__) || (defined(__FreeBSD_kernel__) && \
+			defined(__i386__)) || defined(__NetBSD__) || defined(__OpenBSD__))
 /*
  * Handle mmap(2) syscall.
  */
@@ -104,7 +105,7 @@ static LIBC_SYSCALL_RET_TYPE handle_mmap(va_list args)
 
 	return (LIBC_SYSCALL_RET_TYPE) mmap(addr, len, prot, flags, fd, offset);
 }
-#endif /* __linux__, __darwin__, __FreeBSD_kernel__, __i386__, __NetBSD__ */
+#endif /* __linux__, __darwin__, __FreeBSD_kernel__, __i386__, __NetBSD__, __OpenBSD__ */
 
 /*
  * Handle munmap(2) syscall.
@@ -392,7 +393,8 @@ LIBC_SYSCALL_RET_TYPE tsocks_syscall(long int number, 
 		ret = handle_close(args);
 		break;
 	case TSOCKS_NR_MMAP:
-#if (defined(__NetBSD__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) && defined(__x86_64)
+#if (defined(__NetBSD__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \
+		defined(__OpenBSD__) && defined(__x86_64))
 		/*
 		 * On an 64 bit *BSD system, __syscall(2) should be used for mmap().
 		 * This is NOT suppose to happen but for protection we deny that call.
@@ -421,7 +423,7 @@ LIBC_SYSCALL_RET_TYPE tsocks_syscall(long int number, 
 		 * own memory using mmap() called by syscall(). Same for munmap().
 		 */
 		ret = handle_mmap(args);
-#endif /* __NetBSD__, __FreeBSD__, __FreeBSD_kernel__, __x86_64 */
+#endif /* __NetBSD__, __FreeBSD__, __FreeBSD_kernel__, __x86_64, __OpenBSD__ */
 		break;
 	case TSOCKS_NR_MUNMAP:
 		ret = handle_munmap(args);
@@ -516,7 +518,7 @@ LIBC_SYSCALL_DECL
 }
 
 /* Only used for *BSD systems. */
-#if (defined(__NetBSD__) || defined(__FreeBSD__))
+#if (defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__))
 
 /* __syscall(2) */
 TSOCKS_LIBC_DECL(__syscall, LIBC___SYSCALL_RET_TYPE, LIBC___SYSCALL_SIG)
@@ -580,4 +582,4 @@ LIBC___SYSCALL_DECL
 	return ret;
 }
 
-#endif /* __NetBSD__, __FreeBSD__ */
+#endif /* __NetBSD__, __FreeBSD__, __OpenBSD__ */
