(autocf21.info.gz) Particular Functions
Info Catalog
(autocf21.info.gz) Library Functions
(autocf21.info.gz) Library Functions
(autocf21.info.gz) Generic Functions
4.3.1 Particular Function Checks
--------------------------------
These macros check for particular C functions--whether they exist, and
in some cases how they respond when given certain arguments.
-- Macro: AC_FUNC_ALLOCA
Check how to get `alloca'. Tries to get a builtin version by
checking for `alloca.h' or the predefined C preprocessor macros
`__GNUC__' and `_AIX'. If this macro finds `alloca.h', it defines
`HAVE_ALLOCA_H'.
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 `C_ALLOCA' (so 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 `LIBOBJS'.
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 `alloca', use `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 `#pragma'
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
-- Macro: AC_FUNC_CLOSEDIR_VOID
If the `closedir' function does not return a meaningful value,
define `CLOSEDIR_VOID'. Otherwise, callers ought to check its
return value for an error indicator.
-- Macro: AC_FUNC_FNMATCH
If the `fnmatch' function is available and works (unlike the one on
SunOS 5.4), define `HAVE_FNMATCH'.
-- Macro: AC_FUNC_GETLOADAVG
Check how to get the system load averages. If the system has the
`getloadavg' function, this macro defines `HAVE_GETLOADAVG', and
adds to `LIBS' any 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:
1. It defines `SVR4', `DGUX', `UMAX', or `UMAX4_3' if on those
systems.
2. If it finds `nlist.h', it defines `NLIST_STRUCT'.
3. If `struct nlist' has an `n_un' member, it defines
`NLIST_NAME_UNION'.
4. If compiling `getloadavg.c' defines `LDAV_PRIVILEGED',
programs need to be installed specially on this system for
`getloadavg' to work, and this macro defines
`GETLOADAVG_PRIVILEGED'.
5. This macro sets the output variable `NEED_SETGID'. The value
is `true' if special installation is required, `false' if not.
If `NEED_SETGID' is `true', this macro sets `KMEM_GROUP' to
the name of the group that should own the installed program.
-- Macro: AC_FUNC_GETMNTENT
Check for `getmntent' in the `sun', `seq', and `gen' libraries,
for Irix 4, PTX, and Unixware, respectively. Then, if `getmntent'
is available, define `HAVE_GETMNTENT'.
-- Macro: AC_FUNC_GETPGRP
If `getpgrp' takes 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
`getpgrp' exists at all; if you need to work in that situation,
first call `AC_CHECK_FUNC' for `getpgrp'.
-- Macro: AC_FUNC_MEMCMP
If the `memcmp' function 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 `LIBOBJS'.
-- Macro: AC_FUNC_MMAP
If the `mmap' function exists and works correctly, define
`HAVE_MMAP'. Only checks private fixed mapping of already-mapped
memory.
-- Macro: AC_FUNC_SELECT_ARGTYPES
Determines the correct type to be passed to each of the `select'
function's arguments, and defines those types in
`SELECT_TYPE_ARG1', `SELECT_TYPE_ARG234', and `SELECT_TYPE_ARG5'
respectively. `SELECT_TYPE_ARG1' defaults to `int',
`SELECT_TYPE_ARG234' defaults to `int *', and `SELECT_TYPE_ARG5'
defaults to `struct timeval *'.
-- Macro: AC_FUNC_SETPGRP
If `setpgrp' takes 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
`setpgrp' exists at all; if you need to work in that situation,
first call `AC_CHECK_FUNC' for `setpgrp'.
-- Macro: AC_FUNC_SETVBUF_REVERSED
If `setvbuf' takes 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.
-- Macro: AC_FUNC_STRCOLL
If the `strcoll' function 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.
-- Macro: AC_FUNC_STRFTIME
Check for `strftime' in the `intl' library, for SCO UNIX. Then,
if `strftime' is available, define `HAVE_STRFTIME'.
-- Macro: AC_FUNC_UTIME_NULL
If `utime(FILE, NULL)' sets FILE's timestamp to the present,
define `HAVE_UTIME_NULL'.
-- Macro: AC_FUNC_VFORK
If `vfork.h' is found, define `HAVE_VFORK_H'. If a working
`vfork' is not found, define `vfork' to be `fork'. This macro
checks for several known errors in implementations of `vfork' and
considers the system to not have a working `vfork' if it detects
any of them. It is not considered to be an implementation error
if a child's invocation of `signal' modifies the parent's signal
handler, since child processes rarely change their signal handlers.
-- Macro: AC_FUNC_VPRINTF
If `vprintf' is found, define `HAVE_VPRINTF'. Otherwise, if
`_doprnt' is found, define `HAVE_DOPRNT'. (If `vprintf' is
available, you may assume that `vfprintf' and `vsprintf' are also
available.)
-- Macro: AC_FUNC_WAIT3
If `wait3' is found and fills in the contents of its third argument
(a `struct rusage *'), which HP-UX does not do, define
`HAVE_WAIT3'.
Info Catalog
(autocf21.info.gz) Library Functions
(autocf21.info.gz) Library Functions
(autocf21.info.gz) Generic Functions
automatically generated byinfo2html