Hex Artifact Content

Artifact 24319bd0c7e3067ed25cf9abc3be8607d4a8e21d:


0000: 64 6e 6c 20 41 76 61 69 6c 61 62 6c 65 20 66 72  dnl Available fr
0010: 6f 6d 20 74 68 65 20 47 4e 55 20 41 75 74 6f 63  om the GNU Autoc
0020: 6f 6e 66 20 4d 61 63 72 6f 20 41 72 63 68 69 76  onf Macro Archiv
0030: 65 20 61 74 3a 0a 64 6e 6c 20 68 74 74 70 3a 2f  e at:.dnl http:/
0040: 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 73 6f 66  /www.gnu.org/sof
0050: 74 77 61 72 65 2f 61 63 2d 61 72 63 68 69 76 65  tware/ac-archive
0060: 2f 68 74 6d 6c 64 6f 63 2f 61 63 78 5f 70 74 68  /htmldoc/acx_pth
0070: 72 65 61 64 2e 68 74 6d 6c 0a 64 6e 6c 0a 41 43  read.html.dnl.AC
0080: 5f 44 45 46 55 4e 28 5b 41 43 58 5f 50 54 48 52  _DEFUN([ACX_PTHR
0090: 45 41 44 5d 2c 20 5b 0a 41 43 5f 52 45 51 55 49  EAD], [.AC_REQUI
00a0: 52 45 28 5b 41 43 5f 43 41 4e 4f 4e 49 43 41 4c  RE([AC_CANONICAL
00b0: 5f 48 4f 53 54 5d 29 0a 41 43 5f 4c 41 4e 47 5f  _HOST]).AC_LANG_
00c0: 53 41 56 45 0a 41 43 5f 4c 41 4e 47 5f 43 0a 61  SAVE.AC_LANG_C.a
00d0: 63 78 5f 70 74 68 72 65 61 64 5f 6f 6b 3d 6e 6f  cx_pthread_ok=no
00e0: 0a 0a 23 20 57 65 20 75 73 65 64 20 74 6f 20 63  ..# We used to c
00f0: 68 65 63 6b 20 66 6f 72 20 70 74 68 72 65 61 64  heck for pthread
0100: 2e 68 20 66 69 72 73 74 2c 20 62 75 74 20 74 68  .h first, but th
0110: 69 73 20 66 61 69 6c 73 20 69 66 20 70 74 68 72  is fails if pthr
0120: 65 61 64 2e 68 0a 23 20 72 65 71 75 69 72 65 73  ead.h.# requires
0130: 20 73 70 65 63 69 61 6c 20 63 6f 6d 70 69 6c 65   special compile
0140: 72 20 66 6c 61 67 73 20 28 65 2e 67 2e 20 6f 6e  r flags (e.g. on
0150: 20 54 72 75 65 36 34 20 6f 72 20 53 65 71 75 65   True64 or Seque
0160: 6e 74 29 2e 0a 23 20 49 74 20 67 65 74 73 20 63  nt)..# It gets c
0170: 68 65 63 6b 65 64 20 66 6f 72 20 69 6e 20 74 68  hecked for in th
0180: 65 20 6c 69 6e 6b 20 74 65 73 74 20 61 6e 79 77  e link test anyw
0190: 61 79 2e 0a 0a 23 20 46 69 72 73 74 20 6f 66 20  ay...# First of 
01a0: 61 6c 6c 2c 20 63 68 65 63 6b 20 69 66 20 74 68  all, check if th
01b0: 65 20 75 73 65 72 20 68 61 73 20 73 65 74 20 61  e user has set a
01c0: 6e 79 20 6f 66 20 74 68 65 20 50 54 48 52 45 41  ny of the PTHREA
01d0: 44 5f 4c 49 42 53 2c 0a 23 20 65 74 63 65 74 65  D_LIBS,.# etcete
01e0: 72 61 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76  ra environment v
01f0: 61 72 69 61 62 6c 65 73 2c 20 61 6e 64 20 69 66  ariables, and if
0200: 20 74 68 72 65 61 64 73 20 6c 69 6e 6b 69 6e 67   threads linking
0210: 20 77 6f 72 6b 73 20 75 73 69 6e 67 0a 23 20 74   works using.# t
0220: 68 65 6d 3a 0a 69 66 20 74 65 73 74 20 78 22 24  hem:.if test x"$
0230: 50 54 48 52 45 41 44 5f 4c 49 42 53 24 50 54 48  PTHREAD_LIBS$PTH
0240: 52 45 41 44 5f 43 46 4c 41 47 53 22 20 21 3d 20  READ_CFLAGS" != 
0250: 78 3b 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20  x; then.        
0260: 73 61 76 65 5f 43 46 4c 41 47 53 3d 22 24 43 46  save_CFLAGS="$CF
0270: 4c 41 47 53 22 0a 20 20 20 20 20 20 20 20 43 46  LAGS".        CF
0280: 4c 41 47 53 3d 22 24 43 46 4c 41 47 53 20 24 50  LAGS="$CFLAGS $P
0290: 54 48 52 45 41 44 5f 43 46 4c 41 47 53 22 0a 20  THREAD_CFLAGS". 
02a0: 20 20 20 20 20 20 20 73 61 76 65 5f 4c 49 42 53         save_LIBS
02b0: 3d 22 24 4c 49 42 53 22 0a 20 20 20 20 20 20 20  ="$LIBS".       
02c0: 20 4c 49 42 53 3d 22 24 50 54 48 52 45 41 44 5f   LIBS="$PTHREAD_
02d0: 4c 49 42 53 20 24 4c 49 42 53 22 0a 20 20 20 20  LIBS $LIBS".    
02e0: 20 20 20 20 41 43 5f 4d 53 47 5f 43 48 45 43 4b      AC_MSG_CHECK
02f0: 49 4e 47 28 5b 66 6f 72 20 70 74 68 72 65 61 64  ING([for pthread
0300: 5f 6a 6f 69 6e 20 69 6e 20 4c 49 42 53 3d 24 50  _join in LIBS=$P
0310: 54 48 52 45 41 44 5f 4c 49 42 53 20 77 69 74 68  THREAD_LIBS with
0320: 20 43 46 4c 41 47 53 3d 24 50 54 48 52 45 41 44   CFLAGS=$PTHREAD
0330: 5f 43 46 4c 41 47 53 5d 29 0a 20 20 20 20 20 20  _CFLAGS]).      
0340: 20 20 41 43 5f 54 52 59 5f 4c 49 4e 4b 5f 46 55    AC_TRY_LINK_FU
0350: 4e 43 28 70 74 68 72 65 61 64 5f 6a 6f 69 6e 2c  NC(pthread_join,
0360: 20 61 63 78 5f 70 74 68 72 65 61 64 5f 6f 6b 3d   acx_pthread_ok=
0370: 79 65 73 29 0a 20 20 20 20 20 20 20 20 41 43 5f  yes).        AC_
0380: 4d 53 47 5f 52 45 53 55 4c 54 28 24 61 63 78 5f  MSG_RESULT($acx_
0390: 70 74 68 72 65 61 64 5f 6f 6b 29 0a 20 20 20 20  pthread_ok).    
03a0: 20 20 20 20 69 66 20 74 65 73 74 20 78 22 24 61      if test x"$a
03b0: 63 78 5f 70 74 68 72 65 61 64 5f 6f 6b 22 20 3d  cx_pthread_ok" =
03c0: 20 78 6e 6f 3b 20 74 68 65 6e 0a 20 20 20 20 20   xno; then.     
03d0: 20 20 20 20 20 20 20 20 20 20 20 50 54 48 52 45             PTHRE
03e0: 41 44 5f 4c 49 42 53 3d 22 22 0a 20 20 20 20 20  AD_LIBS="".     
03f0: 20 20 20 20 20 20 20 20 20 20 20 50 54 48 52 45             PTHRE
0400: 41 44 5f 43 46 4c 41 47 53 3d 22 22 0a 20 20 20  AD_CFLAGS="".   
0410: 20 20 20 20 20 66 69 0a 20 20 20 20 20 20 20 20       fi.        
0420: 4c 49 42 53 3d 22 24 73 61 76 65 5f 4c 49 42 53  LIBS="$save_LIBS
0430: 22 0a 20 20 20 20 20 20 20 20 43 46 4c 41 47 53  ".        CFLAGS
0440: 3d 22 24 73 61 76 65 5f 43 46 4c 41 47 53 22 0a  ="$save_CFLAGS".
0450: 66 69 0a 0a 23 20 57 65 20 6d 75 73 74 20 63 68  fi..# We must ch
0460: 65 63 6b 20 66 6f 72 20 74 68 65 20 74 68 72 65  eck for the thre
0470: 61 64 73 20 6c 69 62 72 61 72 79 20 75 6e 64 65  ads library unde
0480: 72 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 64 69  r a number of di
0490: 66 66 65 72 65 6e 74 0a 23 20 6e 61 6d 65 73 3b  fferent.# names;
04a0: 20 74 68 65 20 6f 72 64 65 72 69 6e 67 20 69 73   the ordering is
04b0: 20 76 65 72 79 20 69 6d 70 6f 72 74 61 6e 74 20   very important 
04c0: 62 65 63 61 75 73 65 20 73 6f 6d 65 20 73 79 73  because some sys
04d0: 74 65 6d 73 0a 23 20 28 65 2e 67 2e 20 44 45 43  tems.# (e.g. DEC
04e0: 29 20 68 61 76 65 20 62 6f 74 68 20 2d 6c 70 74  ) have both -lpt
04f0: 68 72 65 61 64 20 61 6e 64 20 2d 6c 70 74 68 72  hread and -lpthr
0500: 65 61 64 73 2c 20 77 68 65 72 65 20 6f 6e 65 20  eads, where one 
0510: 6f 66 20 74 68 65 0a 23 20 6c 69 62 72 61 72 69  of the.# librari
0520: 65 73 20 69 73 20 62 72 6f 6b 65 6e 20 28 6e 6f  es is broken (no
0530: 6e 2d 50 4f 53 49 58 29 2e 0a 0a 23 20 43 72 65  n-POSIX)...# Cre
0540: 61 74 65 20 61 20 6c 69 73 74 20 6f 66 20 74 68  ate a list of th
0550: 72 65 61 64 20 66 6c 61 67 73 20 74 6f 20 74 72  read flags to tr
0560: 79 2e 20 20 49 74 65 6d 73 20 73 74 61 72 74 69  y.  Items starti
0570: 6e 67 20 77 69 74 68 20 61 20 22 2d 22 20 61 72  ng with a "-" ar
0580: 65 0a 23 20 43 20 63 6f 6d 70 69 6c 65 72 20 66  e.# C compiler f
0590: 6c 61 67 73 2c 20 61 6e 64 20 6f 74 68 65 72 20  lags, and other 
05a0: 69 74 65 6d 73 20 61 72 65 20 6c 69 62 72 61 72  items are librar
05b0: 79 20 6e 61 6d 65 73 2c 20 65 78 63 65 70 74 20  y names, except 
05c0: 66 6f 72 20 22 6e 6f 6e 65 22 0a 23 20 77 68 69  for "none".# whi
05d0: 63 68 20 69 6e 64 69 63 61 74 65 73 20 74 68 61  ch indicates tha
05e0: 74 20 77 65 20 74 72 79 20 77 69 74 68 6f 75 74  t we try without
05f0: 20 61 6e 79 20 66 6c 61 67 73 20 61 74 20 61 6c   any flags at al
0600: 6c 2c 20 61 6e 64 20 22 70 74 68 72 65 61 64 2d  l, and "pthread-
0610: 63 6f 6e 66 69 67 22 0a 23 20 77 68 69 63 68 20  config".# which 
0620: 69 73 20 61 20 70 72 6f 67 72 61 6d 20 72 65 74  is a program ret
0630: 75 72 6e 69 6e 67 20 74 68 65 20 66 6c 61 67 73  urning the flags
0640: 20 66 6f 72 20 74 68 65 20 50 74 68 20 65 6d 75   for the Pth emu
0650: 6c 61 74 69 6f 6e 20 6c 69 62 72 61 72 79 2e 0a  lation library..
0660: 0a 61 63 78 5f 70 74 68 72 65 61 64 5f 66 6c 61  .acx_pthread_fla
0670: 67 73 3d 22 70 74 68 72 65 61 64 73 20 6e 6f 6e  gs="pthreads non
0680: 65 20 2d 4b 74 68 72 65 61 64 20 2d 6b 74 68 72  e -Kthread -kthr
0690: 65 61 64 20 6c 74 68 72 65 61 64 20 2d 70 74 68  ead lthread -pth
06a0: 72 65 61 64 20 2d 70 74 68 72 65 61 64 73 20 2d  read -pthreads -
06b0: 6d 74 68 72 65 61 64 73 20 70 74 68 72 65 61 64  mthreads pthread
06c0: 20 2d 2d 74 68 72 65 61 64 2d 73 61 66 65 20 2d   --thread-safe -
06d0: 6d 74 20 70 74 68 72 65 61 64 2d 63 6f 6e 66 69  mt pthread-confi
06e0: 67 22 0a 0a 23 20 54 68 65 20 6f 72 64 65 72 69  g"..# The orderi
06f0: 6e 67 20 2a 69 73 2a 20 28 73 6f 6d 65 74 69 6d  ng *is* (sometim
0700: 65 73 29 20 69 6d 70 6f 72 74 61 6e 74 2e 20 20  es) important.  
0710: 53 6f 6d 65 20 6e 6f 74 65 73 20 6f 6e 20 74 68  Some notes on th
0720: 65 0a 23 20 69 6e 64 69 76 69 64 75 61 6c 20 69  e.# individual i
0730: 74 65 6d 73 20 66 6f 6c 6c 6f 77 3a 0a 0a 23 20  tems follow:..# 
0740: 70 74 68 72 65 61 64 73 3a 20 41 49 58 20 28 6d  pthreads: AIX (m
0750: 75 73 74 20 63 68 65 63 6b 20 74 68 69 73 20 62  ust check this b
0760: 65 66 6f 72 65 20 2d 6c 70 74 68 72 65 61 64 29  efore -lpthread)
0770: 0a 23 20 6e 6f 6e 65 3a 20 69 6e 20 63 61 73 65  .# none: in case
0780: 20 74 68 72 65 61 64 73 20 61 72 65 20 69 6e 20   threads are in 
0790: 6c 69 62 63 3b 20 73 68 6f 75 6c 64 20 62 65 20  libc; should be 
07a0: 74 72 69 65 64 20 62 65 66 6f 72 65 20 2d 4b 74  tried before -Kt
07b0: 68 72 65 61 64 20 61 6e 64 0a 23 20 20 20 20 20  hread and.#     
07c0: 20 20 6f 74 68 65 72 20 63 6f 6d 70 69 6c 65 72    other compiler
07d0: 20 66 6c 61 67 73 20 74 6f 20 70 72 65 76 65 6e   flags to preven
07e0: 74 20 63 6f 6e 74 69 6e 75 61 6c 20 63 6f 6d 70  t continual comp
07f0: 69 6c 65 72 20 77 61 72 6e 69 6e 67 73 0a 23 20  iler warnings.# 
0800: 2d 4b 74 68 72 65 61 64 3a 20 53 65 71 75 65 6e  -Kthread: Sequen
0810: 74 20 28 74 68 72 65 61 64 73 20 69 6e 20 6c 69  t (threads in li
0820: 62 63 2c 20 62 75 74 20 2d 4b 74 68 72 65 61 64  bc, but -Kthread
0830: 20 6e 65 65 64 65 64 20 66 6f 72 20 70 74 68 72   needed for pthr
0840: 65 61 64 2e 68 29 0a 23 20 2d 6b 74 68 72 65 61  ead.h).# -kthrea
0850: 64 3a 20 46 72 65 65 42 53 44 20 6b 65 72 6e 65  d: FreeBSD kerne
0860: 6c 20 74 68 72 65 61 64 73 20 28 70 72 65 66 65  l threads (prefe
0870: 72 72 65 64 20 74 6f 20 2d 70 74 68 72 65 61 64  rred to -pthread
0880: 20 73 69 6e 63 65 20 53 4d 50 2d 61 62 6c 65 29   since SMP-able)
0890: 0a 23 20 6c 74 68 72 65 61 64 3a 20 4c 69 6e 75  .# lthread: Linu
08a0: 78 54 68 72 65 61 64 73 20 70 6f 72 74 20 6f 6e  xThreads port on
08b0: 20 46 72 65 65 42 53 44 20 28 61 6c 73 6f 20 70   FreeBSD (also p
08c0: 72 65 66 65 72 72 65 64 20 74 6f 20 2d 70 74 68  referred to -pth
08d0: 72 65 61 64 29 0a 23 20 2d 70 74 68 72 65 61 64  read).# -pthread
08e0: 3a 20 4c 69 6e 75 78 2f 67 63 63 20 28 6b 65 72  : Linux/gcc (ker
08f0: 6e 65 6c 20 74 68 72 65 61 64 73 29 2c 20 42 53  nel threads), BS
0900: 44 2f 67 63 63 20 28 75 73 65 72 6c 61 6e 64 20  D/gcc (userland 
0910: 74 68 72 65 61 64 73 29 0a 23 20 2d 70 74 68 72  threads).# -pthr
0920: 65 61 64 73 3a 20 53 6f 6c 61 72 69 73 2f 67 63  eads: Solaris/gc
0930: 63 0a 23 20 2d 6d 74 68 72 65 61 64 73 3a 20 4d  c.# -mthreads: M
0940: 69 6e 67 77 33 32 2f 67 63 63 2c 20 4c 79 6e 78  ingw32/gcc, Lynx
0950: 2f 67 63 63 0a 23 20 2d 6d 74 3a 20 53 75 6e 20  /gcc.# -mt: Sun 
0960: 57 6f 72 6b 73 68 6f 70 20 43 20 28 6d 61 79 20  Workshop C (may 
0970: 6f 6e 6c 79 20 6c 69 6e 6b 20 53 75 6e 4f 53 20  only link SunOS 
0980: 74 68 72 65 61 64 73 20 5b 2d 6c 74 68 72 65 61  threads [-lthrea
0990: 64 5d 2c 20 62 75 74 20 69 74 0a 23 20 20 20 20  d], but it.#    
09a0: 20 20 64 6f 65 73 6e 27 74 20 68 75 72 74 20 74    doesn't hurt t
09b0: 6f 20 63 68 65 63 6b 20 73 69 6e 63 65 20 74 68  o check since th
09c0: 69 73 20 73 6f 6d 65 74 69 6d 65 73 20 64 65 66  is sometimes def
09d0: 69 6e 65 73 20 70 74 68 72 65 61 64 73 20 74 6f  ines pthreads to
09e0: 6f 3b 0a 23 20 20 20 20 20 20 61 6c 73 6f 20 64  o;.#      also d
09f0: 65 66 69 6e 65 73 20 2d 44 5f 52 45 45 4e 54 52  efines -D_REENTR
0a00: 41 4e 54 29 0a 23 20 70 74 68 72 65 61 64 3a 20  ANT).# pthread: 
0a10: 4c 69 6e 75 78 2c 20 65 74 63 65 74 65 72 61 0a  Linux, etcetera.
0a20: 23 20 2d 2d 74 68 72 65 61 64 2d 73 61 66 65 3a  # --thread-safe:
0a30: 20 4b 41 49 20 43 2b 2b 0a 23 20 70 74 68 72 65   KAI C++.# pthre
0a40: 61 64 2d 63 6f 6e 66 69 67 3a 20 75 73 65 20 70  ad-config: use p
0a50: 74 68 72 65 61 64 2d 63 6f 6e 66 69 67 20 70 72  thread-config pr
0a60: 6f 67 72 61 6d 20 28 66 6f 72 20 47 4e 55 20 50  ogram (for GNU P
0a70: 74 68 20 6c 69 62 72 61 72 79 29 0a 0a 63 61 73  th library)..cas
0a80: 65 20 22 24 7b 68 6f 73 74 5f 63 70 75 7d 2d 24  e "${host_cpu}-$
0a90: 7b 68 6f 73 74 5f 6f 73 7d 22 20 69 6e 0a 20 20  {host_os}" in.  
0aa0: 20 20 20 20 20 20 2a 73 6f 6c 61 72 69 73 2a 29        *solaris*)
0ab0: 0a 0a 20 20 20 20 20 20 20 20 23 20 4f 6e 20 53  ..        # On S
0ac0: 6f 6c 61 72 69 73 20 28 61 74 20 6c 65 61 73 74  olaris (at least
0ad0: 2c 20 66 6f 72 20 73 6f 6d 65 20 76 65 72 73 69  , for some versi
0ae0: 6f 6e 73 29 2c 20 6c 69 62 63 20 63 6f 6e 74 61  ons), libc conta
0af0: 69 6e 73 20 73 74 75 62 62 65 64 0a 20 20 20 20  ins stubbed.    
0b00: 20 20 20 20 23 20 28 6e 6f 6e 2d 66 75 6e 63 74      # (non-funct
0b10: 69 6f 6e 61 6c 29 20 76 65 72 73 69 6f 6e 73 20  ional) versions 
0b20: 6f 66 20 74 68 65 20 70 74 68 72 65 61 64 73 20  of the pthreads 
0b30: 72 6f 75 74 69 6e 65 73 2c 20 73 6f 20 6c 69 6e  routines, so lin
0b40: 6b 2d 62 61 73 65 64 0a 20 20 20 20 20 20 20 20  k-based.        
0b50: 23 20 74 65 73 74 73 20 77 69 6c 6c 20 65 72 72  # tests will err
0b60: 6f 6e 65 6f 75 73 6c 79 20 73 75 63 63 65 65 64  oneously succeed
0b70: 2e 20 20 28 57 65 20 6e 65 65 64 20 74 6f 20 6c  .  (We need to l
0b80: 69 6e 6b 20 77 69 74 68 20 2d 70 74 68 72 65 61  ink with -pthrea
0b90: 64 20 6f 72 0a 20 20 20 20 20 20 20 20 23 20 2d  d or.        # -
0ba0: 6c 70 74 68 72 65 61 64 2e 29 20 20 28 54 68 65  lpthread.)  (The
0bb0: 20 73 74 75 62 73 20 61 72 65 20 6d 69 73 73 69   stubs are missi
0bc0: 6e 67 20 70 74 68 72 65 61 64 5f 63 6c 65 61 6e  ng pthread_clean
0bd0: 75 70 5f 70 75 73 68 2c 20 6f 72 20 72 61 74 68  up_push, or rath
0be0: 65 72 0a 20 20 20 20 20 20 20 20 23 20 61 20 66  er.        # a f
0bf0: 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 65 64 20 62  unction called b
0c00: 79 20 74 68 69 73 20 6d 61 63 72 6f 2c 20 73 6f  y this macro, so
0c10: 20 77 65 20 63 6f 75 6c 64 20 63 68 65 63 6b 20   we could check 
0c20: 66 6f 72 20 74 68 61 74 2c 20 62 75 74 0a 20 20  for that, but.  
0c30: 20 20 20 20 20 20 23 20 77 68 6f 20 6b 6e 6f 77        # who know
0c40: 73 20 77 68 65 74 68 65 72 20 74 68 65 79 27 6c  s whether they'l
0c50: 6c 20 73 74 75 62 20 74 68 61 74 20 74 6f 6f 20  l stub that too 
0c60: 69 6e 20 61 20 66 75 74 75 72 65 20 6c 69 62 63  in a future libc
0c70: 2e 29 20 20 53 6f 2c 0a 20 20 20 20 20 20 20 20  .)  So,.        
0c80: 23 20 77 65 27 6c 6c 20 6a 75 73 74 20 6c 6f 6f  # we'll just loo
0c90: 6b 20 66 6f 72 20 2d 70 74 68 72 65 61 64 73 20  k for -pthreads 
0ca0: 61 6e 64 20 2d 6c 70 74 68 72 65 61 64 20 66 69  and -lpthread fi
0cb0: 72 73 74 3a 0a 0a 20 20 20 20 20 20 20 20 61 63  rst:..        ac
0cc0: 78 5f 70 74 68 72 65 61 64 5f 66 6c 61 67 73 3d  x_pthread_flags=
0cd0: 22 2d 70 74 68 72 65 61 64 20 2d 70 74 68 72 65  "-pthread -pthre
0ce0: 61 64 73 20 70 74 68 72 65 61 64 20 2d 6d 74 20  ads pthread -mt 
0cf0: 24 61 63 78 5f 70 74 68 72 65 61 64 5f 66 6c 61  $acx_pthread_fla
0d00: 67 73 22 0a 20 20 20 20 20 20 20 20 3b 3b 0a 65  gs".        ;;.e
0d10: 73 61 63 0a 0a 69 66 20 74 65 73 74 20 78 22 24  sac..if test x"$
0d20: 61 63 78 5f 70 74 68 72 65 61 64 5f 6f 6b 22 20  acx_pthread_ok" 
0d30: 3d 20 78 6e 6f 3b 20 74 68 65 6e 0a 66 6f 72 20  = xno; then.for 
0d40: 66 6c 61 67 20 69 6e 20 24 61 63 78 5f 70 74 68  flag in $acx_pth
0d50: 72 65 61 64 5f 66 6c 61 67 73 3b 20 64 6f 0a 0a  read_flags; do..
0d60: 20 20 20 20 20 20 20 20 63 61 73 65 20 24 66 6c          case $fl
0d70: 61 67 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20  ag in.          
0d80: 20 20 20 20 20 20 6e 6f 6e 65 29 0a 20 20 20 20        none).    
0d90: 20 20 20 20 20 20 20 20 20 20 20 20 41 43 5f 4d              AC_M
0da0: 53 47 5f 43 48 45 43 4b 49 4e 47 28 5b 77 68 65  SG_CHECKING([whe
0db0: 74 68 65 72 20 70 74 68 72 65 61 64 73 20 77 6f  ther pthreads wo
0dc0: 72 6b 20 77 69 74 68 6f 75 74 20 61 6e 79 20 66  rk without any f
0dd0: 6c 61 67 73 5d 29 0a 20 20 20 20 20 20 20 20 20  lags]).         
0de0: 20 20 20 20 20 20 20 3b 3b 0a 0a 20 20 20 20 20         ;;..     
0df0: 20 20 20 20 20 20 20 20 20 20 20 2d 2a 29 0a 20             -*). 
0e00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41                 A
0e10: 43 5f 4d 53 47 5f 43 48 45 43 4b 49 4e 47 28 5b  C_MSG_CHECKING([
0e20: 77 68 65 74 68 65 72 20 70 74 68 72 65 61 64 73  whether pthreads
0e30: 20 77 6f 72 6b 20 77 69 74 68 20 24 66 6c 61 67   work with $flag
0e40: 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ]).             
0e50: 20 20 20 50 54 48 52 45 41 44 5f 43 46 4c 41 47     PTHREAD_CFLAG
0e60: 53 3d 22 24 66 6c 61 67 22 0a 20 20 20 20 20 20  S="$flag".      
0e70: 20 20 20 20 20 20 20 20 20 20 3b 3b 0a 0a 09 09            ;;....
0e80: 70 74 68 72 65 61 64 2d 63 6f 6e 66 69 67 29 0a  pthread-config).
0e90: 09 09 41 43 5f 43 48 45 43 4b 5f 50 52 4f 47 28  ..AC_CHECK_PROG(
0ea0: 61 63 78 5f 70 74 68 72 65 61 64 5f 63 6f 6e 66  acx_pthread_conf
0eb0: 69 67 2c 20 70 74 68 72 65 61 64 2d 63 6f 6e 66  ig, pthread-conf
0ec0: 69 67 2c 20 79 65 73 2c 20 6e 6f 29 0a 09 09 69  ig, yes, no)...i
0ed0: 66 20 74 65 73 74 20 78 22 24 61 63 78 5f 70 74  f test x"$acx_pt
0ee0: 68 72 65 61 64 5f 63 6f 6e 66 69 67 22 20 3d 20  hread_config" = 
0ef0: 78 6e 6f 3b 20 74 68 65 6e 20 63 6f 6e 74 69 6e  xno; then contin
0f00: 75 65 3b 20 66 69 0a 09 09 50 54 48 52 45 41 44  ue; fi...PTHREAD
0f10: 5f 43 46 4c 41 47 53 3d 22 60 70 74 68 72 65 61  _CFLAGS="`pthrea
0f20: 64 2d 63 6f 6e 66 69 67 20 2d 2d 63 66 6c 61 67  d-config --cflag
0f30: 73 60 22 0a 09 09 50 54 48 52 45 41 44 5f 4c 49  s`"...PTHREAD_LI
0f40: 42 53 3d 22 60 70 74 68 72 65 61 64 2d 63 6f 6e  BS="`pthread-con
0f50: 66 69 67 20 2d 2d 6c 64 66 6c 61 67 73 60 20 60  fig --ldflags` `
0f60: 70 74 68 72 65 61 64 2d 63 6f 6e 66 69 67 20 2d  pthread-config -
0f70: 2d 6c 69 62 73 60 22 0a 09 09 3b 3b 0a 0a 20 20  -libs`"...;;..  
0f80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 29                *)
0f90: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
0fa0: 20 41 43 5f 4d 53 47 5f 43 48 45 43 4b 49 4e 47   AC_MSG_CHECKING
0fb0: 28 5b 66 6f 72 20 74 68 65 20 70 74 68 72 65 61  ([for the pthrea
0fc0: 64 73 20 6c 69 62 72 61 72 79 20 2d 6c 24 66 6c  ds library -l$fl
0fd0: 61 67 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20  ag]).           
0fe0: 20 20 20 20 20 50 54 48 52 45 41 44 5f 4c 49 42       PTHREAD_LIB
0ff0: 53 3d 22 2d 6c 24 66 6c 61 67 22 0a 20 20 20 20  S="-l$flag".    
1000: 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 0a 20              ;;. 
1010: 20 20 20 20 20 20 20 65 73 61 63 0a 0a 20 20 20         esac..   
1020: 20 20 20 20 20 73 61 76 65 5f 4c 49 42 53 3d 22       save_LIBS="
1030: 24 4c 49 42 53 22 0a 20 20 20 20 20 20 20 20 73  $LIBS".        s
1040: 61 76 65 5f 43 46 4c 41 47 53 3d 22 24 43 46 4c  ave_CFLAGS="$CFL
1050: 41 47 53 22 0a 20 20 20 20 20 20 20 20 4c 49 42  AGS".        LIB
1060: 53 3d 22 24 50 54 48 52 45 41 44 5f 4c 49 42 53  S="$PTHREAD_LIBS
1070: 20 24 4c 49 42 53 22 0a 20 20 20 20 20 20 20 20   $LIBS".        
1080: 43 46 4c 41 47 53 3d 22 24 43 46 4c 41 47 53 20  CFLAGS="$CFLAGS 
1090: 24 50 54 48 52 45 41 44 5f 43 46 4c 41 47 53 22  $PTHREAD_CFLAGS"
10a0: 0a 0a 20 20 20 20 20 20 20 20 23 20 43 68 65 63  ..        # Chec
10b0: 6b 20 66 6f 72 20 76 61 72 69 6f 75 73 20 66 75  k for various fu
10c0: 6e 63 74 69 6f 6e 73 2e 20 20 57 65 20 6d 75 73  nctions.  We mus
10d0: 74 20 69 6e 63 6c 75 64 65 20 70 74 68 72 65 61  t include pthrea
10e0: 64 2e 68 2c 0a 20 20 20 20 20 20 20 20 23 20 73  d.h,.        # s
10f0: 69 6e 63 65 20 73 6f 6d 65 20 66 75 6e 63 74 69  ince some functi
1100: 6f 6e 73 20 6d 61 79 20 62 65 20 6d 61 63 72 6f  ons may be macro
1110: 73 2e 20 20 28 4f 6e 20 74 68 65 20 53 65 71 75  s.  (On the Sequ
1120: 65 6e 74 2c 20 77 65 0a 20 20 20 20 20 20 20 20  ent, we.        
1130: 23 20 6e 65 65 64 20 61 20 73 70 65 63 69 61 6c  # need a special
1140: 20 66 6c 61 67 20 2d 4b 74 68 72 65 61 64 20 74   flag -Kthread t
1150: 6f 20 6d 61 6b 65 20 74 68 69 73 20 68 65 61 64  o make this head
1160: 65 72 20 63 6f 6d 70 69 6c 65 2e 29 0a 20 20 20  er compile.).   
1170: 20 20 20 20 20 23 20 57 65 20 63 68 65 63 6b 20       # We check 
1180: 66 6f 72 20 70 74 68 72 65 61 64 5f 6a 6f 69 6e  for pthread_join
1190: 20 62 65 63 61 75 73 65 20 69 74 20 69 73 20 69   because it is i
11a0: 6e 20 2d 6c 70 74 68 72 65 61 64 20 6f 6e 20 49  n -lpthread on I
11b0: 52 49 58 0a 20 20 20 20 20 20 20 20 23 20 77 68  RIX.        # wh
11c0: 69 6c 65 20 70 74 68 72 65 61 64 5f 63 72 65 61  ile pthread_crea
11d0: 74 65 20 69 73 20 69 6e 20 6c 69 62 63 2e 20 20  te is in libc.  
11e0: 57 65 20 63 68 65 63 6b 20 66 6f 72 20 70 74 68  We check for pth
11f0: 72 65 61 64 5f 61 74 74 72 5f 69 6e 69 74 0a 20  read_attr_init. 
1200: 20 20 20 20 20 20 20 23 20 64 75 65 20 74 6f 20         # due to 
1210: 44 45 43 20 63 72 61 7a 69 6e 65 73 73 20 77 69  DEC craziness wi
1220: 74 68 20 2d 6c 70 74 68 72 65 61 64 73 2e 20 20  th -lpthreads.  
1230: 57 65 20 63 68 65 63 6b 20 66 6f 72 0a 20 20 20  We check for.   
1240: 20 20 20 20 20 23 20 70 74 68 72 65 61 64 5f 63       # pthread_c
1250: 6c 65 61 6e 75 70 5f 70 75 73 68 20 62 65 63 61  leanup_push beca
1260: 75 73 65 20 69 74 20 69 73 20 6f 6e 65 20 6f 66  use it is one of
1270: 20 74 68 65 20 66 65 77 20 70 74 68 72 65 61 64   the few pthread
1280: 0a 20 20 20 20 20 20 20 20 23 20 66 75 6e 63 74  .        # funct
1290: 69 6f 6e 73 20 6f 6e 20 53 6f 6c 61 72 69 73 20  ions on Solaris 
12a0: 74 68 61 74 20 64 6f 65 73 6e 27 74 20 68 61 76  that doesn't hav
12b0: 65 20 61 20 6e 6f 6e 2d 66 75 6e 63 74 69 6f 6e  e a non-function
12c0: 61 6c 20 6c 69 62 63 20 73 74 75 62 2e 0a 20 20  al libc stub..  
12d0: 20 20 20 20 20 20 23 20 57 65 20 74 72 79 20 70        # We try p
12e0: 74 68 72 65 61 64 5f 63 72 65 61 74 65 20 6f 6e  thread_create on
12f0: 20 67 65 6e 65 72 61 6c 20 70 72 69 6e 63 69 70   general princip
1300: 6c 65 73 2e 0a 20 20 20 20 20 20 20 20 41 43 5f  les..        AC_
1310: 54 52 59 5f 4c 49 4e 4b 28 5b 23 69 6e 63 6c 75  TRY_LINK([#inclu
1320: 64 65 20 3c 70 74 68 72 65 61 64 2e 68 3e 5d 2c  de <pthread.h>],
1330: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1340: 20 20 20 20 20 5b 70 74 68 72 65 61 64 5f 74 20       [pthread_t 
1350: 74 68 3b 20 70 74 68 72 65 61 64 5f 6a 6f 69 6e  th; pthread_join
1360: 28 74 68 2c 20 30 29 3b 0a 20 20 20 20 20 20 20  (th, 0);.       
1370: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 74                pt
1380: 68 72 65 61 64 5f 61 74 74 72 5f 69 6e 69 74 28  hread_attr_init(
1390: 30 29 3b 20 70 74 68 72 65 61 64 5f 63 6c 65 61  0); pthread_clea
13a0: 6e 75 70 5f 70 75 73 68 28 30 2c 20 30 29 3b 0a  nup_push(0, 0);.
13b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13c0: 20 20 20 20 20 70 74 68 72 65 61 64 5f 63 72 65       pthread_cre
13d0: 61 74 65 28 30 2c 30 2c 30 2c 30 29 3b 20 70 74  ate(0,0,0,0); pt
13e0: 68 72 65 61 64 5f 63 6c 65 61 6e 75 70 5f 70 6f  hread_cleanup_po
13f0: 70 28 30 29 3b 20 5d 2c 0a 20 20 20 20 20 20 20  p(0); ],.       
1400: 20 20 20 20 20 20 20 20 20 20 20 20 20 5b 61 63               [ac
1410: 78 5f 70 74 68 72 65 61 64 5f 6f 6b 3d 79 65 73  x_pthread_ok=yes
1420: 5d 29 0a 0a 20 20 20 20 20 20 20 20 4c 49 42 53  ])..        LIBS
1430: 3d 22 24 73 61 76 65 5f 4c 49 42 53 22 0a 20 20  ="$save_LIBS".  
1440: 20 20 20 20 20 20 43 46 4c 41 47 53 3d 22 24 73        CFLAGS="$s
1450: 61 76 65 5f 43 46 4c 41 47 53 22 0a 0a 20 20 20  ave_CFLAGS"..   
1460: 20 20 20 20 20 41 43 5f 4d 53 47 5f 52 45 53 55       AC_MSG_RESU
1470: 4c 54 28 24 61 63 78 5f 70 74 68 72 65 61 64 5f  LT($acx_pthread_
1480: 6f 6b 29 0a 20 20 20 20 20 20 20 20 69 66 20 74  ok).        if t
1490: 65 73 74 20 22 78 24 61 63 78 5f 70 74 68 72 65  est "x$acx_pthre
14a0: 61 64 5f 6f 6b 22 20 3d 20 78 79 65 73 3b 20 74  ad_ok" = xyes; t
14b0: 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20  hen.            
14c0: 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20      break;.     
14d0: 20 20 20 66 69 0a 0a 20 20 20 20 20 20 20 20 50     fi..        P
14e0: 54 48 52 45 41 44 5f 4c 49 42 53 3d 22 22 0a 20  THREAD_LIBS="". 
14f0: 20 20 20 20 20 20 20 50 54 48 52 45 41 44 5f 43         PTHREAD_C
1500: 46 4c 41 47 53 3d 22 22 0a 64 6f 6e 65 0a 66 69  FLAGS="".done.fi
1510: 0a 0a 23 20 56 61 72 69 6f 75 73 20 6f 74 68 65  ..# Various othe
1520: 72 20 63 68 65 63 6b 73 3a 0a 69 66 20 74 65 73  r checks:.if tes
1530: 74 20 22 78 24 61 63 78 5f 70 74 68 72 65 61 64  t "x$acx_pthread
1540: 5f 6f 6b 22 20 3d 20 78 79 65 73 3b 20 74 68 65  _ok" = xyes; the
1550: 6e 0a 20 20 20 20 20 20 20 20 73 61 76 65 5f 4c  n.        save_L
1560: 49 42 53 3d 22 24 4c 49 42 53 22 0a 20 20 20 20  IBS="$LIBS".    
1570: 20 20 20 20 4c 49 42 53 3d 22 24 50 54 48 52 45      LIBS="$PTHRE
1580: 41 44 5f 4c 49 42 53 20 24 4c 49 42 53 22 0a 20  AD_LIBS $LIBS". 
1590: 20 20 20 20 20 20 20 73 61 76 65 5f 43 46 4c 41         save_CFLA
15a0: 47 53 3d 22 24 43 46 4c 41 47 53 22 0a 20 20 20  GS="$CFLAGS".   
15b0: 20 20 20 20 20 43 46 4c 41 47 53 3d 22 24 43 46       CFLAGS="$CF
15c0: 4c 41 47 53 20 24 50 54 48 52 45 41 44 5f 43 46  LAGS $PTHREAD_CF
15d0: 4c 41 47 53 22 0a 0a 20 20 20 20 20 20 20 20 23  LAGS"..        #
15e0: 20 44 65 74 65 63 74 20 41 49 58 20 6c 6f 73 73   Detect AIX loss
15f0: 61 67 65 3a 20 74 68 72 65 61 64 73 20 61 72 65  age: threads are
1600: 20 63 72 65 61 74 65 64 20 64 65 74 61 63 68 65   created detache
1610: 64 20 62 79 20 64 65 66 61 75 6c 74 0a 20 20 20  d by default.   
1620: 20 20 20 20 20 23 20 61 6e 64 20 74 68 65 20 4a       # and the J
1630: 4f 49 4e 41 42 4c 45 20 61 74 74 72 69 62 75 74  OINABLE attribut
1640: 65 20 68 61 73 20 61 20 6e 6f 6e 73 74 61 6e 64  e has a nonstand
1650: 61 72 64 20 6e 61 6d 65 20 28 55 4e 44 45 54 41  ard name (UNDETA
1660: 43 48 45 44 29 2e 0a 20 20 20 20 20 20 20 20 41  CHED)..        A
1670: 43 5f 4d 53 47 5f 43 48 45 43 4b 49 4e 47 28 5b  C_MSG_CHECKING([
1680: 66 6f 72 20 6a 6f 69 6e 61 62 6c 65 20 70 74 68  for joinable pth
1690: 72 65 61 64 20 61 74 74 72 69 62 75 74 65 5d 29  read attribute])
16a0: 0a 20 20 20 20 20 20 20 20 41 43 5f 54 52 59 5f  .        AC_TRY_
16b0: 4c 49 4e 4b 28 5b 23 69 6e 63 6c 75 64 65 20 3c  LINK([#include <
16c0: 70 74 68 72 65 61 64 2e 68 3e 5d 2c 0a 20 20 20  pthread.h>],.   
16d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16e0: 20 5b 69 6e 74 20 61 74 74 72 3d 50 54 48 52 45   [int attr=PTHRE
16f0: 41 44 5f 43 52 45 41 54 45 5f 4a 4f 49 4e 41 42  AD_CREATE_JOINAB
1700: 4c 45 3b 5d 2c 0a 20 20 20 20 20 20 20 20 20 20  LE;],.          
1710: 20 20 20 20 20 20 20 20 20 20 6f 6b 3d 50 54 48            ok=PTH
1720: 52 45 41 44 5f 43 52 45 41 54 45 5f 4a 4f 49 4e  READ_CREATE_JOIN
1730: 41 42 4c 45 2c 20 6f 6b 3d 75 6e 6b 6e 6f 77 6e  ABLE, ok=unknown
1740: 29 0a 20 20 20 20 20 20 20 20 69 66 20 74 65 73  ).        if tes
1750: 74 20 78 22 24 6f 6b 22 20 3d 20 78 75 6e 6b 6e  t x"$ok" = xunkn
1760: 6f 77 6e 3b 20 74 68 65 6e 0a 20 20 20 20 20 20  own; then.      
1770: 20 20 20 20 20 20 20 20 20 20 41 43 5f 54 52 59            AC_TRY
1780: 5f 4c 49 4e 4b 28 5b 23 69 6e 63 6c 75 64 65 20  _LINK([#include 
1790: 3c 70 74 68 72 65 61 64 2e 68 3e 5d 2c 0a 20 20  <pthread.h>],.  
17a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b0: 20 20 20 20 20 20 20 20 20 20 5b 69 6e 74 20 61            [int a
17c0: 74 74 72 3d 50 54 48 52 45 41 44 5f 43 52 45 41  ttr=PTHREAD_CREA
17d0: 54 45 5f 55 4e 44 45 54 41 43 48 45 44 3b 5d 2c  TE_UNDETACHED;],
17e0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
17f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 6b 3d               ok=
1800: 50 54 48 52 45 41 44 5f 43 52 45 41 54 45 5f 55  PTHREAD_CREATE_U
1810: 4e 44 45 54 41 43 48 45 44 2c 20 6f 6b 3d 75 6e  NDETACHED, ok=un
1820: 6b 6e 6f 77 6e 29 0a 20 20 20 20 20 20 20 20 66  known).        f
1830: 69 0a 20 20 20 20 20 20 20 20 69 66 20 74 65 73  i.        if tes
1840: 74 20 78 22 24 6f 6b 22 20 21 3d 20 78 50 54 48  t x"$ok" != xPTH
1850: 52 45 41 44 5f 43 52 45 41 54 45 5f 4a 4f 49 4e  READ_CREATE_JOIN
1860: 41 42 4c 45 3b 20 74 68 65 6e 0a 20 20 20 20 20  ABLE; then.     
1870: 20 20 20 20 20 20 20 20 20 20 20 41 43 5f 44 45             AC_DE
1880: 46 49 4e 45 28 50 54 48 52 45 41 44 5f 43 52 45  FINE(PTHREAD_CRE
1890: 41 54 45 5f 4a 4f 49 4e 41 42 4c 45 2c 20 24 6f  ATE_JOINABLE, $o
18a0: 6b 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  k,.             
18b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 5b 44 65               [De
18c0: 66 69 6e 65 20 74 6f 20 74 68 65 20 6e 65 63 65  fine to the nece
18d0: 73 73 61 72 79 20 73 79 6d 62 6f 6c 20 69 66 20  ssary symbol if 
18e0: 74 68 69 73 20 63 6f 6e 73 74 61 6e 74 0a 20 20  this constant.  
18f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1900: 20 20 20 20 20 20 20 20 20 75 73 65 73 20 61 20           uses a 
1910: 6e 6f 6e 2d 73 74 61 6e 64 61 72 64 20 6e 61 6d  non-standard nam
1920: 65 20 6f 6e 20 79 6f 75 72 20 73 79 73 74 65 6d  e on your system
1930: 2e 5d 29 0a 20 20 20 20 20 20 20 20 66 69 0a 20  .]).        fi. 
1940: 20 20 20 20 20 20 20 41 43 5f 4d 53 47 5f 52 45         AC_MSG_RE
1950: 53 55 4c 54 28 24 7b 6f 6b 7d 29 0a 20 20 20 20  SULT(${ok}).    
1960: 20 20 20 20 69 66 20 74 65 73 74 20 78 22 24 6f      if test x"$o
1970: 6b 22 20 3d 20 78 75 6e 6b 6e 6f 77 6e 3b 20 74  k" = xunknown; t
1980: 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20  hen.            
1990: 20 20 20 20 41 43 5f 4d 53 47 5f 57 41 52 4e 28      AC_MSG_WARN(
19a0: 5b 77 65 20 64 6f 20 6e 6f 74 20 6b 6e 6f 77 20  [we do not know 
19b0: 68 6f 77 20 74 6f 20 63 72 65 61 74 65 20 6a 6f  how to create jo
19c0: 69 6e 61 62 6c 65 20 70 74 68 72 65 61 64 73 5d  inable pthreads]
19d0: 29 0a 20 20 20 20 20 20 20 20 66 69 0a 0a 20 20  ).        fi..  
19e0: 20 20 20 20 20 20 41 43 5f 4d 53 47 5f 43 48 45        AC_MSG_CHE
19f0: 43 4b 49 4e 47 28 5b 69 66 20 6d 6f 72 65 20 73  CKING([if more s
1a00: 70 65 63 69 61 6c 20 66 6c 61 67 73 20 61 72 65  pecial flags are
1a10: 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 70 74   required for pt
1a20: 68 72 65 61 64 73 5d 29 0a 20 20 20 20 20 20 20  hreads]).       
1a30: 20 66 6c 61 67 3d 6e 6f 0a 20 20 20 20 20 20 20   flag=no.       
1a40: 20 63 61 73 65 20 22 24 7b 68 6f 73 74 5f 63 70   case "${host_cp
1a50: 75 7d 2d 24 7b 68 6f 73 74 5f 6f 73 7d 22 20 69  u}-${host_os}" i
1a60: 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  n.              
1a70: 20 20 2a 2d 61 69 78 2a 20 7c 20 2a 2d 66 72 65    *-aix* | *-fre
1a80: 65 62 73 64 2a 20 7c 20 2a 2d 64 61 72 77 69 6e  ebsd* | *-darwin
1a90: 2a 29 20 66 6c 61 67 3d 22 2d 44 5f 54 48 52 45  *) flag="-D_THRE
1aa0: 41 44 5f 53 41 46 45 22 3b 3b 0a 20 20 20 20 20  AD_SAFE";;.     
1ab0: 20 20 20 20 20 20 20 20 20 20 20 2a 73 6f 6c 61             *sola
1ac0: 72 69 73 2a 20 7c 20 2a 2d 6f 73 66 2a 20 7c 20  ris* | *-osf* | 
1ad0: 2a 2d 68 70 75 78 2a 29 20 66 6c 61 67 3d 22 2d  *-hpux*) flag="-
1ae0: 44 5f 52 45 45 4e 54 52 41 4e 54 22 3b 3b 0a 20  D_REENTRANT";;. 
1af0: 20 20 20 20 20 20 20 65 73 61 63 0a 20 20 20 20         esac.    
1b00: 20 20 20 20 41 43 5f 4d 53 47 5f 52 45 53 55 4c      AC_MSG_RESUL
1b10: 54 28 24 7b 66 6c 61 67 7d 29 0a 20 20 20 20 20  T(${flag}).     
1b20: 20 20 20 69 66 20 74 65 73 74 20 22 78 24 66 6c     if test "x$fl
1b30: 61 67 22 20 21 3d 20 78 6e 6f 3b 20 74 68 65 6e  ag" != xno; then
1b40: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1b50: 20 50 54 48 52 45 41 44 5f 43 46 4c 41 47 53 3d   PTHREAD_CFLAGS=
1b60: 22 24 66 6c 61 67 20 24 50 54 48 52 45 41 44 5f  "$flag $PTHREAD_
1b70: 43 46 4c 41 47 53 22 0a 20 20 20 20 20 20 20 20  CFLAGS".        
1b80: 66 69 0a 0a 20 20 20 20 20 20 20 20 4c 49 42 53  fi..        LIBS
1b90: 3d 22 24 73 61 76 65 5f 4c 49 42 53 22 0a 20 20  ="$save_LIBS".  
1ba0: 20 20 20 20 20 20 43 46 4c 41 47 53 3d 22 24 73        CFLAGS="$s
1bb0: 61 76 65 5f 43 46 4c 41 47 53 22 0a 0a 20 20 20  ave_CFLAGS"..   
1bc0: 20 20 20 20 20 23 20 4d 6f 72 65 20 41 49 58 20       # More AIX 
1bd0: 6c 6f 73 73 61 67 65 3a 20 6d 75 73 74 20 63 6f  lossage: must co
1be0: 6d 70 69 6c 65 20 77 69 74 68 20 63 63 5f 72 0a  mpile with cc_r.
1bf0: 20 20 20 20 20 20 20 20 41 43 5f 43 48 45 43 4b          AC_CHECK
1c00: 5f 50 52 4f 47 28 50 54 48 52 45 41 44 5f 43 43  _PROG(PTHREAD_CC
1c10: 2c 20 63 63 5f 72 2c 20 63 63 5f 72 2c 20 24 7b  , cc_r, cc_r, ${
1c20: 43 43 7d 29 0a 65 6c 73 65 0a 20 20 20 20 20 20  CC}).else.      
1c30: 20 20 50 54 48 52 45 41 44 5f 43 43 3d 22 24 43    PTHREAD_CC="$C
1c40: 43 22 0a 66 69 0a 0a 41 43 5f 53 55 42 53 54 28  C".fi..AC_SUBST(
1c50: 50 54 48 52 45 41 44 5f 4c 49 42 53 29 0a 41 43  PTHREAD_LIBS).AC
1c60: 5f 53 55 42 53 54 28 50 54 48 52 45 41 44 5f 43  _SUBST(PTHREAD_C
1c70: 46 4c 41 47 53 29 0a 41 43 5f 53 55 42 53 54 28  FLAGS).AC_SUBST(
1c80: 50 54 48 52 45 41 44 5f 43 43 29 0a 0a 23 20 46  PTHREAD_CC)..# F
1c90: 69 6e 61 6c 6c 79 2c 20 65 78 65 63 75 74 65 20  inally, execute 
1ca0: 41 43 54 49 4f 4e 2d 49 46 2d 46 4f 55 4e 44 2f  ACTION-IF-FOUND/
1cb0: 41 43 54 49 4f 4e 2d 49 46 2d 4e 4f 54 2d 46 4f  ACTION-IF-NOT-FO
1cc0: 55 4e 44 3a 0a 69 66 20 74 65 73 74 20 78 22 24  UND:.if test x"$
1cd0: 61 63 78 5f 70 74 68 72 65 61 64 5f 6f 6b 22 20  acx_pthread_ok" 
1ce0: 3d 20 78 79 65 73 3b 20 74 68 65 6e 0a 20 20 20  = xyes; then.   
1cf0: 20 20 20 20 20 69 66 65 6c 73 65 28 5b 24 31 5d       ifelse([$1]
1d00: 2c 2c 41 43 5f 44 45 46 49 4e 45 28 48 41 56 45  ,,AC_DEFINE(HAVE
1d10: 5f 50 54 48 52 45 41 44 2c 31 2c 5b 44 65 66 69  _PTHREAD,1,[Defi
1d20: 6e 65 20 69 66 20 79 6f 75 20 68 61 76 65 20 50  ne if you have P
1d30: 4f 53 49 58 20 74 68 72 65 61 64 73 20 6c 69 62  OSIX threads lib
1d40: 72 61 72 69 65 73 20 61 6e 64 20 68 65 61 64 65  raries and heade
1d50: 72 20 66 69 6c 65 73 2e 5d 29 2c 5b 24 31 5d 29  r files.]),[$1])
1d60: 0a 20 20 20 20 20 20 20 20 3a 0a 65 6c 73 65 0a  .        :.else.
1d70: 20 20 20 20 20 20 20 20 61 63 78 5f 70 74 68 72          acx_pthr
1d80: 65 61 64 5f 6f 6b 3d 6e 6f 0a 20 20 20 20 20 20  ead_ok=no.      
1d90: 20 20 24 32 0a 66 69 0a 41 43 5f 4c 41 4e 47 5f    $2.fi.AC_LANG_
1da0: 52 45 53 54 4f 52 45 0a 5d 29 64 6e 6c 20 41 43  RESTORE.])dnl AC
1db0: 58 5f 50 54 48 52 45 41 44 0a                    X_PTHREAD.