These macros check for particular C functions--whether they exist, and in some cases how they respond when given certain arguments.
alloca. Tries to get a builtin version by checking for `alloca.h' or the predefined C preprocessor macros
_AIX. If this macro finds `alloca.h', it defines
If those attempts fail, it looks for the function in the standard C
library. If any of those methods succeed, it defines
HAVE_ALLOCA. Otherwise, it sets the output variable
ALLOCA to `alloca.o' and defines
programs can periodically call `alloca(0)' to garbage collect).
This variable is separate from
LIBOBJS so multiple programs can
share the value of
ALLOCA without needing to create an actual
library, in case only some of them use the code in
This macro does not try to get
alloca from the System V R3
`libPW' or the System V R4 `libucb' because those libraries
contain some incompatible functions that cause trouble. Some versions
do not even contain
alloca or contain a buggy version. If you
still want to use their
ar to extract
`alloca.o' from them instead of compiling `alloca.c'.
Source files that use
alloca should start with a piece of code
like the following, to declare it properly. In some versions
of AIX, the declaration of
alloca must precede everything else
except for comments and preprocessor directives. The
directive is indented so that pre-ANSI C compilers will ignore it,
rather than choke on it.
/* AIX requires this to be the first thing in the file. */ #ifndef __GNUC__ # if HAVE_ALLOCA_H # include <alloca.h> # else # ifdef _AIX #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ char *alloca (); # endif # endif # endif #endif
closedirfunction does not return a meaningful value, define
CLOSEDIR_VOID. Otherwise, callers ought to check its return value for an error indicator.
fnmatchfunction is available and works (unlike the one on SunOS 5.4), define
getloadavgfunction, this macro defines
HAVE_GETLOADAVG, and adds to
LIBSany libraries needed to get that function.
Otherwise, it adds `getloadavg.o' to the output variable
LIBOBJS, and possibly defines several other C preprocessor
macros and output variables:
UMAX4_3if on those systems.
LDAV_PRIVILEGED, programs need to be installed specially on this system for
getloadavgto work, and this macro defines
NEED_SETGID. The value is `true' if special installation is required, `false' if not. If
NEED_SETGIDis `true', this macro sets
KMEM_GROUPto the name of the group that should own the installed program.
getmntentin the `sun', `seq', and `gen' libraries, for Irix 4, PTX, and Unixware, respectively. Then, if
getmntentis available, define
getpgrptakes no argument (the POSIX.1 version), define
GETPGRP_VOID. Otherwise, it is the BSD version, which takes a process ID as an argument. This macro does not check whether
getpgrpexists at all; if you need to work in that situation, first call
memcmpfunction is not available, or does not work on 8-bit data (like the one on SunOS 4.1.3), add `memcmp.o' to output variable
mmapfunction exists and works correctly, define
HAVE_MMAP. Only checks private fixed mapping of already-mapped memory.
selectfunction's arguments, and defines those types in
SELECT_TYPE_ARG1defaults to `int',
SELECT_TYPE_ARG234defaults to `int *', and
SELECT_TYPE_ARG5defaults to `struct timeval *'.
setpgrptakes no argument (the POSIX.1 version), define
SETPGRP_VOID. Otherwise, it is the BSD version, which takes two process ID as arguments. This macro does not check whether
setpgrpexists at all; if you need to work in that situation, first call
setvbuftakes the buffering type as its second argument and the buffer pointer as the third, instead of the other way around, define
SETVBUF_REVERSED. This is the case on System V before release 3.
strcollfunction exists and works correctly, define
HAVE_STRCOLL. This does a bit more than `AC_CHECK_FUNCS(strcoll)', because some systems have incorrect definitions of
strcoll, which should not be used.
strftimein the `intl' library, for SCO UNIX. Then, if
strftimeis available, define
HAVE_VFORK_H. If a working
vforkis not found, define
fork. This macro checks for several known errors in implementations of
vforkand considers the system to not have a working
vforkif it detects any of them. It is not considered to be an implementation error if a child's invocation of
signalmodifies the parent's signal handler, since child processes rarely change their signal handlers.
vprintfis found, define
HAVE_VPRINTF. Otherwise, if
_doprntis found, define
vprintfis available, you may assume that
vsprintfare also available.)
wait3is found and fills in the contents of its third argument (a `struct rusage *'), which HP-UX does not do, define
Go to the first, previous, next, last section, table of contents.