diff --git a/src/core/ngx_conf_file.c b/src/core/ngx_conf_file.c
index 892fa47..01715af 100644
--- a/src/core/ngx_conf_file.c
+++ b/src/core/ngx_conf_file.c
@@ -1448,12 +1448,16 @@
 }
 
 
+#if 0
+
 char *
 ngx_conf_unsupported(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 {
     return "unsupported on this platform";
 }
 
+#endif
+
 
 char *
 ngx_conf_deprecated(ngx_conf_t *cf, void *post, void *data)
diff --git a/src/core/ngx_crypt.c b/src/core/ngx_crypt.c
index 9564c36..365f9c8 100644
--- a/src/core/ngx_crypt.c
+++ b/src/core/ngx_crypt.c
@@ -6,6 +6,7 @@
 
 #include <ngx_config.h>
 #include <ngx_core.h>
+#include <ngx_crypt.h>
 #include <ngx_md5.h>
 #if (NGX_HAVE_SHA1)
 #include <ngx_sha1.h>
diff --git a/src/event/modules/ngx_epoll_module.c b/src/event/modules/ngx_epoll_module.c
index a733949..ee77d8e 100644
--- a/src/event/modules/ngx_epoll_module.c
+++ b/src/event/modules/ngx_epoll_module.c
@@ -44,16 +44,25 @@
     epoll_data_t  data;
 };
 
+
+int epoll_create(int size);
+
 int epoll_create(int size)
 {
     return -1;
 }
 
+
+int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);
+
 int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)
 {
     return -1;
 }
 
+
+int epoll_wait(int epfd, struct epoll_event *events, int nevents, int timeout);
+
 int epoll_wait(int epfd, struct epoll_event *events, int nevents, int timeout)
 {
     return -1;
@@ -76,11 +85,6 @@
 };
 
 
-int eventfd(u_int initval)
-{
-    return -1;
-}
-
 #endif
 #endif
 
diff --git a/src/event/modules/ngx_eventport_module.c b/src/event/modules/ngx_eventport_module.c
index bbcd6dd..d6dcb0b 100644
--- a/src/event/modules/ngx_eventport_module.c
+++ b/src/event/modules/ngx_eventport_module.c
@@ -15,6 +15,12 @@
 #define ushort_t  u_short
 #define uint_t    u_int
 
+#ifndef CLOCK_REALTIME
+#define CLOCK_REALTIME          0
+typedef int     clockid_t;
+typedef void *  timer_t;
+#endif
+
 /* Solaris declarations */
 
 #define PORT_SOURCE_AIO         1
@@ -24,7 +30,9 @@
 #define PORT_SOURCE_ALERT       5
 #define PORT_SOURCE_MQ          6
 
+#ifndef ETIME
 #define ETIME                   64
+#endif
 
 #define SIGEV_PORT              4
 
@@ -50,39 +58,62 @@
 
 #endif
 
+int port_create(void);
+
 int port_create(void)
 {
     return -1;
 }
 
+
+int port_associate(int port, int source, uintptr_t object, int events,
+    void *user);
+
 int port_associate(int port, int source, uintptr_t object, int events,
     void *user)
 {
     return -1;
 }
 
+
+int port_dissociate(int port, int source, uintptr_t object);
+
 int port_dissociate(int port, int source, uintptr_t object)
 {
     return -1;
 }
 
+
+int port_getn(int port, port_event_t list[], uint_t max, uint_t *nget,
+    struct timespec *timeout);
+
 int port_getn(int port, port_event_t list[], uint_t max, uint_t *nget,
     struct timespec *timeout)
 {
     return -1;
 }
 
+
+int timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid);
+
 int timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
 {
     return -1;
 }
 
+
+int timer_settime(timer_t timerid, int flags, const struct itimerspec *value,
+    struct itimerspec *ovalue);
+
 int timer_settime(timer_t timerid, int flags, const struct itimerspec *value,
     struct itimerspec *ovalue)
 {
     return -1;
 }
 
