curl-reentrant.m4 16 KB

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