]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
* acspecific.m4 (AC_FUNC_CHOWN): New macro, based on Jim
authorAkim Demaille <akim@epita.fr>
Mon, 22 May 2000 08:46:23 +0000 (08:46 +0000)
committerAkim Demaille <akim@epita.fr>
Mon, 22 May 2000 08:46:23 +0000 (08:46 +0000)
Meyering's `chown.m4' serial 4.
(AC_FUNC_GETGROUPS): New macro, based on Jim Meyering's
`getgroups.m4' serial 3.
(AC_FUNC_MEMCMP): Updated, based on Jim Meyering's `memcmp.m4'
serial 3.
(AC_FUNC_MALLOC): New macro, based on Jim Meyering's
`malloc.m4' serial 3.
(AC_FUNC_MMAP): Include `stdlib.h' when `STDC_HEADERS'.
* acfunctions: Sort.
Add `chown' and `malloc', point `getgroups' to `AC_FUNC_GETGROUPS'
instead of `AC_TYPE_GETGROUPS'.
* doc/autoconf.texi (Particular Functions): Adjust.

ChangeLog
NEWS
acfunctions
acspecific.m4
doc/autoconf.texi
lib/autoconf/specific.m4
lib/autoscan/functions

index 6d4585ff7842bb62ebf32101eb7ea85c11c26d72..ee2a121ea873650632bdfdd11a3b0cbfa36b65e3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2000-05-22  Akim Demaille  <akim@epita.fr>
+
+       * acspecific.m4 (AC_FUNC_CHOWN): New macro, based on Jim
+       Meyering's `chown.m4' serial 4.
+       (AC_FUNC_GETGROUPS): New macro, based on Jim Meyering's
+       `getgroups.m4' serial 3.
+       (AC_FUNC_MEMCMP): Updated, based on Jim Meyering's `memcmp.m4'
+       serial 3.
+       (AC_FUNC_MALLOC): New macro, based on Jim Meyering's
+       `malloc.m4' serial 3.
+       (AC_FUNC_MMAP): Include `stdlib.h' when `STDC_HEADERS'.
+       * acfunctions: Sort.
+       Add `chown' and `malloc', point `getgroups' to `AC_FUNC_GETGROUPS'
+       instead of `AC_TYPE_GETGROUPS'.
+       * doc/autoconf.texi (Particular Functions): Adjust.
+
 2000-05-22  unknown
 
        * acgeneral.m4: Quote the names being m4-defined.
diff --git a/NEWS b/NEWS
index 03c985a8e89dc150d0e20ee371d2d06ee423f2cc..77bfbfc5ea0bb0fdc5e1124f54ba0291242f8452 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -158,15 +158,20 @@ test cases in this new frame work.
 
 
 ** Specific Macros
