add RTS_PRIVATE attribute
[ghc-hetmet.git] / includes / Rts.h
index f4cf545..3bec799 100644 (file)
@@ -5,6 +5,9 @@
  * RTS external APIs.  This file declares everything that the GHC RTS
  * exposes externally.
  *
+ * To understand the structure of the RTS headers, see the wiki:
+ *   http://hackage.haskell.org/trac/ghc/wiki/Commentary/SourceTree/Includes
+ *
  * ---------------------------------------------------------------------------*/
 
 #ifndef RTS_H
@@ -45,6 +48,11 @@ extern "C" {
 #define ATTRIBUTE_ALIGNED(n) /*nothing*/
 #endif
 
+// Symbols that are extern, but private to the RTS, are declared
+// with visibility "hidden" to hide them outside the RTS shared
+// library.
+#define RTS_PRIVATE  GNUC3_ATTRIBUTE(visibility("hidden"))
+
 /* Fix for mingw stat problem (done here so it's early enough) */
 #ifdef mingw32_HOST_OS
 #define __MSVCRT__ 1
@@ -165,6 +173,7 @@ void _assertFail(const char *filename, unsigned int linenum)
 #include "rts/Parallel.h"
 #include "rts/Hooks.h"
 #include "rts/Signals.h"
+#include "rts/BlockSignals.h"
 #include "rts/Hpc.h"
 #include "rts/Flags.h"
 #include "rts/Adjustor.h"
@@ -176,6 +185,9 @@ void _assertFail(const char *filename, unsigned int linenum)
 #include "rts/Ticky.h"
 #include "rts/Timer.h"
 #include "rts/Stable.h"
+#include "rts/TTY.h"
+#include "rts/Utils.h"
+#include "rts/PrimFloat.h"
 
 /* Misc stuff without a home */
 DLL_IMPORT_RTS extern char **prog_argv;        /* so we can get at these from Haskell */