Index: libcfa/src/common.cfa
===================================================================
--- libcfa/src/common.cfa	(revision cce46486af6b1ec94d321bec0f28a927d57903cd)
+++ libcfa/src/common.cfa	(revision 0aa4beb4c21f70535725c39704392bfb6a393c58)
@@ -18,4 +18,6 @@
 #include <stdlib.h>					// div_t, *div
 
+#pragma GCC visibility push(default)
+
 //---------------------------------------
 
Index: libcfa/src/limits.cfa
===================================================================
--- libcfa/src/limits.cfa	(revision cce46486af6b1ec94d321bec0f28a927d57903cd)
+++ libcfa/src/limits.cfa	(revision 0aa4beb4c21f70535725c39704392bfb6a393c58)
@@ -20,4 +20,6 @@
 #include <complex.h>
 #include "limits.hfa"
+
+#pragma GCC visibility push(default)
 
 // Integral Constants
Index: libcfa/src/rational.cfa
===================================================================
--- libcfa/src/rational.cfa	(revision cce46486af6b1ec94d321bec0f28a927d57903cd)
+++ libcfa/src/rational.cfa	(revision 0aa4beb4c21f70535725c39704392bfb6a393c58)
@@ -17,4 +17,6 @@
 #include "fstream.hfa"
 #include "stdlib.hfa"
+
+#pragma GCC visibility push(default)
 
 forall( T | Arithmetic( T ) ) {
Index: libcfa/src/stdlib.cfa
===================================================================
--- libcfa/src/stdlib.cfa	(revision cce46486af6b1ec94d321bec0f28a927d57903cd)
+++ libcfa/src/stdlib.cfa	(revision 0aa4beb4c21f70535725c39704392bfb6a393c58)
@@ -25,4 +25,6 @@
 #include <complex.h>									// _Complex_I
 #include <assert.h>
+
+#pragma GCC visibility push(default)
 
 //---------------------------------------
@@ -225,6 +227,7 @@
 #define GENERATOR LCG
 
-uint32_t __global_random_seed;							// sequential/concurrent
-uint32_t __global_random_state;							// sequential only
+// would be cool to make hidden but it's needed for libcfathread
+__attribute__((visibility("default"))) uint32_t __global_random_seed;							// sequential/concurrent
+__attribute__((visibility("hidden"))) uint32_t __global_random_state;							// sequential only
 
 void set_seed( PRNG & prng, uint32_t seed_ ) with( prng ) { state = seed = seed_; GENERATOR( state ); } // set seed
Index: libcfa/src/time.cfa
===================================================================
--- libcfa/src/time.cfa	(revision cce46486af6b1ec94d321bec0f28a927d57903cd)
+++ libcfa/src/time.cfa	(revision 0aa4beb4c21f70535725c39704392bfb6a393c58)
@@ -18,4 +18,6 @@
 #include <stdio.h>										// snprintf
 #include <assert.h>
+
+#pragma GCC visibility push(default)
 
 static char * nanomsd( long int ns, char * buf ) {		// most significant digits
