No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

curl-reentrant.m4 16KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620
  1. #***************************************************************************
  2. # _ _ ____ _
  3. # Project ___| | | | _ \| |
  4. # / __| | | | |_) | |
  5. # | (__| |_| | _ <| |___
  6. # \___|\___/|_| \_\_____|
  7. #
  8. # Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
  9. #
  10. # This software is licensed as described in the file COPYING, which
  11. # you should have received as part of this distribution. The terms
  12. # are also available at https://curl.haxx.se/docs/copyright.html.
  13. #
  14. # You may opt to use, copy, modify, merge, publish, distribute and/or sell
  15. # copies of the Software, and permit persons to whom the Software is
  16. # furnished to do so, under the terms of the COPYING file.
  17. #
  18. # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
  19. # KIND, either express or implied.
  20. #
  21. # License-Filename: COPYING
  22. # SPDX-License-Identifier: curl
  23. #
  24. #***************************************************************************
  25. # File version for 'aclocal' use. Keep it a single number.
  26. # serial 10
  27. dnl Note 1
  28. dnl ------
  29. dnl None of the CURL_CHECK_NEED_REENTRANT_* macros shall use HAVE_FOO_H to
  30. dnl conditionally include header files. These macros are used early in the
  31. dnl configure process much before header file availability is known.
  32. dnl CURL_CHECK_NEED_REENTRANT_ERRNO
  33. dnl -------------------------------------------------
  34. dnl Checks if the preprocessor _REENTRANT definition
  35. dnl makes errno available as a preprocessor macro.
  36. AC_DEFUN([CURL_CHECK_NEED_REENTRANT_ERRNO], [
  37. AC_COMPILE_IFELSE([
  38. AC_LANG_PROGRAM([[
  39. #include <errno.h>
  40. ]],[[
  41. if(0 != errno)
  42. return 1;
  43. ]])
  44. ],[
  45. tmp_errno="yes"
  46. ],[
  47. tmp_errno="no"
  48. ])
  49. if test "$tmp_errno" = "yes"; then
  50. AC_COMPILE_IFELSE([
  51. AC_LANG_PROGRAM([[
  52. #include <errno.h>
  53. ]],[[
  54. #ifdef errno
  55. int dummy=1;
  56. #else
  57. force compilation error
  58. #endif
  59. ]])
  60. ],[
  61. tmp_errno="errno_macro_defined"
  62. ],[
  63. AC_COMPILE_IFELSE([
  64. AC_LANG_PROGRAM([[
  65. #define _REENTRANT
  66. #include <errno.h>
  67. ]],[[
  68. #ifdef errno
  69. int dummy=1;
  70. #else
  71. force compilation error
  72. #endif
  73. ]])
  74. ],[
  75. tmp_errno="errno_macro_needs_reentrant"
  76. tmp_need_reentrant="yes"
  77. ])
  78. ])
  79. fi
  80. ])
  81. dnl CURL_CHECK_NEED_REENTRANT_GMTIME_R
  82. dnl -------------------------------------------------
  83. dnl Checks if the preprocessor _REENTRANT definition
  84. dnl makes function gmtime_r compiler visible.
  85. AC_DEFUN([CURL_CHECK_NEED_REENTRANT_GMTIME_R], [
  86. AC_LINK_IFELSE([
  87. AC_LANG_FUNC_LINK_TRY([gmtime_r])
  88. ],[
  89. tmp_gmtime_r="yes"
  90. ],[
  91. tmp_gmtime_r="no"
  92. ])
  93. if test "$tmp_gmtime_r" = "yes"; then
  94. AC_EGREP_CPP([gmtime_r],[
  95. #include <sys/types.h>
  96. #include <time.h>
  97. ],[
  98. tmp_gmtime_r="proto_declared"
  99. ],[
  100. AC_EGREP_CPP([gmtime_r],[
  101. #define _REENTRANT
  102. #include <sys/types.h>
  103. #include <time.h>
  104. ],[
  105. tmp_gmtime_r="proto_needs_reentrant"
  106. tmp_need_reentrant="yes"
  107. ])
  108. ])
  109. fi
  110. ])
  111. dnl CURL_CHECK_NEED_REENTRANT_LOCALTIME_R
  112. dnl -------------------------------------------------
  113. dnl Checks if the preprocessor _REENTRANT definition
  114. dnl makes function localtime_r compiler visible.
  115. AC_DEFUN([CURL_CHECK_NEED_REENTRANT_LOCALTIME_R], [
  116. AC_LINK_IFELSE([
  117. AC_LANG_FUNC_LINK_TRY([localtime_r])
  118. ],[
  119. tmp_localtime_r="yes"
  120. ],[
  121. tmp_localtime_r="no"
  122. ])
  123. if test "$tmp_localtime_r" = "yes"; then
  124. AC_EGREP_CPP([localtime_r],[
  125. #include <sys/types.h>
  126. #include <time.h>
  127. ],[
  128. tmp_localtime_r="proto_declared"
  129. ],[
  130. AC_EGREP_CPP([localtime_r],[
  131. #define _REENTRANT
  132. #include <sys/types.h>
  133. #include <time.h>
  134. ],[
  135. tmp_localtime_r="proto_needs_reentrant"
  136. tmp_need_reentrant="yes"
  137. ])
  138. ])
  139. fi
  140. ])
  141. dnl CURL_CHECK_NEED_REENTRANT_STRERROR_R
  142. dnl -------------------------------------------------
  143. dnl Checks if the preprocessor _REENTRANT definition
  144. dnl makes function strerror_r compiler visible.
  145. AC_DEFUN([CURL_CHECK_NEED_REENTRANT_STRERROR_R], [
  146. AC_LINK_IFELSE([
  147. AC_LANG_FUNC_LINK_TRY([strerror_r])
  148. ],[
  149. tmp_strerror_r="yes"
  150. ],[
  151. tmp_strerror_r="no"
  152. ])
  153. if test "$tmp_strerror_r" = "yes"; then
  154. AC_EGREP_CPP([strerror_r],[
  155. #include <sys/types.h>
  156. #include <string.h>
  157. ],[
  158. tmp_strerror_r="proto_declared"
  159. ],[
  160. AC_EGREP_CPP([strerror_r],[
  161. #define _REENTRANT
  162. #include <sys/types.h>
  163. #include <string.h>
  164. ],[
  165. tmp_strerror_r="proto_needs_reentrant"
  166. tmp_need_reentrant="yes"
  167. ])
  168. ])
  169. fi
  170. ])
  171. dnl CURL_CHECK_NEED_REENTRANT_STRTOK_R
  172. dnl -------------------------------------------------
  173. dnl Checks if the preprocessor _REENTRANT definition
  174. dnl makes function strtok_r compiler visible.
  175. AC_DEFUN([CURL_CHECK_NEED_REENTRANT_STRTOK_R], [
  176. AC_LINK_IFELSE([
  177. AC_LANG_FUNC_LINK_TRY([strtok_r])
  178. ],[
  179. tmp_strtok_r="yes"
  180. ],[
  181. tmp_strtok_r="no"
  182. ])
  183. if test "$tmp_strtok_r" = "yes"; then
  184. AC_EGREP_CPP([strtok_r],[
  185. #include <sys/types.h>
  186. #include <string.h>
  187. ],[
  188. tmp_strtok_r="proto_declared"
  189. ],[
  190. AC_EGREP_CPP([strtok_r],[
  191. #define _REENTRANT
  192. #include <sys/types.h>
  193. #include <string.h>
  194. ],[
  195. tmp_strtok_r="proto_needs_reentrant"
  196. tmp_need_reentrant="yes"
  197. ])
  198. ])
  199. fi
  200. ])
  201. dnl CURL_CHECK_NEED_REENTRANT_INET_NTOA_R
  202. dnl -------------------------------------------------
  203. dnl Checks if the preprocessor _REENTRANT definition
  204. dnl makes function inet_ntoa_r compiler visible.
  205. AC_DEFUN([CURL_CHECK_NEED_REENTRANT_INET_NTOA_R], [
  206. AC_LINK_IFELSE([
  207. AC_LANG_FUNC_LINK_TRY([inet_ntoa_r])
  208. ],[
  209. tmp_inet_ntoa_r="yes"
  210. ],[
  211. tmp_inet_ntoa_r="no"
  212. ])
  213. if test "$tmp_inet_ntoa_r" = "yes"; then
  214. AC_EGREP_CPP([inet_ntoa_r],[
  215. #include <sys/types.h>
  216. #include <sys/socket.h>
  217. #include <netinet/in.h>
  218. #include <arpa/inet.h>
  219. ],[
  220. tmp_inet_ntoa_r="proto_declared"
  221. ],[
  222. AC_EGREP_CPP([inet_ntoa_r],[
  223. #define _REENTRANT
  224. #include <sys/types.h>
  225. #include <sys/socket.h>
  226. #include <netinet/in.h>
  227. #include <arpa/inet.h>
  228. ],[
  229. tmp_inet_ntoa_r="proto_needs_reentrant"
  230. tmp_need_reentrant="yes"
  231. ])
  232. ])
  233. fi
  234. ])
  235. dnl CURL_CHECK_NEED_REENTRANT_GETHOSTBYADDR_R
  236. dnl -------------------------------------------------
  237. dnl Checks if the preprocessor _REENTRANT definition
  238. dnl makes function gethostbyaddr_r compiler visible.
  239. AC_DEFUN([CURL_CHECK_NEED_REENTRANT_GETHOSTBYADDR_R], [
  240. AC_LINK_IFELSE([
  241. AC_LANG_FUNC_LINK_TRY([gethostbyaddr_r])
  242. ],[
  243. tmp_gethostbyaddr_r="yes"
  244. ],[
  245. tmp_gethostbyaddr_r="no"
  246. ])
  247. if test "$tmp_gethostbyaddr_r" = "yes"; then
  248. AC_EGREP_CPP([gethostbyaddr_r],[
  249. #include <sys/types.h>
  250. #include <netdb.h>
  251. ],[
  252. tmp_gethostbyaddr_r="proto_declared"
  253. ],[
  254. AC_EGREP_CPP([gethostbyaddr_r],[
  255. #define _REENTRANT
  256. #include <sys/types.h>
  257. #include <netdb.h>
  258. ],[
  259. tmp_gethostbyaddr_r="proto_needs_reentrant"
  260. tmp_need_reentrant="yes"
  261. ])
  262. ])
  263. fi
  264. ])
  265. dnl CURL_CHECK_NEED_REENTRANT_GETHOSTBYNAME_R
  266. dnl -------------------------------------------------
  267. dnl Checks if the preprocessor _REENTRANT definition
  268. dnl makes function gethostbyname_r compiler visible.
  269. AC_DEFUN([CURL_CHECK_NEED_REENTRANT_GETHOSTBYNAME_R], [
  270. AC_LINK_IFELSE([
  271. AC_LANG_FUNC_LINK_TRY([gethostbyname_r])
  272. ],[
  273. tmp_gethostbyname_r="yes"
  274. ],[
  275. tmp_gethostbyname_r="no"
  276. ])
  277. if test "$tmp_gethostbyname_r" = "yes"; then
  278. AC_EGREP_CPP([gethostbyname_r],[
  279. #include <sys/types.h>
  280. #include <netdb.h>
  281. ],[
  282. tmp_gethostbyname_r="proto_declared"
  283. ],[
  284. AC_EGREP_CPP([gethostbyname_r],[
  285. #define _REENTRANT
  286. #include <sys/types.h>
  287. #include <netdb.h>
  288. ],[
  289. tmp_gethostbyname_r="proto_needs_reentrant"
  290. tmp_need_reentrant="yes"
  291. ])
  292. ])
  293. fi
  294. ])
  295. dnl CURL_CHECK_NEED_REENTRANT_GETPROTOBYNAME_R
  296. dnl -------------------------------------------------
  297. dnl Checks if the preprocessor _REENTRANT definition
  298. dnl makes function getprotobyname_r compiler visible.
  299. AC_DEFUN([CURL_CHECK_NEED_REENTRANT_GETPROTOBYNAME_R], [
  300. AC_LINK_IFELSE([
  301. AC_LANG_FUNC_LINK_TRY([getprotobyname_r])
  302. ],[
  303. tmp_getprotobyname_r="yes"
  304. ],[
  305. tmp_getprotobyname_r="no"
  306. ])
  307. if test "$tmp_getprotobyname_r" = "yes"; then
  308. AC_EGREP_CPP([getprotobyname_r],[
  309. #include <sys/types.h>
  310. #include <netdb.h>
  311. ],[
  312. tmp_getprotobyname_r="proto_declared"
  313. ],[
  314. AC_EGREP_CPP([getprotobyname_r],[
  315. #define _REENTRANT
  316. #include <sys/types.h>
  317. #include <netdb.h>
  318. ],[
  319. tmp_getprotobyname_r="proto_needs_reentrant"
  320. tmp_need_reentrant="yes"
  321. ])
  322. ])
  323. fi
  324. ])
  325. dnl CURL_CHECK_NEED_REENTRANT_GETSERVBYPORT_R
  326. dnl -------------------------------------------------
  327. dnl Checks if the preprocessor _REENTRANT definition
  328. dnl makes function getservbyport_r compiler visible.
  329. AC_DEFUN([CURL_CHECK_NEED_REENTRANT_GETSERVBYPORT_R], [
  330. AC_LINK_IFELSE([
  331. AC_LANG_FUNC_LINK_TRY([getservbyport_r])
  332. ],[
  333. tmp_getservbyport_r="yes"
  334. ],[
  335. tmp_getservbyport_r="no"
  336. ])
  337. if test "$tmp_getservbyport_r" = "yes"; then
  338. AC_EGREP_CPP([getservbyport_r],[
  339. #include <sys/types.h>
  340. #include <netdb.h>
  341. ],[
  342. tmp_getservbyport_r="proto_declared"
  343. ],[
  344. AC_EGREP_CPP([getservbyport_r],[
  345. #define _REENTRANT
  346. #include <sys/types.h>
  347. #include <netdb.h>
  348. ],[
  349. tmp_getservbyport_r="proto_needs_reentrant"
  350. tmp_need_reentrant="yes"
  351. ])
  352. ])
  353. fi
  354. ])
  355. dnl CURL_CHECK_NEED_REENTRANT_FUNCTIONS_R
  356. dnl -------------------------------------------------
  357. dnl Checks if the preprocessor _REENTRANT definition
  358. dnl makes several _r functions compiler visible.
  359. dnl Internal macro for CURL_CONFIGURE_REENTRANT.
  360. AC_DEFUN([CURL_CHECK_NEED_REENTRANT_FUNCTIONS_R], [
  361. if test "$tmp_need_reentrant" = "no"; then
  362. CURL_CHECK_NEED_REENTRANT_GMTIME_R
  363. fi
  364. if test "$tmp_need_reentrant" = "no"; then
  365. CURL_CHECK_NEED_REENTRANT_LOCALTIME_R
  366. fi
  367. if test "$tmp_need_reentrant" = "no"; then
  368. CURL_CHECK_NEED_REENTRANT_STRERROR_R
  369. fi
  370. if test "$tmp_need_reentrant" = "no"; then
  371. CURL_CHECK_NEED_REENTRANT_STRTOK_R
  372. fi
  373. if test "$tmp_need_reentrant" = "no"; then
  374. CURL_CHECK_NEED_REENTRANT_INET_NTOA_R
  375. fi
  376. if test "$tmp_need_reentrant" = "no"; then
  377. CURL_CHECK_NEED_REENTRANT_GETHOSTBYADDR_R
  378. fi
  379. if test "$tmp_need_reentrant" = "no"; then
  380. CURL_CHECK_NEED_REENTRANT_GETHOSTBYNAME_R
  381. fi
  382. if test "$tmp_need_reentrant" = "no"; then
  383. CURL_CHECK_NEED_REENTRANT_GETPROTOBYNAME_R
  384. fi
  385. if test "$tmp_need_reentrant" = "no"; then
  386. CURL_CHECK_NEED_REENTRANT_GETSERVBYPORT_R
  387. fi
  388. ])
  389. dnl CURL_CHECK_NEED_REENTRANT_SYSTEM
  390. dnl -------------------------------------------------
  391. dnl Checks if the preprocessor _REENTRANT definition
  392. dnl must be unconditionally done for this platform.
  393. dnl Internal macro for CURL_CONFIGURE_REENTRANT.
  394. AC_DEFUN([CURL_CHECK_NEED_REENTRANT_SYSTEM], [
  395. case $host_os in
  396. solaris*)
  397. tmp_need_reentrant="yes"
  398. ;;
  399. *)
  400. tmp_need_reentrant="no"
  401. ;;
  402. esac
  403. ])
  404. dnl CURL_CHECK_NEED_THREAD_SAFE_SYSTEM
  405. dnl -------------------------------------------------
  406. dnl Checks if the preprocessor _THREAD_SAFE definition
  407. dnl must be unconditionally done for this platform.
  408. dnl Internal macro for CURL_CONFIGURE_THREAD_SAFE.
  409. AC_DEFUN([CURL_CHECK_NEED_THREAD_SAFE_SYSTEM], [
  410. case $host_os in
  411. aix[[123]].* | aix4.[[012]].*)
  412. dnl aix 4.2 and older
  413. tmp_need_thread_safe="no"
  414. ;;
  415. aix*)
  416. dnl AIX 4.3 and newer
  417. tmp_need_thread_safe="yes"
  418. ;;
  419. *)
  420. tmp_need_thread_safe="no"
  421. ;;
  422. esac
  423. ])
  424. dnl CURL_CONFIGURE_FROM_NOW_ON_WITH_REENTRANT
  425. dnl -------------------------------------------------
  426. dnl This macro ensures that configuration tests done
  427. dnl after this will execute with preprocessor symbol
  428. dnl _REENTRANT defined. This macro also ensures that
  429. dnl the generated config file defines NEED_REENTRANT
  430. dnl and that in turn curl_setup.h will define _REENTRANT.
  431. dnl Internal macro for CURL_CONFIGURE_REENTRANT.
  432. AC_DEFUN([CURL_CONFIGURE_FROM_NOW_ON_WITH_REENTRANT], [
  433. AC_DEFINE(NEED_REENTRANT, 1,
  434. [Define to 1 if _REENTRANT preprocessor symbol must be defined.])
  435. cat >>confdefs.h <<_EOF
  436. #ifndef _REENTRANT
  437. # define _REENTRANT
  438. #endif
  439. _EOF
  440. ])
  441. dnl CURL_CONFIGURE_FROM_NOW_ON_WITH_THREAD_SAFE
  442. dnl -------------------------------------------------
  443. dnl This macro ensures that configuration tests done
  444. dnl after this will execute with preprocessor symbol
  445. dnl _THREAD_SAFE defined. This macro also ensures that
  446. dnl the generated config file defines NEED_THREAD_SAFE
  447. dnl and that in turn curl_setup.h will define _THREAD_SAFE.
  448. dnl Internal macro for CURL_CONFIGURE_THREAD_SAFE.
  449. AC_DEFUN([CURL_CONFIGURE_FROM_NOW_ON_WITH_THREAD_SAFE], [
  450. AC_DEFINE(NEED_THREAD_SAFE, 1,
  451. [Define to 1 if _THREAD_SAFE preprocessor symbol must be defined.])
  452. cat >>confdefs.h <<_EOF
  453. #ifndef _THREAD_SAFE
  454. # define _THREAD_SAFE
  455. #endif
  456. _EOF
  457. ])
  458. dnl CURL_CONFIGURE_REENTRANT
  459. dnl -------------------------------------------------
  460. dnl This first checks if the preprocessor _REENTRANT
  461. dnl symbol is already defined. If it isn't currently
  462. dnl defined a set of checks are performed to verify
  463. dnl if its definition is required to make visible to
  464. dnl the compiler a set of *_r functions. Finally, if
  465. dnl _REENTRANT is already defined or needed it takes
  466. dnl care of making adjustments necessary to ensure
  467. dnl that it is defined equally for further configure
  468. dnl tests and generated config file.
  469. AC_DEFUN([CURL_CONFIGURE_REENTRANT], [
  470. AC_PREREQ([2.50])dnl
  471. #
  472. AC_MSG_CHECKING([if _REENTRANT is already defined])
  473. AC_COMPILE_IFELSE([
  474. AC_LANG_PROGRAM([[
  475. ]],[[
  476. #ifdef _REENTRANT
  477. int dummy=1;
  478. #else
  479. force compilation error
  480. #endif
  481. ]])
  482. ],[
  483. AC_MSG_RESULT([yes])
  484. tmp_reentrant_initially_defined="yes"
  485. ],[
  486. AC_MSG_RESULT([no])
  487. tmp_reentrant_initially_defined="no"
  488. ])
  489. #
  490. if test "$tmp_reentrant_initially_defined" = "no"; then
  491. AC_MSG_CHECKING([if _REENTRANT is actually needed])
  492. CURL_CHECK_NEED_REENTRANT_SYSTEM
  493. if test "$tmp_need_reentrant" = "no"; then
  494. CURL_CHECK_NEED_REENTRANT_ERRNO
  495. fi
  496. if test "$tmp_need_reentrant" = "no"; then
  497. CURL_CHECK_NEED_REENTRANT_FUNCTIONS_R
  498. fi
  499. if test "$tmp_need_reentrant" = "yes"; then
  500. AC_MSG_RESULT([yes])
  501. else
  502. AC_MSG_RESULT([no])
  503. fi
  504. fi
  505. #
  506. AC_MSG_CHECKING([if _REENTRANT is onwards defined])
  507. if test "$tmp_reentrant_initially_defined" = "yes" ||
  508. test "$tmp_need_reentrant" = "yes"; then
  509. CURL_CONFIGURE_FROM_NOW_ON_WITH_REENTRANT
  510. AC_MSG_RESULT([yes])
  511. else
  512. AC_MSG_RESULT([no])
  513. fi
  514. #
  515. ])
  516. dnl CURL_CONFIGURE_THREAD_SAFE
  517. dnl -------------------------------------------------
  518. dnl This first checks if the preprocessor _THREAD_SAFE
  519. dnl symbol is already defined. If it isn't currently
  520. dnl defined a set of checks are performed to verify
  521. dnl if its definition is required. Finally, if
  522. dnl _THREAD_SAFE is already defined or needed it takes
  523. dnl care of making adjustments necessary to ensure
  524. dnl that it is defined equally for further configure
  525. dnl tests and generated config file.
  526. AC_DEFUN([CURL_CONFIGURE_THREAD_SAFE], [
  527. AC_PREREQ([2.50])dnl
  528. #
  529. AC_MSG_CHECKING([if _THREAD_SAFE is already defined])
  530. AC_COMPILE_IFELSE([
  531. AC_LANG_PROGRAM([[
  532. ]],[[
  533. #ifdef _THREAD_SAFE
  534. int dummy=1;
  535. #else
  536. force compilation error
  537. #endif
  538. ]])
  539. ],[
  540. AC_MSG_RESULT([yes])
  541. tmp_thread_safe_initially_defined="yes"
  542. ],[
  543. AC_MSG_RESULT([no])
  544. tmp_thread_safe_initially_defined="no"
  545. ])
  546. #
  547. if test "$tmp_thread_safe_initially_defined" = "no"; then
  548. AC_MSG_CHECKING([if _THREAD_SAFE is actually needed])
  549. CURL_CHECK_NEED_THREAD_SAFE_SYSTEM
  550. if test "$tmp_need_thread_safe" = "yes"; then
  551. AC_MSG_RESULT([yes])
  552. else
  553. AC_MSG_RESULT([no])
  554. fi
  555. fi
  556. #
  557. AC_MSG_CHECKING([if _THREAD_SAFE is onwards defined])
  558. if test "$tmp_thread_safe_initially_defined" = "yes" ||
  559. test "$tmp_need_thread_safe" = "yes"; then
  560. CURL_CONFIGURE_FROM_NOW_ON_WITH_THREAD_SAFE
  561. AC_MSG_RESULT([yes])
  562. else
  563. AC_MSG_RESULT([no])
  564. fi
  565. #
  566. ])