Index: roard/auth.c
===================================================================
--- roard/auth.c	(revision 5146)
+++ roard/auth.c	(revision 5192)
@@ -27,4 +27,7 @@
 
 #define _NONE ROAR_AUTH_T_AUTO
+
+// declared 'extern'
+struct auth_key g_auth_keyring[AUTH_KEYRING_LEN];
 
 int auth_init (void) {
Index: roard/clients.c
===================================================================
--- roard/clients.c	(revision 5190)
+++ roard/clients.c	(revision 5192)
@@ -30,4 +30,9 @@
 #include "roard.h"
 
+// declared 'extern'
+struct roar_client_server * g_clients[ROAR_CLIENTS_MAX];
+struct roard_proto g_proto[MAX_PROTOS];
+
+
 struct roard_proto g_proto[MAX_PROTOS] = {
 #ifndef ROAR_WITHOUT_DCOMP_EMUL_ESD
Index: roard/include/auth.h
===================================================================
--- roard/include/auth.h	(revision 4745)
+++ roard/include/auth.h	(revision 5192)
@@ -65,5 +65,5 @@
 };
 
-struct auth_key g_auth_keyring[AUTH_KEYRING_LEN];
+extern struct auth_key g_auth_keyring[AUTH_KEYRING_LEN];
 
 int auth_init (void);
Index: roard/include/client.h
===================================================================
--- roard/include/client.h	(revision 5146)
+++ roard/include/client.h	(revision 5192)
@@ -63,5 +63,5 @@
 };
 
