# Ones that have their own macros.
major		AC_HEADER_MAJOR
minor		AC_HEADER_MAJOR
makedev		AC_HEADER_MAJOR
bcopy		AC_HEADER_STDC
bcmp		AC_HEADER_STDC
bzero		AC_HEADER_STDC
ioctl		AC_PROG_GCC_TRADITIONAL
memchr		AC_HEADER_STDC
memcpy		AC_HEADER_STDC
memcmp		AC_FUNC_MEMCMP
memmove		AC_HEADER_STDC
memset		AC_HEADER_STDC
index		AC_HEADER_STDC
rindex		AC_HEADER_STDC
getgroups	AC_TYPE_GETGROUPS
getpgrp		AC_FUNC_GETPGRP
setpgrp		AC_FUNC_SETPGRP
signal		AC_TYPE_SIGNAL
alloca		AC_FUNC_ALLOCA
fnmatch		AC_FUNC_FNMATCH
getloadavg	AC_FUNC_GETLOADAVG
mktime		AC_FUNC_MKTIME
mmap		AC_FUNC_MMAP
setvbuf		AC_FUNC_SETVBUF_REVERSED
strcoll		AC_FUNC_STRCOLL
strftime	AC_FUNC_STRFTIME
utime		AC_FUNC_UTIME_NULL
vfork		AC_FUNC_VFORK
vprintf		AC_FUNC_VPRINTF
vfprintf	AC_FUNC_VPRINTF
vsprintf	AC_FUNC_VPRINTF
wait3		AC_FUNC_WAIT3

# Others.
ftime		AC_CHECK_FUNCS
gethostname	AC_CHECK_FUNCS
gettimeofday	AC_CHECK_FUNCS
getusershell	AC_CHECK_FUNCS
getcwd		AC_CHECK_FUNCS
getwd		AC_CHECK_FUNCS
mkdir		AC_CHECK_FUNCS
mkfifo		AC_CHECK_FUNCS
putenv		AC_CHECK_FUNCS
re_comp		AC_CHECK_FUNCS
regcmp		AC_CHECK_FUNCS
regcomp		AC_CHECK_FUNCS
rmdir		AC_CHECK_FUNCS
select		AC_CHECK_FUNCS
socket		AC_CHECK_FUNCS
stime		AC_CHECK_FUNCS
strcspn		AC_CHECK_FUNCS
strdup		AC_CHECK_FUNCS
strerror	AC_CHECK_FUNCS
strspn		AC_CHECK_FUNCS
strstr		AC_CHECK_FUNCS
strtod		AC_CHECK_FUNCS
strtol		AC_CHECK_FUNCS
strtoul		AC_CHECK_FUNCS
uname		AC_CHECK_FUNCS
