Files
mercury/runtime/mercury_conf.h.in
Julien Fischer 46e3fdddda Fix some comments.
runtime/mercury_conf.h.in:
    Fix incorrect marco names in a comment.
2021-09-28 01:12:03 +10:00

594 lines
21 KiB
C

// vim: ts=4 sw=4 expandtab
// Copyright (C) 1995-2003, 2005-2012 The University of Melbourne.
// Copyright (C) 2013-2021 The Mercury team.
// This file is distributed under the terms specified in COPYING.LIB.
// mercury_conf.h.in defines various configuration parameters.
//
// Configuration parameters fall into three groups.
//
// (1) They can be set automatically by autoconf.
//
// (2) They can be passed on the command line (e.g. the mgnuc script
// sets some options based on the grade).
//
// (3) Or their values can be entirely determined by the settings
// of other parameters.
//
// The ones defined in this file are determined by autoconf.
// The remainder are documented and/or defined in mercury_conf_param.h,
// which is #included by this file.
// IMPORTANT NOTE:
// This file must not contain any other #include statements,
// and may not define any global variables,
// for reasons explained in mercury_imp.h.
// This file should contain _only_ configuration macros.
#ifndef MERCURY_CONF_H
#define MERCURY_CONF_H
////////////////////////////////////////////////////////////////////////////
// Configuration parameters determined by autoconf.
// MR_WORD_TYPE: the base type for the definition of Word.
// This must be a C integral type (e.g. int, long, or long long)
// without any explicit signedness.
// It ought to be the same size as the machine's general-purpose registers
// (i.e. the same size as pointers).
#undef MR_WORD_TYPE
// MR_BYTES_PER_WORD: the number of bytes per MR_WORD_TYPE.
// The only two values that the configure script looks for are 4 and 8.
#undef MR_BYTES_PER_WORD
// MR_BITS_PER_WORD: the number of bits per MR_WORD_TYPE.
// The only two values that the configure script looks for are 32 and 64.
#undef MR_BITS_PER_WORD
// MR_MERCURY_IS_{32,64}_BIT: we define MR_MERCURY_IS_32_BIT on 32 bit
// systems, and we defined MR_MERCURY_IS_64_BIT on 64 bit systems.
#undef MR_MERCURY_IS_32_BIT
#undef MR_MERCURY_IS_64_BIT
// MR_INTEGER_LENGTH_MODIFIER: the printf() length modifier for a MR_Integer.
#undef MR_INTEGER_LENGTH_MODIFIER
// MR_INT_LEAST64_TYPE:
// This must be a C integral type (e.g. int, long, long long)
// without any explicit signedness.
// It ought to be at least 64 bits in size.
// It may be bigger, but any bits beyond 64 are not used.
#undef MR_INT_LEAST64_TYPE
// MR_INT_LEAST64_LENGTH_MODIFIER: the print() length modifier for
// a MR_int_least64_t.
#undef MR_INT_LEAST64_LENGTH_MODIFIER
// MR_INT_LEAST32_TYPE:
// This must be a C integral type (e.g. short, int, long)
// without any explicit signedness.
// It ought to be at least 32 bits in size.
// It may be bigger, but any bits beyond 32 are not used.
#undef MR_INT_LEAST32_TYPE
// MR_INT_LEAST16_TYPE:
// This must be a C integral type (e.g. short, int)
// without any explicit signedness.
// It ought to be at least 16 bits in size.
// It may be bigger, but any bits beyond 16 are not used.
#undef MR_INT_LEAST16_TYPE
// MR_{UINT,INT}_LEAST{16,32}_MAX:
// The symbolic names (defined in limits.h) of the maximum values for the
// signed and unsigned forms of MR_INT_LEAST16_TYPE and MR_INT_LEAST32_TYPE.
#undef MR_INT_LEAST16_MAX
#undef MR_UINT_LEAST16_MAX
#undef MR_INT_LEAST32_MAX
#undef MR_UINT_LEAST32_MAX
// MR_LOW_TAG_BITS: an integer, specifying the number of low-order tag bits
// we can use. Normally this is the base-2 log of the word size in bytes.
#undef MR_LOW_TAG_BITS
// MR_BOXED_FLOAT: defined if MR_Float is wider than MR_Word
// (i.e. when using double-precision floats on 32-bit architectures),
// or in a .pregen grade where MR_Float MAY be wider than MR_Word.
// It does NOT mean that all floats are necessarily boxed.
// A better name might be MR_OVERSIZED_FLOAT.
#undef MR_BOXED_FLOAT
// MR_BOXED_INT64S: defined if int64_t/uint64_t is wider than MR_Word
// (i.e. on 32-bit architectures), or in a .pregen grade where
// int64_t/uint64_t MAY be wider than MR_Word.
#undef MR_BOXED_INT64S
// The following macros are defined iff the corresponding header file
// is available:
//
// MR_HAVE_SYS_SIGINFO_H we have <sys/siginfo.h>
// MR_HAVE_SYS_SIGNAL_H we have <sys/signal.h>
// MR_HAVE_UCONTEXT_H we have <ucontext.h>
// MR_HAVE_SYS_UCONTEXT_H we have <sys/ucontext.h>
// MR_HAVE_SYS_TIME_H we have <sys/time.h>
// MR_HAVE_UNISTD_H we have <unistd.h>
// MR_HAVE_SYS_PARAM_H we have <sys/param.h>
// MR_HAVE_SYS_WAIT_H we have <sys/wait.h>
// MR_HAVE_SYS_STAT_H we have <sys/stat.h>
// MR_HAVE_SYS_TYPES_H we have <sys/types.h>
// MR_HAVE_SYS_TIMES_H we have <sys/times.h>
// MR_HAVE_DLFCN_H we have <dlfcn.h>
// MR_HAVE_FCNTL_H we have <fcntl.h>
// MR_HAVE_TERMIOS_H we have <termios.h>
// MR_HAVE_SYS_IOCTL_H we have <sys/ioctl.h>
// MR_HAVE_SYS_STROPTS_H we have <sys/stropts.h>
// MR_HAVE_WINDOWS_H we have <windows.h>
// MR_HAVE_IEEEFP_H we have <ieeefp.h>
// MR_HAVE_DIRENT_H we have <dirent.h>
// MR_HAVE_MALLOC_H we have <malloc.h>
// MR_HAVE_SEMAPHORE_H we have <semaphore.h>
// MR_HAVE_PTHREAD_H we have <pthread.h>
// MR_HAVE_TIME_H we have <time.h>
// MR_HAVE_SPAWN_H we have <spawn.h>
// MR_HAVE_FENV_H we have <fenv.h>
// MR_HAVE_SYS_MMAN_H we have <sys/mman.h>
// MR_HAVE_SYS_SEM_H we have <sys/sem.h>
// MR_HAVE_SCHED_H we have <sched.h>
// MR_HAVE_UTMPX_H we have <utmpx.h>
// MR_HAVE_SYS_RESOURCE_H we have <sys/resource.h>
// MR_HAVE_DISPATCH_DISPATCH_H we have <dispatch/dispatch.h>
// MR_HAVE_STDINT_H we have <stdint.h>
// MR_HAVE_SYS_SELECT_H we have <sys/select.h>
#undef MR_HAVE_SYS_SIGINFO_H
#undef MR_HAVE_SYS_SIGNAL_H
#undef MR_HAVE_UCONTEXT_H
#undef MR_HAVE_SYS_UCONTEXT_H
#undef MR_HAVE_SYS_TIME_H
#undef MR_HAVE_UNISTD_H
#undef MR_HAVE_SYS_PARAM_H
#undef MR_HAVE_SYS_WAIT_H
#undef MR_HAVE_SYS_STAT_H
#undef MR_HAVE_SYS_TIMES_H
#undef MR_HAVE_SYS_TYPES_H
#undef MR_HAVE_DLFCN_H
#undef MR_HAVE_FCNTL_H
#undef MR_HAVE_TERMIOS_H
#undef MR_HAVE_SYS_IOCTL_H
#undef MR_HAVE_SYS_STROPTS_H
#undef MR_HAVE_WINDOWS_H
#undef MR_HAVE_IEEEFP_H
#undef MR_HAVE_DIRENT_H
#undef MR_HAVE_MALLOC_H
#undef MR_HAVE_SEMAPHORE_H
#undef MR_HAVE_PTHREAD_H
#undef MR_HAVE_TIME_H
#undef MR_HAVE_SPAWN_H
#undef MR_HAVE_FENV_H
#undef MR_HAVE_SYS_MMAN_H
#undef MR_HAVE_SYS_SEM_H
#undef MR_HAVE_SCHED_H
#undef MR_HAVE_UTMPX_H
#undef MR_HAVE_SYS_RESOURCE_H
#undef MR_HAVE_DISPATCH_DISPATCH_H
#undef MR_HAVE_STDINT_H
#undef MR_HAVE_SYS_SELECT_H
// MR_HAVE_POSIX_TIMES is defined if we have the POSIX
// `struct tms' struct and times() function.
#undef MR_HAVE_POSIX_TIMES
// MR_HAVE_ENVIRON is defined if we have the environ global variable.
#undef MR_HAVE_ENVIRON
// The following macros are defined iff the corresponding type
// is available (in <stdint.h>, <inttypes.h>, or <sys/types.h>):
//
// MR_HAVE_INTPTR_T we have intptr_t and uintptr_t
// MR_HAVE_INT_LEASTN_T we have {u,}int_least{8,16,32}_t
// MR_HAVE_DEV_T we have dev_t
// MR_HAVE_INO_T we have ino_t
#undef MR_HAVE_INTPTR_T
#undef MR_HAVE_INT_LEASTN_T
#undef MR_HAVE_DEV_T
#undef MR_HAVE_INO_T
// pid_t is defined as `int' iff the system headers don't define it.
#undef pid_t
// The following macros are defined iff the corresponding function or
// system call is available:
//
// MR_HAVE_GETPID we have the getpid() function.
// MR_HAVE_SETPGID we have the setpgid() function.
// MR_HAVE_FORK we have the fork() function.
// MR_HAVE_EXECLP we have the execlp() function.
// MR_HAVE_WAIT we have the wait() function.
// MR_HAVE_KILL we have the kill() function.
// MR_HAVE_GETHOSTNAME we have the gethostname() function.
// MR_HAVE_SNPRINTF we have the snprintf() function.
// MR_HAVE__SNPRINTF we have the _snprintf() function.
// MR_HAVE_VSNPRINTF we have the vsnprintf() function.
// MR_HAVE__VSNPRINTF we have the _vsnprintf() function.
// MR_HAVE_SYSCONF we have the sysconf() system call.
// MR_HAVE_SIGACTION we have the sigaction() system call.
// MR_HAVE_GETPAGESIZE we have the getpagesize() system call.
// MR_HAVE_MMAP we have the mmap() system call.
// MR_HAVE_MPROTECT we have the mprotect() system call.
// MR_HAVE_MEMALIGN we have the memalign() function.
// MR_HAVE_POSIX_MEMALIGN we have the posix_memalign() function.
// MR_HAVE_SBRK we have the sbrk() function.
// MR_HAVE_STRERROR we have the strerror() function.
// MR_HAVE_STRERROR_R we have the strerror_r() function.
// MR_HAVE_STRERROR_S we have the strerror_s() function.
// MR_HAVE_SIGINTERRUPT we have the siginterrupt() function.
// MR_HAVE_SETITIMER we have the setitimer() function.
// MR_HAVE_MEMMOVE we have the memmove() function.
// MR_HAVE_DLOPEN we have the dlopen() function.
// MR_HAVE_DLCLOSE we have the dlclose() function.
// MR_HAVE_DLSYM we have the dlsym() function.
// MR_HAVE_DLERROR we have the dlerror() function.
// MR_HAVE_STAT we have the stat() function.
// MR_HAVE_LSTAT we have the lstat() function.
// MR_HAVE_FSTAT we have the fstat() function.
// MR_HAVE_FDOPEN we have the fdopen() function.
// MR_HAVE_OPEN we have the open() function.
// MR_HAVE_CLOSE we have the close() function.
// MR_HAVE_DUP we have the dup() function.
// MR_HAVE_DUP2 we have the dup2() function.
// MR_HAVE_FILENO we have the fileno() function.
// Note that fileno() may be a macro
// rather than a function, so you should use
// #if defined(fileno) || defined(MR_HAVE_FILENO)
// MR_HAVE_ISATTY we have the isatty() function.
// MR_HAVE_GRANTPT we have the grantpt() function.
// MR_HAVE_UNLOCKPT we have the unlockpt() function.
// MR_HAVE_PTSNAME we have the ptsname() function.
// MR_HAVE_TCGETATTR we have the tcgetattr() function.
// MR_HAVE_TCSETATTR we have the tcsetattr() function.
// MR_HAVE_IOCTL we have the ioctl() function.
// MR_HAVE_ACCESS we have the access() function.
// MR_HAVE_SLEEP we have the sleep() function.
// MR_HAVE_CAPITAL_S_SLEEP we have the Sleep() function.
// MR_HAVE_OPENDIR we have the opendir() function.
// MR_HAVE_READDIR we have the readdir() function.
// MR_HAVE_CLOSEDIR we have the closedir() function.
// MR_HAVE_MKDIR we have the mkdir function.
// MR_HAVE_SYMLINK we have the symlink function.
// MR_HAVE_READLINK we have the readlink function.
// MR_HAVE_GETTIMEOFDAY we have the gettimeofday function.
// MR_HAVE_SETENV we have the setenv() function.
// MR_HAVE_PUTENV we have the putenv() function.
// MR_HAVE__PUTENV we have the _putenv() function.
// MR_HAVE_POSIX_SPAWN we have the posix_spawn() function.
// MR_HAVE_SCHED_SETAFFINITY we have the sched_setaffinity() function.
// MR_HAVE_SCHED_GETAFFINITY we have the sched_getaffinity() function.
// MR_HAVE_SCHED_GETCPU we have the sched_getcpu() function
// (glibc specific).
// MR_HAVE_SCHED_YIELD we have the sched_yield() function.
// MR_HAVE_PTHREAD_MUTEXATTR_SETPSHARED
// we have the pthread_mutexattr_setpshared()
// function.
// MR_HAVE_MKSTEMP we have the mkstemp() function.
// MR_HAVE_MKDTEMP we have the mkdtemp() function.
// MR_HAVE_SETRLIMIT we have the setrlimit() function.
// MR_HAVE_ISNAN we have the isnan() function.
// MR_HAVE_ISNANF we have the isnanf() function.
// MR_HAVE_ISINF we have the isinf() function.
// MR_HAVE_ISINFF we have the isinff() function.
// MR_HAVE_FINITE we have the finite() function.
// MR_HAVE_ISFINITE we have the isfinite() function.
// MR_HAVE_FESETROUND we have the fesetround() function.
// MR_HAVE_FMA we have the fma() function.
// MR_HAVE_BUILTIN_BSWAP16 we have the __builtin_bswap16() function.
// MR_HAVE_BUILTIN_BSWAP32 we have the __builtin_bswap32() function.
// MR_HAVE_BUILTIN_BSWAP64 we have the __builtin_bswap64() function.
#undef MR_HAVE_GETPID
#undef MR_HAVE_SETPGID
#undef MR_HAVE_FORK
#undef MR_HAVE_EXECLP
#undef MR_HAVE_WAIT
#undef MR_HAVE_KILL
#undef MR_HAVE_GETHOSTNAME
#undef MR_HAVE_SNPRINTF
#undef MR_HAVE__SNPRINTF
#undef MR_HAVE_VSNPRINTF
#undef MR_HAVE__VSNPRINTF
#undef MR_HAVE_SYSCONF
#undef MR_HAVE_SIGACTION
#undef MR_HAVE_GETPAGESIZE
#undef MR_HAVE_MMAP
#undef MR_HAVE_MPROTECT
#undef MR_HAVE_MEMALIGN
#undef MR_HAVE_POSIX_MEMALIGN
#undef MR_HAVE_SBRK
#undef MR_HAVE_STRERROR
#undef MR_HAVE_STRERROR_R
#undef MR_HAVE_STRERROR_S
#undef MR_HAVE_SIGINTERRUPT
#undef MR_HAVE_SETITIMER
#undef MR_HAVE_MEMMOVE
#undef MR_HAVE_DLOPEN
#undef MR_HAVE_DLCLOSE
#undef MR_HAVE_DLSYM
#undef MR_HAVE_DLERROR
#undef MR_HAVE_STAT
#undef MR_HAVE_LSTAT
#undef MR_HAVE_FSTAT
#undef MR_HAVE_FDOPEN
#undef MR_HAVE_OPEN
#undef MR_HAVE_CLOSE
#undef MR_HAVE_DUP
#undef MR_HAVE_DUP2
#undef MR_HAVE_FILENO
#undef MR_HAVE_MKSTEMP
#undef MR_HAVE_MKDTEMP
#undef MR_HAVE_ISATTY
#undef MR_HAVE_GRANTPT
#undef MR_HAVE_UNLOCKPT
#undef MR_HAVE_PTSNAME
#undef MR_HAVE_TCGETATTR
#undef MR_HAVE_TCSETATTR
#undef MR_HAVE_IOCTL
#undef MR_HAVE_ACCESS
#undef MR_HAVE_SLEEP
#undef MR_HAVE_CAPITAL_S_SLEEP
#undef MR_HAVE_OPENDIR
#undef MR_HAVE_READDIR
#undef MR_HAVE_CLOSEDIR
#undef MR_HAVE_MKDIR
#undef MR_HAVE_SYMLINK
#undef MR_HAVE_READLINK
#undef MR_HAVE_GETTIMEOFDAY
#undef MR_HAVE_SETENV
#undef MR_HAVE_PUTENV
#undef MR_HAVE__PUTENV
#undef MR_HAVE_POSIX_SPAWN
#undef MR_HAVE_SCHED_SETAFFINITY
#undef MR_HAVE_SCHED_GETAFFINITY
#undef MR_HAVE_SCHED_GETCPU
#undef MR_HAVE_SCHED_YIELD
#undef MR_HAVE_PTHREAD_MUTEXATTR_SETPSHARED
#undef MR_HAVE_MKSTEMP
#undef MR_HAVE_SETRLIMIT
#undef MR_HAVE_ISNAN
#undef MR_HAVE_ISNANF
#undef MR_HAVE_ISINF
#undef MR_HAVE_ISINFF
#undef MR_HAVE_FINITE
#undef MR_HAVE_FESETROUND
#undef MR_HAVE_FMA
#undef MR_HAVE_BUILTIN_BSWAP16
#undef MR_HAVE_BUILTIN_BSWAP32
#undef MR_HAVE_BUILTIN_BSWAP64
// We use mprotect() and signals to catch stack and heap overflows.
// In order to detect such overflows, we need to be able to figure out
// what address we were trying to read from or write to when we get
// a SIGSEGV signal. This is a fairly non-portable thing, so it has to be done
// differently on different systems. The following macros specify whether
// we can do it and if so, how.
//
// MR_HAVE_SIGINFO defined iff we can _somehow_ figure out the
// fault address for SIGSEGVs.
// MR_HAVE_SIGINFO_T defined iff we can figure out the fault address
// for SIGSEGVs using sigaction and siginfo_t.
#undef MR_HAVE_SIGINFO
#undef MR_HAVE_SIGINFO_T
// For debugging purposes, if we get a fatal signal, we print out the
// program counter (PC) at which the signal occurred.
//
// MR_PC_ACCESS, MR_PC_ACCESS_GREG: the way to access the saved
// PC in ucontexts.
//
// If MR_PC_ACCESS_GREG is defined, then MR_PC_ACCESS specifies an index into
// the `gregs' (general registers) array, which is a field of the `ucontext'
// struct. Otherwise, if MR_PC_ACCESS is defined then it is a field name
// in the `ucontext' struct. If MR_PC_ACCESS is not defined, then we don't
// have any way of getting the saved PC.
#undef MR_PC_ACCESS
#undef MR_PC_ACCESS_GREG
// Configuration parameters for multithreaded execution support.
//
// MR_THREAD_LOCAL_STORAGE is defined if the thread-local storage extension
// is supported. That is, the compiler extends the C language with the
// `__thread' specifier.
//
// MR_PTHREADS_WIN32 is defined if we are using the pthreads-win32 library.
#undef MR_THREAD_LOCAL_STORAGE
#undef MR_PTHREADS_WIN32
// MR_HAVE_SCHED_CPUSET_MACROS is defined if sched.h includes all the
// Linux-specific CPU_* and CPU_*_S macros.
#undef MR_HAVE_SCHED_CPUSET_MACROS
// MR_HAVE_HWLOC is defined if the hwloc library is available.
#undef MR_HAVE_HWLOC
// MR_INT_IS_32_BIT is defined if C's int type is exactly 32-bits.
//
#undef MR_INT_IS_32_BIT
// MR_LONG_IS_64_BIT is defined if C's long type is exactly 64-bits.
//
#undef MR_LONG_IS_64_BIT
// The bytecode files represent floats in 64-bit IEEE format.
//
// MR_FLOAT_IS_64_BIT: defined iff the C type `float' is exactly 64 bits.
// MR_DOUBLE_IS_64_BIT: defined iff the C type `double' is exactly 64 bits.
// MR_LONG_DOUBLE_IS_64_BIT: defined iff the C type `long double' is exactly
// 64-bits.
//
// XXX why not just have a single MR_64_BIT_FLOAT_TYPE macro,
// defined to `float', `double', or `long double' as appropriate?
#undef MR_FLOAT_IS_64_BIT
#undef MR_DOUBLE_IS_64_BIT
#undef MR_LONG_DOUBLE_IS_64_BIT
// The number of detstack slots (words) per MR_SyncTerm.
#undef MR_SYNC_TERM_SIZE
// The following macros specify the ordering of bytes within words.
// They are used by the bytecode compiler and the bytecode interpreter
// when writing/reading floats from/to bytecode files.
//
// MR_BIG_ENDIAN: defined iff the host system is big-endian.
// MR_LITTLE_ENDIAN: defined iff the host system is little-endian.
// (Weird-endian systems should define neither of these.)
#undef MR_BIG_ENDIAN
#undef MR_LITTLE_ENDIAN
// Do we have the O_CREAT and O_EXCL macros?
#undef MR_HAVE_OCREAT_OEXCL
// Which version of Mercury is this? (Taken from the file ../VERSION.)
#define MR_VERSION "unknown"
// What system is this version of Mercury configured for?
#define MR_FULLARCH "unknown"
// Should we build the Mercury libraries as Windows DLLs?
#undef MR_USE_DLLS
// For SPARC systems, does `as' not allow `.type' in inline asm?
// (True for SunOS 4.x.)
#undef MR_CANNOT_GROK_ASM_TYPE_DIRECTIVE
// On some platforms, structure assignments can cause gcc to abort
// with the message "fixed or forbidden register was spilled." in some grades.
#undef MR_CANNOT_USE_STRUCTURE_ASSIGNMENT
// To handle contexts suspended on IO operations we use the select() system
// call and supporting data structures which while POSIX, are not ANSI.
#undef MR_CAN_DO_PENDING_IO
// To see if the problem where the function prototype for bzero() is
// not visible on some BSD based systems can be fixed by #including
// strings.h.
#undef MR_BZERO_NEEDS_STRINGS_HEADER
// __builtin_setjmp is broken with some versions of gcc on Darwin.
#undef MR_DARWIN_SETJMP_WORKAROUND
// MR_USE_EXTERNAL_DEBUGGER:
//
// Allow MR_trace() to use an external process debugger (with communication
// done via a socket interface) rather than using the debugger that is part of
// the Mercury runtime. This requires that the system support sockets.
// See trace/mercury_trace_external.c.
#undef MR_USE_EXTERNAL_DEBUGGER
// MR_DEEP_PROFILER_ENABLED
//
// Enable the deep profiler. This should be defined only if all the features
// (header files and system calls) needed by the deep profiler are available
// on this platform.
#undef MR_DEEP_PROFILER_ENABLED
// MR_USE_READLINE
//
// GNU readline and any supporting libraries required (e.g. termcap) are
// available and should be used by the debugger for the command-line prompt.
// this will *not* be defined if MR_USE_EDITLINE is defined.
//
// MR_HAVE_READLINE_READLINE_H
// MR_HAVE_READLINE_HISTORY_H
//
// Defined if the header files readline/readline.h and
// readline/history.h are available.
#undef MR_USE_READLINE
#undef MR_HAVE_READLINE_READLINE_H
#undef MR_HAVE_READLINE_HISTORY_H
// MR_USE_EDITLINE
//
// The editline library (libedit) is available and should be used by the
// debugger for the command-line prompt.
// This will *not* be defined if MR_USE_READLINE is defined.
//
// MR_HAVE_EDITLINE_READLINE_H
//
// Define if the header file editline/readline.h. is available.
#undef MR_USE_EDITLINE
#undef MR_HAVE_EDITLINE_READLINE_H
// MR_MKFIFO
//
// The name of the shell command to make a named pipe. This will be the
// empty string if autoconfiguration did not find such a command.
#undef MR_MKFIFO
// MR_HOSTNAMECMD
//
// The name of the shell command to return the name of the host.
// This will be the empty string if autoconfiguration did not find
// such a command.
#undef MR_HOSTNAMECMD
// MR_NEW_MERCURYFILE_STRUCT
//
// Set this if you want to use the new MercuryFile structure. The new
// structure contains pointers to functions to do all the basic IO functions.
// See extras/logged_output for an example of how to override the pointers
// to provide IO streams with extra functionality.
#undef MR_NEW_MERCURYFILE_STRUCT
// MR_FORCE_NO_TAGGED_TRAIL
//
// Set this if you _do not_ want to use tagged trail entries, even if there are
// sufficient tag bits to support a tagged trail.
// See runtime/mercury_trail.h for further details.
#undef MR_FORCE_NO_TAGGED_TRAIL
////////////////////////////////////////////////////////////////////////////
#include "mercury_conf_param.h"
#endif // MERCURY_CONF_H