X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2FRts.h;h=1bfb37a1bf17e57a9e1d961f1ae1c3660672159e;hb=26caccd3a492556ecce7c36ce69cecc2ae7c5a75;hp=74d45f21e676745a713c1286042bb813914d7691;hpb=d20d32d788e2d6c088e6b03776c428df5bb004d3;p=ghc-hetmet.git diff --git a/includes/Rts.h b/includes/Rts.h index 74d45f2..1bfb37a 100644 --- a/includes/Rts.h +++ b/includes/Rts.h @@ -48,6 +48,29 @@ 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. +#if !defined(mingw32_HOST_OS) +#define RTS_PRIVATE GNUC3_ATTRIBUTE(visibility("hidden")) +#else +#define RTS_PRIVATE /* disabled: RTS_PRIVATE */ +#endif + +#if __GNUC__ > 4 +#define BEGIN_RTS_PRIVATE #pragma GCC visibility push(hidden) +#define END_RTS_PRIVATE #pragma GCC visibility pop +#else +#define BEGIN_RTS_PRIVATE /* disabled: BEGIN_RTS_PRIVATE */ +#define END_RTS_PRIVATE /* disabled: END_RTS_PRIVATE */ +#endif + +#if __GNUC__ > 4 +#define RTS_UNLIKELY(p) __builtin_expect((p),0) +#else +#define RTS_UNLIKELY(p) p +#endif + /* Fix for mingw stat problem (done here so it's early enough) */ #ifdef mingw32_HOST_OS #define __MSVCRT__ 1 @@ -168,6 +191,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" @@ -180,6 +204,8 @@ void _assertFail(const char *filename, unsigned int linenum) #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 */