annotate aclocal.m4 @ 34097:0225d8e15f2c

(coordinates_in_window): Handle computations for positions on the vertical bar and fringes differently for window-system frames. Consider some pixels near the vertical bar as on the bar if the frame doesn't have vertical scroll bars. Associate positions between mode or header lines with the right window, the left one.
author Gerd Moellmann <gerd@gnu.org>
date Fri, 01 Dec 2000 20:44:31 +0000
parents b7463306b3ac
children 14bff16f1d37
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27939
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
1 dnl The following are from prerelease autoconf 2.14a. When 2.14 is
28583
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
2 dnl released, we should be able to zap them and just use AC_PREREQ(2.14).
27939
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
3
29901
56407d559c03 Define the post-2.13 stuff conditionally on autoconf version.
Dave Love <fx@gnu.org>
parents: 29404
diff changeset
4 ifelse(_AC_VERSION_COMPARE(AC_ACVERSION, [2.14]), -1,
27939
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
5
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
6 # AC_PROG_CC_STDC
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
7 # ---------------
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
8 # If the C compiler in not in ANSI C mode by default, try to add an
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
9 # option to output variable @code{CC} to make it so. This macro tries
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
10 # various options that select ANSI C on some system or another. It
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
11 # considers the compiler to be in ANSI C mode if it handles function
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
12 # prototypes correctly.
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
13 AC_DEFUN(AC_PROG_CC_STDC,
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
14 [AC_REQUIRE([AC_PROG_CC])dnl
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
15 AC_BEFORE([$0], [AC_C_INLINE])dnl
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
16 AC_BEFORE([$0], [AC_C_CONST])dnl
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
17 dnl Force this before AC_PROG_CPP. Some cpp's, eg on HPUX, require
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
18 dnl a magic option to avoid problems with ANSI preprocessor commands
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
19 dnl like #elif.
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
20 dnl FIXME: can't do this because then AC_AIX won't work due to a
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
21 dnl circular dependency.
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
22 dnl AC_BEFORE([$0], [AC_PROG_CPP])
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
23 AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
24 AC_CACHE_VAL(ac_cv_prog_cc_stdc,
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
25 [ac_cv_prog_cc_stdc=no
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
26 ac_save_CC="$CC"
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
27 # Don't try gcc -ansi; that turns off useful extensions and
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
28 # breaks some systems' header files.
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
29 # AIX -qlanglvl=ansi
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
30 # Ultrix and OSF/1 -std1
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
31 # HP-UX 10.20 and later -Ae
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
32 # HP-UX older versions -Aa -D_HPUX_SOURCE
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
33 # SVR4 -Xc -D__EXTENSIONS__
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
34 for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
35 do
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
36 CC="$ac_save_CC $ac_arg"
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
37 AC_TRY_COMPILE(
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
38 [#include <stdarg.h>
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
39 #include <stdio.h>
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
40 #include <sys/types.h>
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
41 #include <sys/stat.h>
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
42 /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
43 struct buf { int x; };
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
44 FILE * (*rcsopen) (struct buf *, struct stat *, int);
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
45 static char *e (p, i)
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
46 char **p;
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
47 int i;
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
48 {
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
49 return p[i];
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
50 }
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
51 static char *f (char * (*g) (char **, int), char **p, ...)
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
52 {
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
53 char *s;
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
54 va_list v;
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
55 va_start (v,p);
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
56 s = g (p, va_arg (v,int));
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
57 va_end (v);
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
58 return s;
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
59 }
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
60 int test (int i, double x);
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
61 struct s1 {int (*f) (int a);};
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
62 struct s2 {int (*f) (double a);};
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
63 int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
64 int argc;
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
65 char **argv;],
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
66 [return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];],
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
67 [ac_cv_prog_cc_stdc="$ac_arg"; break])
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
68 done
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
69 CC="$ac_save_CC"
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
70 ])
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
71 case "x$ac_cv_prog_cc_stdc" in
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
72 x|xno)
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
73 AC_MSG_RESULT([none needed]) ;;
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
74 *)
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
75 AC_MSG_RESULT($ac_cv_prog_cc_stdc)
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
76 CC="$CC $ac_cv_prog_cc_stdc" ;;
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
77 esac
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
78 ])# AC_PROG_CC_STDC
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
79
28583
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
80 # AC_FUNC_MKTIME
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
81 # --------------
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
82 AC_DEFUN(AC_FUNC_MKTIME,
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
83 [AC_REQUIRE([AC_HEADER_TIME])dnl
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
84 AC_CHECK_HEADERS(sys/time.h unistd.h)
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
85 AC_CHECK_FUNCS(alarm)
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
86 AC_CACHE_CHECK([for working mktime], ac_cv_func_working_mktime,
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
87 [AC_TRY_RUN(
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
88 [/* Test program from Paul Eggert (eggert@twinsun.com)
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
89 and Tony Leneis (tony@plaza.ds.adp.com). */
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
90 #if TIME_WITH_SYS_TIME
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
91 # include <sys/time.h>
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
92 # include <time.h>
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
93 #else
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
94 # if HAVE_SYS_TIME_H
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
95 # include <sys/time.h>
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
96 # else
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
97 # include <time.h>
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
98 # endif
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
99 #endif
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
100
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
101 #if HAVE_UNISTD_H
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
102 # include <unistd.h>
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
103 #endif
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
104
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
105 #if !HAVE_ALARM
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
106 # define alarm(X) /* empty */
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
107 #endif
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
108
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
109 /* Work around redefinition to rpl_putenv by other config tests. */
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
110 #undef putenv
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
111
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
112 static time_t time_t_max;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
113
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
114 /* Values we'll use to set the TZ environment variable. */
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
115 static const char *const tz_strings[] = {
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
116 (const char *) 0, "TZ=GMT0", "TZ=JST-9",
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
117 "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
118 };
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
119 #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
120
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
121 /* Fail if mktime fails to convert a date in the spring-forward gap.
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
122 Based on a problem report from Andreas Jaeger. */
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
123 static void
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
124 spring_forward_gap ()
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
125 {
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
126 /* glibc (up to about 1998-10-07) failed this test) */
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
127 struct tm tm;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
128
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
129 /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
130 instead of "TZ=America/Vancouver" in order to detect the bug even
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
131 on systems that don't support the Olson extension, or don't have the
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
132 full zoneinfo tables installed. */
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
133 putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
134
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
135 tm.tm_year = 98;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
136 tm.tm_mon = 3;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
137 tm.tm_mday = 5;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
138 tm.tm_hour = 2;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
139 tm.tm_min = 0;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
140 tm.tm_sec = 0;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
141 tm.tm_isdst = -1;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
142 if (mktime (&tm) == (time_t)-1)
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
143 exit (1);
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
144 }
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
145
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
146 static void
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
147 mktime_test (now)
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
148 time_t now;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
149 {
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
150 struct tm *lt;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
151 if ((lt = localtime (&now)) && mktime (lt) != now)
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
152 exit (1);
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
153 now = time_t_max - now;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
154 if ((lt = localtime (&now)) && mktime (lt) != now)
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
155 exit (1);
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
156 }
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
157
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
158 static void
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
159 irix_6_4_bug ()
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
160 {
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
161 /* Based on code from Ariel Faigon. */
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
162 struct tm tm;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
163 tm.tm_year = 96;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
164 tm.tm_mon = 3;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
165 tm.tm_mday = 0;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
166 tm.tm_hour = 0;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
167 tm.tm_min = 0;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
168 tm.tm_sec = 0;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
169 tm.tm_isdst = -1;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
170 mktime (&tm);
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
171 if (tm.tm_mon != 2 || tm.tm_mday != 31)
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
172 exit (1);
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
173 }
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
174
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
175 static void
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
176 bigtime_test (j)
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
177 int j;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
178 {
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
179 struct tm tm;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
180 time_t now;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
181 tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
182 now = mktime (&tm);
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
183 if (now != (time_t) -1)
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
184 {
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
185 struct tm *lt = localtime (&now);
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
186 if (! (lt
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
187 && lt->tm_year == tm.tm_year
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
188 && lt->tm_mon == tm.tm_mon
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
189 && lt->tm_mday == tm.tm_mday
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
190 && lt->tm_hour == tm.tm_hour
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
191 && lt->tm_min == tm.tm_min
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
192 && lt->tm_sec == tm.tm_sec
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
193 && lt->tm_yday == tm.tm_yday
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
194 && lt->tm_wday == tm.tm_wday
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
195 && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst)
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
196 == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst))))
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
197 exit (1);
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
198 }
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
199 }
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
200
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
201 int
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
202 main ()
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
203 {
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
204 time_t t, delta;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
205 int i, j;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
206
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
207 /* This test makes some buggy mktime implementations loop.
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
208 Give up after 60 seconds; a mktime slower than that
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
209 isn't worth using anyway. */
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
210 alarm (60);
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
211
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
212 for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2)
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
213 continue;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
214 time_t_max--;
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
215 delta = time_t_max / 997; /* a suitable prime number */
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
216 for (i = 0; i < N_STRINGS; i++)
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
217 {
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
218 if (tz_strings[i])
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
219 putenv (tz_strings[i]);
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
220
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
221 for (t = 0; t <= time_t_max - delta; t += delta)
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
222 mktime_test (t);
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
223 mktime_test ((time_t) 60 * 60);
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
224 mktime_test ((time_t) 60 * 60 * 24);
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
225
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
226 for (j = 1; 0 < j; j *= 2)
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
227 bigtime_test (j);
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
228 bigtime_test (j - 1);
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
229 }
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
230 irix_6_4_bug ();
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
231 spring_forward_gap ();
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
232 exit (0);
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
233 }],
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
234 ac_cv_func_working_mktime=yes, ac_cv_func_working_mktime=no,
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
235 ac_cv_func_working_mktime=no)])
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
236 if test $ac_cv_func_working_mktime = no; then
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
237 LIBOBJS="$LIBOBJS mktime.${ac_objext}"
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
238 fi
28638
235bba09bd4c (AC_FUNC_MKTIME): Use AC_SUBST.
Dave Love <fx@gnu.org>
parents: 28583
diff changeset
239 AC_SUBST(LIBOBJS)dnl
28583
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
240 ])# AC_FUNC_MKTIME
0c4dc9f274f0 (AC_FUNC_MKTIME): New.
Dave Love <fx@gnu.org>
parents: 27939
diff changeset
241
27939
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
242 # AC_C_VOLATILE
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
243 # -------------
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
244 # Note that, unlike const, #defining volatile to be the empty string can
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
245 # actually turn a correct program into an incorrect one, since removing
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
246 # uses of volatile actually grants the compiler permission to perform
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
247 # optimizations that could break the user's code. So, do not #define
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
248 # volatile away unless it is really necessary to allow the user's code
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
249 # to compile cleanly. Benign compiler failures should be tolerated.
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
250 AC_DEFUN(AC_C_VOLATILE,
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
251 [AC_REQUIRE([AC_PROG_CC_STDC])dnl
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
252 AC_CACHE_CHECK([for working volatile], ac_cv_c_volatile,
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
253 [AC_TRY_COMPILE(,[
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
254 volatile int x;
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
255 int * volatile y;],
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
256 ac_cv_c_volatile=yes, ac_cv_c_volatile=no)])
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
257 if test $ac_cv_c_volatile = no; then
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
258 AC_DEFINE(volatile,,
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
259 [Define to empty if the keyword `volatile' does not work.
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
260 Warning: valid code using `volatile' can become incorrect
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
261 without. Disable with care.])
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
262 fi
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
263 ])
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
264
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
265 # AC_C_PROTOTYPES
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
266 # ---------------
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
267 # Check if the C compiler supports prototypes, included if it needs
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
268 # options.
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
269 AC_DEFUN(AC_C_PROTOTYPES,
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
270 [AC_REQUIRE([AC_PROG_CC_STDC])dnl
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
271 AC_REQUIRE([AC_PROG_CPP])dnl
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
272 AC_MSG_CHECKING([for function prototypes])
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
273 if test "$ac_cv_prog_cc_stdc" != no; then
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
274 AC_MSG_RESULT(yes)
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
275 AC_DEFINE(PROTOTYPES, 1,
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
276 [Define if the compiler supports function prototypes.])
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
277 else
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
278 AC_MSG_RESULT(no)
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
279 fi
e931b73f3b4f *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
280 ])# AC_C_PROTOTYPES
29384
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
281
29901
56407d559c03 Define the post-2.13 stuff conditionally on autoconf version.
Dave Love <fx@gnu.org>
parents: 29404
diff changeset
282 dnl The following is a bit different from the prerelease autoconf at
56407d559c03 Define the post-2.13 stuff conditionally on autoconf version.
Dave Love <fx@gnu.org>
parents: 29404
diff changeset
283 dnl this time since that requires extra definitions.
29404
5b490e305c65 comment
Dave Love <fx@gnu.org>
parents: 29384
diff changeset
284
29384
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
285 dnl By default, many hosts won't let programs access large files;
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
286 dnl one must use special compiler options to get large-file access to work.
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
287 dnl For more details about this brain damage please see:
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
288 dnl http://www.sas.com/standards/large.file/x_open.20Mar96.html
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
289
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
290 dnl Written by Paul Eggert <eggert@twinsun.com>.
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
291
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
292 dnl Internal subroutine of AC_SYS_LARGEFILE.
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
293 dnl AC_SYS_LARGEFILE_TEST_INCLUDES
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
294 AC_DEFUN(AC_SYS_LARGEFILE_TEST_INCLUDES,
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
295 [[#include <sys/types.h>
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
296 int a[(off_t) 9223372036854775807 == 9223372036854775807 ? 1 : -1];
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
297 ]])
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
298
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
299 dnl Internal subroutine of AC_SYS_LARGEFILE.
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
300 dnl AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE, CACHE-VAR, COMMENT, INCLUDES, FUNCTION-BODY)
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
301 AC_DEFUN(AC_SYS_LARGEFILE_MACRO_VALUE,
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
302 [AC_CACHE_CHECK([for $1 value needed for large files], $3,
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
303 [$3=no
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
304 AC_TRY_COMPILE(AC_SYS_LARGEFILE_TEST_INCLUDES
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
305 $5
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
306 ,
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
307 [$6],
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
308 ,
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
309 [AC_TRY_COMPILE([#define $1 $2]
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
310 AC_SYS_LARGEFILE_TEST_INCLUDES
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
311 $5
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
312 ,
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
313 [$6],
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
314 [$3=$2])])])
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
315 if test "[$]$3" != no; then
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
316 AC_DEFINE_UNQUOTED([$1], [$]$3, [$4])
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
317 fi])
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
318
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
319 AC_DEFUN(AC_SYS_LARGEFILE,
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
320 [AC_ARG_ENABLE(largefile,
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
321 [ --disable-largefile omit support for large files])
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
322 if test "$enable_largefile" != no; then
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
323
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
324 AC_CACHE_CHECK([for special C compiler options needed for large files],
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
325 ac_cv_sys_largefile_CC,
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
326 [ac_cv_sys_largefile_CC=no
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
327 if test "$GCC" != yes; then
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
328 # IRIX 6.2 and later do not support large files by default,
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
329 # so use the C compiler's -n32 option if that helps.
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
330 AC_TRY_COMPILE(AC_SYS_LARGEFILE_TEST_INCLUDES, , ,
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
331 [ac_save_CC="$CC"
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
332 CC="$CC -n32"
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
333 AC_TRY_COMPILE(AC_SYS_LARGEFILE_TEST_INCLUDES, ,
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
334 ac_cv_sys_largefile_CC=' -n32')
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
335 CC="$ac_save_CC"])
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
336 fi])
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
337 if test "$ac_cv_sys_largefile_CC" != no; then
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
338 CC="$CC$ac_cv_sys_largefile_CC"
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
339 fi
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
340
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
341 AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64,
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
342 ac_cv_sys_file_offset_bits,
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
343 [Number of bits in a file offset, on hosts where this is settable.])
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
344 AC_SYS_LARGEFILE_MACRO_VALUE(_LARGEFILE_SOURCE, 1,
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
345 ac_cv_sys_largefile_source,
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
346 [Define to make ftello visible on some hosts (e.g. HP-UX 10.20).],
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
347 [#include <stdio.h>], [return !ftello;])
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
348 AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1,
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
349 ac_cv_sys_large_files,
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
350 [Define for large files, on AIX-style hosts.])
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
351 AC_SYS_LARGEFILE_MACRO_VALUE(_XOPEN_SOURCE, 500,
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
352 ac_cv_sys_xopen_source,
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
353 [Define to make ftello visible on some hosts (e.g. glibc 2.1.3).],
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
354 [#include <stdio.h>], [return !ftello;])
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
355 fi
f97066fb42ae (AC_SYS_LARGEFILE_TEST_INCLUDES)
Dave Love <fx@gnu.org>
parents: 28638
diff changeset
356 ])
29901
56407d559c03 Define the post-2.13 stuff conditionally on autoconf version.
Dave Love <fx@gnu.org>
parents: 29404
diff changeset
357
31511
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
358 undefine([AC_FUNC_MMAP])dnl
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
359 dnl The autoconf 2.13 version loses on OSF, at least,
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
360 dnl by messing up the declaration of malloc.
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
361 AC_DEFUN([AC_FUNC_MMAP],
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
362 [AC_CHECK_HEADERS(stdlib.h unistd.h sys/stat.h)
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
363 AC_CHECK_FUNCS(getpagesize)
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
364 AC_CACHE_CHECK(for working mmap, ac_cv_func_mmap_fixed_mapped,
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
365 [AC_TRY_RUN(
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
366 [/* Thanks to Mike Haertel and Jim Avera for this test.
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
367 Here is a matrix of mmap possibilities:
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
368 mmap private not fixed
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
369 mmap private fixed at somewhere currently unmapped
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
370 mmap private fixed at somewhere already mapped
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
371 mmap shared not fixed
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
372 mmap shared fixed at somewhere currently unmapped
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
373 mmap shared fixed at somewhere already mapped
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
374 For private mappings, we should verify that changes cannot be read()
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
375 back from the file, nor mmap's back from the file at a different
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
376 address. (There have been systems where private was not correctly
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
377 implemented like the infamous i386 svr4.0, and systems where the
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
378 VM page cache was not coherent with the file system buffer cache
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
379 like early versions of FreeBSD and possibly contemporary NetBSD.)
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
380 For shared mappings, we should conversely verify that changes get
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
381 propogated back to all the places they're supposed to be.
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
382
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
383 Grep wants private fixed already mapped.
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
384 The main things grep needs to know about mmap are:
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
385 * does it exist and is it safe to write into the mmap'd area
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
386 * how to use it (BSD variants) */
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
387 #include <sys/types.h>
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
388 #include <fcntl.h>
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
389 #include <sys/mman.h>
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
390
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
391 #if STDC_HEADERS || HAVE_STDLIB_H
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
392 # include <stdlib.h>
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
393 #else
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
394 char *malloc ();
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
395 #endif
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
396 #if HAVE_UNISTD_H
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
397 # include <unistd.h>
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
398 #endif
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
399 #if HAVE_SYS_STAT_H
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
400 # include <sys/stat.h>
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
401 #endif
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
402
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
403 /* This mess was copied from the GNU getpagesize.h. */
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
404 #if !HAVE_GETPAGESIZE
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
405 /* Assume that all systems that can run configure have sys/param.h. */
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
406 # if !HAVE_SYS_PARAM_H
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
407 # define HAVE_SYS_PARAM_H 1
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
408 # endif
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
409
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
410 # ifdef _SC_PAGESIZE
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
411 # define getpagesize() sysconf(_SC_PAGESIZE)
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
412 # else /* no _SC_PAGESIZE */
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
413 # if HAVE_SYS_PARAM_H
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
414 # include <sys/param.h>
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
415 # ifdef EXEC_PAGESIZE
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
416 # define getpagesize() EXEC_PAGESIZE
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
417 # else /* no EXEC_PAGESIZE */
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
418 # ifdef NBPG
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
419 # define getpagesize() NBPG * CLSIZE
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
420 # ifndef CLSIZE
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
421 # define CLSIZE 1
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
422 # endif /* no CLSIZE */
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
423 # else /* no NBPG */
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
424 # ifdef NBPC
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
425 # define getpagesize() NBPC
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
426 # else /* no NBPC */
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
427 # ifdef PAGESIZE
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
428 # define getpagesize() PAGESIZE
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
429 # endif /* PAGESIZE */
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
430 # endif /* no NBPC */
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
431 # endif /* no NBPG */
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
432 # endif /* no EXEC_PAGESIZE */
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
433 # else /* no HAVE_SYS_PARAM_H */
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
434 # define getpagesize() 8192 /* punt totally */
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
435 # endif /* no HAVE_SYS_PARAM_H */
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
436 # endif /* no _SC_PAGESIZE */
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
437
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
438 #endif /* no HAVE_GETPAGESIZE */
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
439
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
440 int
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
441 main ()
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
442 {
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
443 char *data, *data2, *data3;
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
444 int i, pagesize;
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
445 int fd;
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
446
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
447 pagesize = getpagesize ();
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
448
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
449 /* First, make a file with some known garbage in it. */
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
450 data = (char *) malloc (pagesize);
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
451 if (!data)
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
452 exit (1);
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
453 for (i = 0; i < pagesize; ++i)
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
454 *(data + i) = rand ();
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
455 umask (0);
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
456 fd = creat ("conftestmmap", 0600);
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
457 if (fd < 0)
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
458 exit (1);
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
459 if (write (fd, data, pagesize) != pagesize)
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
460 exit (1);
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
461 close (fd);
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
462
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
463 /* Next, try to mmap the file at a fixed address which already has
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
464 something else allocated at it. If we can, also make sure that
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
465 we see the same garbage. */
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
466 fd = open ("conftestmmap", O_RDWR);
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
467 if (fd < 0)
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
468 exit (1);
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
469 data2 = (char *) malloc (2 * pagesize);
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
470 if (!data2)
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
471 exit (1);
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
472 data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1);
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
473 if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
474 MAP_PRIVATE | MAP_FIXED, fd, 0L))
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
475 exit (1);
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
476 for (i = 0; i < pagesize; ++i)
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
477 if (*(data + i) != *(data2 + i))
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
478 exit (1);
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
479
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
480 /* Finally, make sure that changes to the mapped area do not
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
481 percolate back to the file as seen by read(). (This is a bug on
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
482 some variants of i386 svr4.0.) */
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
483 for (i = 0; i < pagesize; ++i)
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
484 *(data2 + i) = *(data2 + i) + 1;
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
485 data3 = (char *) malloc (pagesize);
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
486 if (!data3)
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
487 exit (1);
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
488 if (read (fd, data3, pagesize) != pagesize)
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
489 exit (1);
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
490 for (i = 0; i < pagesize; ++i)
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
491 if (*(data + i) != *(data3 + i))
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
492 exit (1);
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
493 close (fd);
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
494 unlink ("conftestmmap");
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
495 exit (0);
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
496 }], ac_cv_func_mmap_fixed_mapped=yes, ac_cv_func_mmap_fixed_mapped=no,
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
497 ac_cv_func_mmap_fixed_mapped=no)])
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
498 if test $ac_cv_func_mmap_fixed_mapped = yes; then
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
499 AC_DEFINE(HAVE_MMAP, 1,
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
500 [Define if you have a working `mmap' system call.])
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
501 fi
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
502 ])# AC_FUNC_MMAP
b7463306b3ac (AC_FUNC_MMAP): Use fixed version from development
Dave Love <fx@gnu.org>
parents: 29901
diff changeset
503
29901
56407d559c03 Define the post-2.13 stuff conditionally on autoconf version.
Dave Love <fx@gnu.org>
parents: 29404
diff changeset
504 ) dnl ifelse