blob: c40924a5e73a99162ef743a97f528050aa8fd73b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
/* -----------------------------------------------------------------------------
*
* (c) The GHC Team, 1998-2004
*
* Rts settings.
*
* NOTE: assumes #include "ghcconfig.h"
*
* NB: THIS FILE IS INCLUDED IN NON-C CODE AND DATA! #defines only please.
* ---------------------------------------------------------------------------*/
#ifndef RTSCONFIG_H
#define RTSCONFIG_H
/*
* SUPPORT_LONG_LONGS controls whether we need to support long longs on a
* particular platform. On 64-bit platforms, we don't need to support
* long longs since regular machine words will do just fine.
*/
#if HAVE_LONG_LONG && SIZEOF_VOID_P < 8
#define SUPPORT_LONG_LONGS 1
#endif
/*
* Whether the runtime system will use libbfd for debugging purposes.
*/
#if defined(DEBUG) && defined(HAVE_BFD_H) && !defined(_WIN32) && !defined(PAR) && !defined(GRAN)
#define USING_LIBBFD 1
#endif
/* Turn lazy blackholing and eager blackholing on/off.
*
* Using eager blackholing makes things easier to debug because
* the blackholes are more predictable - but it's slower and less sexy.
*
* For now, do lazy and not eager.
*/
/* TICKY_TICKY needs EAGER_BLACKHOLING to verify no double-entries of
* single-entry thunks.
*/
/* #if defined(TICKY_TICKY) || defined(THREADED_RTS) */
#if defined(TICKY_TICKY)
# define EAGER_BLACKHOLING
#else
# define LAZY_BLACKHOLING
#endif
/* -----------------------------------------------------------------------------
Labels - entry labels & info labels point to the same place in
TABLES_NEXT_TO_CODE, so we only generate the _info label. Jumps
must therefore be directed to foo_info rather than foo_entry when
TABLES_NEXT_TO_CODE is on.
This isn't a good place for these macros, but they need to be
available to .cmm sources as well as C and we don't have a better
place.
-------------------------------------------------------------------------- */
#ifdef TABLES_NEXT_TO_CODE
#define ENTRY_LBL(f) f##_info
#else
#define ENTRY_LBL(f) f##_entry
#endif
#ifdef TABLES_NEXT_TO_CODE
#define RET_LBL(f) f##_info
#else
#define RET_LBL(f) f##_ret
#endif
/* -----------------------------------------------------------------------------
Signals - supported on non-PAR versions of the runtime. See RtsSignals.h.
-------------------------------------------------------------------------- */
#if !defined(PAR)
#define RTS_USER_SIGNALS 1
#endif
#endif /* RTSCONFIG_H */
|