summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/Rts.h12
-rw-r--r--rts/Capability.h4
-rw-r--r--rts/FrontPanel.h4
-rw-r--r--rts/GetTime.h4
-rw-r--r--rts/Hash.h4
-rw-r--r--rts/Papi.h4
-rw-r--r--rts/Printer.h4
-rw-r--r--rts/ProfHeap.h4
-rw-r--r--rts/Profiling.h4
-rw-r--r--rts/Proftimer.h4
-rw-r--r--rts/RaiseAsync.h9
-rw-r--r--rts/RetainerProfile.h4
-rw-r--r--rts/RetainerSet.h4
-rw-r--r--rts/RtsSignals.h4
-rw-r--r--rts/RtsUtils.h4
-rw-r--r--rts/STM.h4
-rw-r--r--rts/Sanity.h4
-rw-r--r--rts/Schedule.h4
-rw-r--r--rts/Sparks.h4
-rw-r--r--rts/Stable.h4
-rw-r--r--rts/Stats.h4
-rw-r--r--rts/StgPrimFloat.h4
-rw-r--r--rts/Task.h4
-rw-r--r--rts/ThreadLabels.h4
-rw-r--r--rts/Threads.h4
-rw-r--r--rts/Ticker.h4
-rw-r--r--rts/Trace.h4
-rw-r--r--rts/Updates.h8
-rw-r--r--rts/Weak.h4
-rw-r--r--rts/eventlog/EventLog.h4
-rw-r--r--rts/posix/Signals.h4
-rw-r--r--rts/sm/BlockAlloc.h4
-rw-r--r--rts/sm/Compact.h4
-rw-r--r--rts/sm/Evac.h4
-rw-r--r--rts/sm/GC.h4
-rw-r--r--rts/sm/GCThread.h4
-rw-r--r--rts/sm/GCUtils.h4
-rw-r--r--rts/sm/MarkWeak.h4
-rw-r--r--rts/sm/OSMem.h4
-rw-r--r--rts/sm/Scav.h4
-rw-r--r--rts/sm/Storage.h4
41 files changed, 99 insertions, 82 deletions
diff --git a/includes/Rts.h b/includes/Rts.h
index 3bec799585..753a66436b 100644
--- a/includes/Rts.h
+++ b/includes/Rts.h
@@ -51,7 +51,19 @@ extern "C" {
// 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
/* Fix for mingw stat problem (done here so it's early enough) */
#ifdef mingw32_HOST_OS
diff --git a/rts/Capability.h b/rts/Capability.h
index 6fdc002049..3f01bf3d88 100644
--- a/rts/Capability.h
+++ b/rts/Capability.h
@@ -22,7 +22,7 @@
#include "Task.h"
#include "Sparks.h"
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
struct Capability_ {
// State required by the STG virtual machine when running Haskell
@@ -332,6 +332,6 @@ contextSwitchCapability (Capability *cap)
cap->context_switch = 1;
}
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* CAPABILITY_H */
diff --git a/rts/FrontPanel.h b/rts/FrontPanel.h
index 07508aa403..fba97e15ee 100644
--- a/rts/FrontPanel.h
+++ b/rts/FrontPanel.h
@@ -9,7 +9,7 @@
#ifndef FRONTPANEL_H
#define FRONTPANEL_H
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
#ifdef RTS_GTK_FRONTPANEL
@@ -33,7 +33,7 @@ extern gboolean continue_now, stop_now, quit;
#endif /* RTS_GTK_FRONTPANEL */
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* FRONTPANEL_H */
diff --git a/rts/GetTime.h b/rts/GetTime.h
index 11da641164..03e1f171be 100644
--- a/rts/GetTime.h
+++ b/rts/GetTime.h
@@ -9,7 +9,7 @@
#ifndef GETTIME_H
#define GETTIME_H
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
// We'll use a fixed resolution of usec for now. The machine
// dependent implementation may have a different resolution, but we'll
@@ -25,6 +25,6 @@ void getProcessTimes (Ticks *user, Ticks *elapsed);
// Not strictly timing, but related
nat getPageFaults (void);
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* GETTIME_H */
diff --git a/rts/Hash.h b/rts/Hash.h
index c5eec37552..1099b8f334 100644
--- a/rts/Hash.h
+++ b/rts/Hash.h
@@ -9,7 +9,7 @@
#ifndef HASH_H
#define HASH_H
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
typedef struct hashtable HashTable; /* abstract */
@@ -47,7 +47,7 @@ void freeHashTable ( HashTable *table, void (*freeDataFun)(void *) );
void exitHashTable ( void );
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* HASH_H */
diff --git a/rts/Papi.h b/rts/Papi.h
index 8658d8ccac..f8acab7a4b 100644
--- a/rts/Papi.h
+++ b/rts/Papi.h
@@ -8,7 +8,7 @@
#ifndef PAPI_H
#define PAPI_H
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
/* Check the error value of a PAPI call, reporting an error, if needed */
extern int papi_error;
@@ -31,6 +31,6 @@ void papi_stop_gc1_count(void);
void papi_thread_start_gc1_count(int event_set);
void papi_thread_stop_gc1_count(int event_set);
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* PAPI_H */
diff --git a/rts/Printer.h b/rts/Printer.h
index fd89aa073a..ca0cadb19c 100644
--- a/rts/Printer.h
+++ b/rts/Printer.h
@@ -9,7 +9,7 @@
#ifndef PRINTER_H
#define PRINTER_H
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
extern void printPtr ( StgPtr p );
extern void printObj ( StgClosure *obj );
@@ -34,7 +34,7 @@ extern const char *lookupGHCName( void *addr );
extern char *what_next_strs[];
#endif
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* PRINTER_H */
diff --git a/rts/ProfHeap.h b/rts/ProfHeap.h
index b781235c77..cda29ad092 100644
--- a/rts/ProfHeap.h
+++ b/rts/ProfHeap.h
@@ -9,7 +9,7 @@
#ifndef PROFHEAP_H
#define PROFHEAP_H
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
void heapCensus (void);
nat initHeapProfiling (void);
@@ -17,6 +17,6 @@ void endHeapProfiling (void);
void LDV_recordDead (StgClosure *c, nat size);
rtsBool strMatchesSelector (char* str, char* sel);
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* PROFHEAP_H */
diff --git a/rts/Profiling.h b/rts/Profiling.h
index 87d81e2f9b..764e467b41 100644
--- a/rts/Profiling.h
+++ b/rts/Profiling.h
@@ -11,7 +11,7 @@
#include <stdio.h>
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
void initProfiling1 (void);
void freeProfiling1 (void);
@@ -37,6 +37,6 @@ void debugCCS( CostCentreStack *ccs );
#endif
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* PROFILING_H */
diff --git a/rts/Proftimer.h b/rts/Proftimer.h
index 7d4295642d..a3cfc8bbd3 100644
--- a/rts/Proftimer.h
+++ b/rts/Proftimer.h
@@ -9,7 +9,7 @@
#ifndef PROFTIMER_H
#define PROFTIMER_H
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
void initProfTimer ( void );
void handleProfTick ( void );
@@ -24,6 +24,6 @@ void startHeapProfTimer ( void );
extern rtsBool performHeapProfile;
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* PROFTIMER_H */
diff --git a/rts/RaiseAsync.h b/rts/RaiseAsync.h
index 52a0aa4bf0..96eb96e10b 100644
--- a/rts/RaiseAsync.h
+++ b/rts/RaiseAsync.h
@@ -9,12 +9,13 @@
#ifndef RAISEASYNC_H
#define RAISEASYNC_H
-#pragma GCC visibility push(hidden)
-
#define THROWTO_SUCCESS 0
#define THROWTO_BLOCKED 1
#ifndef CMINUSMINUS
+
+BEGIN_RTS_PRIVATE
+
void throwToSingleThreaded (Capability *cap,
StgTSO *tso,
StgClosure *exception);
@@ -66,9 +67,9 @@ interruptible(StgTSO *t)
}
}
-#endif /* CMINUSMINUS */
+END_RTS_PRIVATE
-#pragma GCC visibility pop
+#endif /* CMINUSMINUS */
#endif /* RAISEASYNC_H */
diff --git a/rts/RetainerProfile.h b/rts/RetainerProfile.h
index 7278dc7465..9736eeb8d6 100644
--- a/rts/RetainerProfile.h
+++ b/rts/RetainerProfile.h
@@ -14,7 +14,7 @@
#include "RetainerSet.h"
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
void initRetainerProfiling ( void );
void endRetainerProfiling ( void );
@@ -43,7 +43,7 @@ retainerSetOf( StgClosure *c )
extern lnat retainerStackBlocks ( void );
#endif
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* PROFILING */
diff --git a/rts/RetainerSet.h b/rts/RetainerSet.h
index cbf8c1d9b0..e3d3acd38c 100644
--- a/rts/RetainerSet.h
+++ b/rts/RetainerSet.h
@@ -14,7 +14,7 @@
#ifdef PROFILING
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
/*
Type 'retainer' defines the retainer identity.
@@ -199,7 +199,7 @@ void outputAllRetainerSet(FILE *);
// the best place to define it.
void printRetainer(FILE *, retainer);
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* PROFILING */
#endif /* RETAINERSET_H */
diff --git a/rts/RtsSignals.h b/rts/RtsSignals.h
index b222272e12..f31a0ac1d6 100644
--- a/rts/RtsSignals.h
+++ b/rts/RtsSignals.h
@@ -25,7 +25,7 @@
#if RTS_USER_SIGNALS
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
/*
* Function: initUserSignals()
@@ -60,7 +60,7 @@ void awaitUserSignals(void);
*/
void markSignalHandlers (evac_fn evac, void *user);
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* RTS_USER_SIGNALS */
diff --git a/rts/RtsUtils.h b/rts/RtsUtils.h
index cbf23b06d5..e47dbb9110 100644
--- a/rts/RtsUtils.h
+++ b/rts/RtsUtils.h
@@ -9,7 +9,7 @@
#ifndef RTSUTILS_H
#define RTSUTILS_H
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
/* -----------------------------------------------------------------------------
* (Checked) dynamic allocation
@@ -48,6 +48,6 @@ int genericRaise(int sig);
int rts_isProfiled(void);
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* RTSUTILS_H */
diff --git a/rts/STM.h b/rts/STM.h
index 1f28b9c3fa..495b763139 100644
--- a/rts/STM.h
+++ b/rts/STM.h
@@ -40,7 +40,7 @@
#define STM_UNIPROC
#endif
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
/*----------------------------------------------------------------------
@@ -232,7 +232,7 @@ void stmWriteTVar(Capability *cap,
/*----------------------------------------------------------------------*/
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* STM_H */
diff --git a/rts/Sanity.h b/rts/Sanity.h
index f27c395c44..96ac6c534f 100644
--- a/rts/Sanity.h
+++ b/rts/Sanity.h
@@ -11,7 +11,7 @@
#ifdef DEBUG
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
# if defined(PAR)
# define PVM_PE_MASK 0xfffc0000
@@ -36,7 +36,7 @@ void checkMutableLists ( rtsBool checkTSOs );
void checkBQ (StgTSO *bqe, StgClosure *closure);
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* DEBUG */
diff --git a/rts/Schedule.h b/rts/Schedule.h
index 1214fd8784..2dd4acd0d9 100644
--- a/rts/Schedule.h
+++ b/rts/Schedule.h
@@ -14,7 +14,7 @@
#include "Capability.h"
#include "Trace.h"
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
/* initScheduler(), exitScheduler()
* Called from STG : no
@@ -241,7 +241,7 @@ emptyThreadQueues(Capability *cap)
#endif /* !IN_STG_CODE */
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* SCHEDULE_H */
diff --git a/rts/Sparks.h b/rts/Sparks.h
index 25affbbe55..33aa818aab 100644
--- a/rts/Sparks.h
+++ b/rts/Sparks.h
@@ -11,7 +11,7 @@
#include "WSDeque.h"
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
/* typedef for SparkPool in RtsTypes.h */
@@ -65,6 +65,6 @@ INLINE_HEADER void discardSparks (SparkPool *pool)
#endif // THREADED_RTS
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* SPARKS_H */
diff --git a/rts/Stable.h b/rts/Stable.h
index b1b25ff62f..ebabee7ad0 100644
--- a/rts/Stable.h
+++ b/rts/Stable.h
@@ -17,7 +17,7 @@
#include "sm/GC.h" // for evac_fn below
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
void freeStablePtr ( StgStablePtr sp );
@@ -33,6 +33,6 @@ void updateStablePtrTable ( rtsBool full );
void stablePtrPreGC ( void );
void stablePtrPostGC ( void );
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* STABLE_H */
diff --git a/rts/Stats.h b/rts/Stats.h
index 234d64c7e3..f13221546e 100644
--- a/rts/Stats.h
+++ b/rts/Stats.h
@@ -11,7 +11,7 @@
#include "GetTime.h"
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
void stat_startInit(void);
void stat_endInit(void);
@@ -61,6 +61,6 @@ Ticks stat_getElapsedTime(void);
void statsPrintf( char *s, ... )
GNUC3_ATTRIBUTE(format (printf, 1, 2));
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* STATS_H */
diff --git a/rts/StgPrimFloat.h b/rts/StgPrimFloat.h
index f0e466b76b..3f5b3e5013 100644
--- a/rts/StgPrimFloat.h
+++ b/rts/StgPrimFloat.h
@@ -9,7 +9,7 @@
#ifndef STGPRIMFLOAT_H
#define STGPRIMFLOAT_H
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
/* grimy low-level support functions defined in StgPrimFloat.c */
void __decodeDouble_2Int (I_ *man_sign, W_ *man_high, W_ *man_low, I_ *exp, StgDouble dbl);
@@ -21,6 +21,6 @@ StgFloat __word_encodeFloat (W_ j, I_ e);
// __int_encodeDouble and __int_encodeFloat are public, declared in
// includes/rts/PrimFloat.h.
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* STGPRIMFLOAT_H */
diff --git a/rts/Task.h b/rts/Task.h
index b18bcfb600..9b5f0253cd 100644
--- a/rts/Task.h
+++ b/rts/Task.h
@@ -11,7 +11,7 @@
#include "GetTime.h"
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
/*
Definition of a Task
@@ -261,6 +261,6 @@ taskEnter (Task *task)
setMyTask(task);
}
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* TASK_H */
diff --git a/rts/ThreadLabels.h b/rts/ThreadLabels.h
index 550e2869e3..bd516a1de3 100644
--- a/rts/ThreadLabels.h
+++ b/rts/ThreadLabels.h
@@ -10,7 +10,7 @@
#ifndef THREADLABELS_H
#define THREADLABELS_H
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
#if defined(DEBUG)
void initThreadLabelTable (void);
@@ -21,6 +21,6 @@ void removeThreadLabel (StgWord key);
void labelThread (StgPtr tso, char *label);
#endif
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* THREADLABELS_H */
diff --git a/rts/Threads.h b/rts/Threads.h
index e58b0db993..8e0ee264f4 100644
--- a/rts/Threads.h
+++ b/rts/Threads.h
@@ -9,7 +9,7 @@
#ifndef THREADS_H
#define THREADS_H
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
StgTSO * unblockOne (Capability *cap, StgTSO *tso);
StgTSO * unblockOne_ (Capability *cap, StgTSO *tso, rtsBool allow_migrate);
@@ -29,6 +29,6 @@ void printAllThreads (void);
void printThreadQueue (StgTSO *t);
#endif
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* THREADS_H */
diff --git a/rts/Ticker.h b/rts/Ticker.h
index 159820d399..3e62622d5d 100644
--- a/rts/Ticker.h
+++ b/rts/Ticker.h
@@ -9,7 +9,7 @@
#ifndef TICKER_H
#define TICKER_H
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
typedef void (*TickProc)(int);
@@ -18,6 +18,6 @@ void startTicker (void);
void stopTicker (void);
void exitTicker (void);
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* TICKER_H */
diff --git a/rts/Trace.h b/rts/Trace.h
index 3ab6df456c..702a51ec72 100644
--- a/rts/Trace.h
+++ b/rts/Trace.h
@@ -12,7 +12,7 @@
#include "rts/EventLogFormat.h"
#include "Capability.h"
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
// -----------------------------------------------------------------------------
// Posting events
@@ -186,6 +186,6 @@ INLINE_HEADER void traceThreadStatus (StgWord32 class STG_UNUSED,
#endif /* TRACING */
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* TRACE_H */
diff --git a/rts/Updates.h b/rts/Updates.h
index 3b37409476..988fb6059f 100644
--- a/rts/Updates.h
+++ b/rts/Updates.h
@@ -9,7 +9,9 @@
#ifndef UPDATES_H
#define UPDATES_H
-#pragma GCC visibility push(hidden)
+#ifndef CMINUSMINUS
+BEGIN_RTS_PRIVATE
+#endif
/* -----------------------------------------------------------------------------
Updates
@@ -228,6 +230,8 @@ no_slop:
}
#endif /* CMINUSMINUS */
-#pragma GCC visibility pop
+#ifndef CMINUSMINUS
+END_RTS_PRIVATE
+#endif
#endif /* UPDATES_H */
diff --git a/rts/Weak.h b/rts/Weak.h
index 2c831d830e..a931b054cc 100644
--- a/rts/Weak.h
+++ b/rts/Weak.h
@@ -11,7 +11,7 @@
#include "Capability.h"
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
extern rtsBool running_finalizers;
extern StgWeak * weak_ptr_list;
@@ -21,7 +21,7 @@ void runAllCFinalizers(StgWeak *w);
void scheduleFinalizers(Capability *cap, StgWeak *w);
void markWeakList(void);
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* WEAK_H */
diff --git a/rts/eventlog/EventLog.h b/rts/eventlog/EventLog.h
index 9f3388e421..e2ee13ac11 100644
--- a/rts/eventlog/EventLog.h
+++ b/rts/eventlog/EventLog.h
@@ -12,7 +12,7 @@
#include "rts/EventLogFormat.h"
#include "Capability.h"
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
#ifdef TRACING
@@ -56,6 +56,6 @@ INLINE_HEADER void postCapMsg (Capability *cap,
#endif
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* TRACING_H */
diff --git a/rts/posix/Signals.h b/rts/posix/Signals.h
index 30bc63ee46..4d0a5a5fc7 100644
--- a/rts/posix/Signals.h
+++ b/rts/posix/Signals.h
@@ -13,7 +13,7 @@
# include <signal.h>
#endif
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
rtsBool anyUserHandlers(void);
@@ -26,7 +26,7 @@ void startSignalHandlers(Capability *cap);
extern StgInt *signal_handlers;
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* POSIX_SIGNALS_H */
diff --git a/rts/sm/BlockAlloc.h b/rts/sm/BlockAlloc.h
index 86836e40b4..00efeb4bbc 100644
--- a/rts/sm/BlockAlloc.h
+++ b/rts/sm/BlockAlloc.h
@@ -9,7 +9,7 @@
#ifndef BLOCK_ALLOC_H
#define BLOCK_ALLOC_H
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
/* Debugging -------------------------------------------------------------- */
@@ -23,6 +23,6 @@ void reportUnmarkedBlocks (void);
extern lnat n_alloc_blocks; // currently allocated blocks
extern lnat hw_alloc_blocks; // high-water allocated blocks
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* BLOCK_ALLOC_H */
diff --git a/rts/sm/Compact.h b/rts/sm/Compact.h
index 1e89ad36a8..7fe15e5667 100644
--- a/rts/sm/Compact.h
+++ b/rts/sm/Compact.h
@@ -14,7 +14,7 @@
#ifndef SM_COMPACT_H
#define SM_COMPACT_H
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
INLINE_HEADER rtsBool
mark_stack_empty(void)
@@ -78,6 +78,6 @@ is_marked(StgPtr p, bdescr *bd)
void compact (StgClosure *static_objects);
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* SM_COMPACT_H */
diff --git a/rts/sm/Evac.h b/rts/sm/Evac.h
index ca5032f772..52346b1fd2 100644
--- a/rts/sm/Evac.h
+++ b/rts/sm/Evac.h
@@ -14,7 +14,7 @@
#ifndef SM_EVAC_H
#define SM_EVAC_H
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
// Use a register argument for evacuate, if available.
// Earlier, the regparm attribute was used whenever __GNUC__ >= 2, but this
@@ -37,7 +37,7 @@ REGPARM1 void evacuate1 (StgClosure **p);
extern lnat thunk_selector_depth;
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* SM_EVAC_H */
diff --git a/rts/sm/GC.h b/rts/sm/GC.h
index 2435c6cd4b..4b928e9bfa 100644
--- a/rts/sm/GC.h
+++ b/rts/sm/GC.h
@@ -14,7 +14,7 @@
#ifndef SM_GC_H
#define SM_GC_H
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
void GarbageCollect(rtsBool force_major_gc, nat gc_type, Capability *cap);
@@ -58,6 +58,6 @@ void releaseGCThreads (Capability *cap);
#define WORK_UNIT_WORDS 128
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* SM_GC_H */
diff --git a/rts/sm/GCThread.h b/rts/sm/GCThread.h
index 44ea537cda..d2459fd96b 100644
--- a/rts/sm/GCThread.h
+++ b/rts/sm/GCThread.h
@@ -16,7 +16,7 @@
#include "WSDeque.h"
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
/* -----------------------------------------------------------------------------
General scheme
@@ -272,7 +272,7 @@ extern StgWord8 the_gc_thread[];
#endif
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif // SM_GCTHREAD_H
diff --git a/rts/sm/GCUtils.h b/rts/sm/GCUtils.h
index c8f8d55c60..7fafe51ba2 100644
--- a/rts/sm/GCUtils.h
+++ b/rts/sm/GCUtils.h
@@ -14,7 +14,7 @@
#ifndef SM_GCUTILS_H
#define SM_GCUTILS_H
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
bdescr *allocBlock_sync(void);
void freeChain_sync(bdescr *bd);
@@ -61,6 +61,6 @@ recordMutableGen_GC (StgClosure *p, nat gen_no)
*bd->free++ = (StgWord)p;
}
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* SM_GCUTILS_H */
diff --git a/rts/sm/MarkWeak.h b/rts/sm/MarkWeak.h
index 7fd81e536b..018dd6cd79 100644
--- a/rts/sm/MarkWeak.h
+++ b/rts/sm/MarkWeak.h
@@ -14,7 +14,7 @@
#ifndef SM_MARKWEAK_H
#define SM_MARKWEAK_H
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
extern StgWeak *old_weak_ptr_list;
extern StgTSO *resurrected_threads;
@@ -25,6 +25,6 @@ rtsBool traverseWeakPtrList ( void );
void markWeakPtrList ( void );
rtsBool traverseBlackholeQueue ( void );
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* SM_MARKWEAK_H */
diff --git a/rts/sm/OSMem.h b/rts/sm/OSMem.h
index 92fe350045..ee6b810f39 100644
--- a/rts/sm/OSMem.h
+++ b/rts/sm/OSMem.h
@@ -9,7 +9,7 @@
#ifndef SM_OSMEM_H
#define SM_OSMEM_H
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
void osMemInit(void);
void *osGetMBlocks(nat n);
@@ -17,6 +17,6 @@ void osFreeAllMBlocks(void);
lnat getPageSize (void);
void setExecutable (void *p, lnat len, rtsBool exec);
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* SM_OSMEM_H */
diff --git a/rts/sm/Scav.h b/rts/sm/Scav.h
index 259fe1289a..ad466c8488 100644
--- a/rts/sm/Scav.h
+++ b/rts/sm/Scav.h
@@ -14,7 +14,7 @@
#ifndef SM_SCAV_H
#define SM_SCAV_H
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
void scavenge_loop (void);
void scavenge_mutable_list (bdescr *bd, generation *gen);
@@ -26,7 +26,7 @@ void scavenge_mutable_list1 (bdescr *bd, generation *gen);
void scavenge_capability_mut_Lists1 (Capability *cap);
#endif
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* SM_SCAV_H */
diff --git a/rts/sm/Storage.h b/rts/sm/Storage.h
index 573d6bcd5b..5ddcbdcdc2 100644
--- a/rts/sm/Storage.h
+++ b/rts/sm/Storage.h
@@ -9,7 +9,7 @@
#ifndef SM_STORAGE_H
#define SM_STORAGE_H
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
/* -----------------------------------------------------------------------------
Initialisation / De-initialisation
@@ -156,6 +156,6 @@ void move_TSO (StgTSO *src, StgTSO *dest);
extern StgClosure * caf_list;
extern StgClosure * revertible_caf_list;
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* SM_STORAGE_H */