+- AC_FUNC_CHOWN, AC_FUNC_MALLOC.
+  New.
+
+- AC_FUNC_GETGROUPS
+  Sets GETGROUPS_LIBS.
+
 - AC_FUNC_GETLOADAVG
   Defines `HAVE_STRUCT_NLIST_N_UN_N_NAME' instead of `NLIST_NAME_UNION'.
 
 - AC_PROG_LEX
   Now integrates `AC_DECL_YYTEXT' which is obsoleted.
 
-- C++ compatibility
-  Almost every single macros has been revisited in order to support at
-  best CC=c++.
+** C++ compatibility
+  Every macro has been revisited in order to support at best CC=c++.
 \f
 Major changes in Autoconf 2.14:
   There was no release of GNU Autoconf 2.14.
index 5977cb842d00636af90bc63fcae1ca1c7211f701..1eb8e81aa9559065ba96243ce627ba5709520c5b 100644 (file)
@@ -1,43 +1,45 @@
 # Ones that have their own macros.
-major          AC_HEADER_MAJOR
-minor          AC_HEADER_MAJOR
-makedev                AC_HEADER_MAJOR
-bcopy          AC_HEADER_STDC
+alloca         AC_FUNC_ALLOCA
 bcmp           AC_HEADER_STDC
+bcopy          AC_HEADER_STDC
 bzero          AC_HEADER_STDC
+chown          AC_FUNC_CHOWN
+fnmatch                AC_FUNC_FNMATCH
+getgroups      AC_FUNC_GETGROUPS
+getloadavg     AC_FUNC_GETLOADAVG
+getpgrp                AC_FUNC_GETPGRP
+index          AC_HEADER_STDC
 ioctl          AC_PROG_GCC_TRADITIONAL
+major          AC_HEADER_MAJOR
+malloc         AC_FUNC_MALLOC
+makedev                AC_HEADER_MAJOR
 memchr         AC_HEADER_STDC
-memcpy         AC_HEADER_STDC
 memcmp         AC_FUNC_MEMCMP
+memcpy         AC_HEADER_STDC
 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
+minor          AC_HEADER_MAJOR
 mktime         AC_FUNC_MKTIME
 mmap           AC_FUNC_MMAP
+rindex         AC_HEADER_STDC
+setpgrp                AC_FUNC_SETPGRP
 setvbuf                AC_FUNC_SETVBUF_REVERSED
+signal         AC_TYPE_SIGNAL
 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
+vprintf                AC_FUNC_VPRINTF
 vsprintf       AC_FUNC_VPRINTF
 wait3          AC_FUNC_WAIT3
 
 # Others.
 ftime          AC_CHECK_FUNCS
+getcwd         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
index b72f0447707050761d33f4fd25490213dc1162a5..79efcd5edd4235cd3d9641928d00fa8ae3698a53 100644 (file)
@@ -471,17 +471,17 @@ AC_CACHE_CHECK(for ANSI C header files, ac_cv_header_stdc,
 
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-AC_EGREP_HEADER(memchr, string.h, , ac_cv_header_stdc=no)
+  AC_EGREP_HEADER(memchr, string.h, , ac_cv_header_stdc=no)
 fi
 
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-AC_EGREP_HEADER(free, stdlib.h, , ac_cv_header_stdc=no)
+  AC_EGREP_HEADER(free, stdlib.h, , ac_cv_header_stdc=no)
 fi
 
 if test $ac_cv_header_stdc = yes; then
   # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-AC_TRY_RUN(
+  AC_TRY_RUN(
 [#include <ctype.h>
 #if ((' ' & 0x0FF) == 0x020)
 # define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -802,6 +802,48 @@ AC_SUBST(ALLOCA)dnl
 ])# AC_FUNC_ALLOCA
 
 
+# AC_FUNC_CHOWN
+# -------------
+# Determine whether chown accepts arguments of -1 for uid and gid.
+AC_DEFUN([AC_FUNC_CHOWN],
+[AC_REQUIRE([AC_TYPE_UID_T])dnl
+AC_CHECK_HEADERS(unistd.h)
+AC_CACHE_CHECK([for working chown], ac_cv_func_chown_works,
+[AC_TRY_RUN([
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
+int
+main ()
+{
+  char *f = "conftestchown";
+  struct stat before, after;
+
+  if (creat (f, 0600) < 0)
+    exit (1);
+  if (stat (f, &before) < 0)
+    exit (1);
+  if (chown (f, (uid_t) -1, (gid_t) -1) == -1)
+    exit (1);
+  if (stat (f, &after) < 0)
+    exit (1);
+  exit ((before.st_uid == after.st_uid
+         && before.st_gid == after.st_gid) ? 0 : 1);
+}],
+            ac_cv_func_chown_works=yes,
+            ac_cv_func_chown_works=no,
+            ac_cv_func_chown_works=no)])
+if test $ac_cv_func_chown_works = yes; then
+  AC_DEFINE(HAVE_CHOWN, 1,
+            [Define if your system has a working `chown' function.])
+fi
+])# AC_FUNC_CHOWN
+
+
 # AC_FUNC_CLOSEDIR_VOID
 # ---------------------
 # Check whether closedir returns void, and #define CLOSEDIR_VOID in
