Commit 9a9803e8 authored by Simon Marlow's avatar Simon Marlow

Omit visibility pragmas on Windows (fixes warnings/validate failures)

parent b25c93f1
......@@ -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
......
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......
......@@ -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 */
......@@ -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 */
......
......@@ -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 */
......@@ -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 */
......@@ -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 */
......
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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
......@@ -14,7 +14,7 @@
#ifndef SM_GCUTILS_H
#define SM_GCUTILS_H
#pragma GCC visibility push(hidden)
BEGIN_RTS_PRIVATE