-struct roar_client_server {
+extern struct roar_client_server {
  struct roar_client _client;
  size_t blockc;
@@ -83,5 +83,5 @@
 
 #define MAX_PROTOS 8
-struct roard_proto g_proto[MAX_PROTOS];
+extern struct roard_proto g_proto[MAX_PROTOS];
 
 // basic functions
Index: roard/include/output.h
===================================================================
--- roard/include/output.h	(revision 4852)
+++ roard/include/output.h	(revision 5192)
@@ -68,7 +68,7 @@
                                                 )
 
-void         * g_output_buffer;
-void         * g_input_buffer;
-size_t         g_output_buffer_len;
+extern void         * g_output_buffer;
+extern void         * g_input_buffer;
+extern size_t         g_output_buffer_len;
 #define        g_input_buffer_len g_output_buffer_len
 
Index: roard/include/roard.h
===================================================================
--- roard/include/roard.h	(revision 5180)
+++ roard/include/roard.h	(revision 5192)
@@ -140,13 +140,13 @@
 
 
-int alive;
-#ifdef ROAR_SUPPORT_LISTEN
-int g_no_listen;
-#endif
-
-uint32_t g_pos; // current possition in output stream
-
-int g_standby;
-int g_autostandby;
+extern int alive;
+#ifdef ROAR_SUPPORT_LISTEN
+extern int g_no_listen;
+#endif
+
+extern uint32_t g_pos; // current possition in output stream
+
+extern int g_standby;
+extern int g_autostandby;
 
 #ifdef ROAR_SUPPORT_LISTEN
@@ -170,5 +170,5 @@
 
 #ifdef ROAR_SUPPORT_LISTEN
-struct roard_listen {
+extern struct roard_listen {
  int used;
  struct roar_vio_calls sock;
@@ -185,9 +185,9 @@
 #endif
 
-int g_self_client;
-
-int g_terminate;
-
-struct roar_audio_info * g_sa, * g_max_sa;
+extern int g_self_client;
+
+extern int g_terminate;
+
+extern struct roar_audio_info * g_sa, * g_max_sa;
 
 #define CONF_DEF_STRING "***default***"
Index: roard/include/sample.h
===================================================================
--- roard/include/sample.h	(revision 4708)
+++ roard/include/sample.h	(revision 5192)
@@ -31,5 +31,5 @@
 #define ROAR_SAMPLES_MAX  32
 
-struct roar_sample * g_samples[ROAR_SAMPLES_MAX];
+extern struct roar_sample * g_samples[ROAR_SAMPLES_MAX];
 
 int samples_init      (void);
Index: roard/include/ssynth.h
===================================================================
--- roard/include/ssynth.h	(revision 4708)
+++ roard/include/ssynth.h	(revision 5192)
@@ -50,5 +50,5 @@
 #define SSYNTH_POLY_COEFF            4
 
-float ssynth_polys[SSYNTH_POLY_POLYMAX][SSYNTH_POLY_COEFF];
+extern float ssynth_polys[SSYNTH_POLY_POLYMAX][SSYNTH_POLY_COEFF];
 
 struct {
@@ -56,5 +56,5 @@
 } ssynth_conf;
 
-struct {
+extern struct ssynth_state {
  int stream;
  struct {
Index: roard/include/streams.h
===================================================================
--- roard/include/streams.h	(revision 5022)
+++ roard/include/streams.h	(revision 5192)
@@ -74,5 +74,5 @@
 };
 
-struct roar_stream_server {
+extern struct roar_stream_server {
  struct roar_stream _stream;
  unsigned int pos_abs;
Index: roard/output.c
===================================================================
--- roard/output.c	(revision 5162)
+++ roard/output.c	(revision 5192)
@@ -26,11 +26,13 @@
 #include "roard.h"
 
+// stuff we defined 'extern'
+void         * g_output_buffer     = NULL;
+void         * g_input_buffer      = NULL;
+size_t         g_output_buffer_len = 0;
+// //
+
 int output_buffer_init   (struct roar_audio_info * info) {
  size_t   size;
  void   * buf;
-
- g_output_buffer     = NULL;
- g_input_buffer      = NULL;
- g_output_buffer_len = 0;
 
  size = ROAR_OUTPUT_CALC_OUTBUFSIZE(info);
Index: roard/roard.c
===================================================================
--- roard/roard.c	(revision 5180)
+++ roard/roard.c	(revision 5192)
@@ -54,4 +54,24 @@
  AF_MODE_GEN
 };
+
+// some stuff we only define extern globally.
+int alive;
+#ifdef ROAR_SUPPORT_LISTEN
+int g_no_listen;
+#endif
+
+uint32_t g_pos; // current possition in output stream
+
+int g_standby;
+int g_autostandby;
+
+struct roard_listen g_listen[ROAR_MAX_LISTEN_SOCKETS];
+
+int g_self_client;
+
+int g_terminate;
+
+struct roar_audio_info * g_sa, * g_max_sa;
+// end of extern block.
 
 #ifdef ROAR_SUPPORT_LISTEN
Index: roard/sample.c
===================================================================
--- roard/sample.c	(revision 5162)
+++ roard/sample.c	(revision 5192)
@@ -25,4 +25,7 @@
 
 #include "roard.h"
+
+// declared 'extern'
+struct roar_sample * g_samples[ROAR_SAMPLES_MAX];
 
 int samples_init      (void) {
Index: roard/ssynth.c
===================================================================
--- roard/ssynth.c	(revision 4708)
+++ roard/ssynth.c	(revision 5192)
@@ -32,4 +32,6 @@
        {0.700010, -0.083333, -0.150000,  0.033333}
       };
+
+struct ssynth_state g_ssynth;
 
 int ssynth_init_config(void) {
Index: roard/streams.c
===================================================================
--- roard/streams.c	(revision 5022)
+++ roard/streams.c	(revision 5192)
@@ -25,4 +25,7 @@
 
 #include "roard.h"
+
+// declared 'extern'
+struct roar_stream_server * g_streams[ROAR_STREAMS_MAX];
 
 #define _CHECK_SID_RET(id,ret) if ( (id) < 0 || (id) > ROAR_STREAMS_MAX || g_streams[(id)] == NULL ) return (ret)
