source: git/Singular/mod2.h.in @ fec3bde

spielwiese
Last change on this file since fec3bde was fec3bde, checked in by Hans Schoenemann <hannes@…>, 13 years ago
check for pselect and alternative to pselect git-svn-id: file:///usr/local/Singular/svn/trunk@14006 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 18.4 KB
RevLine 
[a70441f]1/* -*-c++-*- */
[5f9072]2/*******************************************************************
3 *  Computer Algebra System SINGULAR
4 *
5 *  mod2.h: Main configuration file for Singular
6 *          DO NOT EDIT!
7 *
[341696]8 *  Version: $Id$
[5f9072]9 *******************************************************************/
10#ifndef MOD2_H
11#define MOD2_H
12
13/*******************************************************************
[a693ce]14 * Defines which are set by configure
[5f9072]15 ******************************************************************/
[f413ec5]16/* Define to use dynamic linking */
17#undef HAVE_DL
[833e11]18/* Define to use readline lib for fancy display: configure result */
19#undef HAVE_LIBREADLINE
[7e5a38]20/* Define to use static readline lib for fancy display */
[5f9072]21#undef HAVE_READLINE
[7e5a38]22/* define to use dynamic version of readline lib */
23#undef HAVE_DYN_RL
[5f9072]24/* Define to have dbm links */
25#undef HAVE_DBM
26/* Define to have MP links */
27#undef HAVE_MPSR
28/* Define to have factory functionality added */
29#undef HAVE_FACTORY
30/* Define if you have stdc headers */
31#undef STDC_HEADERS
[b60fb4]32/* Define if you have asm/sigcontext.h */
33#undef HAVE_ASM_SIGCONTEXT_H
[5f9072]34/* Define if you have sys/file.h */
35#undef HAVE_SYS_FILE_H
[64c6d1]36/* Define if you have sys/stat.h */
37#undef HAVE_SYS_STAT_H
[1caa72]38/* Define if you have sys/param.h */
39#undef HAVE_SYS_PARAM_H
40/* Define if you have sys/file.h */
41#undef HAVE_SYS_TYPES_H
[5f9072]42/* Define if you have sys/ioctl.h */
43#undef HAVE_SYS_IOCTL_H
44/* Define if you have sys/time.h */
45#undef HAVE_SYS_TIME_H
[b85a6c]46/* Define if you have sys/times.h */
47#undef HAVE_SYS_TIMES_H
[3037783]48/* io header: */
49/* Define if you have termcap.h */
50#undef HAVE_TERMCAP_H
51/* Define if you have termios.h */
52#undef HAVE_TERMIOS_H
[bd337e]53/* Define if you have term.h */
54#undef HAVE_TERM_H
[7d52ae]55/* Define if you have readline/history.h */
56#undef HAVE_READLINE_HISTORY_H
[3a8afb6]57/* Define if readline/readline.h is ok */
58#undef READLINE_READLINE_H_OK
[5f9072]59/* Define if time.h and sys/time.h can be included at the same time */
60#undef TIME_WITH_SYS_TIME
61/* Define if you have alloca.h */
62#undef HAVE_ALLOCA_H
[1caa72]63/* Define if you have pwd.h */
64#undef HAVE_PWD_H
[52a5e8]65/* Define if you have unistd.h */
66#undef HAVE_UNISTD_H
[138f0c]67/* define if you have malloc.h */
[52a5e8]68#undef HAVE_MALLOC_H
[138f0c]69/* define if you have pwd.h*/
70#undef HAVE_PWD_H
[5f9072]71/* Define if you have alloca */
72#undef HAVE_ALLOCA
73/* Define if you have getpagesize */
74#undef GETPAGESIZE
75/* Define if you have vprintf */
76#undef HAVE_VPRINTF
77/* Define if you have gettimeofday */
78#undef HAVE_GETTIMEOFDAY
79/* Define if you have atexit */
80#undef HAVE_ATEXIT
[a693ce]81/* Define if you have bcopy, bzero and bcmp
[2c3da6]82   Linux needs that define! */
83#undef HAVE_BCOPY
[5f9072]84/* Define if sprintf does not return number of printed chars */
85#undef BSD_SPRINTF
[c7db8e]86/* define if you have explicit C++ constructors */
87#undef HAVE_EXPLICIT_CONSTR
[1caa72]88/* Define if you have the getcwd function.  */
89#undef HAVE_GETCWD
90/* Define if you have the getwd function.  */
91#undef HAVE_GETWD
[a79a128]92/* Define if you have snprintf */
93#undef HAVE_VSNPRINTF
[a8bce04]94/* Define if you have readlink */
95#undef HAVE_READLINK
[45f7bf]96/* Define if you have usleep */
97#undef HAVE_USLEEP
[3bb3e6a]98/* Define if you have sleep */
99#undef HAVE_SLEEP
[9c35ef]100/* Define if you have setenv */
101#undef HAVE_SETENV
[138f0c]102/* Define if you have petpwnam */
103#undef HAVE_GETPWNAM
[9d72fe]104/* Define if you have popen */
105#undef HAVE_POPEN
[4094088]106/* Define if you have sysconf */
107#undef HAVE_SYSCONF
[206aed]108/* Define if you have siginterrupt (BSD4.3) */
109#undef HAVE_SIGINTERRUPT
[fec3bde]110/* Define if you have pselect */
111#undef HAVE_PSELECT
[1cddd8]112/* define for boost includes and lib */
[f5da37]113//////////////////////// #undef HAVE_BOOST_DYNAMIC_BITSET_HPP
[ea6657f]114/* define for std:vector includes */
115#undef USE_STDVECBOOL
[51c163]116/* Define sizeof(char) */
117#define SIZEOF_CHAR 1
118/* Define sizeof(short) */
119#define SIZEOF_SHORT 2
120/* Define sizeof(int) */
121#define SIZEOF_INT 4
122/* Define sizeof(long) */
123#define SIZEOF_LONG 4
[5f9072]124/* Define sizeof(void*) */
125#define SIZEOF_VOIDP 4
[fff984]126/* Define sizeof(double) */
127#define SIZEOF_DOUBLE 8
[51c163]128/* Define if your integer format is big endian */
129#undef WORDS_BIGENDIAN
[64c6d1]130/* Define major version of Singular -- should be set in ../configure.in!!!*/
[cb0e67b]131#define SINGULAR_MAJOR_VERSION 0
[64c6d1]132/* Define minor version of Singular -- should be set in ../configure.in!!! */
[cb0e67b]133#define SINGULAR_MINOR_VERSION 0
[64c6d1]134/* Define sub version of Singular -- should be set in ../configure.in!!! */
[cb0e67b]135#define SINGULAR_SUB_VERSION 0
[5f9072]136/* Define version as a string */
137#define S_VERSION1 ""
138/* Define version date as a string */
139#define S_VERSION2 ""
[72f950]140/* Define uname identifier as a string */
141#define S_UNAME ""
[9c35ef]142/* Absolute pathname of root directory of Singular source */
143#define S_ROOT_DIR ""
[814c11]144/* Define to enable dynamic module code */
145#undef HAVE_DYNAMIC_LOADING
146/* Define to enable plural */
147#undef HAVE_PLURAL
[9e9dbc]148/* Define to enable ratGB/ ratGRING */
149#undef HAVE_RATGRING
[037df4]150/* Define to enable shiftbba */
151#undef HAVE_SHIFTBBA
[696db9]152/* Define to enable libsvd */
153#undef HAVE_SVD
[7afec5]154/* CPU type: i[3456]86: */
155#undef SI_CPU_I386
156/* CPU type: sparc: */
157#undef SI_CPU_SPARC
158/* CPU type: ppc: */
159#undef SI_CPU_PPC
160/* CPU type: IA64: */
161#undef SI_CPU_IA64
162/* CPU type: x86_64: */
163#undef SI_CPU_X86_64
[1cb879]164/* whether development version of python is available */
165#undef HAVE_PYTHON
[76b37c]166/* whether static development version of python is available */
167#undef HAVE_STATIC_PYTHON
168/* whether python should be embedded */
169#undef EMBED_PYTHON
[5f9072]170
171/*******************************************************************
172 * Defines which are not set by configure
173 ******************************************************************/
[f413ec5]174
[5f9072]175/* Default value for timer resolution in ticks per second */
176/* set to 10 for resolution of tenth of a second, etc */
177#define TIMER_RESOLUTION 1
[f413ec5]178
[5f9072]179/* Undefine to disable the quote/eval of expressions */
180#define SIQ 1
[f413ec5]181
[dc87554]182/* Undefine to disable Gerhard's and Wilfried's fast and dirty std computations */
[5f9072]183#define FAST_AND_DIRTY
184
[c3f0f3]185/* eigenvalues */
[670d92]186#ifndef HAVE_DYNAMIC_LOADING
[c3f0f3]187#define HAVE_EIGENVAL 1
188
[bb0153]189/* Gauss-Manin system */
190#define HAVE_GMS 1
[670d92]191#endif
[bb0153]192
[057751]193/* linear algebra extensions from pcv.h/pcv.cc */
194#define HAVE_PCV 1
195
[b546c0]196/* procedures to compute groebner bases with the f5 implementation */
197/* still testing */
[c1a5fd]198#undef HAVE_F5
[586b38]199
200/* procedures to compute groebner bases with the f5c implementation */
201/* still testing */
[5979b5]202#undef HAVE_F5C
[797ff9]203
[b4e3253]204/* letterplace gb:*/
[4b00ef]205#define HAVE_SHIFTBBA 1
[b546c0]206
207/* rings as coefficients */
208#define HAVE_RINGS
209
210/* procedures to compute with units */
[4abea21]211#define HAVE_UNITS
[7e67559]212
[6a51ef]213/* Define to use scanner when loading libraries */
214#define HAVE_LIBPARSER
215
[2b3f23]216/*#define PROFILING*/
[670667]217#ifdef PROFILING
[2b3f23]218#define PROFILER ,0,0
[670667]219#else
[a693ce]220#define PROFILER
[670667]221#endif
222
[5f9072]223/*******************************************************************
224 * Evaluate the set defines
225 ******************************************************************/
[7885020]226/* Spectrum needs GMP */
[d3bf098]227#define HAVE_SPECTRUM 1
[7885020]228
[5f9072]229#if SIZEOF_VOIDP == 8
[b7b08c]230/* SIZEOF_LONG == SIZEOF_VOIDP is guaranteed by configure */
[5f9072]231#define ALIGN_8
[b7b08c]232#define LOG_SIZEOF_LONG  3
233#define LOG_SIZEOF_VOIDP 3
234#else
235#define LOG_SIZEOF_LONG  2
236#define LOG_SIZEOF_VOIDP 2
[5f9072]237#endif
238
[f62e786]239#ifndef CHAR_BIT
240#define CHAR_BIT 8
241#endif
242
243#define BIT_SIZEOF_LONG CHAR_BIT*SIZEOF_LONG
244
[bb19c5]245#define SINGULAR_PATCHLEVEL 0
[ea6657f]246#define SINGULAR_VERSION ((SINGULAR_MAJOR_VERSION*1000 + SINGULAR_MINOR_VERSION*100 + SINGULAR_SUB_VERSION*10)+SINGULAR_PATCHLEVEL)
[5f9072]247
248/*******************************************************************
[a693ce]249 * Miscellanous Defines
[5f9072]250 ******************************************************************/
[dc0898]251/* Under HPUX 9, system(...) returns -1 if SIGCHLD does not equal
252   SIG_DFL. However, if it stays at SIG_DFL we get zombie processes
253   for terminated childs generated by fork. Therefors some special treatment
254   is necessary */
255#ifdef HPUX_9
256#include <stdlib.h>
257#define system hpux9_system
258#ifdef __cplusplus
259extern "C" {
260#endif
261int hpux9_system(const char* system);
262#ifdef __cplusplus
263}
264#endif
265#endif
[faaef1]266
[6a51ef]267#ifndef HAVE_LIBPARSER
268#  undef YYLPDEBUG
269#else
[799ce1]270#  define YYLPDEBUG 1
[6a51ef]271#endif
272
[5f9072]273#ifndef FALSE
274#define FALSE       0
275#endif
276
277#ifndef TRUE
278#define TRUE        1
279#endif
280
281#ifndef NULL
282#define NULL        (0)
283#endif
284
285#ifndef SEEK_END
286#define SEEK_END 2
287#endif
288
289#ifndef SEEK_SET
290#define SEEK_SET 0
291#endif
292
293#define HALT() m2_end(2)
294
295#define memcpy4 memcpy
296
[faaef1]297/* define OLD_RES for res/sres/mres(i,j,k) */
[1dc07a7]298#undef OLD_RES
[faaef1]299
[5f9072]300/* the maximal ascii length of an int number + 1 = 11 for 32 bit int */
301#define MAX_INT_LEN 11
[82af190]302#define MAX_INT_VAL 0x7fffffff
[5f9072]303
[51c163]304#ifdef DO_PROFILE
[a693ce]305/* define to enable explicit profiling of some crucial inline
[f92fa13]306 * routines and defines  */
[7a5e7c]307#undef DO_DEEP_PROFILE
[51c163]308#endif
[f92fa13]309
[52a5e8]310/* define to enable assume */
311#ifndef HAVE_ASSUME
312#undef HAVE_ASSUME
313#endif
314
[6b32990]315/* define LINKAGE to "extern C" if compiling for shared libs */
316#ifndef LINKAGE
317#if defined(PIC)
318#define LINKAGE extern "C"
319#else
320#define LINKAGE
321#endif
322#endif
323
[b7b08c]324
[5f9072]325/*******************************************************************
326 * DEBUG OPTIONS
327 * -- only significant for for compiling without -DNDEBUG
328 * -- you better know what your are doing, if you touch this
329 ******************************************************************/
[a693ce]330#ifndef NDEBUG
[5f9072]331
[ec7aac]332/* undefine to enable inline */
333#define NO_INLINE
334
[52a5e8]335/* undefine to disable assume -- should normally be defined for NDEBUG */
336#define HAVE_ASSUME
337
[d14712]338/* undef PDEBUG to disable checks of polys
[cb66fa]339
340 define PDEBUG to
341  0 for enabling pTest
[512a2b]342  1 plus tests in Level 1 poly routines (operations on monomials)
343  2 plus tests in Level 2 poly routines (operations on single exponents)
[cb66fa]344 -- see also polys.h for more info
345
346 NOTE: you can set the value of PDEBUG on a per-file basis, before
[512a2b]347       including mod2.h, provided ! PDEBUG is defined in mod2.h E.g.:
[cb66fa]348
349       #define PDEBUG 2
350       #include "mod2.h"
351       ...
352
353       makes sure that all poly operations in your file are done with
354       PDEBUG == 2
[512a2b]355 To break after an error occured, set a debugger breakpoint on
356 dErrorBreak.
[cb66fa]357*/
[a6a239]358#ifndef PDEBUG
[d14712]359#define PDEBUG 0
[a6a239]360#endif
[d14712]361
[c232af]362/* define MDEBUG to enable memory checks */
363#define MDEBUG 0
364
365#ifdef MDEBUG
366/* If ! defined(OM_NDEBUG) and (defined(OM_TRACK) or defined(OM_CHECK)
367   then omDebug routines are used for memory allocation/free:
368
[512a2b]369   The omDebug routines are controlled by the values of OM_TRACK, OM_CHECK
370   and OM_KEEP.  There meaning is roughly as follows:
[c232af]371   OM_TRACK: strored with address                              : extra space
372     0     : no additional info is stored                      : 0
373     1     : file:line of location where address was allocated : 1 word
374     2     : plus backtrace of stack where adress was allocated: 6 words
375     3     : plus size/bin info and front-, and back padding   : 9 words
376     4     : plus file:line of location where adress was freed : 10 words
377     5     : plus backtrace of stack where adress was allocated: 15 words
378   OM_CHECK: checks done
379     0     : no checks
380     1     : constant-time checks: i.e. addr checks only
381     2     : plus linear-time checks and constant related bin check
382     3     : plus quadratic-time checks and linear-time related bin checks and
383             constant time all memory checks
384     4     : and so on
385     ==> for OM_CHECK >= 3 it gets rather slow
[512a2b]386   OM_KEEP:  determines whether addresses are really freed  (
387     0     : addresses are really freed
388     1     : addresses are only marked as free and not really freed.
[c232af]389
[512a2b]390   OM_CHECK, OM_TRACK, and OM_KEEP can be set on a per-file basis
391   (as can OM_NDEBUG),  e.g.:
[c232af]392     #define OM_CHECK 3
393     #define OM_TRACK 5
[512a2b]394     #define OM_KEEP  1
395     #include "mod2.h"
396     #include "omalloc.h"
[c232af]397   ensures that all memory allocs/free in this file are done with
[512a2b]398   OM_CHECK==3 and OM_TRACK==5, and that all addresses allocated/freed
399   in this file are only marked as free and never really freed.
[c232af]400 
[512a2b]401   To set OM_CHECK, OM_TRACK and OM_KEEP under dynamic scope, set
402   om_Opts.MinCheck, om_Opts.MinTrack to the respectiv values and
403   om_Opts.Keep to the number of addresses which are kept before they are
404   actually freed. E.g.:
405     int check=om_Opts.MinCheck, track=om_Opts.MinTrack, keep= m_OPts.Keep;
406     om_Opts.MinCheck = 3; om_Opts.MinTrack = 5; omOpts.Keep = LONG_MAX;
[c232af]407     ExternalRoutine();
[512a2b]408     om_Opts.MinCheck = check; omOpts.MinTrack = track; omOpts.Keep = keep;
[c232af]409   ensures that all calls omDebug routines  occuring during the computation of
[512a2b]410   ExternalRoutine() are done with OM_CHECK==3 and OM_TRACK==5, and
411   calls to omFree only mark addresses as free and not really free them.
[c232af]412
413   Furthermore, the value of OM_SING_KEEP (resp. om_Opts.Keep) specifies
[512a2b]414   how many addresses are kept before they are actually freed, independently
415   of the value of OM_KEEP.
416
417   Some tips on possible values of OM_TRACK, OM_CHECK, OM_KEEP:
418   + To find out about an address that has been freed twice, first locate the
419     file(s) where the error occured, and then at the beginning of these files:
420       #define OM_CHECK 3
421       #define OM_TRACK 5
422       #define OM_KEEP  1
423       #include "mod2.h"
424       #include "omalloc.h"
425     Under dynamic scope, do (e.g., from within the debugger):
426       om_Opts.MinCheck = 3; om_Opts.MinTrack = 5; omOpts.Keep = LONG_MAX;
[c232af]427   + to find out where "memory corruption" occured, increase value of
428     OM_CHECK - the higher this value is, the more consistency checks are
429     done (However a value > 3 checks the entire memory each time an omalloc
[cb66fa]430     routine is used!)
[c232af]431   
432   Some more tips on the usage of omalloc:
433   + omAlloc*, omRealloc*, omFree*, omCheck* omDebug* omTest* rotuines
434     assume that sizes are > 0 and pointers are != NULL
435   + omalloc*, omrealloc*, omfree* omcheck*, omdebug* omtest* routines allow
436     NULL pointers and sizes == 0
437   + You can safely use any free/realloc routine in combination with any alloc
438     routine (including the debug versions): E.g., an address allocated with
439     omAllocBin can be freed with omfree, or an adress allocated with
440     om(Debug)Alloc can be freed with omfree, or omFree, or omFreeSize, etc.
[cb66fa]441     However, keep in mind that the efficiency decreases from
[c232af]442     Bin over Size to General routines (i.e., omFreeBin is more efficient than
[512a2b]443     omFreeSize which is more efficient than omFree, likewise with the alloc
[c232af]444     routines).
[512a2b]445   + if OM_CHECK is undefined or 0, then all omCheck routines do nothing
446   + if OM_CHECK and OM_TRACK are both undefined (or 0), or if OM_NDEBUG is
447     defined, then the "real" alloc/realloc/free macros are used, and all
448     omTest, omDebug and omCheck routines are undefined
449   + to break after an omError occured within a debugger,
450     set a breakpoint on dErrorBreak
451   + to do checks from within the debugger, or to do checks with explicit
[ec7aac]452     check level, use omTest routines.
[c232af]453*/
454
[512a2b]455/* by default, store alloc info and file/line where addr was freed */
456#ifndef OM_TRACK
457#define OM_TRACK 4
458#endif
459/* only do constant-time memory checks */
460#ifndef OM_CHECK
[c232af]461#define OM_CHECK 1
[512a2b]462#endif
463/* Do actually free memory:
464   (be careful: if this is set, memory is never really freed,
465    but only marked as free) */
466#ifndef OM_KEEP
467#define OM_KEEP 0
468#endif
469/* but only after you have freed 1000 more addresses
470   (this is actually independent of the value of OM_KEEP and used
471   to initialize om_Opts.Keep) */
472#ifndef OM_SING_KEEP
[c232af]473#define OM_SING_KEEP 1000
[512a2b]474#endif
475
[c232af]476#endif /* MDEBUG */
477
478
479/* undef KDEBUG for check of data during std computations
[d14712]480 *
481 * define KDEBUG to
482 * 0 for basic tests
483 * 1 for tests in kSpoly
484 * NOTE: You can locally enable tests in kspoly by setting the
485 *       define at the beginning of kspoly.cc
486 */
487#define KDEBUG 0
[52a5e8]488
[5f9072]489/* define LDEBUG checking numbers, undefine otherwise */
[a693ce]490#define LDEBUG
[5f9072]491/* define RDEBUG checking rings (together with TRACE=9) */
[a693ce]492#define RDEBUG
[5f9072]493/* define TEST for non time critical tests, undefine otherwise */
494#define TEST
[fff984]495
[5f9072]496/* #define PAGE_TEST */
497
[6b6b2f9]498/* define YYDEBUG 1 for debugging bison texts, 0 otherwise */
[a693ce]499#define YYDEBUG 1
500
[5f9072]501/* Undefine to disable debugging of MP stuff */
502#ifdef HAVE_MPSR
[a693ce]503#define MPSR_DEBUG
[5f9072]504#endif
505
506
[7885020]507/* define SPECTRUM_DEBUG and SPECTRUM_PRINT for debugging the spectrum code */
508/* define SPECTRUM_IOSTREAM to use C++ iostream for error messages          */
509
510/* #define SPECTRUM_DEBUG */
511/* #define SPECTRUM_PRINT */
512#undef  SPECTRUM_IOSTREAM
513
514#ifdef  SPECTRUM_DEBUG
515#define MULTICNT_DEBUG
516#define GMPRAT_DEBUG
517#define KMATRIX_DEBUG
518#define SPLIST_DEBUG
519#define NPOLYGON_DEBUG
520#define SEMIC_DEBUG
521#endif
522
523#ifdef  SPECTRUM_PRINT
524#define MULTICNT_PRINT
525#define GMPRAT_PRINT
526#define KMATRIX_PRINT
527#define SPLIST_PRINT
528#define NPOLYGON_PRINT
529#define SEMIC_PRINT
530#endif
531
532#ifdef  SPECTRUM_IOSTREAM
533#define MULTICNT_IOSTREAM
534#define GMPRAT_IOSTREAM
535#define KMATRIX_IOSTREAM
536#define SPLIST_IOSTREAM
537#define NPOLYGON_IOSTREAM
538#define SEMIC_IOSTREAM
539#endif
540
541
542#else /* not NDEBUG **************************************************** */
[6b6b2f9]543
[996e19]544#define NO_PDEBUG
[a6a239]545
[6b6b2f9]546/* define YYDEBUG 1 for debugging bison texts, 0 otherwise */
547#define YYDEBUG 0
548
[5f9072]549#endif /* not NDEBUG */
[52a5e8]550
551/*******************************************************************
552 *
[7885020]553 * assume(x) -- a handy macro for assumptions
[52a5e8]554 *
555 ******************************************************************/
556
557#ifdef __cplusplus
558extern "C" {
559#endif
[cb66fa]560// routine which is used to report the error
[bd4fa1]561// returns 0
562extern int dReportError(const char* fmt, ...);
[cb66fa]563// within a debugger, set a breakpoint on dErrorBreak
564// which is called after the error has been reported
565extern void dErrorBreak();
[52a5e8]566#ifdef __cplusplus
567}
568#endif
569
[512a2b]570#ifndef HAVE_ASSUME
571#define assume(x) ((void) 0)
572#define r_assume(x) ((void) 0)
573#else /* ! HAVE_ASSUME */
574
575#define assume_violation(s,f,l) \
576  dReportError("assume violation at %s:%d condition: %s", f,l,s)
577
[52a5e8]578#define assume(x)   _assume(x, __FILE__, __LINE__)
579#define r_assume(x) _r_assume(x, __FILE__, __LINE__)
580
581#define _assume(x, f, l)                        \
582do                                              \
583{                                               \
584  if (! (x))                                    \
585  {                                             \
[ec7aac]586    assume_violation(#x, f, l);                 \
[52a5e8]587  }                                             \
588}                                               \
589while (0)
590
591#define _r_assume(x, f, l)                      \
592do                                              \
593{                                               \
594  if (! (x))                                    \
595  {                                             \
[ec7aac]596    assume_violation(#x, f, l);                 \
[52a5e8]597    return 0;                                   \
598  }                                             \
599}                                               \
600while (0)
601#endif /* HAVE_ASSUME */
602
[532abf]603/* do have RDEBUG, unless we are doing the very real thing */
604#ifdef HAVE_ASSUME
[ec7aac]605#ifndef RDEBUG
606#define RDEBUG
607#endif
608#endif
609
[6f0eb7]610#if SIZEOF_VOIDP == 8
611#ifndef OM_CHECK
612#define OM_CHECK 0
613#endif
614#endif
615
[fb0d9a]616/* If we're not using GNU C, elide __attribute__ */
617#ifndef __GNUC__
618#  define  __attribute__(x)  /*NOTHING*/
619#endif
[6f0eb7]620
[1cb879]621#define STRINGIFY(name) #name
622#define EXPANDED_STRINGIFY(name) STRINGIFY(name)
623
[5f9072]624#endif /* MOD2_H  */
Note: See TracBrowser for help on using the repository browser.