@@ -910,6 +952,46 @@ AC_CHECK_HEADERS(nlist.h,
 ])# _AC_LIBOBJ_GETLOADAVG
 
 
+# AC_FUNC_GETGROUPS
+# -----------------
+# Try to find `getgroups', and check that it works.
+# When crosscompiling, assume getgroups is broken.
+AC_DEFUN([AC_FUNC_GETGROUPS],
+[AC_REQUIRE([AC_TYPE_GETGROUPS])dnl
+AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+AC_CHECK_FUNC(getgroups)
+
+# If we don't yet have getgroups, see if it's in -lbsd.
+# This is reported to be necessary on an ITOS 3000WS running SEIUX 3.1.
+ac_save_LIBS=$LIBS
+if test $ac_cv_func_getgroups = no; then
+  AC_CHECK_LIB(bsd, getgroups, [GETGROUPS_LIB=-lbsd])
+fi
+
+# Run the program to test the functionality of the system-supplied
+# getgroups function only if there is such a function.
+if test $ac_cv_func_getgroups = yes; then
+  AC_CACHE_CHECK([for working getgroups], ac_cv_func_getgroups_works,
+   [AC_TRY_RUN([
+     int
+     main ()
+     {
+       /* On Ultrix 4.3, getgroups (0, 0) always fails.  */
+       exit (getgroups (0, 0) == -1 ? 1 : 0);
+     }],
+               ac_cv_func_getgroups_works=yes,
+               ac_cv_func_getgroups_works=no,
+               ac_cv_func_getgroups_works=no)
+   ])
+  if test $ac_cv_func_getgroups_works = yes; then
+    AC_DEFINE(HAVE_GETGROUPS, 1,
+              [Define if your system has a working `getgroups' function.])
+  fi
+fi
+LIBS=$ac_save_LIBS
+])# AC_FUNC_GETGROUPS
+
+
 # AC_FUNC_GETLOADAVG
 # ------------------
 AC_DEFUN([AC_FUNC_GETLOADAVG],
@@ -1068,6 +1150,74 @@ fi
 ])# AC_FUNC_GETPGRP
 
 
+# AC_FUNC_MALLOC
+# --------------
+# Is `malloc (0)' properly handled?
+AC_DEFUN([AC_FUNC_MALLOC],
+[AC_REQUIRE([AC_HEADER_STDC])dnl
+AC_CACHE_CHECK([for working malloc], ac_cv_func_malloc_works,
+[AC_TRY_RUN(
+[#if STDC_HEADERS || HAVE_STDLIB_H
+# include <stdlib.h>
+#else
+char *malloc ();
+#endif
+
+int
+main ()
+{
+  exit (malloc (0) ? 0 : 1);
+}],
+              ac_cv_func_malloc_works=yes,
+              ac_cv_func_malloc_works=no,
+              ac_cv_func_malloc_works=no)
+  ])
+if test $ac_cv_func_malloc_works = yes; then
+  AC_DEFINE(HAVE_MALLOC, 1,
+            [Define if your system has a working `malloc' function.])
+fi
+])# AC_FUNC_MALLOC
+
+
+# AC_FUNC_MEMCMP
+# --------------
+AC_DEFUN([AC_FUNC_MEMCMP],
+[AC_CACHE_CHECK([for working memcmp], ac_cv_func_memcmp_working,
+[AC_TRY_RUN([
+int
+main ()
+{
+  /* Some versions of memcmp are not 8-bit clean.  */
+  char c0 = 0x40, c1 = 0x80, c2 = 0x81;
+  if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0)
+    exit (1);
+
+  /* The Next x86 OpenStep bug shows up only when comparing 16 bytes
+     or more and with at least one buffer not starting on a 4-byte boundary.
+     William Lewis provided this test program.   */
+  {
+    char foo[21];
+    char bar[21];
+    int i;
+    for (i = 0; i < 4; i++)
+      {
+        char *a = foo + i;
+        char *b = bar + i;
+        strcpy (a, "--------01111111");
+        strcpy (b, "--------10000000");
+        if (memcmp (a, b, 16) >= 0)
+          exit (1);
+      }
+    exit (0);
+  }
+}]
+   ac_cv_func_memcmp_working=yes,
+   ac_cv_func_memcmp_working=no,
+   ac_cv_func_memcmp_working=no)])
+test $ac_cv_func_memcmp_working = no && AC_LIBOBJ([memcmp])
+])# AC_FUNC_MEMCMP
+
+
 # AC_FUNC_MKTIME
 # --------------
 AC_DEFUN([AC_FUNC_MKTIME],
@@ -1261,7 +1411,7 @@ AC_CACHE_CHECK(for working mmap, ac_cv_func_mmap_fixed_mapped,
 #include <fcntl.h>
 #include <sys/mman.h>
 
-#if HAVE_STDLIB_H
+#if STDC_HEADERS || HAVE_STDLIB_H
 # include <stdlib.h>
 #else
 char *malloc ();
@@ -1375,23 +1525,6 @@ fi
 ])# AC_FUNC_MMAP
 
 
-# AC_FUNC_MEMCMP
-# --------------
-AC_DEFUN([AC_FUNC_MEMCMP],
-[AC_CACHE_CHECK(for 8-bit clean memcmp, ac_cv_func_memcmp_clean,
-[AC_TRY_RUN(
-[int
-main()
-{
-  char c0 = 0x40, c1 = 0x80, c2 = 0x81;
-  exit (memcmp(&c0, &c2, 1) < 0
-        && memcmp(&c1, &c2, 1) < 0 ? 0 : 1);
-}], ac_cv_func_memcmp_clean=yes, ac_cv_func_memcmp_clean=no,
-ac_cv_func_memcmp_clean=no)])
-test $ac_cv_func_memcmp_clean = no && AC_LIBOBJ([memcmp])
-])# AC_FUNC_MEMCMP
-
-
 # AC_FUNC_SELECT_ARGTYPES
 # -----------------------
 # Determine the correct type to be passed to each of the `select'
@@ -1662,7 +1795,7 @@ AC_TRY_RUN(
 [#include <sys/types.h>
 #include <sys/stat.h>
 int
-main()
+main ()
 {
   struct stat s, t;
   exit (!(stat ("conftestdata", &s) == 0
index 1de7b59a9045ea8a45634b40be8815349663e80f..d950940acf9f0ff1c85bf83964d906dd9da81f5f 100644 (file)
@@ -2848,6 +2848,14 @@ char *alloca ();
 @end example
 @end defmac
 
+@defmac AC_FUNC_CHOWN
+@maindex FUNC_CHOWN
+If the @code{chown} function is available and works (in particular it
+should accept @samp{-1} for @code{uid} and @code{gid}), define
+@code{HAVE_CHOWN}.
+@end defmac
+
+
 @defmac AC_FUNC_CLOSEDIR_VOID
 @maindex FUNC_CLOSEDIR_VOID
 @cvindex CLOSEDIR_VOID
@@ -2862,6 +2870,15 @@ If the @code{fnmatch} function is available and works (unlike the one on
 SunOS 5.4), define @code{HAVE_FNMATCH}.
 @end defmac
 
+@defmac AC_FUNC_GETGROUPS
+@maindex FUNC_GETGROUPS
+@ovindex GETGROUPS_LIBS
+If the @code{getgroups} function is available and works (unlike on
+Ultrix 4.3 where @samp{getgroups (0, 0)} always fails), define
+@code{HAVE_GETGROUPS}.  Set @code{GETGROUPS_LIBS} to any libraries
+needed to get that function.  This macro runs @code{AC_TYPE_GETGROUPS}.
+@end defmac
+
 @defmac AC_FUNC_GETLOADAVG
 @maindex FUNC_GETLOADAVG
 @cvindex SVR4
@@ -2932,12 +2949,20 @@ a process ID as an argument.  This macro does not check whether
 first call @code{AC_CHECK_FUNC} for @code{getpgrp}.
 @end defmac
 
+@defmac AC_FUNC_MALLOC
+@maindex FUNC_MALLOC
+If the @code{malloc} works correctly (@samp{malloc (0)} returns a valid
+pointer), define @code{HAVE_MALLOC}.
+@end defmac
+
 @defmac AC_FUNC_MEMCMP
 @maindex FUNC_MEMCMP
 @ovindex LIBOBJS
 If the @code{memcmp} function is not available, or does not work on
-8-bit data (like the one on SunOS 4.1.3), require an @code{AC_LIBOBJ}
-replacement for @samp{memcmp}.
+8-bit data (like the one on SunOS 4.1.3), or fails when comparing 16
+bytes or more and with at least one buffer not starting on a 4-byte
+boundary (such as the one on Next x86 OpenStep), require an
+@code{AC_LIBOBJ} replacement for @samp{memcmp}.
 @end defmac
 
 @defmac AC_FUNC_MKTIME
index b72f0447707050761d33f4fd25490213dc1162a5..79efcd5edd4235cd3d9641928d00fa8ae3698a53 100644 (file)
@@ -471,17 +471,17 @@ AC_CACHE_CHECK(for ANSI C header files, ac_cv_header_stdc,
 
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-AC_EGREP_HEADER(memchr, string.h, , ac_cv_header_stdc=no)
+  AC_EGREP_HEADER(memchr, string.h, , ac_cv_header_stdc=no)
 fi
 
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-AC_EGREP_HEADER(free, stdlib.h, , ac_cv_header_stdc=no)
+  AC_EGREP_HEADER(free, stdlib.h, , ac_cv_header_stdc=no)
 fi
 
 if test $ac_cv_header_stdc = yes; then
   # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-AC_TRY_RUN(
+  AC_TRY_RUN(
 [#include <ctype.h>
 #if ((' ' & 0x0FF) == 0x020)
 # define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -802,6 +802,48 @@ AC_SUBST(ALLOCA)dnl
 ])# AC_FUNC_ALLOCA
 
 
+# AC_FUNC_CHOWN
+# -------------
+# Determine whether chown accepts arguments of -1 for uid and gid.
+AC_DEFUN([AC_FUNC_CHOWN],
+[AC_REQUIRE([AC_TYPE_UID_T])dnl
+AC_CHECK_HEADERS(unistd.h)
+AC_CACHE_CHECK([for working chown], ac_cv_func_chown_works,
+[AC_TRY_RUN([
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
+int
+main ()
+{
+  char *f = "conftestchown";
+  struct stat before, after;
+
+  if (creat (f, 0600) < 0)
+    exit (1);
+  if (stat (f, &before) < 0)
+    exit (1);
+  if (chown (f, (uid_t) -1, (gid_t) -1) == -1)
+    exit (1);
+  if (stat (f, &after) < 0)
+    exit (1);
+  exit ((before.st_uid == after.st_uid
+         && before.st_gid == after.st_gid) ? 0 : 1);
+}],
+            ac_cv_func_chown_works=yes,
+            ac_cv_func_chown_works=no,
+            ac_cv_func_chown_works=no)])
+if test $ac_cv_func_chown_works = yes; then
+  AC_DEFINE(HAVE_CHOWN, 1,
+            [Define if your system has a working `chown' function.])
+fi
+])# AC_FUNC_CHOWN
+
+
 # AC_FUNC_CLOSEDIR_VOID
 # ---------------------
 # Check whether closedir returns void, and #define CLOSEDIR_VOID in
@@ -910,6 +952,46 @@ AC_CHECK_HEADERS(nlist.h,
 ])# _AC_LIBOBJ_GETLOADAVG
 
 
+# AC_FUNC_GETGROUPS
+# -----------------
+# Try to find `getgroups', and check that it works.
+# When crosscompiling, assume getgroups is broken.
+AC_DEFUN([AC_FUNC_GETGROUPS],
+[AC_REQUIRE([AC_TYPE_GETGROUPS])dnl
+AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+AC_CHECK_FUNC(getgroups)
+
+# If we don't yet have getgroups, see if it's in -lbsd.
+# This is reported to be necessary on an ITOS 3000WS running SEIUX 3.1.
+ac_save_LIBS=$LIBS
+if test $ac_cv_func_getgroups = no; then
+  AC_CHECK_LIB(bsd, getgroups, [GETGROUPS_LIB=-lbsd])
+fi
+
+# Run the program to test the functionality of the system-supplied
+# getgroups function only if there is such a function.
+if test $ac_cv_func_getgroups = yes; then
+  AC_CACHE_CHECK([for working getgroups], ac_cv_func_getgroups_works,
+   [AC_TRY_RUN([
+     int
+     main ()
+     {
+       /* On Ultrix 4.3, getgroups (0, 0) always fails.  */
+       exit (getgroups (0, 0) == -1 ? 1 : 0);
+     }],
+               ac_cv_func_getgroups_works=yes,
+               ac_cv_func_getgroups_works=no,
+               ac_cv_func_getgroups_works=no)
+   ])
+  if test $ac_cv_func_getgroups_works = yes; then
+    AC_DEFINE(HAVE_GETGROUPS, 1,
+              [Define if your system has a working `getgroups' function.])
+  fi
+fi
+LIBS=$ac_save_LIBS
+])# AC_FUNC_GETGROUPS
+
+
 # AC_FUNC_GETLOADAVG
 # ------------------
 AC_DEFUN([AC_FUNC_GETLOADAVG],
@@ -1068,6 +1150,74 @@ fi
 ])# AC_FUNC_GETPGRP
 
 
+# AC_FUNC_MALLOC
+# --------------
+# Is `malloc (0)' properly handled?
+AC_DEFUN([AC_FUNC_MALLOC],
+[AC_REQUIRE([AC_HEADER_STDC])dnl
+AC_CACHE_CHECK([for working malloc], ac_cv_func_malloc_works,
+[AC_TRY_RUN(
+[#if STDC_HEADERS || HAVE_STDLIB_H
+# include <stdlib.h>
+#else
+char *malloc ();
+#endif
+
+int
+main ()
+{
+  exit (malloc (0) ? 0 : 1);
+}],
+              ac_cv_func_malloc_works=yes,
+              ac_cv_func_malloc_works=no,
+              ac_cv_func_malloc_works=no)
+  ])
+if test $ac_cv_func_malloc_works = yes; then
+  AC_DEFINE(HAVE_MALLOC, 1,
+            [Define if your system has a working `malloc' function.])
+fi
+])# AC_FUNC_MALLOC
+
+
+# AC_FUNC_MEMCMP
+# --------------
+AC_DEFUN([AC_FUNC_MEMCMP],
+[AC_CACHE_CHECK([for working memcmp], ac_cv_func_memcmp_working,
+[AC_TRY_RUN([
+int
+main ()
+{
+  /* Some versions of memcmp are not 8-bit clean.  */
+  char c0 = 0x40, c1 = 0x80, c2 = 0x81;
+  if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0)
+    exit (1);
+
+  /* The Next x86 OpenStep bug shows up only when comparing 16 bytes
+     or more and with at least one buffer not starting on a 4-byte boundary.
+     William Lewis provided this test program.   */
+  {
+    char foo[21];
+    char bar[21];
+    int i;
+    for (i = 0; i < 4; i++)
+      {
+        char *a = foo + i;
+        char *b = bar + i;
+        strcpy (a, "--------01111111");
+        strcpy (b, "--------10000000");
+        if (memcmp (a, b, 16) >= 0)
+          exit (1);
+      }
+    exit (0);
+  }
+}]
+   ac_cv_func_memcmp_working=yes,
+   ac_cv_func_memcmp_working=no,
+   ac_cv_func_memcmp_working=no)])
+test $ac_cv_func_memcmp_working = no && AC_LIBOBJ([memcmp])
+])# AC_FUNC_MEMCMP
+
+
 # AC_FUNC_MKTIME
 # --------------
 AC_DEFUN([AC_FUNC_MKTIME],
@@ -1261,7 +1411,7 @@ AC_CACHE_CHECK(for working mmap, ac_cv_func_mmap_fixed_mapped,
 #include <fcntl.h>
 #include <sys/mman.h>
 
-#if HAVE_STDLIB_H
+#if STDC_HEADERS || HAVE_STDLIB_H
 # include <stdlib.h>
 #else
 char *malloc ();
@@ -1375,23 +1525,6 @@ fi
 ])# AC_FUNC_MMAP
 
 
-# AC_FUNC_MEMCMP
-# --------------
-AC_DEFUN([AC_FUNC_MEMCMP],
-[AC_CACHE_CHECK(for 8-bit clean memcmp, ac_cv_func_memcmp_clean,
-[AC_TRY_RUN(
-[int
-main()
-{
-  char c0 = 0x40, c1 = 0x80, c2 = 0x81;
-  exit (memcmp(&c0, &c2, 1) < 0
-        && memcmp(&c1, &c2, 1) < 0 ? 0 : 1);
-}], ac_cv_func_memcmp_clean=yes, ac_cv_func_memcmp_clean=no,
-ac_cv_func_memcmp_clean=no)])
-test $ac_cv_func_memcmp_clean = no && AC_LIBOBJ([memcmp])
-])# AC_FUNC_MEMCMP
-
-
 # AC_FUNC_SELECT_ARGTYPES
 # -----------------------
 # Determine the correct type to be passed to each of the `select'
@@ -1662,7 +1795,7 @@ AC_TRY_RUN(
 [#include <sys/types.h>
 #include <sys/stat.h>
 int
-main()
+main ()
 {
   struct stat s, t;
   exit (!(stat ("conftestdata", &s) == 0
index 5977cb842d00636af90bc63fcae1ca1c7211f701..1eb8e81aa9559065ba96243ce627ba5709520c5b 100644 (file)
@@ -1,43 +1,45 @@
 # Ones that have their own macros.
-major          AC_HEADER_MAJOR
-minor          AC_HEADER_MAJOR
-makedev                AC_HEADER_MAJOR
-bcopy          AC_HEADER_STDC
+alloca         AC_FUNC_ALLOCA
 bcmp           AC_HEADER_STDC
+bcopy          AC_HEADER_STDC
 bzero          AC_HEADER_STDC
+chown          AC_FUNC_CHOWN
+fnmatch                AC_FUNC_FNMATCH
+getgroups      AC_FUNC_GETGROUPS
+getloadavg     AC_FUNC_GETLOADAVG
+getpgrp                AC_FUNC_GETPGRP
+index          AC_HEADER_STDC
 ioctl          AC_PROG_GCC_TRADITIONAL
+major          AC_HEADER_MAJOR
+malloc         AC_FUNC_MALLOC
+makedev                AC_HEADER_MAJOR
 memchr         AC_HEADER_STDC
-memcpy         AC_HEADER_STDC
 memcmp         AC_FUNC_MEMCMP
+memcpy         AC_HEADER_STDC
 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
+minor          AC_HEADER_MAJOR
 mktime         AC_FUNC_MKTIME
 mmap           AC_FUNC_MMAP
+rindex         AC_HEADER_STDC
+setpgrp                AC_FUNC_SETPGRP
 setvbuf                AC_FUNC_SETVBUF_REVERSED
+signal         AC_TYPE_SIGNAL
 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
+vprintf                AC_FUNC_VPRINTF
 vsprintf       AC_FUNC_VPRINTF
 wait3          AC_FUNC_WAIT3
 
 # Others.
 ftime          AC_CHECK_FUNCS
+getcwd         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