diff --git a/src/openvpn/buffer.c b/src/openvpn/buffer.c
index 5f2b233..922238d 100644
--- a/src/openvpn/buffer.c
+++ b/src/openvpn/buffer.c
@@ -594,6 +594,7 @@
     return str;
 }
 
+#ifdef _WIN32
 /*
  * like buf_null_terminate, but operate on strings
  */
@@ -610,6 +611,7 @@
         *(str + len - 1) = '\0';
     }
 }
+#endif
 
 /*
  * Remove trailing \r and \n chars.
diff --git a/src/openvpn/buffer.h b/src/openvpn/buffer.h
index 833ae6f..c6722c7 100644
--- a/src/openvpn/buffer.h
+++ b/src/openvpn/buffer.h
@@ -470,7 +470,9 @@
 
 const char *skip_leading_whitespace(const char *str);
 
+#ifdef _WIN32
 void string_null_terminate(char *str, int len, int capacity);
+#endif
 
 /**
  * Write buffer contents to file.
diff --git a/src/openvpn/error.c b/src/openvpn/error.c
index 2900352..26d4c7c 100644
--- a/src/openvpn/error.c
+++ b/src/openvpn/error.c
@@ -84,18 +84,20 @@
 /* If non-null, messages should be written here (used for debugging only) */
 static FILE *msgfp; /* GLOBAL */
 
-/* If true, we forked from main OpenVPN process */
-static bool forked; /* GLOBAL */
-
 /* our default output targets */
 static FILE *default_out; /* GLOBAL */
 static FILE *default_err; /* GLOBAL */
 
+/* If true, we forked from main OpenVPN process */
+static bool forked; /* GLOBAL */
+
+#if PORT_SHARE
 void
 msg_forked(void)
 {
     forked = true;
 }
+#endif
 
 bool
 set_debug_level(const int level, const unsigned int flags)
diff --git a/src/openvpn/error.h b/src/openvpn/error.h
index 3b742d7..45826a2 100644
--- a/src/openvpn/error.h
+++ b/src/openvpn/error.h
@@ -260,8 +260,10 @@
     return check_debug_level(flags) && dont_mute(flags);
 }
 
+#if PORT_SHARE
 /* Call if we forked */
 void msg_forked(void);
+#endif
 
 /* syslog output */
 
@@ -393,12 +395,14 @@
     return false;
 }
 
+#if defined(ENABLE_CRYPTO_OPENSSL)
 /** Convert fatal errors to nonfatal, don't touch other errors */
 static inline msglvl_t
 nonfatal(const msglvl_t err)
 {
     return (err & M_FATAL) ? (err ^ M_FATAL) | M_NONFATAL : err;
 }
+#endif
 
 static inline int
 openvpn_errno_maybe_crt(bool *crt_error)
diff --git a/src/openvpn/socket.c b/src/openvpn/socket.c
index 8bcc332..0f66ad51 100644
--- a/src/openvpn/socket.c
+++ b/src/openvpn/socket.c
@@ -2961,6 +2961,8 @@
     return rwflags;
 }
 
+#if UNIX_SOCK_SUPPORT
+
 void
 sd_close(socket_descriptor_t *sd)
 {
@@ -2971,8 +2973,6 @@
     }
 }
 
-#if UNIX_SOCK_SUPPORT
-
 /*
  * code for unix domain sockets
  */
diff --git a/src/openvpn/socket.h b/src/openvpn/socket.h
index b490610..1a532e1 100644
--- a/src/openvpn/socket.h
+++ b/src/openvpn/socket.h
@@ -366,7 +366,9 @@
 
 void link_socket_close(struct link_socket *sock);
 
+#ifdef ENABLE_MANAGEMENT
 void sd_close(socket_descriptor_t *sd);
+#endif
 
 void bad_address_length(int actual, int expected);
 
diff --git a/src/openvpn/socket_util.h b/src/openvpn/socket_util.h
index 13deeaa..13f5962 100644
--- a/src/openvpn/socket_util.h
+++ b/src/openvpn/socket_util.h
@@ -250,6 +250,7 @@
     }
 }
 
+#ifdef TARGET_ANDROID
 static inline bool
 addr_local(const struct sockaddr *addr)
 {
@@ -269,12 +270,12 @@
             return false;
     }
 }
+#endif
 
-
+#if ENABLE_IP_PKTINFO
 static inline bool
 addr_defined_ipi(const struct link_socket_actual *lsa)
 {
-#if ENABLE_IP_PKTINFO
     if (!lsa)
     {
         return 0;
@@ -296,11 +297,9 @@
         default:
             return 0;
     }
-#else /* if ENABLE_IP_PKTINFO */
-    ASSERT(0);
-#endif
     return false;
 }
+#endif
 
 /*
  * Overhead added to packets by various protocols.
diff --git a/src/openvpn/ssl_openssl.c b/src/openvpn/ssl_openssl.c
index 32b13db..e4b760e 100644
--- a/src/openvpn/ssl_openssl.c
+++ b/src/openvpn/ssl_openssl.c
@@ -436,6 +436,7 @@
     }
 }
 
+#ifdef TLS1_3_VERSION
 static void
 convert_tls13_list_to_openssl(char *openssl_ciphers, size_t len, const char *ciphers)
 {
@@ -460,6 +461,7 @@
         }
     }
 }
+#endif
 
 void
 tls_ctx_restrict_ciphers_tls13(struct tls_root_ctx *ctx, const char *ciphers)
diff --git a/tests/unit_tests/openvpn/test_pkcs11.c b/tests/unit_tests/openvpn/test_pkcs11.c
index 8b6e594..042bd8b 100644
--- a/tests/unit_tests/openvpn/test_pkcs11.c
+++ b/tests/unit_tests/openvpn/test_pkcs11.c
@@ -45,6 +45,7 @@
 
 struct management *management; /* global */
 
+#if defined(ENABLE_CRYPTO_OPENSSL)
 /* replacement for crypto_print_openssl_errors() */
 void
 crypto_print_openssl_errors(const unsigned int flags)
@@ -55,6 +56,7 @@
         msg(flags, "OpenSSL error %lu: %s", e, ERR_error_string(e, NULL));
     }
 }
+#endif
 
 /* stubs for some unused functions instead of pulling in too many dependencies */
 int
