Artifact 1142a8e2b11fed9c1d9b3e2b9bf345afe03ae4a0:


0000: 64 6e 6c 20 2d 2a 2d 20 41 75 74 6f 63 6f 6e 66  dnl -*- Autoconf
0010: 20 2d 2a 2d 0a 64 6e 6c 20 43 6f 70 79 72 69 67   -*-.dnl Copyrig
0020: 68 74 20 28 43 29 20 31 39 39 33 2d 32 30 30 34  ht (C) 1993-2004
0030: 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46   Free Software F
0040: 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a  oundation, Inc..
0050: 64 6e 6c 20 54 68 69 73 20 66 69 6c 65 20 69 73  dnl This file is
0060: 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2c 20   free software, 
0070: 64 69 73 74 72 69 62 75 74 65 64 20 75 6e 64 65  distributed unde
0080: 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74  r the terms of t
0090: 68 65 20 47 4e 55 0a 64 6e 6c 20 47 65 6e 65 72  he GNU.dnl Gener
00a0: 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73  al Public Licens
00b0: 65 2e 20 20 41 73 20 61 20 73 70 65 63 69 61 6c  e.  As a special
00c0: 20 65 78 63 65 70 74 69 6f 6e 20 74 6f 20 74 68   exception to th
00d0: 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 0a 64 6e  e GNU General.dn
00e0: 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65  l Public License
00f0: 2c 20 74 68 69 73 20 66 69 6c 65 20 6d 61 79 20  , this file may 
0100: 62 65 20 64 69 73 74 72 69 62 75 74 65 64 20 61  be distributed a
0110: 73 20 70 61 72 74 20 6f 66 20 61 20 70 72 6f 67  s part of a prog
0120: 72 61 6d 0a 64 6e 6c 20 74 68 61 74 20 63 6f 6e  ram.dnl that con
0130: 74 61 69 6e 73 20 61 20 63 6f 6e 66 69 67 75 72  tains a configur
0140: 61 74 69 6f 6e 20 73 63 72 69 70 74 20 67 65 6e  ation script gen
0150: 65 72 61 74 65 64 20 62 79 20 41 75 74 6f 63 6f  erated by Autoco
0160: 6e 66 2c 20 75 6e 64 65 72 0a 64 6e 6c 20 74 68  nf, under.dnl th
0170: 65 20 73 61 6d 65 20 64 69 73 74 72 69 62 75 74  e same distribut
0180: 69 6f 6e 20 74 65 72 6d 73 20 61 73 20 74 68 65  ion terms as the
0190: 20 72 65 73 74 20 6f 66 20 74 68 61 74 20 70 72   rest of that pr
01a0: 6f 67 72 61 6d 2e 0a 0a 64 6e 6c 20 46 72 6f 6d  ogram...dnl From
01b0: 20 42 72 75 6e 6f 20 48 61 69 62 6c 65 2c 20 4d   Bruno Haible, M
01c0: 61 72 63 75 73 20 44 61 6e 69 65 6c 73 2c 20 53  arcus Daniels, S
01d0: 61 6d 20 53 74 65 69 6e 67 6f 6c 64 2e 0a 0a 41  am Steingold...A
01e0: 43 5f 50 52 45 52 45 51 28 32 2e 35 37 29 0a 0a  C_PREREQ(2.57)..
01f0: 41 43 5f 44 45 46 55 4e 28 5b 43 4c 5f 4d 4d 41  AC_DEFUN([CL_MMA
0200: 50 5d 2c 0a 5b 41 43 5f 52 45 51 55 49 52 45 28  P],.[AC_REQUIRE(
0210: 5b 43 4c 5f 4f 50 45 4e 46 4c 41 47 53 5d 29 64  [CL_OPENFLAGS])d
0220: 6e 6c 0a 41 43 5f 42 45 46 4f 52 45 28 5b 24 30  nl.AC_BEFORE([$0
0230: 5d 2c 20 5b 43 4c 5f 4d 55 4e 4d 41 50 5d 29 41  ], [CL_MUNMAP])A
0240: 43 5f 42 45 46 4f 52 45 28 5b 24 30 5d 2c 20 5b  C_BEFORE([$0], [
0250: 43 4c 5f 4d 50 52 4f 54 45 43 54 5d 29 0a 41 43  CL_MPROTECT]).AC
0260: 5f 43 48 45 43 4b 5f 48 45 41 44 45 52 28 73 79  _CHECK_HEADER(sy
0270: 73 2f 6d 6d 61 6e 2e 68 2c 20 2c 20 6e 6f 5f 6d  s/mman.h, , no_m
0280: 6d 61 70 3d 31 29 64 6e 6c 0a 69 66 20 74 65 73  map=1)dnl.if tes
0290: 74 20 2d 7a 20 22 24 6e 6f 5f 6d 6d 61 70 22 3b  t -z "$no_mmap";
02a0: 20 74 68 65 6e 0a 41 43 5f 43 48 45 43 4b 5f 46   then.AC_CHECK_F
02b0: 55 4e 43 28 6d 6d 61 70 2c 20 2c 20 6e 6f 5f 6d  UNC(mmap, , no_m
02c0: 6d 61 70 3d 31 29 64 6e 6c 0a 69 66 20 74 65 73  map=1)dnl.if tes
02d0: 74 20 2d 7a 20 22 24 6e 6f 5f 6d 6d 61 70 22 3b  t -z "$no_mmap";
02e0: 20 74 68 65 6e 0a 41 43 5f 44 45 46 49 4e 45 28   then.AC_DEFINE(
02f0: 48 41 56 45 5f 4d 4d 41 50 2c 2c 5b 68 61 76 65  HAVE_MMAP,,[have
0300: 20 3c 73 79 73 2f 6d 6d 61 70 2e 68 3e 20 61 6e   <sys/mmap.h> an
0310: 64 20 74 68 65 20 6d 6d 61 70 28 29 20 66 75 6e  d the mmap() fun
0320: 63 74 69 6f 6e 5d 29 0a 41 43 5f 43 41 43 48 45  ction]).AC_CACHE
0330: 5f 43 48 45 43 4b 28 66 6f 72 20 77 6f 72 6b 69  _CHECK(for worki
0340: 6e 67 20 6d 6d 61 70 2c 20 63 6c 5f 63 76 5f 66  ng mmap, cl_cv_f
0350: 75 6e 63 5f 6d 6d 61 70 5f 77 6f 72 6b 73 2c 20  unc_mmap_works, 
0360: 5b 0a 63 61 73 65 20 22 24 68 6f 73 74 22 20 69  [.case "$host" i
0370: 6e 0a 20 20 69 5b 33 34 35 36 37 5d 38 36 2d 2a  n.  i[34567]86-*
0380: 2d 73 79 73 76 34 2a 29 0a 20 20 20 20 23 20 55  -sysv4*).    # U
0390: 4e 49 58 5f 53 59 53 56 5f 55 48 43 5f 31 0a 20  NIX_SYSV_UHC_1. 
03a0: 20 20 20 61 76 6f 69 64 3d 30 78 30 38 30 30 30     avoid=0x08000
03b0: 30 30 30 20 3b 3b 0a 20 20 6d 69 70 73 2d 73 67  000 ;;.  mips-sg
03c0: 69 2d 69 72 69 78 2a 20 7c 20 6d 69 70 73 2d 64  i-irix* | mips-d
03d0: 65 63 2d 75 6c 74 72 69 78 2a 29 0a 20 20 20 20  ec-ultrix*).    
03e0: 23 20 55 4e 49 58 5f 49 52 49 58 2c 20 55 4e 49  # UNIX_IRIX, UNI
03f0: 58 5f 44 45 43 5f 55 4c 54 52 49 58 0a 20 20 20  X_DEC_ULTRIX.   
0400: 20 61 76 6f 69 64 3d 30 78 31 30 30 30 30 30 30   avoid=0x1000000
0410: 30 20 3b 3b 0a 20 20 72 73 36 30 30 30 2d 69 62  0 ;;.  rs6000-ib
0420: 6d 2d 61 69 78 2a 29 0a 20 20 20 20 23 20 55 4e  m-aix*).    # UN
0430: 49 58 5f 41 49 58 0a 20 20 20 20 61 76 6f 69 64  IX_AIX.    avoid
0440: 3d 30 78 32 30 30 30 30 30 30 30 20 3b 3b 0a 20  =0x20000000 ;;. 
0450: 20 2a 29 0a 20 20 20 20 61 76 6f 69 64 3d 30 20   *).    avoid=0 
0460: 3b 3b 0a 65 73 61 63 0a 6d 6d 61 70 5f 70 72 6f  ;;.esac.mmap_pro
0470: 67 5f 31 3d 27 0a 23 69 6e 63 6c 75 64 65 20 3c  g_1='.#include <
0480: 73 74 64 6c 69 62 2e 68 3e 0a 23 69 66 64 65 66  stdlib.h>.#ifdef
0490: 20 48 41 56 45 5f 55 4e 49 53 54 44 5f 48 0a 23   HAVE_UNISTD_H.#
04a0: 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e  include <unistd.
04b0: 68 3e 0a 23 65 6e 64 69 66 0a 23 69 6e 63 6c 75  h>.#endif.#inclu
04c0: 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 0a 23 69 66  de <fcntl.h>.#if
04d0: 64 65 66 20 4f 50 45 4e 5f 4e 45 45 44 53 5f 53  def OPEN_NEEDS_S
04e0: 59 53 5f 46 49 4c 45 5f 48 0a 23 69 6e 63 6c 75  YS_FILE_H.#inclu
04f0: 64 65 20 3c 73 79 73 2f 66 69 6c 65 2e 68 3e 0a  de <sys/file.h>.
0500: 23 65 6e 64 69 66 0a 23 69 6e 63 6c 75 64 65 20  #endif.#include 
0510: 3c 73 79 73 2f 74 79 70 65 73 2e 68 3e 0a 23 69  <sys/types.h>.#i
0520: 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e  nclude <sys/mman
0530: 2e 68 3e 0a 69 6e 74 20 6d 61 69 6e 20 28 29 20  .h>.int main () 
0540: 7b 0a 27 0a 6d 6d 61 70 5f 70 72 6f 67 5f 32 3d  {.'.mmap_prog_2=
0550: 22 23 64 65 66 69 6e 65 20 62 69 74 73 5f 74 6f  "#define bits_to
0560: 5f 61 76 6f 69 64 20 24 61 76 6f 69 64 22 27 0a  _avoid $avoid"'.
0570: 23 64 65 66 69 6e 65 20 6d 79 5f 73 68 69 66 74  #define my_shift
0580: 20 32 34 0a 23 64 65 66 69 6e 65 20 6d 79 5f 6c   24.#define my_l
0590: 6f 77 20 20 20 31 0a 23 69 66 64 65 66 20 46 4f  ow   1.#ifdef FO
05a0: 52 5f 53 55 4e 34 5f 32 39 0a 23 64 65 66 69 6e  R_SUN4_29.#defin
05b0: 65 20 6d 79 5f 68 69 67 68 20 20 33 31 0a 23 64  e my_high  31.#d
05c0: 65 66 69 6e 65 20 6d 79 5f 73 69 7a 65 20 20 33  efine my_size  3
05d0: 32 37 36 38 20 2f 2a 20 68 6f 70 65 20 74 68 61  2768 /* hope tha
05e0: 74 20 33 32 37 36 38 20 69 73 20 61 20 6d 75 6c  t 32768 is a mul
05f0: 74 69 70 6c 65 20 6f 66 20 74 68 65 20 70 61 67  tiple of the pag
0600: 65 20 73 69 7a 65 20 2a 2f 0a 2f 2a 20 69 2a 33  e size */./* i*3
0610: 32 20 4b 42 20 66 6f 72 20 69 3d 31 2e 2e 33 31  2 KB for i=1..31
0620: 20 67 69 76 65 73 20 61 20 74 6f 74 61 6c 20 6f   gives a total o
0630: 66 20 31 35 2e 35 20 4d 42 2c 20 77 68 69 63 68  f 15.5 MB, which
0640: 20 69 73 20 63 6c 6f 73 65 20 74 6f 20 77 68 61   is close to wha
0650: 74 20 77 65 20 6e 65 65 64 20 2a 2f 0a 23 65 6c  t we need */.#el
0660: 73 65 0a 23 64 65 66 69 6e 65 20 6d 79 5f 68 69  se.#define my_hi
0670: 67 68 20 20 36 34 0a 23 64 65 66 69 6e 65 20 6d  gh  64.#define m
0680: 79 5f 73 69 7a 65 20 20 38 31 39 32 20 2f 2a 20  y_size  8192 /* 
0690: 68 6f 70 65 20 74 68 61 74 20 38 31 39 32 20 69  hope that 8192 i
06a0: 73 20 61 20 6d 75 6c 74 69 70 6c 65 20 6f 66 20  s a multiple of 
06b0: 74 68 65 20 70 61 67 65 20 73 69 7a 65 20 2a 2f  the page size */
06c0: 0a 2f 2a 20 69 2a 38 20 4b 42 20 66 6f 72 20 69  ./* i*8 KB for i
06d0: 3d 31 2e 2e 36 34 20 67 69 76 65 73 20 61 20 74  =1..64 gives a t
06e0: 6f 74 61 6c 20 6f 66 20 31 36 2e 32 35 20 4d 42  otal of 16.25 MB
06f0: 2c 20 77 68 69 63 68 20 69 73 20 63 6c 6f 73 65  , which is close
0700: 20 74 6f 20 77 68 61 74 20 77 65 20 6e 65 65 64   to what we need
0710: 20 2a 2f 0a 23 65 6e 64 69 66 0a 20 7b 6c 6f 6e   */.#endif. {lon
0720: 67 20 69 3b 0a 23 64 65 66 69 6e 65 20 69 5f 6f  g i;.#define i_o
0730: 6b 28 69 29 20 20 28 28 69 29 20 26 20 28 62 69  k(i)  ((i) & (bi
0740: 74 73 5f 74 6f 5f 61 76 6f 69 64 20 3e 3e 20 6d  ts_to_avoid >> m
0750: 79 5f 73 68 69 66 74 29 20 3d 3d 20 30 29 0a 20  y_shift) == 0). 
0760: 20 66 6f 72 20 28 69 3d 6d 79 5f 6c 6f 77 3b 20   for (i=my_low; 
0770: 69 3c 3d 6d 79 5f 68 69 67 68 3b 20 69 2b 2b 29  i<=my_high; i++)
0780: 0a 20 20 20 20 69 66 20 28 69 5f 6f 6b 28 69 29  .    if (i_ok(i)
0790: 29 0a 20 20 20 20 20 20 7b 20 63 61 64 64 72 5f  ).      { caddr_
07a0: 74 20 61 64 64 72 20 3d 20 28 63 61 64 64 72 5f  t addr = (caddr_
07b0: 74 29 28 69 20 3c 3c 20 6d 79 5f 73 68 69 66 74  t)(i << my_shift
07c0: 29 3b 0a 2f 2a 20 43 68 65 63 6b 20 66 6f 72 20  );./* Check for 
07d0: 38 20 4d 42 2c 20 6e 6f 74 20 31 36 20 4d 42 2e  8 MB, not 16 MB.
07e0: 20 54 68 69 73 20 69 73 20 6d 6f 72 65 20 6c 69   This is more li
07f0: 6b 65 6c 79 20 74 6f 20 77 6f 72 6b 20 6f 6e 20  kely to work on 
0800: 53 6f 6c 61 72 69 73 20 32 2e 20 2a 2f 0a 23 69  Solaris 2. */.#i
0810: 66 20 62 69 74 73 5f 74 6f 5f 61 76 6f 69 64 0a  f bits_to_avoid.
0820: 20 20 20 20 20 20 20 20 6c 6f 6e 67 20 73 69 7a          long siz
0830: 65 20 3d 20 69 2a 6d 79 5f 73 69 7a 65 3b 0a 23  e = i*my_size;.#
0840: 65 6c 73 65 0a 20 20 20 20 20 20 20 20 6c 6f 6e  else.        lon
0850: 67 20 73 69 7a 65 20 3d 20 28 28 69 2b 31 29 2f  g size = ((i+1)/
0860: 32 29 2a 6d 79 5f 73 69 7a 65 3b 0a 23 65 6e 64  2)*my_size;.#end
0870: 69 66 0a 20 20 20 20 20 20 20 20 69 66 20 28 6d  if.        if (m
0880: 6d 61 70 28 61 64 64 72 2c 73 69 7a 65 2c 50 52  map(addr,size,PR
0890: 4f 54 5f 52 45 41 44 7c 50 52 4f 54 5f 57 52 49  OT_READ|PROT_WRI
08a0: 54 45 2c 66 6c 61 67 73 7c 4d 41 50 5f 46 49 58  TE,flags|MAP_FIX
08b0: 45 44 2c 66 64 2c 30 29 20 3d 3d 20 28 76 6f 69  ED,fd,0) == (voi
08c0: 64 2a 29 2d 31 29 20 65 78 69 74 28 31 29 3b 0a  d*)-1) exit(1);.
08d0: 20 20 20 20 7d 0a 23 64 65 66 69 6e 65 20 78 28      }.#define x(
08e0: 69 29 20 20 2a 28 75 6e 73 69 67 6e 65 64 20 63  i)  *(unsigned c
08f0: 68 61 72 20 2a 29 20 28 28 69 3c 3c 6d 79 5f 73  har *) ((i<<my_s
0900: 68 69 66 74 29 20 2b 20 28 69 2a 69 29 29 0a 23  hift) + (i*i)).#
0910: 64 65 66 69 6e 65 20 79 28 69 29 20 20 28 75 6e  define y(i)  (un
0920: 73 69 67 6e 65 64 20 63 68 61 72 29 28 28 33 2a  signed char)((3*
0930: 69 2d 34 29 2a 28 37 2a 69 2b 33 29 29 0a 20 20  i-4)*(7*i+3)).  
0940: 66 6f 72 20 28 69 3d 6d 79 5f 6c 6f 77 3b 20 69  for (i=my_low; i
0950: 3c 3d 6d 79 5f 68 69 67 68 3b 20 69 2b 2b 29 20  <=my_high; i++) 
0960: 69 66 20 28 69 5f 6f 6b 28 69 29 29 20 7b 20 78  if (i_ok(i)) { x
0970: 28 69 29 20 3d 20 79 28 69 29 3b 20 7d 0a 20 20  (i) = y(i); }.  
0980: 66 6f 72 20 28 69 3d 6d 79 5f 68 69 67 68 3b 20  for (i=my_high; 
0990: 69 3e 3d 6d 79 5f 6c 6f 77 3b 20 69 2d 2d 29 20  i>=my_low; i--) 
09a0: 69 66 20 28 69 5f 6f 6b 28 69 29 29 20 7b 20 69  if (i_ok(i)) { i
09b0: 66 20 28 78 28 69 29 20 21 3d 20 79 28 69 29 29  f (x(i) != y(i))
09c0: 20 65 78 69 74 28 31 29 3b 20 7d 0a 20 20 65 78   exit(1); }.  ex
09d0: 69 74 28 30 29 3b 0a 7d 7d 0a 27 0a 41 43 5f 54  it(0);.}}.'.AC_T
09e0: 52 59 5f 52 55 4e 28 5b 24 6d 6d 61 70 5f 70 72  RY_RUN([$mmap_pr
09f0: 6f 67 5f 31 0a 20 20 69 6e 74 20 66 6c 61 67 73  og_1.  int flags
0a00: 20 3d 20 4d 41 50 5f 41 4e 4f 4e 20 7c 20 4d 41   = MAP_ANON | MA
0a10: 50 5f 50 52 49 56 41 54 45 3b 0a 20 20 69 6e 74  P_PRIVATE;.  int
0a20: 20 66 64 20 3d 20 2d 31 3b 0a 24 6d 6d 61 70 5f   fd = -1;.$mmap_
0a30: 70 72 6f 67 5f 32 0a 5d 2c 20 68 61 76 65 5f 6d  prog_2.], have_m
0a40: 6d 61 70 5f 61 6e 6f 6e 3d 31 0a 63 6c 5f 63 76  map_anon=1.cl_cv
0a50: 5f 66 75 6e 63 5f 6d 6d 61 70 5f 61 6e 6f 6e 3d  _func_mmap_anon=
0a60: 79 65 73 2c 20 72 6d 20 2d 66 20 63 6f 72 65 2c  yes, rm -f core,
0a70: 0a 3a 20 23 20 57 68 65 6e 20 63 72 6f 73 73 2d  .: # When cross-
0a80: 63 6f 6d 70 69 6c 69 6e 67 2c 20 64 6f 6e 27 74  compiling, don't
0a90: 20 61 73 73 75 6d 65 20 61 6e 79 74 68 69 6e 67   assume anything
0aa0: 2e 0a 29 0a 41 43 5f 54 52 59 5f 52 55 4e 28 5b  ..).AC_TRY_RUN([
0ab0: 24 6d 6d 61 70 5f 70 72 6f 67 5f 31 0a 20 20 69  $mmap_prog_1.  i
0ac0: 6e 74 20 66 6c 61 67 73 20 3d 20 4d 41 50 5f 41  nt flags = MAP_A
0ad0: 4e 4f 4e 59 4d 4f 55 53 20 7c 20 4d 41 50 5f 50  NONYMOUS | MAP_P
0ae0: 52 49 56 41 54 45 3b 0a 20 20 69 6e 74 20 66 64  RIVATE;.  int fd
0af0: 20 3d 20 2d 31 3b 0a 24 6d 6d 61 70 5f 70 72 6f   = -1;.$mmap_pro
0b00: 67 5f 32 0a 5d 2c 20 68 61 76 65 5f 6d 6d 61 70  g_2.], have_mmap
0b10: 5f 61 6e 6f 6e 3d 31 0a 63 6c 5f 63 76 5f 66 75  _anon=1.cl_cv_fu
0b20: 6e 63 5f 6d 6d 61 70 5f 61 6e 6f 6e 79 6d 6f 75  nc_mmap_anonymou
0b30: 73 3d 79 65 73 2c 20 72 6d 20 2d 66 20 63 6f 72  s=yes, rm -f cor
0b40: 65 2c 0a 3a 20 23 20 57 68 65 6e 20 63 72 6f 73  e,.: # When cros
0b50: 73 2d 63 6f 6d 70 69 6c 69 6e 67 2c 20 64 6f 6e  s-compiling, don
0b60: 27 74 20 61 73 73 75 6d 65 20 61 6e 79 74 68 69  't assume anythi
0b70: 6e 67 2e 0a 29 0a 41 43 5f 54 52 59 5f 52 55 4e  ng..).AC_TRY_RUN
0b80: 28 5b 24 6d 6d 61 70 5f 70 72 6f 67 5f 31 0a 23  ([$mmap_prog_1.#
0b90: 69 66 6e 64 65 66 20 4d 41 50 5f 46 49 4c 45 0a  ifndef MAP_FILE.
0ba0: 23 64 65 66 69 6e 65 20 4d 41 50 5f 46 49 4c 45  #define MAP_FILE
0bb0: 20 30 0a 23 65 6e 64 69 66 0a 20 20 69 6e 74 20   0.#endif.  int 
0bc0: 66 6c 61 67 73 20 3d 20 4d 41 50 5f 46 49 4c 45  flags = MAP_FILE
0bd0: 20 7c 20 4d 41 50 5f 50 52 49 56 41 54 45 3b 0a   | MAP_PRIVATE;.
0be0: 20 20 69 6e 74 20 66 64 20 3d 20 6f 70 65 6e 28    int fd = open(
0bf0: 22 2f 64 65 76 2f 7a 65 72 6f 22 2c 4f 5f 52 44  "/dev/zero",O_RD
0c00: 4f 4e 4c 59 2c 30 36 36 36 29 3b 0a 20 20 69 66  ONLY,0666);.  if
0c10: 20 28 66 64 3c 30 29 20 65 78 69 74 28 31 29 3b   (fd<0) exit(1);
0c20: 0a 24 6d 6d 61 70 5f 70 72 6f 67 5f 32 0a 5d 2c  .$mmap_prog_2.],
0c30: 20 68 61 76 65 5f 6d 6d 61 70 5f 64 65 76 7a 65   have_mmap_devze
0c40: 72 6f 3d 31 0a 63 6c 5f 63 76 5f 66 75 6e 63 5f  ro=1.cl_cv_func_
0c50: 6d 6d 61 70 5f 64 65 76 7a 65 72 6f 3d 79 65 73  mmap_devzero=yes
0c60: 2c 20 72 6d 20 2d 66 20 63 6f 72 65 0a 72 65 74  , rm -f core.ret
0c70: 72 79 5f 6d 6d 61 70 3d 31 2c 0a 3a 20 23 20 57  ry_mmap=1,.: # W
0c80: 68 65 6e 20 63 72 6f 73 73 2d 63 6f 6d 70 69 6c  hen cross-compil
0c90: 69 6e 67 2c 20 64 6f 6e 27 74 20 61 73 73 75 6d  ing, don't assum
0ca0: 65 20 61 6e 79 74 68 69 6e 67 2e 0a 29 0a 69 66  e anything..).if
0cb0: 20 74 65 73 74 20 2d 6e 20 22 24 72 65 74 72 79   test -n "$retry
0cc0: 5f 6d 6d 61 70 22 3b 20 74 68 65 6e 0a 41 43 5f  _mmap"; then.AC_
0cd0: 54 52 59 5f 52 55 4e 28 5b 23 64 65 66 69 6e 65  TRY_RUN([#define
0ce0: 20 46 4f 52 5f 53 55 4e 34 5f 32 39 0a 24 6d 6d   FOR_SUN4_29.$mm
0cf0: 61 70 5f 70 72 6f 67 5f 31 0a 23 69 66 6e 64 65  ap_prog_1.#ifnde
0d00: 66 20 4d 41 50 5f 46 49 4c 45 0a 23 64 65 66 69  f MAP_FILE.#defi
0d10: 6e 65 20 4d 41 50 5f 46 49 4c 45 20 30 0a 23 65  ne MAP_FILE 0.#e
0d20: 6e 64 69 66 0a 20 20 69 6e 74 20 66 6c 61 67 73  ndif.  int flags
0d30: 20 3d 20 4d 41 50 5f 46 49 4c 45 20 7c 20 4d 41   = MAP_FILE | MA
0d40: 50 5f 50 52 49 56 41 54 45 3b 0a 20 20 69 6e 74  P_PRIVATE;.  int
0d50: 20 66 64 20 3d 20 6f 70 65 6e 28 22 2f 64 65 76   fd = open("/dev
0d60: 2f 7a 65 72 6f 22 2c 4f 5f 52 44 4f 4e 4c 59 2c  /zero",O_RDONLY,
0d70: 30 36 36 36 29 3b 0a 20 20 69 66 20 28 66 64 3c  0666);.  if (fd<
0d80: 30 29 20 65 78 69 74 28 31 29 3b 0a 24 6d 6d 61  0) exit(1);.$mma
0d90: 70 5f 70 72 6f 67 5f 32 0a 5d 2c 20 68 61 76 65  p_prog_2.], have
0da0: 5f 6d 6d 61 70 5f 64 65 76 7a 65 72 6f 3d 31 0a  _mmap_devzero=1.
0db0: 63 6c 5f 63 76 5f 66 75 6e 63 5f 6d 6d 61 70 5f  cl_cv_func_mmap_
0dc0: 64 65 76 7a 65 72 6f 5f 73 75 6e 34 5f 32 39 3d  devzero_sun4_29=
0dd0: 79 65 73 2c 20 72 6d 20 2d 66 20 63 6f 72 65 2c  yes, rm -f core,
0de0: 0a 3a 20 23 20 57 68 65 6e 20 63 72 6f 73 73 2d  .: # When cross-
0df0: 63 6f 6d 70 69 6c 69 6e 67 2c 20 64 6f 6e 27 74  compiling, don't
0e00: 20 61 73 73 75 6d 65 20 61 6e 79 74 68 69 6e 67   assume anything
0e10: 2e 0a 29 0a 66 69 0a 69 66 20 74 65 73 74 20 2d  ..).fi.if test -
0e20: 6e 20 22 24 68 61 76 65 5f 6d 6d 61 70 5f 61 6e  n "$have_mmap_an
0e30: 6f 6e 22 20 2d 6f 20 2d 6e 20 22 24 68 61 76 65  on" -o -n "$have
0e40: 5f 6d 6d 61 70 5f 64 65 76 7a 65 72 6f 22 3b 20  _mmap_devzero"; 
0e50: 74 68 65 6e 0a 63 6c 5f 63 76 5f 66 75 6e 63 5f  then.cl_cv_func_
0e60: 6d 6d 61 70 5f 77 6f 72 6b 73 3d 79 65 73 0a 65  mmap_works=yes.e
0e70: 6c 73 65 0a 63 6c 5f 63 76 5f 66 75 6e 63 5f 6d  lse.cl_cv_func_m
0e80: 6d 61 70 5f 77 6f 72 6b 73 3d 6e 6f 0a 66 69 0a  map_works=no.fi.
0e90: 5d 29 0a 69 66 20 74 65 73 74 20 22 24 63 6c 5f  ]).if test "$cl_
0ea0: 63 76 5f 66 75 6e 63 5f 6d 6d 61 70 5f 61 6e 6f  cv_func_mmap_ano
0eb0: 6e 22 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a 41  n" = yes; then.A
0ec0: 43 5f 44 45 46 49 4e 45 28 48 41 56 45 5f 4d 4d  C_DEFINE(HAVE_MM
0ed0: 41 50 5f 41 4e 4f 4e 2c 2c 5b 3c 73 79 73 2f 6d  AP_ANON,,[<sys/m
0ee0: 6d 61 6e 2e 68 3e 20 64 65 66 69 6e 65 73 20 4d  man.h> defines M
0ef0: 41 50 5f 41 4e 4f 4e 20 61 6e 64 20 6d 6d 61 70  AP_ANON and mmap
0f00: 69 6e 67 20 77 69 74 68 20 4d 41 50 5f 41 4e 4f  ing with MAP_ANO
0f10: 4e 20 77 6f 72 6b 73 5d 29 0a 66 69 0a 69 66 20  N works]).fi.if 
0f20: 74 65 73 74 20 22 24 63 6c 5f 63 76 5f 66 75 6e  test "$cl_cv_fun
0f30: 63 5f 6d 6d 61 70 5f 61 6e 6f 6e 79 6d 6f 75 73  c_mmap_anonymous
0f40: 22 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a 41 43  " = yes; then.AC
0f50: 5f 44 45 46 49 4e 45 28 48 41 56 45 5f 4d 4d 41  _DEFINE(HAVE_MMA
0f60: 50 5f 41 4e 4f 4e 59 4d 4f 55 53 2c 2c 5b 3c 73  P_ANONYMOUS,,[<s
0f70: 79 73 2f 6d 6d 61 6e 2e 68 3e 20 64 65 66 69 6e  ys/mman.h> defin
0f80: 65 73 20 4d 41 50 5f 41 4e 4f 4e 59 4d 4f 55 53  es MAP_ANONYMOUS
0f90: 20 61 6e 64 20 6d 6d 61 70 69 6e 67 20 77 69 74   and mmaping wit
0fa0: 68 20 4d 41 50 5f 41 4e 4f 4e 59 4d 4f 55 53 20  h MAP_ANONYMOUS 
0fb0: 77 6f 72 6b 73 5d 29 0a 66 69 0a 69 66 20 74 65  works]).fi.if te
0fc0: 73 74 20 22 24 63 6c 5f 63 76 5f 66 75 6e 63 5f  st "$cl_cv_func_
0fd0: 6d 6d 61 70 5f 64 65 76 7a 65 72 6f 22 20 3d 20  mmap_devzero" = 
0fe0: 79 65 73 3b 20 74 68 65 6e 0a 41 43 5f 44 45 46  yes; then.AC_DEF
0ff0: 49 4e 45 28 48 41 56 45 5f 4d 4d 41 50 5f 44 45  INE(HAVE_MMAP_DE
1000: 56 5a 45 52 4f 2c 2c 5b 6d 6d 61 70 69 6e 67 20  VZERO,,[mmaping 
1010: 6f 66 20 74 68 65 20 73 70 65 63 69 61 6c 20 64  of the special d
1020: 65 76 69 63 65 20 2f 64 65 76 2f 7a 65 72 6f 20  evice /dev/zero 
1030: 77 6f 72 6b 73 5d 29 0a 66 69 0a 69 66 20 74 65  works]).fi.if te
1040: 73 74 20 22 24 63 6c 5f 63 76 5f 66 75 6e 63 5f  st "$cl_cv_func_
1050: 6d 6d 61 70 5f 64 65 76 7a 65 72 6f 5f 73 75 6e  mmap_devzero_sun
1060: 34 5f 32 39 22 20 3d 20 79 65 73 3b 20 74 68 65  4_29" = yes; the
1070: 6e 0a 41 43 5f 44 45 46 49 4e 45 28 48 41 56 45  n.AC_DEFINE(HAVE
1080: 5f 4d 4d 41 50 5f 44 45 56 5a 45 52 4f 5f 53 55  _MMAP_DEVZERO_SU
1090: 4e 34 5f 32 39 2c 2c 5b 6d 6d 61 70 69 6e 67 20  N4_29,,[mmaping 
10a0: 6f 66 20 74 68 65 20 73 70 65 63 69 61 6c 20 64  of the special d
10b0: 65 76 69 63 65 20 2f 64 65 76 2f 7a 65 72 6f 20  evice /dev/zero 
10c0: 77 6f 72 6b 73 2c 20 62 75 74 20 6f 6e 6c 79 20  works, but only 
10d0: 6f 6e 20 61 64 64 72 65 73 73 65 73 20 3c 20 32  on addresses < 2
10e0: 5e 32 39 5d 29 0a 66 69 0a 66 69 0a 66 69 0a 5d  ^29]).fi.fi.fi.]
10f0: 29 0a                                            ).