Main Page | Class List | Directories | File List | Class Members | File Members

acconfig.h

Go to the documentation of this file.
00001 /*
00002 || This file is part of Pike. For copyright information see COPYRIGHT.
00003 || Pike is distributed under GPL, LGPL and MPL. See the file COPYING
00004 || for more information.
00005 || $Id: acconfig.h,v 1.147 2005/05/30 13:22:55 grubba Exp $
00006 */
00007 
00008 #ifndef MACHINE_H
00009 #define MACHINE_H
00010 
00011 /* We must define this *always* */
00012 #ifndef POSIX_SOURCE
00013 #define POSIX_SOURCE
00014 #endif
00015 
00016 /* Get more declarations in GNU libc. */
00017 #ifndef _GNU_SOURCE
00018 #define _GNU_SOURCE
00019 #endif
00020 
00021 /* Get more declarations from AIX libc. */
00022 #ifndef _ALL_SOURCE
00023 #define _ALL_SOURCE
00024 #endif
00025 
00026 /* Building as a library? */
00027 #undef LIBPIKE
00028 
00029 /* Where's the master.pike file installed? */
00030 #define DEFAULT_MASTER "@prefix@/lib/pike/master.pike"
00031 
00032 /* Define this if you want run time self tests */
00033 #undef PIKE_DEBUG
00034 
00035 /* Define this if you want some extra (possibly verbose) run time self tests */
00036 #undef PIKE_EXTRA_DEBUG
00037 
00038 /* Define to make Pike do a full cleanup at exit to detect leaks. */
00039 #undef DO_PIKE_CLEANUP
00040 
00041 /* Define this if you want pike to interact with valgrind. */
00042 #undef USE_VALGRIND
00043 
00044 /* Define this if you are going to use a memory access checker (like Purify) */
00045 #undef __CHECKER__
00046 
00047 /* Define this if you want malloc debugging */
00048 #undef DEBUG_MALLOC
00049 
00050 /* Define this if you want checkpoints */
00051 #undef DMALLOC_TRACE
00052 
00053 /* Define this if you want dmalloc to keep track of freed memory. */
00054 #undef DMALLOC_TRACK_FREE
00055 
00056 /* With this, dmalloc will trace malloc(3) calls */
00057 #undef ENCAPSULATE_MALLOC
00058 
00059 /* With this, dmalloc will report leaks made by malloc(3) calls */
00060 #undef REPORT_ENCAPSULATED_MALLOC
00061 
00062 /* Define this to enable the internal Pike security system */
00063 #undef PIKE_SECURITY
00064 
00065 /* Define this to enable the internal bignum conversion */
00066 #undef AUTO_BIGNUM
00067 
00068 /* Define this to enable experimental code for multicpu machines */
00069 #undef PIKE_RUN_UNLOCKED
00070 
00071 /* Define this if you want to enable the shared nodes mode of the optimizer. */
00072 #undef SHARED_NODES
00073 
00074 /* Define this to use the new keypair loop. */
00075 #undef PIKE_MAPPING_KEYPAIR_LOOP
00076 
00077 /* Define this to get portable dumped bytecode. */
00078 #undef PIKE_PORTABLE_BYTECODE
00079 
00080 /* Enable profiling */
00081 #undef PROFILING
00082 
00083 /* Enable internal profiling */
00084 #undef INTERNAL_PROFILING
00085 
00086 /* The following USE_* are used by smartlink */
00087 /* Define this if your ld sets the run path with -rpath */
00088 #undef USE_RPATH
00089 
00090 /* Define this if your ld sets the run path with -R */
00091 #undef USE_R
00092 
00093 /* Define this if your ld sets the run path with -YP, */
00094 #undef USE_YP_
00095 
00096 /* Define this if your ld sets the run path with +b */
00097 #undef USE_PLUS_b
00098 
00099 /* Define this if your ld uses -rpath, but your cc wants -Wl,-rpath, */
00100 #undef USE_Wl
00101 
00102 /* Define this if your ld uses -R, but your cc wants -Wl,-R */
00103 #undef USE_Wl_R
00104 
00105 /* Define this if your ld uses -rpath, but your cc -Qoption,ld,-rpath (icc) */
00106 #undef USE_Qoption
00107 
00108 /* Define this if your ld uses -YP, , but your cc wants -Xlinker -YP, */
00109 #undef USE_XLINKER_YP_
00110 
00111 /* Define this if your ld doesn't have an option to set the run path */
00112 #undef USE_LD_LIBRARY_PATH
00113 
00114 /* Define if your tcc supports #pragma TenDRA longlong type allow. */
00115 #undef HAVE_PRAGMA_TENDRA_LONGLONG
00116 
00117 /* Define if your tcc supports #pragma TenDRA set longlong type : long long. */
00118 #undef HAVE_PRAGMA_TENDRA_SET_LONGLONG_TYPE
00119 
00120 /* The worlds most stringent C compiler? */
00121 #ifdef __TenDRA__
00122 /* We want to be able to use 64bit arithmetic */
00123 #ifdef HAVE_PRAGMA_TENDRA_LONGLONG
00124 #pragma TenDRA longlong type allow
00125 #endif /* HAVE_PRAGMA_TENDRA_LONGLONG */
00126 #ifdef HAVE_PRAGMA_TENDRA_SET_LONGLONG_TYPE
00127 #pragma TenDRA set longlong type : long long
00128 #endif /* HAVE_PRAGMA_TENDRA_SET_LONGLONG_TYPE */
00129 
00130 #ifdef _NO_LONGLONG
00131 #undef _NO_LONGLONG
00132 #endif /* _NO_LONGLONG */
00133 #endif /* __TenDRA__ */
00134 
00135 @TOP@
00136 
00137 /* Define this if your compiler attempts to use _chkstk, but libc contains
00138  * __chkstk. */
00139 #undef HAVE_BROKEN_CHKSTK
00140 
00141 /* Define for solaris */
00142 #undef SOLARIS
00143 
00144 /* Define if the closedir function returns void instead of int.  */
00145 #undef VOID_CLOSEDIR
00146 
00147 /* Define to 'int' if <sys/time.h> doesn't */
00148 #undef time_t
00149 
00150 /* Define to 'short' if <sys/types.h> doesn't */
00151 #undef pri_t
00152 
00153 /* Define to 'int' if <sys/types.h> doesn't */
00154 #undef uid_t
00155 
00156 /* Define to 'int' if <sys/types.h> doesn't */
00157 #undef gid_t
00158 
00159 /* Define to 'int' if <sys/types.h> doesn't */
00160 #undef pid_t
00161 
00162 /* Define to 'unsigned long' if <sys/types.h> or <stddef.h> doesn't */
00163 #undef size_t
00164 
00165 /* Define to 'long' if <sys/types.h> of <stddef.h> doesn't */
00166 #undef ptrdiff_t
00167 
00168 /* Define to 'long' if <sys/types.h> doesn't */
00169 #undef off_t
00170 
00171 /* Define to 'int' if <signal.h> doesn't */
00172 #undef sig_atomic_t
00173 
00174 /* Define as the return type of signal handlers (int or void).  */
00175 #undef RETSIGTYPE
00176 
00177 /* define this if igonoring SIGFPE helps with core dumps */
00178 #undef IGNORE_SIGFPE
00179 
00180 /* define if you want to use double precision floats instead of single */
00181 #undef WITH_DOUBLE_PRECISION_SVALUE
00182 
00183 /* define if you want to use long double precision floats */
00184 #undef WITH_LONG_DOUBLE_PRECISION_SVALUE
00185 
00186 /* define to the type of pike floats */
00187 #undef FLOAT_TYPE
00188 
00189 /* define to the size of pike floats */
00190 #undef SIZEOF_FLOAT_TYPE
00191 
00192 /* force this type upon ints */
00193 #undef WITH_LONG_INT
00194 #undef WITH_LONG_LONG_INT
00195 #undef WITH_INT_INT
00196 
00197 /* define to the type of pike primitive ints */
00198 #undef INT_TYPE
00199 
00200 /* define to the size of pike primitive ints */
00201 #undef SIZEOF_INT_TYPE
00202 
00203 /* If using the C implementation of alloca, define if you know the
00204  * direction of stack growth for your system; otherwise it will be
00205  * automatically deduced at run-time.
00206  *      STACK_DIRECTION > 0 => grows toward higher addresses
00207  *      STACK_DIRECTION < 0 => grows toward lower addresses
00208  *      STACK_DIRECTION = 0 => direction of growth unknown
00209  *
00210  * Also used by Pike's runtime C-stack checker.
00211  */
00212 #undef STACK_DIRECTION
00213 
00214 /* Define this to the number of KB in the initial stack,
00215  * currently this is 1 Mb on FreeBSD, 2Mb on Linux and
00216  * unlimited (undefined) everywhere else
00217  */
00218 #undef Pike_INITIAL_STACK_SIZE
00219 
00220 /* If so, is it restricted to user and system time? */
00221 #undef GETRUSAGE_RESTRICTED
00222 
00223 /* Solaris has rusage as an ioctl on procfs */
00224 #undef GETRUSAGE_THROUGH_PROCFS
00225 
00226 /* So has True64, but no useful information in prstatus_t */
00227 #undef GETRUSAGE_THROUGH_PROCFS_PRS
00228 
00229 /* Define if you have infnan */
00230 #undef HAVE_INFNAN
00231 
00232 /* Define if you have _isnan */
00233 #undef HAVE__ISNAN
00234 
00235 /* Define if you have fork */
00236 #undef HAVE_FORK
00237 
00238 /* Define if you have isspace */
00239 #undef HAVE_ISSPACE
00240 
00241 /* Define if you have fpsetmask */
00242 #undef HAVE_FPSETMASK
00243 
00244 /* Define if you have fpsetround */
00245 #undef HAVE_FPSETROUND
00246 
00247 /* Define if you have isless */
00248 #undef HAVE_ISLESS
00249 
00250 /* Define if you have isunordered */
00251 #undef HAVE_ISUNORDERED
00252 
00253 /* Define if you have crypt.  */
00254 #undef HAVE_CRYPT
00255 
00256 /* Define if you have ualarm. */
00257 #undef HAVE_UALARM
00258 
00259 /* Define if your ualarm takes two args. */
00260 #undef UALARM_TAKES_TWO_ARGS
00261 
00262 /* Define if your ptrace takes four args. */
00263 #undef PTRACE_TAKES_FOUR_ARGS
00264 
00265 /* Define if argument 3 to ptrace is a pointer type. */
00266 #undef PTRACE_ADDR_TYPE_IS_POINTER
00267 
00268 /* Define if gettimeofday takes to arguments */
00269 #undef GETTIMEOFDAY_TAKES_TWO_ARGS
00270 
00271 /* Define if realloc(NULL, SZ) works. */
00272 #undef HAVE_WORKING_REALLOC_NULL
00273 
00274 /* Define if gethrvtime works (i.e. even without ptime). */
00275 #undef HAVE_WORKING_GETHRVTIME
00276 
00277 /* Define if you have gethrtime */
00278 #undef HAVE_GETHRTIME
00279 
00280 /* Can we make our own gethrtime? */
00281 #undef OWN_GETHRTIME
00282 
00283 /* ... by using the RDTSC instruction? */
00284 #undef OWN_GETHRTIME_RDTSC
00285 
00286 /* Define if you have a working, 8-bit-clean memcmp */
00287 #undef HAVE_MEMCMP
00288 
00289 /* Define if it is possible to allocate PROT_EXEC memory with mmap */
00290 #undef MEXEC_USES_MMAP
00291 
00292 /* Define if you have gethostname */
00293 #undef HAVE_GETHOSTNAME
00294 
00295 /* Define if you have memmove.  */
00296 #ifndef __CHECKER__
00297 #undef HAVE_MEMMOVE
00298 #endif
00299 
00300 /* Define if you have memmem.  */
00301 #undef HAVE_MEMMEM
00302 
00303 /* Define if you have memset.  */
00304 #undef HAVE_MEMSET
00305 
00306 /* Define if you have memcpy.  */
00307 #undef HAVE_MEMCPY
00308 
00309 /* Define if you have strcoll */
00310 #undef HAVE_STRCOLL
00311 
00312 /* Define this if you have dlopen */
00313 #undef HAVE_DLOPEN
00314 
00315 /* Define if you have ldexp.  */
00316 #undef HAVE_LDEXP
00317 
00318 /* Define if you have rint.  */
00319 #undef HAVE_RINT
00320 
00321 /* Define if you have frexp.  */
00322 #undef HAVE_FREXP
00323 
00324 /* Define if your signals are one-shot */
00325 #undef SIGNAL_ONESHOT
00326 
00327 /* Define this if eval_instruction gets large on your platform. */
00328 #undef PIKE_SMALL_EVAL_INSTRUCTION
00329 
00330 /* Define if you have gcc-style computed goto, and want to use them. */
00331 #undef HAVE_COMPUTED_GOTO
00332 
00333 /* Define this to use machine code */
00334 #undef PIKE_USE_MACHINE_CODE
00335 
00336 /* Define this to one of the available bytecode methods. */
00337 #undef PIKE_BYTECODE_METHOD
00338 
00339 /* You have gcc-type function attributes? */
00340 #undef HAVE_FUNCTION_ATTRIBUTES
00341 
00342 /* You have cl-type __declspec? */
00343 #undef HAVE_DECLSPEC
00344 
00345 /* Your va_list is a state pointer? */
00346 #undef VA_LIST_IS_STATE_PTR
00347 
00348 /* Does your compiler grock 'volatile' */
00349 #define VOLATILE volatile
00350 
00351 /* Define to empty if your compiler doesn't support C99's restrict keyword. */
00352 #undef restrict
00353 
00354 /* Define this if your compiler doesn't allow cast of void * to function pointer */
00355 #undef NO_CAST_TO_FUN
00356 
00357 /* How to extract a char and an unsigned char from a char * */
00358 #undef EXTRACT_CHAR_BY_CAST
00359 #undef EXTRACT_UCHAR_BY_CAST
00360 
00361 /* Do you have IEEE floats and/or doubles (either big or little endian) ? */
00362 #undef FLOAT_IS_IEEE_BIG
00363 #undef FLOAT_IS_IEEE_LITTLE
00364 #undef DOUBLE_IS_IEEE_BIG
00365 #undef DOUBLE_IS_IEEE_LITTLE
00366 
00367 /* Define this if strtol exists, and doesn't cut at 0x7fffffff */
00368 #undef HAVE_WORKING_STRTOL
00369 
00370 /* The rest of this file is just to eliminate warnings */
00371 
00372 /* define if declaration of strchr is missing */
00373 #undef STRCHR_DECL_MISSING
00374 
00375 /* define if declaration of malloc is missing */
00376 #undef MALLOC_DECL_MISSING
00377 
00378 /* define if declaration of getpeername is missing */
00379 #undef GETPEERNAME_DECL_MISSING
00380 
00381 /* define if declaration of gethostname is missing */
00382 #undef GETHOSTNAME_DECL_MISSING
00383 
00384 /* define if declaration of popen is missing */
00385 #undef POPEN_DECL_MISSING
00386 
00387 /* define if declaration of getenv is missing */
00388 #undef GETENV_DECL_MISSING
00389 
00390 /* define if you are using crypt.c. */
00391 #undef USE_CRYPT_C
00392 
00393 /* Define if we can declare 'extern char **environ' */
00394 #undef DECLARE_ENVIRON
00395 
00396 /* The byteorder your machine use, most use 4321, PC use 1234 */
00397 #define PIKE_BYTEORDER 0
00398 
00399 /* What alignment do pointers need */
00400 #define PIKE_POINTER_ALIGNMENT 4
00401 
00402 /* Assembler prefix for general purpose registers */
00403 #undef PIKE_CPU_REG_PREFIX
00404 
00405 /* Number of possible filedesriptors */
00406 #define MAX_OPEN_FILEDESCRIPTORS 1024
00407 
00408 /* define this if #include <time.h> provides an external int timezone */
00409 #undef HAVE_EXTERNAL_TIMEZONE
00410 
00411 /* define this if your struct tm has a tm_gmtoff */
00412 #undef STRUCT_TM_HAS_GMTOFF
00413 
00414 /* define this if your struct tm has a __tm_gmtoff */
00415 #undef STRUCT_TM_HAS___TM_GMTOFF
00416 
00417 /* Define if you have struct timeval */
00418 #undef HAVE_STRUCT_TIMEVAL
00419 
00420 /* Define if you have struct sockaddr_in6 */
00421 #undef HAVE_STRUCT_SOCKADDR_IN6
00422 
00423 /* Define this to the max value of an unsigned short unles <limits.h> does.. */
00424 #undef USHRT_MAX
00425 
00426 /* Define these if you are going to use threads */
00427 #undef PIKE_THREADS
00428 #undef _REENTRANT
00429 #undef _THREAD_SAFE
00430 
00431 /* Define this if you want the UNIX taste of threads */
00432 #undef _UNIX_THREADS
00433 
00434 /* Define this if you want the POSIX taste of threads */
00435 #undef _MIT_POSIX_THREADS
00436 
00437 /* Define this if you want the SGI sproc taste of threads */
00438 #undef _SGI_SPROC_THREADS
00439 #undef _SGI_MP_SOURCE
00440 
00441 /* Define this if you have Windows NT threads */
00442 #undef NT_THREADS
00443 
00444 /* Define this if your THREAD_T type is a pointer type. */
00445 #undef PIKE_THREAD_T_IS_POINTER
00446 
00447 /* Define to the flag to get an error checking mutex, if supported. */
00448 #undef PIKE_MUTEX_ERRORCHECK
00449 
00450 /* Define to the flag to get a recursive mutex, if supported. */
00451 #undef PIKE_MUTEX_RECURSIVE
00452 
00453 /* Define this if your pthreads have pthread_condattr_default */
00454 #undef HAVE_PTHREAD_CONDATTR_DEFAULT
00455 
00456 /* Define this if you need to use &pthread_condattr_default in cond_init() */
00457 #undef HAVE_PTHREAD_CONDATTR_DEFAULT_AIX
00458 
00459 /* Define if you have the pthread_attr_setstacksize function.  */
00460 #undef HAVE_PTHREAD_ATTR_SETSTACKSIZE
00461 
00462 /* Define if you have the pthread_atfork function.  */
00463 #undef HAVE_PTHREAD_ATFORK
00464 
00465 /* Define if you have the pthread_cond_init function.  */
00466 #undef HAVE_PTHREAD_COND_INIT
00467 
00468 /* Define if you have the pthread_yield function.  */
00469 #undef HAVE_PTHREAD_YIELD
00470 
00471 /* Define if you have the pthread_yield_np function.  */
00472 #undef HAVE_PTHREAD_YIELD_NP
00473 
00474 /* Hack for stupid glibc linuxthreads */
00475 #undef HAVE_PTHREAD_INITIAL_THREAD_BOS
00476 
00477 /* Define if your OS has the union wait. */
00478 #undef HAVE_UNION_WAIT
00479 
00480 /* Define if you have isgraph */
00481 #undef HAVE_ISGRAPH
00482 
00483 /* Define if your cpp supports the ANSI concatenation operator ## */
00484 #undef HAVE_ANSI_CONCAT
00485 
00486 /* Define if you don't have F_SETFD, or it doesn't work */
00487 #undef HAVE_BROKEN_F_SETFD
00488 
00489 /* Define if your thread implementation doesn't propagate euid & egid. */
00490 #undef HAVE_BROKEN_LINUX_THREAD_EUID
00491 
00492 /* Define if your cpp supports K&R-style concatenation */
00493 #undef HAVE_KR_CONCAT
00494 
00495 /* Use poll() instead of select() ? */
00496 #undef HAVE_AND_USE_POLL
00497 
00498 /* Enable use of /dev/epoll on Linux. */
00499 #undef WITH_EPOLL
00500 
00501 /* Define to the poll device (eg "/dev/poll") */
00502 #undef PIKE_POLL_DEVICE
00503 
00504 /* This works on Solaris or any UNIX where
00505  * waitpid can report ECHILD when running more than one at once
00506  * (or any UNIX where waitpid actually works)
00507  */
00508 #undef USE_WAIT_THREAD
00509 
00510 /* This works on Linux or any UNIX where
00511  * waitpid works or where threads and signals bugs in
00512  * less annoying ways than Solaris.
00513  */
00514 #undef USE_SIGCHILD
00515 
00516 /* Enable tracing of the compiler */
00517 #undef YYDEBUG
00518 
00519 /* Define if your compiler has a symbol __func__ */
00520 #undef HAVE_WORKING___FUNC__
00521 
00522 /* Define if your compiler has a symbol __FUNCTION__ */
00523 #undef HAVE_WORKING___FUNCTION__
00524 
00525 /* The last argument to accept() is an ACCEPT_SIZE_T * */
00526 #define ACCEPT_SIZE_T   int
00527 
00528 /* Can we compile in MMX support? */
00529 #undef TRY_USE_MMX
00530 
00531 /* Define if you have the <sys/resource.h> header file.  */
00532 #undef HAVE_SYS_RESOURCE_H
00533 
00534 /* set this to the modifier type string to print size_t, like "" or "l" */
00535 #undef PRINTSIZET
00536 
00537 /* set this to the modifier type string to print ptrdiff_t, like "" or "l" */
00538 #undef PRINTPTRDIFFT
00539 
00540 /* set this to the modifier type string to print INT64 if that type exists */
00541 #undef PRINTINT64
00542 
00543 /* Define if the compiler understand union initializations. */
00544 #undef HAVE_UNION_INIT
00545 
00546 /* Define when binary --disable-binary is used. */
00547 #undef DISABLE_BINARY
00548 
00549 /* Define to the size of the overhead for a malloc'ed block. (Slightly
00550  * too much is better than slightly too little.) */
00551 #undef PIKE_MALLOC_OVERHEAD
00552 
00553 /* Define to the page size (handled efficiently by malloc). */
00554 #undef PIKE_MALLOC_PAGE_SIZE
00555 
00556 /* PIKE_YES if the number reported by get_cpu_time (rusage.c) is
00557  * thread local, PIKE_NO if it isn't, PIKE_UNKNOWN if it couldn't be
00558  * established. */
00559 #undef CPU_TIME_IS_THREAD_LOCAL
00560 
00561 @BOTTOM@
00562 
00563 /* Define to the size of the c-stack for new threads */
00564 #undef PIKE_THREAD_C_STACK_SIZE
00565 
00566 /* NT stuff */
00567 #undef HAVE_GETSYSTEMTIMEASFILETIME
00568 #undef HAVE_LOADLIBRARY
00569 #undef HAVE_FREELIBRARY
00570 #undef HAVE_GETPROCADDRESS
00571 #undef DL_EXPORT
00572 #undef USE_MY_WIN32_DLOPEN
00573 
00574 /* CygWin kludge. */
00575 #if defined(HAVE_UNISTD_H) && defined(HAVE_WINDOWS_H)
00576 #undef HAVE_WINDOWS_H
00577 #undef HAVE_WINBASE_H
00578 #undef HAVE_WINSOCK_H
00579 #undef HAVE_WINSOCK2_H
00580 #undef HAVE_FD_FLOCK
00581 #endif /* HAVE_SYS_UNISTD_H && HAVE_WINDOWS_H */
00582 
00583 /* How to set a socket non-blocking */
00584 #undef USE_IOCTL_FIONBIO
00585 #undef USE_IOCTLSOCKET_FIONBIO
00586 #undef USE_FCNTL_O_NDELAY
00587 #undef USE_FCNTL_FNDELAY
00588 #undef USE_FCNTL_O_NONBLOCK
00589 
00590 /* How well is OOB TCP working?
00591  * -1 = unknown
00592  *  0 = doesn't seem to be working at all
00593  *  1 = very limited functionality
00594  *  2 = should be working as long as you are cautious
00595  *  3 = works excellently
00596  */
00597 #define PIKE_OOB_WORKS -1
00598 
00599 /* We want to use errno later */
00600 #ifdef _SGI_SPROC_THREADS
00601 /* Magic define of _SGI_MP_SOURCE above might redefine errno below */
00602 #include <errno.h>
00603 #if defined(HAVE_OSERROR) && !defined(errno)
00604 #define errno (oserror())
00605 #endif /* HAVE_OSERROR && !errno */
00606 #endif /* _SGI_SPROC_THREADS */
00607 
00608 /* This macro is only provided for compatibility with
00609  * Windows PreRelease. Use ALIGNOF() instead!
00610  * (Needed for va_arg().)
00611  */
00612 #ifndef __alignof
00613 #define __alignof(X) ((size_t)&(((struct { char ignored_ ; X fooo_; } *)0)->fooo_))
00614 #endif /* __alignof */
00615 
00616 #ifdef HAVE_FUNCTION_ATTRIBUTES
00617 #define ATTRIBUTE(X) __attribute__ (X)
00618 #else
00619 #define ATTRIBUTE(X)
00620 #endif
00621 
00622 #ifdef HAVE_DECLSPEC
00623 #define DECLSPEC(X) __declspec(X)
00624 #else /* !HAVE_DECLSPEC */
00625 #define DECLSPEC(X)
00626 #endif /* HAVE_DECLSPEC */
00627 
00628 #ifndef HAVE_WORKING_REALLOC_NULL
00629 #define realloc(PTR, SZ)        pike_realloc(PTR,SZ)
00630 #endif
00631 
00632 /* NOTE:
00633  *    PIKE_CONCAT doesn't get defined if there isn't any way to
00634  *    concatenate symbols
00635  */
00636 #ifdef HAVE_ANSI_CONCAT
00637 #define PIKE_CONCAT(X,Y)        X##Y
00638 #define PIKE_CONCAT3(X,Y,Z)     X##Y##Z
00639 #define PIKE_CONCAT4(X,Y,Z,Q)   X##Y##Z##Q
00640 #else
00641 #ifdef HAVE_KR_CONCAT
00642 #define PIKE_CONCAT(X,Y)        XY
00643 #define PIKE_CONCAT3(X,Y,Z)     XYZ
00644 #define PIKE_CONCAT4(X,Y,Z,Q)   XYZQ
00645 #endif /* HAVE_KR_CONCAT */
00646 #endif /* HAVE_ANSI_CONCAT */
00647 
00648 #define TOSTR(X)        #X
00649 #define DEFINETOSTR(X)  TOSTR(X)
00650 
00651 /* Some identifiers used as flags in the defines above. */
00652 #define PIKE_YES        1
00653 #define PIKE_NO         2
00654 #define PIKE_UNKNOWN    3
00655 
00656 #endif /* MACHINE_H */

Generated on Fri Jul 22 23:44:24 2005 for Pike by  doxygen 1.3.9.1