gc_config_macros.h 4.54 KB
Newer Older
eg's avatar
.  
eg committed
1 2 3 4 5 6 7 8 9 10 11
/*
 * This should never be included directly.  It is included only from gc.h.
 * We separate it only to make gc.h more suitable as documentation.
 * 
 * Some tests for old macros.  These violate our namespace rules and will
 * disappear shortly.  Use the GC_ names.
 */
#if defined(SOLARIS_THREADS) || defined(_SOLARIS_THREADS) \
    || defined(_SOLARIS_PTHREADS) || defined(GC_SOLARIS_PTHREADS)
  /* We no longer support old style Solaris threads.		*/
  /* GC_SOLARIS_THREADS now means pthreads.			*/
12 13 14
# ifndef GC_SOLARIS_THREADS
#   define GC_SOLARIS_THREADS
# endif
eg's avatar
.  
eg committed
15 16 17 18 19 20 21 22 23 24 25 26
#endif
#if defined(IRIX_THREADS)
# define GC_IRIX_THREADS
#endif
#if defined(DGUX_THREADS)
# if !defined(GC_DGUX386_THREADS)
#  define GC_DGUX386_THREADS
# endif
#endif
#if defined(AIX_THREADS)
# define GC_AIX_THREADS
#endif
27 28 29
#if defined(LURC_THREADS)
# define GC_LURC_THREADS
#endif
eg's avatar
.  
eg committed
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
#if defined(HPUX_THREADS)
# define GC_HPUX_THREADS
#endif
#if defined(OSF1_THREADS)
# define GC_OSF1_THREADS
#endif
#if defined(LINUX_THREADS)
# define GC_LINUX_THREADS
#endif
#if defined(WIN32_THREADS)
# define GC_WIN32_THREADS
#endif
#if defined(USE_LD_WRAP)
# define GC_USE_LD_WRAP
#endif

#if !defined(_REENTRANT) && (defined(GC_SOLARIS_THREADS) \
			     || defined(GC_HPUX_THREADS) \
			     || defined(GC_AIX_THREADS) \
49 50
			     || defined(GC_LINUX_THREADS) \
			     || defined(GC_NETBSD_THREADS))
eg's avatar
.  
eg committed
51 52 53 54 55
# define _REENTRANT
	/* Better late than never.  This fails if system headers that	*/
	/* depend on this were previously included.			*/
#endif

56 57 58 59
#if !defined(_PTHREADS) && defined(GC_NETBSD_THREADS)
# define _PTHREADS
#endif

eg's avatar
.  
eg committed
60 61 62 63 64 65 66 67
#if defined(GC_DGUX386_THREADS) && !defined(_POSIX4A_DRAFT10_SOURCE)
# define _POSIX4A_DRAFT10_SOURCE 1
#endif

# if defined(GC_SOLARIS_THREADS) || defined(GC_FREEBSD_THREADS) || \
	defined(GC_IRIX_THREADS) || defined(GC_LINUX_THREADS) || \
	defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS) || \
	defined(GC_DGUX386_THREADS) || defined(GC_DARWIN_THREADS) || \
68
        defined(GC_AIX_THREADS) || defined(GC_NETBSD_THREADS) || \
eg's avatar
.  
eg committed
69 70 71 72 73 74 75 76 77
        (defined(GC_WIN32_THREADS) && defined(__CYGWIN32__))
#   define GC_PTHREADS
# endif

#if defined(GC_THREADS) && !defined(GC_PTHREADS)
# if defined(__linux__)
#   define GC_LINUX_THREADS
#   define GC_PTHREADS
# endif
78
# if !defined(__linux__) && (defined(_PA_RISC1_1) || defined(_PA_RISC2_0) \
eg's avatar
.  
eg committed
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
                         || defined(hppa) || defined(__HPPA))
#   define GC_HPUX_THREADS
#   define GC_PTHREADS
# endif
# if !defined(__linux__) && (defined(__alpha) || defined(__alpha__))
#   define GC_OSF1_THREADS
#   define GC_PTHREADS
# endif
# if defined(__mips) && !defined(__linux__)
#   define GC_IRIX_THREADS
#   define GC_PTHREADS
# endif
# if defined(__sparc) && !defined(__linux__) \
     || defined(sun) && (defined(i386) || defined(__i386__))
#   define GC_SOLARIS_THREADS
#   define GC_PTHREADS
# endif

# if defined(__APPLE__) && defined(__MACH__) && defined(__ppc__)
#   define GC_DARWIN_THREADS
#   define GC_PTHREADS
# endif
101
# if !defined(GC_PTHREADS) && (defined(__FreeBSD__) || defined(__DragonFly__))
eg's avatar
.  
eg committed
102 103 104
#   define GC_FREEBSD_THREADS
#   define GC_PTHREADS
# endif
105 106 107 108
# if !defined(GC_PTHREADS) && defined(__NetBSD__)
#   define GC_NETBSD_THREADS
#   define GC_PTHREADS
# endif
eg's avatar
.  
eg committed
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
# if defined(DGUX) && (defined(i386) || defined(__i386__))
#   define GC_DGUX386_THREADS
#   define GC_PTHREADS
# endif
# if defined(_AIX)
#   define GC_AIX_THREADS
#   define GC_PTHREADS
# endif
#endif /* GC_THREADS */

#if defined(GC_THREADS) && !defined(GC_PTHREADS) && !defined(GC_WIN32_THREADS) \
    && (defined(_WIN32) || defined(_MSC_VER) || defined(__CYGWIN__) \
     || defined(__MINGW32__) || defined(__BORLANDC__) \
     || defined(_WIN32_WCE))
# define GC_WIN32_THREADS
# if defined(__CYGWIN__)
#   define GC_PTHREADS
# endif
#endif

# define __GC
# ifndef _WIN32_WCE
#   include <stddef.h>
# else /* ! _WIN32_WCE */
/* Yet more kluges for WinCE */
#   include <stdlib.h>		/* size_t is defined here */
    typedef long ptrdiff_t;	/* ptrdiff_t is not defined */
# endif

#if defined(_DLL) && !defined(GC_NOT_DLL) && !defined(GC_DLL)
# define GC_DLL
#endif

#if defined(__MINGW32__) && defined(GC_DLL)
# ifdef GC_BUILD
#   define GC_API __declspec(dllexport)
# else
#   define GC_API __declspec(dllimport)
# endif
#endif

#if (defined(__DMC__) || defined(_MSC_VER)) && defined(GC_DLL)
# ifdef GC_BUILD
#   define GC_API extern __declspec(dllexport)
# else
#   define GC_API __declspec(dllimport)
# endif
#endif

#if defined(__WATCOMC__) && defined(GC_DLL)
# ifdef GC_BUILD
#   define GC_API extern __declspec(dllexport)
# else
#   define GC_API extern __declspec(dllimport)
# endif
#endif

#ifndef GC_API
#define GC_API extern
#endif