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