Diff: mercury_conf.h.in

Andrew Bromage bromage at cs.mu.oz.au
Thu Nov 20 15:14:11 AEDT 1997


Estimated hours taken: 0.2

Fixed an error in Tyson's last change --- mercury_conf.h was checked in
instead of mercury_conf.h.in.

runtime/mercury_conf.h:
	Removed from the repository.

runtime/mercury_conf.h.in:
	Renaming of conf.h.in.



Deleted File: mercury_conf.h
===================================================================
New File: mercury_conf.h.in
===================================================================
/*
** Copyright (C) 1995-1997 The University of Melbourne.
** This file may only be copied under the terms of the GNU Library General
** Public License - see the file COPYING.LIB in the Mercury distribution.
*/

/*
** conf.h.in -
**	Various configuration parameters, determined automatically by
**	the auto-configuration script.
*/

/*
** Note -- this file must not contain any #include statements,
** for reasons explained in imp.h.
*/

#ifndef CONF_H
#define CONF_H

/*
** 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.
*/
#undef	WORD_TYPE

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

/*
** BOXED_FLOAT: defined if double precision floats might not fit
** in a Word, and hence must be boxed.
** Note that when bootstrapping from the source distribution,
** we initially build things without BOXED_FLOAT even on machines
** for which sizeof(Float) <= sizeof(Word).
** Conversely if BOXED_FLOAT is undefined, it implies that
** sizeof(Float) <= sizeof(Word).
*/
#undef	BOXED_FLOAT

/*
** The following macros are defined iff the corresponding header file
** is available:
**
**	HAVE_SYS_SIGINFO	we have <sys/siginfo.h>
**	HAVE_UCONTEXT		we have <ucontext.h>
**	HAVE_SYS_UCONTEXT	we have <sys/ucontext.h>
**	HAVE_ASM_SIGCONTEXT	we have <asm/sigcontext.h> (e.g. i386 Linux)
**	HAVE_SYS_TIME		we have <sys/time.h>
**	HAVE_SYS_PARAM		we have <sys/param.h>
**	HAVE_SYS_WAIT		we have <sys/wait.h>
*/
#undef	HAVE_SYS_SIGINFO
#undef	HAVE_UCONTEXT
#undef	HAVE_SYS_UCONTEXT
#undef	HAVE_ASM_SIGCONTEXT
#undef	HAVE_SYS_TIME
#undef	HAVE_SYS_PARAM
#undef	HAVE_SYS_WAIT

/*
** The following macros are defined iff the corresponding function or
** system call is available:
**
**	HAVE_SYSCONF     	we have the sysconf() system call.
**	HAVE_SIGACTION		we have the sigaction() sysstem call.
**	HAVE_GETPAGESIZE 	we have the getpagesize() system call.
**	HAVE_MPROTECT    	we have the mprotect() system call.
**	HAVE_MEMALIGN    	we have the memalign() function.
**	HAVE_STRERROR    	we have the strerror() function.
**	HAVE_SETITIMER   	we have the setitimer() function.
**	HAVE_MEMMOVE   		we have the memmove() function.
*/
#undef	HAVE_SYSCONF
#undef	HAVE_SIGACTION
#undef	HAVE_GETPAGESIZE
#undef	HAVE_MEMALIGN
#undef	HAVE_MPROTECT
#undef	HAVE_STRERROR
#undef	HAVE_SETITIMER
#undef	HAVE_MEMMOVE

/*
** RETSIGTYPE: the return type of signal handlers.
** Either `int' or `void'.
*/
#undef	RETSIGTYPE

/*
** 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.
**
**	HAVE_SIGINFO		defined iff we can _somehow_ figure out the
**				fault address for SIGSEGVs.
**	HAVE_SIGINFO_T		defined iff we can figure out the
**				fault address for SIGSEGVs using sigaction
**				and siginfo_t.
**	HAVE_SIGCONTEXT_STRUCT	defined iff normal signal handlers are given
**				sigcontext_struct arguments that we can use to
**				figure out the fault address for SIGSEGVs.
*/
#undef	HAVE_SIGINFO
#undef	HAVE_SIGINFO_T
#undef	HAVE_SIGCONTEXT_STRUCT

/*
** For debugging purposes, if we get a fatal signal, we print out the
** program counter (PC) at which the signal occurred.
**
** PC_ACCESS, PC_ACCESS_GREG: the way to access the saved PC in ucontexts.
**
** If PC_ACCESS_GREG is defined, then PC_ACCESS specifies an index into
** the `gregs' (general registers) array, which is a field of the `ucontext'
** struct.  Otherwise, if PC_ACCESS is defined then it is a field name
** in the `ucontext' struct.  If PC_ACCESS is not defined, then we don't
** have any way of getting the saved PC.
*/
#undef	PC_ACCESS
#undef	PC_ACCESS_GREG

/*
** SIGACTION_FIELD: the name of the field in the sigaction struct
** (either sa_handler or sa_sigaction).  Defined only if HAVE_SIGACTION
** is defined.
*/
#undef	SIGACTION_FIELD

/*
** PARALLEL: defined iff we are configuring for parallel execution.
** (This is work in progress... parallel execution is not yet supported.)
*/
#undef	PARALLEL

/*
** The bytecode files represent floats in 64-bit IEEE format.
**
** MR_FLOAT_IS_64_BITS: defined iff the C type `float' is exactly 64 bits.
** MR_DOUBLE_IS_64_BITS: defined iff the C type `double' is exactly 64 bits.
** MR_LONG_DOUBLE_IS_64_BITS: 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 following macros specify the ordering of bytes within
** 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.
** (Wierd-endian systems should define neither of these.) 
*/
#undef	MR_BIG_ENDIAN
#undef	MR_LITTLE_ENDIAN

/*
** The following macro specifies whether the non-ANSI, non-POSIX,
** but usually available standard library function `tempnam' is
** available.
*/
#undef	IO_HAVE_TEMPNAM

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

#endif /* CONF_H */




More information about the developers mailing list