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 */
1.3.9.1