+
+int timer_delete(timer_t timerid);
+
 int timer_delete(timer_t timerid)
 {
     return -1;
diff --git a/src/event/modules/ngx_rtsig_module.c b/src/event/modules/ngx_rtsig_module.c
index 2f0f997..b36230c 100644
--- a/src/event/modules/ngx_rtsig_module.c
+++ b/src/event/modules/ngx_rtsig_module.c
@@ -12,6 +12,13 @@
 
 #if (NGX_TEST_BUILD_RTSIG)
 
+#if (NGX_DARWIN)
+
+#define SIGRTMIN       33
+#define si_fd          __pad[0]
+
+#else
+
 #ifdef  SIGRTMIN
 #define si_fd          _reason.__spare__.__spare2__[0]
 #else
@@ -19,11 +26,16 @@
 #define si_fd          __spare__[0]
 #endif
 
+#endif
+
 #define F_SETSIG       10
 #define KERN_RTSIGNR   30
 #define KERN_RTSIGMAX  31
 
 int sigtimedwait(const sigset_t *set, siginfo_t *info,
+                 const struct timespec *timeout);
+
+int sigtimedwait(const sigset_t *set, siginfo_t *info,
                  const struct timespec *timeout)
 {
     return -1;
diff --git a/src/event/ngx_event.c b/src/event/ngx_event.c
index c584dd8..2120ed7 100644
--- a/src/event/ngx_event.c
+++ b/src/event/ngx_event.c
@@ -567,7 +567,7 @@
 
 #if !(NGX_WIN32)
 
-void
+static void
 ngx_timer_signal_handler(int signo)
 {
     ngx_event_timer_alarm = 1;
diff --git a/src/http/modules/ngx_http_log_module.c b/src/http/modules/ngx_http_log_module.c
index edb1459..5b9c799 100644
--- a/src/http/modules/ngx_http_log_module.c
+++ b/src/http/modules/ngx_http_log_module.c
@@ -218,7 +218,7 @@
 };
 
 
-ngx_int_t
+static ngx_int_t
 ngx_http_log_handler(ngx_http_request_t *r)
 {
     u_char                   *line, *p;
diff --git a/src/http/modules/ngx_http_upstream_least_conn_module.c b/src/http/modules/ngx_http_upstream_least_conn_module.c
index 50e68b2..21156ae 100644
--- a/src/http/modules/ngx_http_upstream_least_conn_module.c
+++ b/src/http/modules/ngx_http_upstream_least_conn_module.c
@@ -81,7 +81,7 @@
 };
 
 
-ngx_int_t
+static ngx_int_t
 ngx_http_upstream_init_least_conn(ngx_conf_t *cf,
     ngx_http_upstream_srv_conf_t *us)
 {
diff --git a/src/http/ngx_http_parse_time.c b/src/http/ngx_http_parse_time.c
index 3801df2..985af31 100644
--- a/src/http/ngx_http_parse_time.c
+++ b/src/http/ngx_http_parse_time.c
@@ -7,6 +7,7 @@
 
 #include <ngx_config.h>
 #include <ngx_core.h>
+#include <ngx_http.h>
 
 
 static ngx_uint_t  mday[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
diff --git a/src/mail/ngx_mail_parse.c b/src/mail/ngx_mail_parse.c
index ae0f7e3..eb16d5b 100644
--- a/src/mail/ngx_mail_parse.c
+++ b/src/mail/ngx_mail_parse.c
@@ -9,6 +9,9 @@
 #include <ngx_core.h>
 #include <ngx_event.h>
 #include <ngx_mail.h>
+#include <ngx_mail_pop3_module.h>
+#include <ngx_mail_imap_module.h>
+#include <ngx_mail_smtp_module.h>
 
 
 ngx_int_t
diff --git a/src/misc/ngx_cpp_test_module.cpp b/src/misc/ngx_cpp_test_module.cpp
index 8f87dcd..3cbc0a8 100644
--- a/src/misc/ngx_cpp_test_module.cpp
+++ b/src/misc/ngx_cpp_test_module.cpp
@@ -20,6 +20,8 @@
 // #include <string>
 
 
+void ngx_cpp_test_handler(void *data);
+
 void
 ngx_cpp_test_handler(void *data)
 {
diff --git a/src/os/unix/ngx_atomic.h b/src/os/unix/ngx_atomic.h
index 104ac37..417cd86 100644
--- a/src/os/unix/ngx_atomic.h
+++ b/src/os/unix/ngx_atomic.h
@@ -48,7 +48,9 @@
 #include <libkern/OSAtomic.h>
 
 /* "bool" conflicts with perl's CORE/handy.h */
+#if 0
 #undef bool
+#endif
 
 
 #define NGX_HAVE_ATOMIC_OPS  1
diff --git a/src/os/unix/ngx_posix_init.c b/src/os/unix/ngx_posix_init.c
index eea65a9..58e6f76 100644
--- a/src/os/unix/ngx_posix_init.c
+++ b/src/os/unix/ngx_posix_init.c
@@ -98,6 +98,8 @@
 }
 
 
+#if 0
+
 ngx_int_t
 ngx_posix_post_conf_init(ngx_log_t *log)
 {
@@ -122,3 +124,5 @@
 
     return NGX_OK;
 }
+
+#endif
diff --git a/src/os/unix/ngx_solaris_sendfilev_chain.c b/src/os/unix/ngx_solaris_sendfilev_chain.c
index f800c15..520eaaa 100644
--- a/src/os/unix/ngx_solaris_sendfilev_chain.c
+++ b/src/os/unix/ngx_solaris_sendfilev_chain.c
@@ -29,6 +29,9 @@
     return -1;
 }
 
+ngx_chain_t *ngx_solaris_sendfilev_chain(ngx_connection_t *c, ngx_chain_t *in,
+    off_t limit);
+
 #endif
 
 
