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 73 27*6236dae4SAndroid Build Coastguard Worker 28*6236dae4SAndroid Build Coastguard Worker 29*6236dae4SAndroid Build Coastguard Workerdnl CURL_INCLUDES_ARPA_INET 30*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 31*6236dae4SAndroid Build Coastguard Workerdnl Set up variable with list of headers that must be 32*6236dae4SAndroid Build Coastguard Workerdnl included when arpa/inet.h is to be included. 33*6236dae4SAndroid Build Coastguard Worker 34*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_INCLUDES_ARPA_INET], [ 35*6236dae4SAndroid Build Coastguard Workercurl_includes_arpa_inet="\ 36*6236dae4SAndroid Build Coastguard Worker/* includes start */ 37*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_SYS_TYPES_H 38*6236dae4SAndroid Build Coastguard Worker# include <sys/types.h> 39*6236dae4SAndroid Build Coastguard Worker#endif 40*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_SYS_SOCKET_H 41*6236dae4SAndroid Build Coastguard Worker# include <sys/socket.h> 42*6236dae4SAndroid Build Coastguard Worker#endif 43*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_NETINET_IN_H 44*6236dae4SAndroid Build Coastguard Worker# include <netinet/in.h> 45*6236dae4SAndroid Build Coastguard Worker#endif 46*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_ARPA_INET_H 47*6236dae4SAndroid Build Coastguard Worker# include <arpa/inet.h> 48*6236dae4SAndroid Build Coastguard Worker#endif 49*6236dae4SAndroid Build Coastguard Worker#ifdef _WIN32 50*6236dae4SAndroid Build Coastguard Worker#include <winsock2.h> 51*6236dae4SAndroid Build Coastguard Worker#include <ws2tcpip.h> 52*6236dae4SAndroid Build Coastguard Worker#endif 53*6236dae4SAndroid Build Coastguard Worker/* includes end */" 54*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS( 55*6236dae4SAndroid Build Coastguard Worker sys/types.h sys/socket.h netinet/in.h arpa/inet.h, 56*6236dae4SAndroid Build Coastguard Worker [], [], [$curl_includes_arpa_inet]) 57*6236dae4SAndroid Build Coastguard Worker]) 58*6236dae4SAndroid Build Coastguard Worker 59*6236dae4SAndroid Build Coastguard Worker 60*6236dae4SAndroid Build Coastguard Workerdnl CURL_INCLUDES_FCNTL 61*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 62*6236dae4SAndroid Build Coastguard Workerdnl Set up variable with list of headers that must be 63*6236dae4SAndroid Build Coastguard Workerdnl included when fcntl.h is to be included. 64*6236dae4SAndroid Build Coastguard Worker 65*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_INCLUDES_FCNTL], [ 66*6236dae4SAndroid Build Coastguard Workercurl_includes_fcntl="\ 67*6236dae4SAndroid Build Coastguard Worker/* includes start */ 68*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_SYS_TYPES_H 69*6236dae4SAndroid Build Coastguard Worker# include <sys/types.h> 70*6236dae4SAndroid Build Coastguard Worker#endif 71*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_UNISTD_H 72*6236dae4SAndroid Build Coastguard Worker# include <unistd.h> 73*6236dae4SAndroid Build Coastguard Worker#endif 74*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_FCNTL_H 75*6236dae4SAndroid Build Coastguard Worker# include <fcntl.h> 76*6236dae4SAndroid Build Coastguard Worker#endif 77*6236dae4SAndroid Build Coastguard Worker/* includes end */" 78*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS( 79*6236dae4SAndroid Build Coastguard Worker sys/types.h unistd.h fcntl.h, 80*6236dae4SAndroid Build Coastguard Worker [], [], [$curl_includes_fcntl]) 81*6236dae4SAndroid Build Coastguard Worker]) 82*6236dae4SAndroid Build Coastguard Worker 83*6236dae4SAndroid Build Coastguard Worker 84*6236dae4SAndroid Build Coastguard Workerdnl CURL_INCLUDES_IFADDRS 85*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 86*6236dae4SAndroid Build Coastguard Workerdnl Set up variable with list of headers that must be 87*6236dae4SAndroid Build Coastguard Workerdnl included when ifaddrs.h is to be included. 88*6236dae4SAndroid Build Coastguard Worker 89*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_INCLUDES_IFADDRS], [ 90*6236dae4SAndroid Build Coastguard Workercurl_includes_ifaddrs="\ 91*6236dae4SAndroid Build Coastguard Worker/* includes start */ 92*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_SYS_TYPES_H 93*6236dae4SAndroid Build Coastguard Worker# include <sys/types.h> 94*6236dae4SAndroid Build Coastguard Worker#endif 95*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_SYS_SOCKET_H 96*6236dae4SAndroid Build Coastguard Worker# include <sys/socket.h> 97*6236dae4SAndroid Build Coastguard Worker#endif 98*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_NETINET_IN_H 99*6236dae4SAndroid Build Coastguard Worker# include <netinet/in.h> 100*6236dae4SAndroid Build Coastguard Worker#endif 101*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_IFADDRS_H 102*6236dae4SAndroid Build Coastguard Worker# include <ifaddrs.h> 103*6236dae4SAndroid Build Coastguard Worker#endif 104*6236dae4SAndroid Build Coastguard Worker/* includes end */" 105*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS( 106*6236dae4SAndroid Build Coastguard Worker sys/types.h sys/socket.h netinet/in.h ifaddrs.h, 107*6236dae4SAndroid Build Coastguard Worker [], [], [$curl_includes_ifaddrs]) 108*6236dae4SAndroid Build Coastguard Worker]) 109*6236dae4SAndroid Build Coastguard Worker 110*6236dae4SAndroid Build Coastguard Worker 111*6236dae4SAndroid Build Coastguard Workerdnl CURL_INCLUDES_LIBGEN 112*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 113*6236dae4SAndroid Build Coastguard Workerdnl Set up variable with list of headers that must be 114*6236dae4SAndroid Build Coastguard Workerdnl included when libgen.h is to be included. 115*6236dae4SAndroid Build Coastguard Worker 116*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_INCLUDES_LIBGEN], [ 117*6236dae4SAndroid Build Coastguard Workercurl_includes_libgen="\ 118*6236dae4SAndroid Build Coastguard Worker/* includes start */ 119*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_SYS_TYPES_H 120*6236dae4SAndroid Build Coastguard Worker# include <sys/types.h> 121*6236dae4SAndroid Build Coastguard Worker#endif 122*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_LIBGEN_H 123*6236dae4SAndroid Build Coastguard Worker# include <libgen.h> 124*6236dae4SAndroid Build Coastguard Worker#endif 125*6236dae4SAndroid Build Coastguard Worker/* includes end */" 126*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS( 127*6236dae4SAndroid Build Coastguard Worker sys/types.h libgen.h, 128*6236dae4SAndroid Build Coastguard Worker [], [], [$curl_includes_libgen]) 129*6236dae4SAndroid Build Coastguard Worker]) 130*6236dae4SAndroid Build Coastguard Worker 131*6236dae4SAndroid Build Coastguard Worker 132*6236dae4SAndroid Build Coastguard Workerdnl CURL_INCLUDES_NETDB 133*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 134*6236dae4SAndroid Build Coastguard Workerdnl Set up variable with list of headers that must be 135*6236dae4SAndroid Build Coastguard Workerdnl included when netdb.h is to be included. 136*6236dae4SAndroid Build Coastguard Worker 137*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_INCLUDES_NETDB], [ 138*6236dae4SAndroid Build Coastguard Workercurl_includes_netdb="\ 139*6236dae4SAndroid Build Coastguard Worker/* includes start */ 140*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_SYS_TYPES_H 141*6236dae4SAndroid Build Coastguard Worker# include <sys/types.h> 142*6236dae4SAndroid Build Coastguard Worker#endif 143*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_NETDB_H 144*6236dae4SAndroid Build Coastguard Worker# include <netdb.h> 145*6236dae4SAndroid Build Coastguard Worker#endif 146*6236dae4SAndroid Build Coastguard Worker/* includes end */" 147*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS( 148*6236dae4SAndroid Build Coastguard Worker sys/types.h netdb.h, 149*6236dae4SAndroid Build Coastguard Worker [], [], [$curl_includes_netdb]) 150*6236dae4SAndroid Build Coastguard Worker]) 151*6236dae4SAndroid Build Coastguard Worker 152*6236dae4SAndroid Build Coastguard Worker 153*6236dae4SAndroid Build Coastguard Workerdnl CURL_INCLUDES_SETJMP 154*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 155*6236dae4SAndroid Build Coastguard Workerdnl Set up variable with list of headers that must be 156*6236dae4SAndroid Build Coastguard Workerdnl included when setjmp.h is to be included. 157*6236dae4SAndroid Build Coastguard Worker 158*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_INCLUDES_SETJMP], [ 159*6236dae4SAndroid Build Coastguard Workercurl_includes_setjmp="\ 160*6236dae4SAndroid Build Coastguard Worker/* includes start */ 161*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_SYS_TYPES_H 162*6236dae4SAndroid Build Coastguard Worker# include <sys/types.h> 163*6236dae4SAndroid Build Coastguard Worker#endif 164*6236dae4SAndroid Build Coastguard Worker#include <setjmp.h> 165*6236dae4SAndroid Build Coastguard Worker/* includes end */" 166*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS( 167*6236dae4SAndroid Build Coastguard Worker sys/types.h, 168*6236dae4SAndroid Build Coastguard Worker [], [], [$curl_includes_setjmp]) 169*6236dae4SAndroid Build Coastguard Worker]) 170*6236dae4SAndroid Build Coastguard Worker 171*6236dae4SAndroid Build Coastguard Worker 172*6236dae4SAndroid Build Coastguard Workerdnl CURL_INCLUDES_SIGNAL 173*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 174*6236dae4SAndroid Build Coastguard Workerdnl Set up variable with list of headers that must be 175*6236dae4SAndroid Build Coastguard Workerdnl included when signal.h is to be included. 176*6236dae4SAndroid Build Coastguard Worker 177*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_INCLUDES_SIGNAL], [ 178*6236dae4SAndroid Build Coastguard Workercurl_includes_signal="\ 179*6236dae4SAndroid Build Coastguard Worker/* includes start */ 180*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_SYS_TYPES_H 181*6236dae4SAndroid Build Coastguard Worker# include <sys/types.h> 182*6236dae4SAndroid Build Coastguard Worker#endif 183*6236dae4SAndroid Build Coastguard Worker#include <signal.h> 184*6236dae4SAndroid Build Coastguard Worker/* includes end */" 185*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS( 186*6236dae4SAndroid Build Coastguard Worker sys/types.h, 187*6236dae4SAndroid Build Coastguard Worker [], [], [$curl_includes_signal]) 188*6236dae4SAndroid Build Coastguard Worker]) 189*6236dae4SAndroid Build Coastguard Worker 190*6236dae4SAndroid Build Coastguard Worker 191*6236dae4SAndroid Build Coastguard Workerdnl CURL_INCLUDES_STDLIB 192*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 193*6236dae4SAndroid Build Coastguard Workerdnl Set up variable with list of headers that must be 194*6236dae4SAndroid Build Coastguard Workerdnl included when stdlib.h is to be included. 195*6236dae4SAndroid Build Coastguard Worker 196*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_INCLUDES_STDLIB], [ 197*6236dae4SAndroid Build Coastguard Workercurl_includes_stdlib="\ 198*6236dae4SAndroid Build Coastguard Worker/* includes start */ 199*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_SYS_TYPES_H 200*6236dae4SAndroid Build Coastguard Worker# include <sys/types.h> 201*6236dae4SAndroid Build Coastguard Worker#endif 202*6236dae4SAndroid Build Coastguard Worker#include <stdlib.h> 203*6236dae4SAndroid Build Coastguard Worker/* includes end */" 204*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS( 205*6236dae4SAndroid Build Coastguard Worker sys/types.h, 206*6236dae4SAndroid Build Coastguard Worker [], [], [$curl_includes_stdlib]) 207*6236dae4SAndroid Build Coastguard Worker]) 208*6236dae4SAndroid Build Coastguard Worker 209*6236dae4SAndroid Build Coastguard Worker 210*6236dae4SAndroid Build Coastguard Workerdnl CURL_INCLUDES_STRING 211*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 212*6236dae4SAndroid Build Coastguard Workerdnl Set up variable with list of headers that must be 213*6236dae4SAndroid Build Coastguard Workerdnl included when string(s).h is to be included. 214*6236dae4SAndroid Build Coastguard Worker 215*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_INCLUDES_STRING], [ 216*6236dae4SAndroid Build Coastguard Workercurl_includes_string="\ 217*6236dae4SAndroid Build Coastguard Worker/* includes start */ 218*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_SYS_TYPES_H 219*6236dae4SAndroid Build Coastguard Worker# include <sys/types.h> 220*6236dae4SAndroid Build Coastguard Worker#endif 221*6236dae4SAndroid Build Coastguard Worker#include <string.h> 222*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_STRINGS_H 223*6236dae4SAndroid Build Coastguard Worker# include <strings.h> 224*6236dae4SAndroid Build Coastguard Worker#endif 225*6236dae4SAndroid Build Coastguard Worker/* includes end */" 226*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS( 227*6236dae4SAndroid Build Coastguard Worker sys/types.h strings.h, 228*6236dae4SAndroid Build Coastguard Worker [], [], [$curl_includes_string]) 229*6236dae4SAndroid Build Coastguard Worker]) 230*6236dae4SAndroid Build Coastguard Worker 231*6236dae4SAndroid Build Coastguard Worker 232*6236dae4SAndroid Build Coastguard Workerdnl CURL_INCLUDES_STROPTS 233*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 234*6236dae4SAndroid Build Coastguard Workerdnl Set up variable with list of headers that must be 235*6236dae4SAndroid Build Coastguard Workerdnl included when stropts.h is to be included. 236*6236dae4SAndroid Build Coastguard Worker 237*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_INCLUDES_STROPTS], [ 238*6236dae4SAndroid Build Coastguard Workercurl_includes_stropts="\ 239*6236dae4SAndroid Build Coastguard Worker/* includes start */ 240*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_SYS_TYPES_H 241*6236dae4SAndroid Build Coastguard Worker# include <sys/types.h> 242*6236dae4SAndroid Build Coastguard Worker#endif 243*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_UNISTD_H 244*6236dae4SAndroid Build Coastguard Worker# include <unistd.h> 245*6236dae4SAndroid Build Coastguard Worker#endif 246*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_SYS_SOCKET_H 247*6236dae4SAndroid Build Coastguard Worker# include <sys/socket.h> 248*6236dae4SAndroid Build Coastguard Worker#endif 249*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_SYS_IOCTL_H 250*6236dae4SAndroid Build Coastguard Worker# include <sys/ioctl.h> 251*6236dae4SAndroid Build Coastguard Worker#endif 252*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_STROPTS_H 253*6236dae4SAndroid Build Coastguard Worker# include <stropts.h> 254*6236dae4SAndroid Build Coastguard Worker#endif 255*6236dae4SAndroid Build Coastguard Worker/* includes end */" 256*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS( 257*6236dae4SAndroid Build Coastguard Worker sys/types.h unistd.h sys/socket.h sys/ioctl.h stropts.h, 258*6236dae4SAndroid Build Coastguard Worker [], [], [$curl_includes_stropts]) 259*6236dae4SAndroid Build Coastguard Worker]) 260*6236dae4SAndroid Build Coastguard Worker 261*6236dae4SAndroid Build Coastguard Worker 262*6236dae4SAndroid Build Coastguard Workerdnl CURL_INCLUDES_SYS_SOCKET 263*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 264*6236dae4SAndroid Build Coastguard Workerdnl Set up variable with list of headers that must be 265*6236dae4SAndroid Build Coastguard Workerdnl included when sys/socket.h is to be included. 266*6236dae4SAndroid Build Coastguard Worker 267*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_INCLUDES_SYS_SOCKET], [ 268*6236dae4SAndroid Build Coastguard Workercurl_includes_sys_socket="\ 269*6236dae4SAndroid Build Coastguard Worker/* includes start */ 270*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_SYS_TYPES_H 271*6236dae4SAndroid Build Coastguard Worker# include <sys/types.h> 272*6236dae4SAndroid Build Coastguard Worker#endif 273*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_SYS_SOCKET_H 274*6236dae4SAndroid Build Coastguard Worker# include <sys/socket.h> 275*6236dae4SAndroid Build Coastguard Worker#endif 276*6236dae4SAndroid Build Coastguard Worker/* includes end */" 277*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS( 278*6236dae4SAndroid Build Coastguard Worker sys/types.h sys/socket.h, 279*6236dae4SAndroid Build Coastguard Worker [], [], [$curl_includes_sys_socket]) 280*6236dae4SAndroid Build Coastguard Worker]) 281*6236dae4SAndroid Build Coastguard Worker 282*6236dae4SAndroid Build Coastguard Worker 283*6236dae4SAndroid Build Coastguard Workerdnl CURL_INCLUDES_SYS_TYPES 284*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 285*6236dae4SAndroid Build Coastguard Workerdnl Set up variable with list of headers that must be 286*6236dae4SAndroid Build Coastguard Workerdnl included when sys/types.h is to be included. 287*6236dae4SAndroid Build Coastguard Worker 288*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_INCLUDES_SYS_TYPES], [ 289*6236dae4SAndroid Build Coastguard Workercurl_includes_sys_types="\ 290*6236dae4SAndroid Build Coastguard Worker/* includes start */ 291*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_SYS_TYPES_H 292*6236dae4SAndroid Build Coastguard Worker# include <sys/types.h> 293*6236dae4SAndroid Build Coastguard Worker#endif 294*6236dae4SAndroid Build Coastguard Worker/* includes end */" 295*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS( 296*6236dae4SAndroid Build Coastguard Worker sys/types.h, 297*6236dae4SAndroid Build Coastguard Worker [], [], [$curl_includes_sys_types]) 298*6236dae4SAndroid Build Coastguard Worker]) 299*6236dae4SAndroid Build Coastguard Worker 300*6236dae4SAndroid Build Coastguard Worker 301*6236dae4SAndroid Build Coastguard Workerdnl CURL_INCLUDES_SYS_XATTR 302*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 303*6236dae4SAndroid Build Coastguard Workerdnl Set up variable with list of headers that must be 304*6236dae4SAndroid Build Coastguard Workerdnl included when sys/xattr.h is to be included. 305*6236dae4SAndroid Build Coastguard Worker 306*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_INCLUDES_SYS_XATTR], [ 307*6236dae4SAndroid Build Coastguard Workercurl_includes_sys_xattr="\ 308*6236dae4SAndroid Build Coastguard Worker/* includes start */ 309*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_SYS_TYPES_H 310*6236dae4SAndroid Build Coastguard Worker# include <sys/types.h> 311*6236dae4SAndroid Build Coastguard Worker#endif 312*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_SYS_XATTR_H 313*6236dae4SAndroid Build Coastguard Worker# include <sys/xattr.h> 314*6236dae4SAndroid Build Coastguard Worker#endif 315*6236dae4SAndroid Build Coastguard Worker/* includes end */" 316*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS( 317*6236dae4SAndroid Build Coastguard Worker sys/types.h sys/xattr.h, 318*6236dae4SAndroid Build Coastguard Worker [], [], [$curl_includes_sys_xattr]) 319*6236dae4SAndroid Build Coastguard Worker]) 320*6236dae4SAndroid Build Coastguard Worker 321*6236dae4SAndroid Build Coastguard Workerdnl CURL_INCLUDES_TIME 322*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 323*6236dae4SAndroid Build Coastguard Workerdnl Set up variable with list of headers that must be 324*6236dae4SAndroid Build Coastguard Workerdnl included when time.h is to be included. 325*6236dae4SAndroid Build Coastguard Worker 326*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_INCLUDES_TIME], [ 327*6236dae4SAndroid Build Coastguard Workercurl_includes_time="\ 328*6236dae4SAndroid Build Coastguard Worker/* includes start */ 329*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_SYS_TYPES_H 330*6236dae4SAndroid Build Coastguard Worker# include <sys/types.h> 331*6236dae4SAndroid Build Coastguard Worker#endif 332*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_SYS_TIME_H 333*6236dae4SAndroid Build Coastguard Worker# include <sys/time.h> 334*6236dae4SAndroid Build Coastguard Worker#endif 335*6236dae4SAndroid Build Coastguard Worker#include <time.h> 336*6236dae4SAndroid Build Coastguard Worker/* includes end */" 337*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS( 338*6236dae4SAndroid Build Coastguard Worker sys/types.h sys/time.h, 339*6236dae4SAndroid Build Coastguard Worker [], [], [$curl_includes_time]) 340*6236dae4SAndroid Build Coastguard Worker]) 341*6236dae4SAndroid Build Coastguard Worker 342*6236dae4SAndroid Build Coastguard Worker 343*6236dae4SAndroid Build Coastguard Workerdnl CURL_INCLUDES_UNISTD 344*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 345*6236dae4SAndroid Build Coastguard Workerdnl Set up variable with list of headers that must be 346*6236dae4SAndroid Build Coastguard Workerdnl included when unistd.h is to be included. 347*6236dae4SAndroid Build Coastguard Worker 348*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_INCLUDES_UNISTD], [ 349*6236dae4SAndroid Build Coastguard Workercurl_includes_unistd="\ 350*6236dae4SAndroid Build Coastguard Worker/* includes start */ 351*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_SYS_TYPES_H 352*6236dae4SAndroid Build Coastguard Worker# include <sys/types.h> 353*6236dae4SAndroid Build Coastguard Worker#endif 354*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_UNISTD_H 355*6236dae4SAndroid Build Coastguard Worker# include <unistd.h> 356*6236dae4SAndroid Build Coastguard Worker#endif 357*6236dae4SAndroid Build Coastguard Worker/* includes end */" 358*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS( 359*6236dae4SAndroid Build Coastguard Worker sys/types.h unistd.h, 360*6236dae4SAndroid Build Coastguard Worker [], [], [$curl_includes_unistd]) 361*6236dae4SAndroid Build Coastguard Worker]) 362*6236dae4SAndroid Build Coastguard Worker 363*6236dae4SAndroid Build Coastguard Worker 364*6236dae4SAndroid Build Coastguard Workerdnl CURL_INCLUDES_WINSOCK2 365*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 366*6236dae4SAndroid Build Coastguard Workerdnl Set up variable with list of headers that must be 367*6236dae4SAndroid Build Coastguard Workerdnl included when winsock2.h is to be included. 368*6236dae4SAndroid Build Coastguard Worker 369*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_INCLUDES_WINSOCK2], [ 370*6236dae4SAndroid Build Coastguard Workercurl_includes_winsock2="\ 371*6236dae4SAndroid Build Coastguard Worker/* includes start */ 372*6236dae4SAndroid Build Coastguard Worker#ifdef _WIN32 373*6236dae4SAndroid Build Coastguard Worker# ifndef WIN32_LEAN_AND_MEAN 374*6236dae4SAndroid Build Coastguard Worker# define WIN32_LEAN_AND_MEAN 375*6236dae4SAndroid Build Coastguard Worker# endif 376*6236dae4SAndroid Build Coastguard Worker# include <winsock2.h> 377*6236dae4SAndroid Build Coastguard Worker#endif 378*6236dae4SAndroid Build Coastguard Worker/* includes end */" 379*6236dae4SAndroid Build Coastguard Worker CURL_CHECK_NATIVE_WINDOWS 380*6236dae4SAndroid Build Coastguard Worker]) 381*6236dae4SAndroid Build Coastguard Worker 382*6236dae4SAndroid Build Coastguard Worker 383*6236dae4SAndroid Build Coastguard Workerdnl CURL_INCLUDES_WS2TCPIP 384*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 385*6236dae4SAndroid Build Coastguard Workerdnl Set up variable with list of headers that must be 386*6236dae4SAndroid Build Coastguard Workerdnl included when ws2tcpip.h is to be included. 387*6236dae4SAndroid Build Coastguard Worker 388*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_INCLUDES_WS2TCPIP], [ 389*6236dae4SAndroid Build Coastguard Workercurl_includes_ws2tcpip="\ 390*6236dae4SAndroid Build Coastguard Worker/* includes start */ 391*6236dae4SAndroid Build Coastguard Worker#ifdef _WIN32 392*6236dae4SAndroid Build Coastguard Worker# ifndef WIN32_LEAN_AND_MEAN 393*6236dae4SAndroid Build Coastguard Worker# define WIN32_LEAN_AND_MEAN 394*6236dae4SAndroid Build Coastguard Worker# endif 395*6236dae4SAndroid Build Coastguard Worker# include <winsock2.h> 396*6236dae4SAndroid Build Coastguard Worker# include <ws2tcpip.h> 397*6236dae4SAndroid Build Coastguard Worker#endif 398*6236dae4SAndroid Build Coastguard Worker/* includes end */" 399*6236dae4SAndroid Build Coastguard Worker CURL_CHECK_NATIVE_WINDOWS 400*6236dae4SAndroid Build Coastguard Worker]) 401*6236dae4SAndroid Build Coastguard Worker 402*6236dae4SAndroid Build Coastguard Worker 403*6236dae4SAndroid Build Coastguard Workerdnl CURL_INCLUDES_BSDSOCKET 404*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 405*6236dae4SAndroid Build Coastguard Workerdnl Set up variable with list of headers that must be 406*6236dae4SAndroid Build Coastguard Workerdnl included when bsdsocket.h is to be included. 407*6236dae4SAndroid Build Coastguard Worker 408*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_INCLUDES_BSDSOCKET], [ 409*6236dae4SAndroid Build Coastguard Workercurl_includes_bsdsocket="\ 410*6236dae4SAndroid Build Coastguard Worker/* includes start */ 411*6236dae4SAndroid Build Coastguard Worker#if defined(HAVE_PROTO_BSDSOCKET_H) 412*6236dae4SAndroid Build Coastguard Worker# define __NO_NET_API 413*6236dae4SAndroid Build Coastguard Worker# define __USE_INLINE__ 414*6236dae4SAndroid Build Coastguard Worker# include <proto/bsdsocket.h> 415*6236dae4SAndroid Build Coastguard Worker# ifdef HAVE_SYS_IOCTL_H 416*6236dae4SAndroid Build Coastguard Worker# include <sys/ioctl.h> 417*6236dae4SAndroid Build Coastguard Worker# endif 418*6236dae4SAndroid Build Coastguard Worker# ifdef __amigaos4__ 419*6236dae4SAndroid Build Coastguard Workerstruct SocketIFace *ISocket = NULL; 420*6236dae4SAndroid Build Coastguard Worker# else 421*6236dae4SAndroid Build Coastguard Workerstruct Library *SocketBase = NULL; 422*6236dae4SAndroid Build Coastguard Worker# endif 423*6236dae4SAndroid Build Coastguard Worker# define select(a,b,c,d,e) WaitSelect(a,b,c,d,e,0) 424*6236dae4SAndroid Build Coastguard Worker#endif 425*6236dae4SAndroid Build Coastguard Worker/* includes end */" 426*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS( 427*6236dae4SAndroid Build Coastguard Worker proto/bsdsocket.h, 428*6236dae4SAndroid Build Coastguard Worker [], [], [$curl_includes_bsdsocket]) 429*6236dae4SAndroid Build Coastguard Worker]) 430*6236dae4SAndroid Build Coastguard Worker 431*6236dae4SAndroid Build Coastguard Workerdnl CURL_INCLUDES_NETIF 432*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 433*6236dae4SAndroid Build Coastguard Workerdnl Set up variable with list of headers that must be 434*6236dae4SAndroid Build Coastguard Workerdnl included when net/if.h is to be included. 435*6236dae4SAndroid Build Coastguard Worker 436*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_INCLUDES_NETIF], [ 437*6236dae4SAndroid Build Coastguard Workercurl_includes_netif="\ 438*6236dae4SAndroid Build Coastguard Worker/* includes start */ 439*6236dae4SAndroid Build Coastguard Worker#ifdef HAVE_NET_IF_H 440*6236dae4SAndroid Build Coastguard Worker# include <net/if.h> 441*6236dae4SAndroid Build Coastguard Worker#endif 442*6236dae4SAndroid Build Coastguard Worker/* includes end */" 443*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS( 444*6236dae4SAndroid Build Coastguard Worker net/if.h, 445*6236dae4SAndroid Build Coastguard Worker [], [], [$curl_includes_netif]) 446*6236dae4SAndroid Build Coastguard Worker]) 447*6236dae4SAndroid Build Coastguard Worker 448*6236dae4SAndroid Build Coastguard Worker 449*6236dae4SAndroid Build Coastguard Workerdnl CURL_PREPROCESS_CALLCONV 450*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 451*6236dae4SAndroid Build Coastguard Workerdnl Set up variable with a preprocessor block which 452*6236dae4SAndroid Build Coastguard Workerdnl defines function calling convention. 453*6236dae4SAndroid Build Coastguard Worker 454*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_PREPROCESS_CALLCONV], [ 455*6236dae4SAndroid Build Coastguard Workercurl_preprocess_callconv="\ 456*6236dae4SAndroid Build Coastguard Worker/* preprocess start */ 457*6236dae4SAndroid Build Coastguard Worker#ifdef _WIN32 458*6236dae4SAndroid Build Coastguard Worker# define FUNCALLCONV __stdcall 459*6236dae4SAndroid Build Coastguard Worker#else 460*6236dae4SAndroid Build Coastguard Worker# define FUNCALLCONV 461*6236dae4SAndroid Build Coastguard Worker#endif 462*6236dae4SAndroid Build Coastguard Worker/* preprocess end */" 463*6236dae4SAndroid Build Coastguard Worker]) 464*6236dae4SAndroid Build Coastguard Worker 465*6236dae4SAndroid Build Coastguard Worker 466*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_ALARM 467*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 468*6236dae4SAndroid Build Coastguard Workerdnl Verify if alarm is available, prototyped, and 469*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 470*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 471*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_alarm, then 472*6236dae4SAndroid Build Coastguard Workerdnl HAVE_ALARM will be defined. 473*6236dae4SAndroid Build Coastguard Worker 474*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_ALARM], [ 475*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_UNISTD])dnl 476*6236dae4SAndroid Build Coastguard Worker # 477*6236dae4SAndroid Build Coastguard Worker tst_links_alarm="unknown" 478*6236dae4SAndroid Build Coastguard Worker tst_proto_alarm="unknown" 479*6236dae4SAndroid Build Coastguard Worker tst_compi_alarm="unknown" 480*6236dae4SAndroid Build Coastguard Worker tst_allow_alarm="unknown" 481*6236dae4SAndroid Build Coastguard Worker # 482*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if alarm can be linked]) 483*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 484*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([alarm]) 485*6236dae4SAndroid Build Coastguard Worker ],[ 486*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 487*6236dae4SAndroid Build Coastguard Worker tst_links_alarm="yes" 488*6236dae4SAndroid Build Coastguard Worker ],[ 489*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 490*6236dae4SAndroid Build Coastguard Worker tst_links_alarm="no" 491*6236dae4SAndroid Build Coastguard Worker ]) 492*6236dae4SAndroid Build Coastguard Worker # 493*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_alarm" = "yes"; then 494*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if alarm is prototyped]) 495*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([alarm],[ 496*6236dae4SAndroid Build Coastguard Worker $curl_includes_unistd 497*6236dae4SAndroid Build Coastguard Worker ],[ 498*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 499*6236dae4SAndroid Build Coastguard Worker tst_proto_alarm="yes" 500*6236dae4SAndroid Build Coastguard Worker ],[ 501*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 502*6236dae4SAndroid Build Coastguard Worker tst_proto_alarm="no" 503*6236dae4SAndroid Build Coastguard Worker ]) 504*6236dae4SAndroid Build Coastguard Worker fi 505*6236dae4SAndroid Build Coastguard Worker # 506*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_alarm" = "yes"; then 507*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if alarm is compilable]) 508*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 509*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 510*6236dae4SAndroid Build Coastguard Worker $curl_includes_unistd 511*6236dae4SAndroid Build Coastguard Worker ]],[[ 512*6236dae4SAndroid Build Coastguard Worker if(0 != alarm(0)) 513*6236dae4SAndroid Build Coastguard Worker return 1; 514*6236dae4SAndroid Build Coastguard Worker ]]) 515*6236dae4SAndroid Build Coastguard Worker ],[ 516*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 517*6236dae4SAndroid Build Coastguard Worker tst_compi_alarm="yes" 518*6236dae4SAndroid Build Coastguard Worker ],[ 519*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 520*6236dae4SAndroid Build Coastguard Worker tst_compi_alarm="no" 521*6236dae4SAndroid Build Coastguard Worker ]) 522*6236dae4SAndroid Build Coastguard Worker fi 523*6236dae4SAndroid Build Coastguard Worker # 524*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_alarm" = "yes"; then 525*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if alarm usage allowed]) 526*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_alarm" != "xyes"; then 527*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 528*6236dae4SAndroid Build Coastguard Worker tst_allow_alarm="yes" 529*6236dae4SAndroid Build Coastguard Worker else 530*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 531*6236dae4SAndroid Build Coastguard Worker tst_allow_alarm="no" 532*6236dae4SAndroid Build Coastguard Worker fi 533*6236dae4SAndroid Build Coastguard Worker fi 534*6236dae4SAndroid Build Coastguard Worker # 535*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if alarm might be used]) 536*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_alarm" = "yes" && 537*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_alarm" = "yes" && 538*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_alarm" = "yes" && 539*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_alarm" = "yes"; then 540*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 541*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_ALARM, 1, 542*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the alarm function.]) 543*6236dae4SAndroid Build Coastguard Worker curl_cv_func_alarm="yes" 544*6236dae4SAndroid Build Coastguard Worker else 545*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 546*6236dae4SAndroid Build Coastguard Worker curl_cv_func_alarm="no" 547*6236dae4SAndroid Build Coastguard Worker fi 548*6236dae4SAndroid Build Coastguard Worker]) 549*6236dae4SAndroid Build Coastguard Worker 550*6236dae4SAndroid Build Coastguard Worker 551*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_BASENAME 552*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 553*6236dae4SAndroid Build Coastguard Workerdnl Verify if basename is available, prototyped, and 554*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 555*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 556*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_basename, then 557*6236dae4SAndroid Build Coastguard Workerdnl HAVE_BASENAME will be defined. 558*6236dae4SAndroid Build Coastguard Worker 559*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_BASENAME], [ 560*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_STRING])dnl 561*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_LIBGEN])dnl 562*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_UNISTD])dnl 563*6236dae4SAndroid Build Coastguard Worker # 564*6236dae4SAndroid Build Coastguard Worker tst_links_basename="unknown" 565*6236dae4SAndroid Build Coastguard Worker tst_proto_basename="unknown" 566*6236dae4SAndroid Build Coastguard Worker tst_compi_basename="unknown" 567*6236dae4SAndroid Build Coastguard Worker tst_allow_basename="unknown" 568*6236dae4SAndroid Build Coastguard Worker # 569*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if basename can be linked]) 570*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 571*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([basename]) 572*6236dae4SAndroid Build Coastguard Worker ],[ 573*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 574*6236dae4SAndroid Build Coastguard Worker tst_links_basename="yes" 575*6236dae4SAndroid Build Coastguard Worker ],[ 576*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 577*6236dae4SAndroid Build Coastguard Worker tst_links_basename="no" 578*6236dae4SAndroid Build Coastguard Worker ]) 579*6236dae4SAndroid Build Coastguard Worker # 580*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_basename" = "yes"; then 581*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if basename is prototyped]) 582*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([basename],[ 583*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 584*6236dae4SAndroid Build Coastguard Worker $curl_includes_libgen 585*6236dae4SAndroid Build Coastguard Worker $curl_includes_unistd 586*6236dae4SAndroid Build Coastguard Worker ],[ 587*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 588*6236dae4SAndroid Build Coastguard Worker tst_proto_basename="yes" 589*6236dae4SAndroid Build Coastguard Worker ],[ 590*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 591*6236dae4SAndroid Build Coastguard Worker tst_proto_basename="no" 592*6236dae4SAndroid Build Coastguard Worker ]) 593*6236dae4SAndroid Build Coastguard Worker fi 594*6236dae4SAndroid Build Coastguard Worker # 595*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_basename" = "yes"; then 596*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if basename is compilable]) 597*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 598*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 599*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 600*6236dae4SAndroid Build Coastguard Worker $curl_includes_libgen 601*6236dae4SAndroid Build Coastguard Worker $curl_includes_unistd 602*6236dae4SAndroid Build Coastguard Worker ]],[[ 603*6236dae4SAndroid Build Coastguard Worker if(0 != basename(0)) 604*6236dae4SAndroid Build Coastguard Worker return 1; 605*6236dae4SAndroid Build Coastguard Worker ]]) 606*6236dae4SAndroid Build Coastguard Worker ],[ 607*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 608*6236dae4SAndroid Build Coastguard Worker tst_compi_basename="yes" 609*6236dae4SAndroid Build Coastguard Worker ],[ 610*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 611*6236dae4SAndroid Build Coastguard Worker tst_compi_basename="no" 612*6236dae4SAndroid Build Coastguard Worker ]) 613*6236dae4SAndroid Build Coastguard Worker fi 614*6236dae4SAndroid Build Coastguard Worker # 615*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_basename" = "yes"; then 616*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if basename usage allowed]) 617*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_basename" != "xyes"; then 618*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 619*6236dae4SAndroid Build Coastguard Worker tst_allow_basename="yes" 620*6236dae4SAndroid Build Coastguard Worker else 621*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 622*6236dae4SAndroid Build Coastguard Worker tst_allow_basename="no" 623*6236dae4SAndroid Build Coastguard Worker fi 624*6236dae4SAndroid Build Coastguard Worker fi 625*6236dae4SAndroid Build Coastguard Worker # 626*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if basename might be used]) 627*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_basename" = "yes" && 628*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_basename" = "yes" && 629*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_basename" = "yes" && 630*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_basename" = "yes"; then 631*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 632*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_BASENAME, 1, 633*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the basename function.]) 634*6236dae4SAndroid Build Coastguard Worker curl_cv_func_basename="yes" 635*6236dae4SAndroid Build Coastguard Worker else 636*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 637*6236dae4SAndroid Build Coastguard Worker curl_cv_func_basename="no" 638*6236dae4SAndroid Build Coastguard Worker fi 639*6236dae4SAndroid Build Coastguard Worker]) 640*6236dae4SAndroid Build Coastguard Worker 641*6236dae4SAndroid Build Coastguard Worker 642*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_CLOSESOCKET 643*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 644*6236dae4SAndroid Build Coastguard Workerdnl Verify if closesocket is available, prototyped, and 645*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 646*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 647*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_closesocket, then 648*6236dae4SAndroid Build Coastguard Workerdnl HAVE_CLOSESOCKET will be defined. 649*6236dae4SAndroid Build Coastguard Worker 650*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_CLOSESOCKET], [ 651*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_WINSOCK2])dnl 652*6236dae4SAndroid Build Coastguard Worker # 653*6236dae4SAndroid Build Coastguard Worker tst_links_closesocket="unknown" 654*6236dae4SAndroid Build Coastguard Worker tst_proto_closesocket="unknown" 655*6236dae4SAndroid Build Coastguard Worker tst_compi_closesocket="unknown" 656*6236dae4SAndroid Build Coastguard Worker tst_allow_closesocket="unknown" 657*6236dae4SAndroid Build Coastguard Worker # 658*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if closesocket can be linked]) 659*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 660*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 661*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 662*6236dae4SAndroid Build Coastguard Worker ]],[[ 663*6236dae4SAndroid Build Coastguard Worker if(0 != closesocket(0)) 664*6236dae4SAndroid Build Coastguard Worker return 1; 665*6236dae4SAndroid Build Coastguard Worker ]]) 666*6236dae4SAndroid Build Coastguard Worker ],[ 667*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 668*6236dae4SAndroid Build Coastguard Worker tst_links_closesocket="yes" 669*6236dae4SAndroid Build Coastguard Worker ],[ 670*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 671*6236dae4SAndroid Build Coastguard Worker tst_links_closesocket="no" 672*6236dae4SAndroid Build Coastguard Worker ]) 673*6236dae4SAndroid Build Coastguard Worker # 674*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_closesocket" = "yes"; then 675*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if closesocket is prototyped]) 676*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([closesocket],[ 677*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 678*6236dae4SAndroid Build Coastguard Worker ],[ 679*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 680*6236dae4SAndroid Build Coastguard Worker tst_proto_closesocket="yes" 681*6236dae4SAndroid Build Coastguard Worker ],[ 682*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 683*6236dae4SAndroid Build Coastguard Worker tst_proto_closesocket="no" 684*6236dae4SAndroid Build Coastguard Worker ]) 685*6236dae4SAndroid Build Coastguard Worker fi 686*6236dae4SAndroid Build Coastguard Worker # 687*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_closesocket" = "yes"; then 688*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if closesocket is compilable]) 689*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 690*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 691*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 692*6236dae4SAndroid Build Coastguard Worker ]],[[ 693*6236dae4SAndroid Build Coastguard Worker if(0 != closesocket(0)) 694*6236dae4SAndroid Build Coastguard Worker return 1; 695*6236dae4SAndroid Build Coastguard Worker ]]) 696*6236dae4SAndroid Build Coastguard Worker ],[ 697*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 698*6236dae4SAndroid Build Coastguard Worker tst_compi_closesocket="yes" 699*6236dae4SAndroid Build Coastguard Worker ],[ 700*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 701*6236dae4SAndroid Build Coastguard Worker tst_compi_closesocket="no" 702*6236dae4SAndroid Build Coastguard Worker ]) 703*6236dae4SAndroid Build Coastguard Worker fi 704*6236dae4SAndroid Build Coastguard Worker # 705*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_closesocket" = "yes"; then 706*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if closesocket usage allowed]) 707*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_closesocket" != "xyes"; then 708*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 709*6236dae4SAndroid Build Coastguard Worker tst_allow_closesocket="yes" 710*6236dae4SAndroid Build Coastguard Worker else 711*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 712*6236dae4SAndroid Build Coastguard Worker tst_allow_closesocket="no" 713*6236dae4SAndroid Build Coastguard Worker fi 714*6236dae4SAndroid Build Coastguard Worker fi 715*6236dae4SAndroid Build Coastguard Worker # 716*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if closesocket might be used]) 717*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_closesocket" = "yes" && 718*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_closesocket" = "yes" && 719*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_closesocket" = "yes" && 720*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_closesocket" = "yes"; then 721*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 722*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_CLOSESOCKET, 1, 723*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the closesocket function.]) 724*6236dae4SAndroid Build Coastguard Worker curl_cv_func_closesocket="yes" 725*6236dae4SAndroid Build Coastguard Worker else 726*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 727*6236dae4SAndroid Build Coastguard Worker curl_cv_func_closesocket="no" 728*6236dae4SAndroid Build Coastguard Worker fi 729*6236dae4SAndroid Build Coastguard Worker]) 730*6236dae4SAndroid Build Coastguard Worker 731*6236dae4SAndroid Build Coastguard Worker 732*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_CLOSESOCKET_CAMEL 733*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 734*6236dae4SAndroid Build Coastguard Workerdnl Verify if CloseSocket is available, prototyped, and 735*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 736*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 737*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_closesocket_camel, 738*6236dae4SAndroid Build Coastguard Workerdnl then HAVE_CLOSESOCKET_CAMEL will be defined. 739*6236dae4SAndroid Build Coastguard Worker 740*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_CLOSESOCKET_CAMEL], [ 741*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_SYS_SOCKET])dnl 742*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_BSDSOCKET])dnl 743*6236dae4SAndroid Build Coastguard Worker # 744*6236dae4SAndroid Build Coastguard Worker tst_links_closesocket_camel="unknown" 745*6236dae4SAndroid Build Coastguard Worker tst_proto_closesocket_camel="unknown" 746*6236dae4SAndroid Build Coastguard Worker tst_compi_closesocket_camel="unknown" 747*6236dae4SAndroid Build Coastguard Worker tst_allow_closesocket_camel="unknown" 748*6236dae4SAndroid Build Coastguard Worker # 749*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if CloseSocket can be linked]) 750*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 751*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 752*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 753*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_socket 754*6236dae4SAndroid Build Coastguard Worker ]],[[ 755*6236dae4SAndroid Build Coastguard Worker if(0 != CloseSocket(0)) 756*6236dae4SAndroid Build Coastguard Worker return 1; 757*6236dae4SAndroid Build Coastguard Worker ]]) 758*6236dae4SAndroid Build Coastguard Worker ],[ 759*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 760*6236dae4SAndroid Build Coastguard Worker tst_links_closesocket_camel="yes" 761*6236dae4SAndroid Build Coastguard Worker ],[ 762*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 763*6236dae4SAndroid Build Coastguard Worker tst_links_closesocket_camel="no" 764*6236dae4SAndroid Build Coastguard Worker ]) 765*6236dae4SAndroid Build Coastguard Worker # 766*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_closesocket_camel" = "yes"; then 767*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if CloseSocket is prototyped]) 768*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([CloseSocket],[ 769*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 770*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_socket 771*6236dae4SAndroid Build Coastguard Worker ],[ 772*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 773*6236dae4SAndroid Build Coastguard Worker tst_proto_closesocket_camel="yes" 774*6236dae4SAndroid Build Coastguard Worker ],[ 775*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 776*6236dae4SAndroid Build Coastguard Worker tst_proto_closesocket_camel="no" 777*6236dae4SAndroid Build Coastguard Worker ]) 778*6236dae4SAndroid Build Coastguard Worker fi 779*6236dae4SAndroid Build Coastguard Worker # 780*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_closesocket_camel" = "yes"; then 781*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if CloseSocket is compilable]) 782*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 783*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 784*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 785*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_socket 786*6236dae4SAndroid Build Coastguard Worker ]],[[ 787*6236dae4SAndroid Build Coastguard Worker if(0 != CloseSocket(0)) 788*6236dae4SAndroid Build Coastguard Worker return 1; 789*6236dae4SAndroid Build Coastguard Worker ]]) 790*6236dae4SAndroid Build Coastguard Worker ],[ 791*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 792*6236dae4SAndroid Build Coastguard Worker tst_compi_closesocket_camel="yes" 793*6236dae4SAndroid Build Coastguard Worker ],[ 794*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 795*6236dae4SAndroid Build Coastguard Worker tst_compi_closesocket_camel="no" 796*6236dae4SAndroid Build Coastguard Worker ]) 797*6236dae4SAndroid Build Coastguard Worker fi 798*6236dae4SAndroid Build Coastguard Worker # 799*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_closesocket_camel" = "yes"; then 800*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if CloseSocket usage allowed]) 801*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_closesocket_camel" != "xyes"; then 802*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 803*6236dae4SAndroid Build Coastguard Worker tst_allow_closesocket_camel="yes" 804*6236dae4SAndroid Build Coastguard Worker else 805*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 806*6236dae4SAndroid Build Coastguard Worker tst_allow_closesocket_camel="no" 807*6236dae4SAndroid Build Coastguard Worker fi 808*6236dae4SAndroid Build Coastguard Worker fi 809*6236dae4SAndroid Build Coastguard Worker # 810*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if CloseSocket might be used]) 811*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_closesocket_camel" = "yes" && 812*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_closesocket_camel" = "yes" && 813*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_closesocket_camel" = "yes" && 814*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_closesocket_camel" = "yes"; then 815*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 816*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_CLOSESOCKET_CAMEL, 1, 817*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the CloseSocket camel case function.]) 818*6236dae4SAndroid Build Coastguard Worker curl_cv_func_closesocket_camel="yes" 819*6236dae4SAndroid Build Coastguard Worker else 820*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 821*6236dae4SAndroid Build Coastguard Worker curl_cv_func_closesocket_camel="no" 822*6236dae4SAndroid Build Coastguard Worker fi 823*6236dae4SAndroid Build Coastguard Worker]) 824*6236dae4SAndroid Build Coastguard Worker 825*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_FCNTL 826*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 827*6236dae4SAndroid Build Coastguard Workerdnl Verify if fcntl is available, prototyped, and 828*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 829*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 830*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_fcntl, then 831*6236dae4SAndroid Build Coastguard Workerdnl HAVE_FCNTL will be defined. 832*6236dae4SAndroid Build Coastguard Worker 833*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_FCNTL], [ 834*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_FCNTL])dnl 835*6236dae4SAndroid Build Coastguard Worker # 836*6236dae4SAndroid Build Coastguard Worker tst_links_fcntl="unknown" 837*6236dae4SAndroid Build Coastguard Worker tst_proto_fcntl="unknown" 838*6236dae4SAndroid Build Coastguard Worker tst_compi_fcntl="unknown" 839*6236dae4SAndroid Build Coastguard Worker tst_allow_fcntl="unknown" 840*6236dae4SAndroid Build Coastguard Worker # 841*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if fcntl can be linked]) 842*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 843*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([fcntl]) 844*6236dae4SAndroid Build Coastguard Worker ],[ 845*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 846*6236dae4SAndroid Build Coastguard Worker tst_links_fcntl="yes" 847*6236dae4SAndroid Build Coastguard Worker ],[ 848*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 849*6236dae4SAndroid Build Coastguard Worker tst_links_fcntl="no" 850*6236dae4SAndroid Build Coastguard Worker ]) 851*6236dae4SAndroid Build Coastguard Worker # 852*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_fcntl" = "yes"; then 853*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if fcntl is prototyped]) 854*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([fcntl],[ 855*6236dae4SAndroid Build Coastguard Worker $curl_includes_fcntl 856*6236dae4SAndroid Build Coastguard Worker ],[ 857*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 858*6236dae4SAndroid Build Coastguard Worker tst_proto_fcntl="yes" 859*6236dae4SAndroid Build Coastguard Worker ],[ 860*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 861*6236dae4SAndroid Build Coastguard Worker tst_proto_fcntl="no" 862*6236dae4SAndroid Build Coastguard Worker ]) 863*6236dae4SAndroid Build Coastguard Worker fi 864*6236dae4SAndroid Build Coastguard Worker # 865*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_fcntl" = "yes"; then 866*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if fcntl is compilable]) 867*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 868*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 869*6236dae4SAndroid Build Coastguard Worker $curl_includes_fcntl 870*6236dae4SAndroid Build Coastguard Worker ]],[[ 871*6236dae4SAndroid Build Coastguard Worker if(0 != fcntl(0, 0, 0)) 872*6236dae4SAndroid Build Coastguard Worker return 1; 873*6236dae4SAndroid Build Coastguard Worker ]]) 874*6236dae4SAndroid Build Coastguard Worker ],[ 875*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 876*6236dae4SAndroid Build Coastguard Worker tst_compi_fcntl="yes" 877*6236dae4SAndroid Build Coastguard Worker ],[ 878*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 879*6236dae4SAndroid Build Coastguard Worker tst_compi_fcntl="no" 880*6236dae4SAndroid Build Coastguard Worker ]) 881*6236dae4SAndroid Build Coastguard Worker fi 882*6236dae4SAndroid Build Coastguard Worker # 883*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_fcntl" = "yes"; then 884*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if fcntl usage allowed]) 885*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_fcntl" != "xyes"; then 886*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 887*6236dae4SAndroid Build Coastguard Worker tst_allow_fcntl="yes" 888*6236dae4SAndroid Build Coastguard Worker else 889*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 890*6236dae4SAndroid Build Coastguard Worker tst_allow_fcntl="no" 891*6236dae4SAndroid Build Coastguard Worker fi 892*6236dae4SAndroid Build Coastguard Worker fi 893*6236dae4SAndroid Build Coastguard Worker # 894*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if fcntl might be used]) 895*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_fcntl" = "yes" && 896*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_fcntl" = "yes" && 897*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_fcntl" = "yes" && 898*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_fcntl" = "yes"; then 899*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 900*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_FCNTL, 1, 901*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the fcntl function.]) 902*6236dae4SAndroid Build Coastguard Worker curl_cv_func_fcntl="yes" 903*6236dae4SAndroid Build Coastguard Worker CURL_CHECK_FUNC_FCNTL_O_NONBLOCK 904*6236dae4SAndroid Build Coastguard Worker else 905*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 906*6236dae4SAndroid Build Coastguard Worker curl_cv_func_fcntl="no" 907*6236dae4SAndroid Build Coastguard Worker fi 908*6236dae4SAndroid Build Coastguard Worker]) 909*6236dae4SAndroid Build Coastguard Worker 910*6236dae4SAndroid Build Coastguard Worker 911*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_FCNTL_O_NONBLOCK 912*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 913*6236dae4SAndroid Build Coastguard Workerdnl Verify if fcntl with status flag O_NONBLOCK is 914*6236dae4SAndroid Build Coastguard Workerdnl available, can be compiled, and seems to work. If 915*6236dae4SAndroid Build Coastguard Workerdnl all of these are true, then HAVE_FCNTL_O_NONBLOCK 916*6236dae4SAndroid Build Coastguard Workerdnl will be defined. 917*6236dae4SAndroid Build Coastguard Worker 918*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_FCNTL_O_NONBLOCK], [ 919*6236dae4SAndroid Build Coastguard Worker # 920*6236dae4SAndroid Build Coastguard Worker tst_compi_fcntl_o_nonblock="unknown" 921*6236dae4SAndroid Build Coastguard Worker tst_allow_fcntl_o_nonblock="unknown" 922*6236dae4SAndroid Build Coastguard Worker # 923*6236dae4SAndroid Build Coastguard Worker case $host_os in 924*6236dae4SAndroid Build Coastguard Worker sunos4* | aix3*) 925*6236dae4SAndroid Build Coastguard Worker dnl O_NONBLOCK does not work on these platforms 926*6236dae4SAndroid Build Coastguard Worker curl_disallow_fcntl_o_nonblock="yes" 927*6236dae4SAndroid Build Coastguard Worker ;; 928*6236dae4SAndroid Build Coastguard Worker esac 929*6236dae4SAndroid Build Coastguard Worker # 930*6236dae4SAndroid Build Coastguard Worker if test "$curl_cv_func_fcntl" = "yes"; then 931*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if fcntl O_NONBLOCK is compilable]) 932*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 933*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 934*6236dae4SAndroid Build Coastguard Worker $curl_includes_fcntl 935*6236dae4SAndroid Build Coastguard Worker ]],[[ 936*6236dae4SAndroid Build Coastguard Worker int flags = 0; 937*6236dae4SAndroid Build Coastguard Worker if(0 != fcntl(0, F_SETFL, flags | O_NONBLOCK)) 938*6236dae4SAndroid Build Coastguard Worker return 1; 939*6236dae4SAndroid Build Coastguard Worker ]]) 940*6236dae4SAndroid Build Coastguard Worker ],[ 941*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 942*6236dae4SAndroid Build Coastguard Worker tst_compi_fcntl_o_nonblock="yes" 943*6236dae4SAndroid Build Coastguard Worker ],[ 944*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 945*6236dae4SAndroid Build Coastguard Worker tst_compi_fcntl_o_nonblock="no" 946*6236dae4SAndroid Build Coastguard Worker ]) 947*6236dae4SAndroid Build Coastguard Worker fi 948*6236dae4SAndroid Build Coastguard Worker # 949*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_fcntl_o_nonblock" = "yes"; then 950*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if fcntl O_NONBLOCK usage allowed]) 951*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_fcntl_o_nonblock" != "xyes"; then 952*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 953*6236dae4SAndroid Build Coastguard Worker tst_allow_fcntl_o_nonblock="yes" 954*6236dae4SAndroid Build Coastguard Worker else 955*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 956*6236dae4SAndroid Build Coastguard Worker tst_allow_fcntl_o_nonblock="no" 957*6236dae4SAndroid Build Coastguard Worker fi 958*6236dae4SAndroid Build Coastguard Worker fi 959*6236dae4SAndroid Build Coastguard Worker # 960*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if fcntl O_NONBLOCK might be used]) 961*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_fcntl_o_nonblock" = "yes" && 962*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_fcntl_o_nonblock" = "yes"; then 963*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 964*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_FCNTL_O_NONBLOCK, 1, 965*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have a working fcntl O_NONBLOCK function.]) 966*6236dae4SAndroid Build Coastguard Worker curl_cv_func_fcntl_o_nonblock="yes" 967*6236dae4SAndroid Build Coastguard Worker else 968*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 969*6236dae4SAndroid Build Coastguard Worker curl_cv_func_fcntl_o_nonblock="no" 970*6236dae4SAndroid Build Coastguard Worker fi 971*6236dae4SAndroid Build Coastguard Worker]) 972*6236dae4SAndroid Build Coastguard Worker 973*6236dae4SAndroid Build Coastguard Worker 974*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_FREEADDRINFO 975*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 976*6236dae4SAndroid Build Coastguard Workerdnl Verify if freeaddrinfo is available, prototyped, 977*6236dae4SAndroid Build Coastguard Workerdnl and can be compiled. If all of these are true, 978*6236dae4SAndroid Build Coastguard Workerdnl and usage has not been previously disallowed with 979*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_freeaddrinfo, then 980*6236dae4SAndroid Build Coastguard Workerdnl HAVE_FREEADDRINFO will be defined. 981*6236dae4SAndroid Build Coastguard Worker 982*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_FREEADDRINFO], [ 983*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_WS2TCPIP])dnl 984*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_SYS_SOCKET])dnl 985*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_NETDB])dnl 986*6236dae4SAndroid Build Coastguard Worker # 987*6236dae4SAndroid Build Coastguard Worker tst_links_freeaddrinfo="unknown" 988*6236dae4SAndroid Build Coastguard Worker tst_proto_freeaddrinfo="unknown" 989*6236dae4SAndroid Build Coastguard Worker tst_compi_freeaddrinfo="unknown" 990*6236dae4SAndroid Build Coastguard Worker tst_allow_freeaddrinfo="unknown" 991*6236dae4SAndroid Build Coastguard Worker # 992*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if freeaddrinfo can be linked]) 993*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 994*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 995*6236dae4SAndroid Build Coastguard Worker $curl_includes_ws2tcpip 996*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_socket 997*6236dae4SAndroid Build Coastguard Worker $curl_includes_netdb 998*6236dae4SAndroid Build Coastguard Worker ]],[[ 999*6236dae4SAndroid Build Coastguard Worker freeaddrinfo(0); 1000*6236dae4SAndroid Build Coastguard Worker ]]) 1001*6236dae4SAndroid Build Coastguard Worker ],[ 1002*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1003*6236dae4SAndroid Build Coastguard Worker tst_links_freeaddrinfo="yes" 1004*6236dae4SAndroid Build Coastguard Worker ],[ 1005*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1006*6236dae4SAndroid Build Coastguard Worker tst_links_freeaddrinfo="no" 1007*6236dae4SAndroid Build Coastguard Worker ]) 1008*6236dae4SAndroid Build Coastguard Worker # 1009*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_freeaddrinfo" = "yes"; then 1010*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if freeaddrinfo is prototyped]) 1011*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([freeaddrinfo],[ 1012*6236dae4SAndroid Build Coastguard Worker $curl_includes_ws2tcpip 1013*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_socket 1014*6236dae4SAndroid Build Coastguard Worker $curl_includes_netdb 1015*6236dae4SAndroid Build Coastguard Worker ],[ 1016*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1017*6236dae4SAndroid Build Coastguard Worker tst_proto_freeaddrinfo="yes" 1018*6236dae4SAndroid Build Coastguard Worker ],[ 1019*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1020*6236dae4SAndroid Build Coastguard Worker tst_proto_freeaddrinfo="no" 1021*6236dae4SAndroid Build Coastguard Worker ]) 1022*6236dae4SAndroid Build Coastguard Worker fi 1023*6236dae4SAndroid Build Coastguard Worker # 1024*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_freeaddrinfo" = "yes"; then 1025*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if freeaddrinfo is compilable]) 1026*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 1027*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1028*6236dae4SAndroid Build Coastguard Worker $curl_includes_ws2tcpip 1029*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_socket 1030*6236dae4SAndroid Build Coastguard Worker $curl_includes_netdb 1031*6236dae4SAndroid Build Coastguard Worker ]],[[ 1032*6236dae4SAndroid Build Coastguard Worker freeaddrinfo(0); 1033*6236dae4SAndroid Build Coastguard Worker ]]) 1034*6236dae4SAndroid Build Coastguard Worker ],[ 1035*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1036*6236dae4SAndroid Build Coastguard Worker tst_compi_freeaddrinfo="yes" 1037*6236dae4SAndroid Build Coastguard Worker ],[ 1038*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1039*6236dae4SAndroid Build Coastguard Worker tst_compi_freeaddrinfo="no" 1040*6236dae4SAndroid Build Coastguard Worker ]) 1041*6236dae4SAndroid Build Coastguard Worker fi 1042*6236dae4SAndroid Build Coastguard Worker # 1043*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_freeaddrinfo" = "yes"; then 1044*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if freeaddrinfo usage allowed]) 1045*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_freeaddrinfo" != "xyes"; then 1046*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1047*6236dae4SAndroid Build Coastguard Worker tst_allow_freeaddrinfo="yes" 1048*6236dae4SAndroid Build Coastguard Worker else 1049*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1050*6236dae4SAndroid Build Coastguard Worker tst_allow_freeaddrinfo="no" 1051*6236dae4SAndroid Build Coastguard Worker fi 1052*6236dae4SAndroid Build Coastguard Worker fi 1053*6236dae4SAndroid Build Coastguard Worker # 1054*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if freeaddrinfo might be used]) 1055*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_freeaddrinfo" = "yes" && 1056*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_freeaddrinfo" = "yes" && 1057*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_freeaddrinfo" = "yes" && 1058*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_freeaddrinfo" = "yes"; then 1059*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1060*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_FREEADDRINFO, 1, 1061*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the freeaddrinfo function.]) 1062*6236dae4SAndroid Build Coastguard Worker curl_cv_func_freeaddrinfo="yes" 1063*6236dae4SAndroid Build Coastguard Worker else 1064*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1065*6236dae4SAndroid Build Coastguard Worker curl_cv_func_freeaddrinfo="no" 1066*6236dae4SAndroid Build Coastguard Worker fi 1067*6236dae4SAndroid Build Coastguard Worker]) 1068*6236dae4SAndroid Build Coastguard Worker 1069*6236dae4SAndroid Build Coastguard Worker 1070*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_FSETXATTR 1071*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 1072*6236dae4SAndroid Build Coastguard Workerdnl Verify if fsetxattr is available, prototyped, and 1073*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 1074*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 1075*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_fsetxattr, then 1076*6236dae4SAndroid Build Coastguard Workerdnl HAVE_FSETXATTR will be defined. 1077*6236dae4SAndroid Build Coastguard Worker 1078*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_FSETXATTR], [ 1079*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_SYS_XATTR])dnl 1080*6236dae4SAndroid Build Coastguard Worker # 1081*6236dae4SAndroid Build Coastguard Worker tst_links_fsetxattr="unknown" 1082*6236dae4SAndroid Build Coastguard Worker tst_proto_fsetxattr="unknown" 1083*6236dae4SAndroid Build Coastguard Worker tst_compi_fsetxattr="unknown" 1084*6236dae4SAndroid Build Coastguard Worker tst_allow_fsetxattr="unknown" 1085*6236dae4SAndroid Build Coastguard Worker tst_nargs_fsetxattr="unknown" 1086*6236dae4SAndroid Build Coastguard Worker # 1087*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if fsetxattr can be linked]) 1088*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 1089*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([fsetxattr]) 1090*6236dae4SAndroid Build Coastguard Worker ],[ 1091*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1092*6236dae4SAndroid Build Coastguard Worker tst_links_fsetxattr="yes" 1093*6236dae4SAndroid Build Coastguard Worker ],[ 1094*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1095*6236dae4SAndroid Build Coastguard Worker tst_links_fsetxattr="no" 1096*6236dae4SAndroid Build Coastguard Worker ]) 1097*6236dae4SAndroid Build Coastguard Worker # 1098*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_fsetxattr" = "yes"; then 1099*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if fsetxattr is prototyped]) 1100*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([fsetxattr],[ 1101*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_xattr 1102*6236dae4SAndroid Build Coastguard Worker ],[ 1103*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1104*6236dae4SAndroid Build Coastguard Worker tst_proto_fsetxattr="yes" 1105*6236dae4SAndroid Build Coastguard Worker ],[ 1106*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1107*6236dae4SAndroid Build Coastguard Worker tst_proto_fsetxattr="no" 1108*6236dae4SAndroid Build Coastguard Worker ]) 1109*6236dae4SAndroid Build Coastguard Worker fi 1110*6236dae4SAndroid Build Coastguard Worker # 1111*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_fsetxattr" = "yes"; then 1112*6236dae4SAndroid Build Coastguard Worker if test "$tst_nargs_fsetxattr" = "unknown"; then 1113*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if fsetxattr takes 5 args.]) 1114*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 1115*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1116*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_xattr 1117*6236dae4SAndroid Build Coastguard Worker ]],[[ 1118*6236dae4SAndroid Build Coastguard Worker if(0 != fsetxattr(0, 0, 0, 0, 0)) 1119*6236dae4SAndroid Build Coastguard Worker return 1; 1120*6236dae4SAndroid Build Coastguard Worker ]]) 1121*6236dae4SAndroid Build Coastguard Worker ],[ 1122*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1123*6236dae4SAndroid Build Coastguard Worker tst_compi_fsetxattr="yes" 1124*6236dae4SAndroid Build Coastguard Worker tst_nargs_fsetxattr="5" 1125*6236dae4SAndroid Build Coastguard Worker ],[ 1126*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1127*6236dae4SAndroid Build Coastguard Worker tst_compi_fsetxattr="no" 1128*6236dae4SAndroid Build Coastguard Worker ]) 1129*6236dae4SAndroid Build Coastguard Worker fi 1130*6236dae4SAndroid Build Coastguard Worker if test "$tst_nargs_fsetxattr" = "unknown"; then 1131*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if fsetxattr takes 6 args.]) 1132*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 1133*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1134*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_xattr 1135*6236dae4SAndroid Build Coastguard Worker ]],[[ 1136*6236dae4SAndroid Build Coastguard Worker if(0 != fsetxattr(0, 0, 0, 0, 0, 0)) 1137*6236dae4SAndroid Build Coastguard Worker return 1; 1138*6236dae4SAndroid Build Coastguard Worker ]]) 1139*6236dae4SAndroid Build Coastguard Worker ],[ 1140*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1141*6236dae4SAndroid Build Coastguard Worker tst_compi_fsetxattr="yes" 1142*6236dae4SAndroid Build Coastguard Worker tst_nargs_fsetxattr="6" 1143*6236dae4SAndroid Build Coastguard Worker ],[ 1144*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1145*6236dae4SAndroid Build Coastguard Worker tst_compi_fsetxattr="no" 1146*6236dae4SAndroid Build Coastguard Worker ]) 1147*6236dae4SAndroid Build Coastguard Worker fi 1148*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if fsetxattr is compilable]) 1149*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_fsetxattr" = "yes"; then 1150*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1151*6236dae4SAndroid Build Coastguard Worker else 1152*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1153*6236dae4SAndroid Build Coastguard Worker fi 1154*6236dae4SAndroid Build Coastguard Worker fi 1155*6236dae4SAndroid Build Coastguard Worker # 1156*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_fsetxattr" = "yes"; then 1157*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if fsetxattr usage allowed]) 1158*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_fsetxattr" != "xyes"; then 1159*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1160*6236dae4SAndroid Build Coastguard Worker tst_allow_fsetxattr="yes" 1161*6236dae4SAndroid Build Coastguard Worker else 1162*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1163*6236dae4SAndroid Build Coastguard Worker tst_allow_fsetxattr="no" 1164*6236dae4SAndroid Build Coastguard Worker fi 1165*6236dae4SAndroid Build Coastguard Worker fi 1166*6236dae4SAndroid Build Coastguard Worker # 1167*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if fsetxattr might be used]) 1168*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_fsetxattr" = "yes" && 1169*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_fsetxattr" = "yes" && 1170*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_fsetxattr" = "yes" && 1171*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_fsetxattr" = "yes"; then 1172*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1173*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_FSETXATTR, 1, 1174*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the fsetxattr function.]) 1175*6236dae4SAndroid Build Coastguard Worker dnl AC_DEFINE_UNQUOTED(FSETXATTR_ARGS, $tst_nargs_fsetxattr, 1176*6236dae4SAndroid Build Coastguard Worker dnl [Specifies the number of arguments to fsetxattr]) 1177*6236dae4SAndroid Build Coastguard Worker # 1178*6236dae4SAndroid Build Coastguard Worker if test "$tst_nargs_fsetxattr" -eq "5"; then 1179*6236dae4SAndroid Build Coastguard Worker AC_DEFINE(HAVE_FSETXATTR_5, 1, [fsetxattr() takes 5 args]) 1180*6236dae4SAndroid Build Coastguard Worker elif test "$tst_nargs_fsetxattr" -eq "6"; then 1181*6236dae4SAndroid Build Coastguard Worker AC_DEFINE(HAVE_FSETXATTR_6, 1, [fsetxattr() takes 6 args]) 1182*6236dae4SAndroid Build Coastguard Worker fi 1183*6236dae4SAndroid Build Coastguard Worker # 1184*6236dae4SAndroid Build Coastguard Worker curl_cv_func_fsetxattr="yes" 1185*6236dae4SAndroid Build Coastguard Worker else 1186*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1187*6236dae4SAndroid Build Coastguard Worker curl_cv_func_fsetxattr="no" 1188*6236dae4SAndroid Build Coastguard Worker fi 1189*6236dae4SAndroid Build Coastguard Worker]) 1190*6236dae4SAndroid Build Coastguard Worker 1191*6236dae4SAndroid Build Coastguard Worker 1192*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_FTRUNCATE 1193*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 1194*6236dae4SAndroid Build Coastguard Workerdnl Verify if ftruncate is available, prototyped, and 1195*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 1196*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 1197*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_ftruncate, then 1198*6236dae4SAndroid Build Coastguard Workerdnl HAVE_FTRUNCATE will be defined. 1199*6236dae4SAndroid Build Coastguard Worker 1200*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_FTRUNCATE], [ 1201*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_UNISTD])dnl 1202*6236dae4SAndroid Build Coastguard Worker # 1203*6236dae4SAndroid Build Coastguard Worker tst_links_ftruncate="unknown" 1204*6236dae4SAndroid Build Coastguard Worker tst_proto_ftruncate="unknown" 1205*6236dae4SAndroid Build Coastguard Worker tst_compi_ftruncate="unknown" 1206*6236dae4SAndroid Build Coastguard Worker tst_allow_ftruncate="unknown" 1207*6236dae4SAndroid Build Coastguard Worker # 1208*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ftruncate can be linked]) 1209*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 1210*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([ftruncate]) 1211*6236dae4SAndroid Build Coastguard Worker ],[ 1212*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1213*6236dae4SAndroid Build Coastguard Worker tst_links_ftruncate="yes" 1214*6236dae4SAndroid Build Coastguard Worker ],[ 1215*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1216*6236dae4SAndroid Build Coastguard Worker tst_links_ftruncate="no" 1217*6236dae4SAndroid Build Coastguard Worker ]) 1218*6236dae4SAndroid Build Coastguard Worker # 1219*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_ftruncate" = "yes"; then 1220*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ftruncate is prototyped]) 1221*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([ftruncate],[ 1222*6236dae4SAndroid Build Coastguard Worker $curl_includes_unistd 1223*6236dae4SAndroid Build Coastguard Worker ],[ 1224*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1225*6236dae4SAndroid Build Coastguard Worker tst_proto_ftruncate="yes" 1226*6236dae4SAndroid Build Coastguard Worker ],[ 1227*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1228*6236dae4SAndroid Build Coastguard Worker tst_proto_ftruncate="no" 1229*6236dae4SAndroid Build Coastguard Worker ]) 1230*6236dae4SAndroid Build Coastguard Worker fi 1231*6236dae4SAndroid Build Coastguard Worker # 1232*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_ftruncate" = "yes"; then 1233*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ftruncate is compilable]) 1234*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 1235*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1236*6236dae4SAndroid Build Coastguard Worker $curl_includes_unistd 1237*6236dae4SAndroid Build Coastguard Worker ]],[[ 1238*6236dae4SAndroid Build Coastguard Worker if(0 != ftruncate(0, 0)) 1239*6236dae4SAndroid Build Coastguard Worker return 1; 1240*6236dae4SAndroid Build Coastguard Worker ]]) 1241*6236dae4SAndroid Build Coastguard Worker ],[ 1242*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1243*6236dae4SAndroid Build Coastguard Worker tst_compi_ftruncate="yes" 1244*6236dae4SAndroid Build Coastguard Worker ],[ 1245*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1246*6236dae4SAndroid Build Coastguard Worker tst_compi_ftruncate="no" 1247*6236dae4SAndroid Build Coastguard Worker ]) 1248*6236dae4SAndroid Build Coastguard Worker fi 1249*6236dae4SAndroid Build Coastguard Worker # 1250*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_ftruncate" = "yes"; then 1251*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ftruncate usage allowed]) 1252*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_ftruncate" != "xyes"; then 1253*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1254*6236dae4SAndroid Build Coastguard Worker tst_allow_ftruncate="yes" 1255*6236dae4SAndroid Build Coastguard Worker else 1256*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1257*6236dae4SAndroid Build Coastguard Worker tst_allow_ftruncate="no" 1258*6236dae4SAndroid Build Coastguard Worker fi 1259*6236dae4SAndroid Build Coastguard Worker fi 1260*6236dae4SAndroid Build Coastguard Worker # 1261*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ftruncate might be used]) 1262*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_ftruncate" = "yes" && 1263*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_ftruncate" = "yes" && 1264*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_ftruncate" = "yes" && 1265*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_ftruncate" = "yes"; then 1266*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1267*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_FTRUNCATE, 1, 1268*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the ftruncate function.]) 1269*6236dae4SAndroid Build Coastguard Worker curl_cv_func_ftruncate="yes" 1270*6236dae4SAndroid Build Coastguard Worker else 1271*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1272*6236dae4SAndroid Build Coastguard Worker curl_cv_func_ftruncate="no" 1273*6236dae4SAndroid Build Coastguard Worker fi 1274*6236dae4SAndroid Build Coastguard Worker]) 1275*6236dae4SAndroid Build Coastguard Worker 1276*6236dae4SAndroid Build Coastguard Worker 1277*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_GETADDRINFO 1278*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 1279*6236dae4SAndroid Build Coastguard Workerdnl Verify if getaddrinfo is available, prototyped, can 1280*6236dae4SAndroid Build Coastguard Workerdnl be compiled and seems to work. If all of these are 1281*6236dae4SAndroid Build Coastguard Workerdnl true, and usage has not been previously disallowed 1282*6236dae4SAndroid Build Coastguard Workerdnl with shell variable curl_disallow_getaddrinfo, then 1283*6236dae4SAndroid Build Coastguard Workerdnl HAVE_GETADDRINFO will be defined. Additionally when 1284*6236dae4SAndroid Build Coastguard Workerdnl HAVE_GETADDRINFO gets defined this will also attempt 1285*6236dae4SAndroid Build Coastguard Workerdnl to find out if getaddrinfo happens to be threadsafe, 1286*6236dae4SAndroid Build Coastguard Workerdnl defining HAVE_GETADDRINFO_THREADSAFE when true. 1287*6236dae4SAndroid Build Coastguard Worker 1288*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_GETADDRINFO], [ 1289*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_WS2TCPIP])dnl 1290*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_STDLIB])dnl 1291*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_STRING])dnl 1292*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_SYS_SOCKET])dnl 1293*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_NETDB])dnl 1294*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_CHECK_NATIVE_WINDOWS])dnl 1295*6236dae4SAndroid Build Coastguard Worker # 1296*6236dae4SAndroid Build Coastguard Worker tst_links_getaddrinfo="unknown" 1297*6236dae4SAndroid Build Coastguard Worker tst_proto_getaddrinfo="unknown" 1298*6236dae4SAndroid Build Coastguard Worker tst_compi_getaddrinfo="unknown" 1299*6236dae4SAndroid Build Coastguard Worker tst_works_getaddrinfo="unknown" 1300*6236dae4SAndroid Build Coastguard Worker tst_allow_getaddrinfo="unknown" 1301*6236dae4SAndroid Build Coastguard Worker tst_tsafe_getaddrinfo="unknown" 1302*6236dae4SAndroid Build Coastguard Worker # 1303*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getaddrinfo can be linked]) 1304*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 1305*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1306*6236dae4SAndroid Build Coastguard Worker $curl_includes_ws2tcpip 1307*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_socket 1308*6236dae4SAndroid Build Coastguard Worker $curl_includes_netdb 1309*6236dae4SAndroid Build Coastguard Worker ]],[[ 1310*6236dae4SAndroid Build Coastguard Worker if(0 != getaddrinfo(0, 0, 0, 0)) 1311*6236dae4SAndroid Build Coastguard Worker return 1; 1312*6236dae4SAndroid Build Coastguard Worker ]]) 1313*6236dae4SAndroid Build Coastguard Worker ],[ 1314*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1315*6236dae4SAndroid Build Coastguard Worker tst_links_getaddrinfo="yes" 1316*6236dae4SAndroid Build Coastguard Worker ],[ 1317*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1318*6236dae4SAndroid Build Coastguard Worker tst_links_getaddrinfo="no" 1319*6236dae4SAndroid Build Coastguard Worker ]) 1320*6236dae4SAndroid Build Coastguard Worker # 1321*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_getaddrinfo" = "yes"; then 1322*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getaddrinfo is prototyped]) 1323*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([getaddrinfo],[ 1324*6236dae4SAndroid Build Coastguard Worker $curl_includes_ws2tcpip 1325*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_socket 1326*6236dae4SAndroid Build Coastguard Worker $curl_includes_netdb 1327*6236dae4SAndroid Build Coastguard Worker ],[ 1328*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1329*6236dae4SAndroid Build Coastguard Worker tst_proto_getaddrinfo="yes" 1330*6236dae4SAndroid Build Coastguard Worker ],[ 1331*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1332*6236dae4SAndroid Build Coastguard Worker tst_proto_getaddrinfo="no" 1333*6236dae4SAndroid Build Coastguard Worker ]) 1334*6236dae4SAndroid Build Coastguard Worker fi 1335*6236dae4SAndroid Build Coastguard Worker # 1336*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_getaddrinfo" = "yes"; then 1337*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getaddrinfo is compilable]) 1338*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 1339*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1340*6236dae4SAndroid Build Coastguard Worker $curl_includes_ws2tcpip 1341*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_socket 1342*6236dae4SAndroid Build Coastguard Worker $curl_includes_netdb 1343*6236dae4SAndroid Build Coastguard Worker ]],[[ 1344*6236dae4SAndroid Build Coastguard Worker if(0 != getaddrinfo(0, 0, 0, 0)) 1345*6236dae4SAndroid Build Coastguard Worker return 1; 1346*6236dae4SAndroid Build Coastguard Worker ]]) 1347*6236dae4SAndroid Build Coastguard Worker ],[ 1348*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1349*6236dae4SAndroid Build Coastguard Worker tst_compi_getaddrinfo="yes" 1350*6236dae4SAndroid Build Coastguard Worker ],[ 1351*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1352*6236dae4SAndroid Build Coastguard Worker tst_compi_getaddrinfo="no" 1353*6236dae4SAndroid Build Coastguard Worker ]) 1354*6236dae4SAndroid Build Coastguard Worker fi 1355*6236dae4SAndroid Build Coastguard Worker # 1356*6236dae4SAndroid Build Coastguard Worker dnl only do runtime verification when not cross-compiling 1357*6236dae4SAndroid Build Coastguard Worker if test "x$cross_compiling" != "xyes" && 1358*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_getaddrinfo" = "yes"; then 1359*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getaddrinfo seems to work]) 1360*6236dae4SAndroid Build Coastguard Worker CURL_RUN_IFELSE([ 1361*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1362*6236dae4SAndroid Build Coastguard Worker $curl_includes_ws2tcpip 1363*6236dae4SAndroid Build Coastguard Worker $curl_includes_stdlib 1364*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 1365*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_socket 1366*6236dae4SAndroid Build Coastguard Worker $curl_includes_netdb 1367*6236dae4SAndroid Build Coastguard Worker ]],[[ 1368*6236dae4SAndroid Build Coastguard Worker struct addrinfo hints; 1369*6236dae4SAndroid Build Coastguard Worker struct addrinfo *ai = 0; 1370*6236dae4SAndroid Build Coastguard Worker int error; 1371*6236dae4SAndroid Build Coastguard Worker 1372*6236dae4SAndroid Build Coastguard Worker #ifdef _WIN32 1373*6236dae4SAndroid Build Coastguard Worker WSADATA wsa; 1374*6236dae4SAndroid Build Coastguard Worker if(WSAStartup(MAKEWORD(2, 2), &wsa)) 1375*6236dae4SAndroid Build Coastguard Worker exit(2); 1376*6236dae4SAndroid Build Coastguard Worker #endif 1377*6236dae4SAndroid Build Coastguard Worker 1378*6236dae4SAndroid Build Coastguard Worker memset(&hints, 0, sizeof(hints)); 1379*6236dae4SAndroid Build Coastguard Worker hints.ai_flags = AI_NUMERICHOST; 1380*6236dae4SAndroid Build Coastguard Worker hints.ai_family = AF_UNSPEC; 1381*6236dae4SAndroid Build Coastguard Worker hints.ai_socktype = SOCK_STREAM; 1382*6236dae4SAndroid Build Coastguard Worker error = getaddrinfo("127.0.0.1", 0, &hints, &ai); 1383*6236dae4SAndroid Build Coastguard Worker if(error || !ai) 1384*6236dae4SAndroid Build Coastguard Worker exit(1); /* fail */ 1385*6236dae4SAndroid Build Coastguard Worker else 1386*6236dae4SAndroid Build Coastguard Worker exit(0); 1387*6236dae4SAndroid Build Coastguard Worker ]]) 1388*6236dae4SAndroid Build Coastguard Worker ],[ 1389*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1390*6236dae4SAndroid Build Coastguard Worker tst_works_getaddrinfo="yes" 1391*6236dae4SAndroid Build Coastguard Worker ],[ 1392*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1393*6236dae4SAndroid Build Coastguard Worker tst_works_getaddrinfo="no" 1394*6236dae4SAndroid Build Coastguard Worker ]) 1395*6236dae4SAndroid Build Coastguard Worker fi 1396*6236dae4SAndroid Build Coastguard Worker # 1397*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_getaddrinfo" = "yes" && 1398*6236dae4SAndroid Build Coastguard Worker test "$tst_works_getaddrinfo" != "no"; then 1399*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getaddrinfo usage allowed]) 1400*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_getaddrinfo" != "xyes"; then 1401*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1402*6236dae4SAndroid Build Coastguard Worker tst_allow_getaddrinfo="yes" 1403*6236dae4SAndroid Build Coastguard Worker else 1404*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1405*6236dae4SAndroid Build Coastguard Worker tst_allow_getaddrinfo="no" 1406*6236dae4SAndroid Build Coastguard Worker fi 1407*6236dae4SAndroid Build Coastguard Worker fi 1408*6236dae4SAndroid Build Coastguard Worker # 1409*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getaddrinfo might be used]) 1410*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_getaddrinfo" = "yes" && 1411*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_getaddrinfo" = "yes" && 1412*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_getaddrinfo" = "yes" && 1413*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_getaddrinfo" = "yes" && 1414*6236dae4SAndroid Build Coastguard Worker test "$tst_works_getaddrinfo" != "no"; then 1415*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1416*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_GETADDRINFO, 1, 1417*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have a working getaddrinfo function.]) 1418*6236dae4SAndroid Build Coastguard Worker curl_cv_func_getaddrinfo="yes" 1419*6236dae4SAndroid Build Coastguard Worker else 1420*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1421*6236dae4SAndroid Build Coastguard Worker curl_cv_func_getaddrinfo="no" 1422*6236dae4SAndroid Build Coastguard Worker curl_cv_func_getaddrinfo_threadsafe="no" 1423*6236dae4SAndroid Build Coastguard Worker fi 1424*6236dae4SAndroid Build Coastguard Worker # 1425*6236dae4SAndroid Build Coastguard Worker if test "$curl_cv_func_getaddrinfo" = "yes"; then 1426*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getaddrinfo is threadsafe]) 1427*6236dae4SAndroid Build Coastguard Worker case $host in 1428*6236dae4SAndroid Build Coastguard Worker *-apple-*) 1429*6236dae4SAndroid Build Coastguard Worker dnl Darwin 6.0 and macOS 10.2.X and newer 1430*6236dae4SAndroid Build Coastguard Worker tst_tsafe_getaddrinfo="yes" 1431*6236dae4SAndroid Build Coastguard Worker esac 1432*6236dae4SAndroid Build Coastguard Worker case $host_os in 1433*6236dae4SAndroid Build Coastguard Worker aix[[1234]].* | aix5.[[01]].*) 1434*6236dae4SAndroid Build Coastguard Worker dnl AIX 5.1 and older 1435*6236dae4SAndroid Build Coastguard Worker tst_tsafe_getaddrinfo="no" 1436*6236dae4SAndroid Build Coastguard Worker ;; 1437*6236dae4SAndroid Build Coastguard Worker aix*) 1438*6236dae4SAndroid Build Coastguard Worker dnl AIX 5.2 and newer 1439*6236dae4SAndroid Build Coastguard Worker tst_tsafe_getaddrinfo="yes" 1440*6236dae4SAndroid Build Coastguard Worker ;; 1441*6236dae4SAndroid Build Coastguard Worker darwin[[12345]].*) 1442*6236dae4SAndroid Build Coastguard Worker dnl Darwin 5.0 and macOS 10.1.X and older 1443*6236dae4SAndroid Build Coastguard Worker tst_tsafe_getaddrinfo="no" 1444*6236dae4SAndroid Build Coastguard Worker ;; 1445*6236dae4SAndroid Build Coastguard Worker freebsd[[1234]].* | freebsd5.[[1234]]*) 1446*6236dae4SAndroid Build Coastguard Worker dnl FreeBSD 5.4 and older 1447*6236dae4SAndroid Build Coastguard Worker tst_tsafe_getaddrinfo="no" 1448*6236dae4SAndroid Build Coastguard Worker ;; 1449*6236dae4SAndroid Build Coastguard Worker freebsd*) 1450*6236dae4SAndroid Build Coastguard Worker dnl FreeBSD 5.5 and newer 1451*6236dae4SAndroid Build Coastguard Worker tst_tsafe_getaddrinfo="yes" 1452*6236dae4SAndroid Build Coastguard Worker ;; 1453*6236dae4SAndroid Build Coastguard Worker hpux[[123456789]].* | hpux10.* | hpux11.0* | hpux11.10*) 1454*6236dae4SAndroid Build Coastguard Worker dnl HP-UX 11.10 and older 1455*6236dae4SAndroid Build Coastguard Worker tst_tsafe_getaddrinfo="no" 1456*6236dae4SAndroid Build Coastguard Worker ;; 1457*6236dae4SAndroid Build Coastguard Worker hpux*) 1458*6236dae4SAndroid Build Coastguard Worker dnl HP-UX 11.11 and newer 1459*6236dae4SAndroid Build Coastguard Worker tst_tsafe_getaddrinfo="yes" 1460*6236dae4SAndroid Build Coastguard Worker ;; 1461*6236dae4SAndroid Build Coastguard Worker midnightbsd*) 1462*6236dae4SAndroid Build Coastguard Worker dnl all MidnightBSD versions 1463*6236dae4SAndroid Build Coastguard Worker tst_tsafe_getaddrinfo="yes" 1464*6236dae4SAndroid Build Coastguard Worker ;; 1465*6236dae4SAndroid Build Coastguard Worker netbsd[[123]].*) 1466*6236dae4SAndroid Build Coastguard Worker dnl NetBSD 3.X and older 1467*6236dae4SAndroid Build Coastguard Worker tst_tsafe_getaddrinfo="no" 1468*6236dae4SAndroid Build Coastguard Worker ;; 1469*6236dae4SAndroid Build Coastguard Worker netbsd*) 1470*6236dae4SAndroid Build Coastguard Worker dnl NetBSD 4.X and newer 1471*6236dae4SAndroid Build Coastguard Worker tst_tsafe_getaddrinfo="yes" 1472*6236dae4SAndroid Build Coastguard Worker ;; 1473*6236dae4SAndroid Build Coastguard Worker *bsd*) 1474*6236dae4SAndroid Build Coastguard Worker dnl All other BSD's 1475*6236dae4SAndroid Build Coastguard Worker tst_tsafe_getaddrinfo="no" 1476*6236dae4SAndroid Build Coastguard Worker ;; 1477*6236dae4SAndroid Build Coastguard Worker solaris2*) 1478*6236dae4SAndroid Build Coastguard Worker dnl Solaris which have it 1479*6236dae4SAndroid Build Coastguard Worker tst_tsafe_getaddrinfo="yes" 1480*6236dae4SAndroid Build Coastguard Worker ;; 1481*6236dae4SAndroid Build Coastguard Worker esac 1482*6236dae4SAndroid Build Coastguard Worker if test "$tst_tsafe_getaddrinfo" = "unknown" && 1483*6236dae4SAndroid Build Coastguard Worker test "$curl_cv_native_windows" = "yes"; then 1484*6236dae4SAndroid Build Coastguard Worker tst_tsafe_getaddrinfo="yes" 1485*6236dae4SAndroid Build Coastguard Worker fi 1486*6236dae4SAndroid Build Coastguard Worker if test "$tst_tsafe_getaddrinfo" = "unknown"; then 1487*6236dae4SAndroid Build Coastguard Worker tst_tsafe_getaddrinfo="yes" 1488*6236dae4SAndroid Build Coastguard Worker fi 1489*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([$tst_tsafe_getaddrinfo]) 1490*6236dae4SAndroid Build Coastguard Worker if test "$tst_tsafe_getaddrinfo" = "yes"; then 1491*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_GETADDRINFO_THREADSAFE, 1, 1492*6236dae4SAndroid Build Coastguard Worker [Define to 1 if the getaddrinfo function is threadsafe.]) 1493*6236dae4SAndroid Build Coastguard Worker curl_cv_func_getaddrinfo_threadsafe="yes" 1494*6236dae4SAndroid Build Coastguard Worker else 1495*6236dae4SAndroid Build Coastguard Worker curl_cv_func_getaddrinfo_threadsafe="no" 1496*6236dae4SAndroid Build Coastguard Worker fi 1497*6236dae4SAndroid Build Coastguard Worker fi 1498*6236dae4SAndroid Build Coastguard Worker]) 1499*6236dae4SAndroid Build Coastguard Worker 1500*6236dae4SAndroid Build Coastguard Worker 1501*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_GETHOSTBYNAME 1502*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 1503*6236dae4SAndroid Build Coastguard Workerdnl Verify if gethostbyname is available, prototyped, 1504*6236dae4SAndroid Build Coastguard Workerdnl and can be compiled. If all of these are true, 1505*6236dae4SAndroid Build Coastguard Workerdnl and usage has not been previously disallowed with 1506*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_gethostbyname, then 1507*6236dae4SAndroid Build Coastguard Workerdnl HAVE_GETHOSTBYNAME will be defined. 1508*6236dae4SAndroid Build Coastguard Worker 1509*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_GETHOSTBYNAME], [ 1510*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_WINSOCK2])dnl 1511*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_NETDB])dnl 1512*6236dae4SAndroid Build Coastguard Worker # 1513*6236dae4SAndroid Build Coastguard Worker tst_links_gethostbyname="unknown" 1514*6236dae4SAndroid Build Coastguard Worker tst_proto_gethostbyname="unknown" 1515*6236dae4SAndroid Build Coastguard Worker tst_compi_gethostbyname="unknown" 1516*6236dae4SAndroid Build Coastguard Worker tst_allow_gethostbyname="unknown" 1517*6236dae4SAndroid Build Coastguard Worker # 1518*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gethostbyname can be linked]) 1519*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 1520*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1521*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 1522*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 1523*6236dae4SAndroid Build Coastguard Worker $curl_includes_netdb 1524*6236dae4SAndroid Build Coastguard Worker ]],[[ 1525*6236dae4SAndroid Build Coastguard Worker if(0 != gethostbyname(0)) 1526*6236dae4SAndroid Build Coastguard Worker return 1; 1527*6236dae4SAndroid Build Coastguard Worker ]]) 1528*6236dae4SAndroid Build Coastguard Worker ],[ 1529*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1530*6236dae4SAndroid Build Coastguard Worker tst_links_gethostbyname="yes" 1531*6236dae4SAndroid Build Coastguard Worker ],[ 1532*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1533*6236dae4SAndroid Build Coastguard Worker tst_links_gethostbyname="no" 1534*6236dae4SAndroid Build Coastguard Worker ]) 1535*6236dae4SAndroid Build Coastguard Worker # 1536*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_gethostbyname" = "yes"; then 1537*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gethostbyname is prototyped]) 1538*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([gethostbyname],[ 1539*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 1540*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 1541*6236dae4SAndroid Build Coastguard Worker $curl_includes_netdb 1542*6236dae4SAndroid Build Coastguard Worker ],[ 1543*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1544*6236dae4SAndroid Build Coastguard Worker tst_proto_gethostbyname="yes" 1545*6236dae4SAndroid Build Coastguard Worker ],[ 1546*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1547*6236dae4SAndroid Build Coastguard Worker tst_proto_gethostbyname="no" 1548*6236dae4SAndroid Build Coastguard Worker ]) 1549*6236dae4SAndroid Build Coastguard Worker fi 1550*6236dae4SAndroid Build Coastguard Worker # 1551*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_gethostbyname" = "yes"; then 1552*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gethostbyname is compilable]) 1553*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 1554*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1555*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 1556*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 1557*6236dae4SAndroid Build Coastguard Worker $curl_includes_netdb 1558*6236dae4SAndroid Build Coastguard Worker ]],[[ 1559*6236dae4SAndroid Build Coastguard Worker if(0 != gethostbyname(0)) 1560*6236dae4SAndroid Build Coastguard Worker return 1; 1561*6236dae4SAndroid Build Coastguard Worker ]]) 1562*6236dae4SAndroid Build Coastguard Worker ],[ 1563*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1564*6236dae4SAndroid Build Coastguard Worker tst_compi_gethostbyname="yes" 1565*6236dae4SAndroid Build Coastguard Worker ],[ 1566*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1567*6236dae4SAndroid Build Coastguard Worker tst_compi_gethostbyname="no" 1568*6236dae4SAndroid Build Coastguard Worker ]) 1569*6236dae4SAndroid Build Coastguard Worker fi 1570*6236dae4SAndroid Build Coastguard Worker # 1571*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_gethostbyname" = "yes"; then 1572*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gethostbyname usage allowed]) 1573*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_gethostbyname" != "xyes"; then 1574*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1575*6236dae4SAndroid Build Coastguard Worker tst_allow_gethostbyname="yes" 1576*6236dae4SAndroid Build Coastguard Worker else 1577*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1578*6236dae4SAndroid Build Coastguard Worker tst_allow_gethostbyname="no" 1579*6236dae4SAndroid Build Coastguard Worker fi 1580*6236dae4SAndroid Build Coastguard Worker fi 1581*6236dae4SAndroid Build Coastguard Worker # 1582*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gethostbyname might be used]) 1583*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_gethostbyname" = "yes" && 1584*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_gethostbyname" = "yes" && 1585*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_gethostbyname" = "yes" && 1586*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_gethostbyname" = "yes"; then 1587*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1588*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_GETHOSTBYNAME, 1, 1589*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the gethostbyname function.]) 1590*6236dae4SAndroid Build Coastguard Worker curl_cv_func_gethostbyname="yes" 1591*6236dae4SAndroid Build Coastguard Worker else 1592*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1593*6236dae4SAndroid Build Coastguard Worker curl_cv_func_gethostbyname="no" 1594*6236dae4SAndroid Build Coastguard Worker fi 1595*6236dae4SAndroid Build Coastguard Worker]) 1596*6236dae4SAndroid Build Coastguard Worker 1597*6236dae4SAndroid Build Coastguard Worker 1598*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_GETHOSTBYNAME_R 1599*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 1600*6236dae4SAndroid Build Coastguard Workerdnl Verify if gethostbyname_r is available, prototyped, 1601*6236dae4SAndroid Build Coastguard Workerdnl and can be compiled. If all of these are true, and 1602*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 1603*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_gethostbyname_r, then 1604*6236dae4SAndroid Build Coastguard Workerdnl HAVE_GETHOSTBYNAME_R will be defined. 1605*6236dae4SAndroid Build Coastguard Worker 1606*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_GETHOSTBYNAME_R], [ 1607*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_NETDB])dnl 1608*6236dae4SAndroid Build Coastguard Worker # 1609*6236dae4SAndroid Build Coastguard Worker tst_links_gethostbyname_r="unknown" 1610*6236dae4SAndroid Build Coastguard Worker tst_proto_gethostbyname_r="unknown" 1611*6236dae4SAndroid Build Coastguard Worker tst_compi_gethostbyname_r="unknown" 1612*6236dae4SAndroid Build Coastguard Worker tst_allow_gethostbyname_r="unknown" 1613*6236dae4SAndroid Build Coastguard Worker tst_nargs_gethostbyname_r="unknown" 1614*6236dae4SAndroid Build Coastguard Worker # 1615*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gethostbyname_r can be linked]) 1616*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 1617*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([gethostbyname_r]) 1618*6236dae4SAndroid Build Coastguard Worker ],[ 1619*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1620*6236dae4SAndroid Build Coastguard Worker tst_links_gethostbyname_r="yes" 1621*6236dae4SAndroid Build Coastguard Worker ],[ 1622*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1623*6236dae4SAndroid Build Coastguard Worker tst_links_gethostbyname_r="no" 1624*6236dae4SAndroid Build Coastguard Worker ]) 1625*6236dae4SAndroid Build Coastguard Worker # 1626*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_gethostbyname_r" = "yes"; then 1627*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gethostbyname_r is prototyped]) 1628*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([gethostbyname_r],[ 1629*6236dae4SAndroid Build Coastguard Worker $curl_includes_netdb 1630*6236dae4SAndroid Build Coastguard Worker ],[ 1631*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1632*6236dae4SAndroid Build Coastguard Worker tst_proto_gethostbyname_r="yes" 1633*6236dae4SAndroid Build Coastguard Worker ],[ 1634*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1635*6236dae4SAndroid Build Coastguard Worker tst_proto_gethostbyname_r="no" 1636*6236dae4SAndroid Build Coastguard Worker ]) 1637*6236dae4SAndroid Build Coastguard Worker fi 1638*6236dae4SAndroid Build Coastguard Worker # 1639*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_gethostbyname_r" = "yes"; then 1640*6236dae4SAndroid Build Coastguard Worker if test "$tst_nargs_gethostbyname_r" = "unknown"; then 1641*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gethostbyname_r takes 3 args.]) 1642*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 1643*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1644*6236dae4SAndroid Build Coastguard Worker $curl_includes_netdb 1645*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 1646*6236dae4SAndroid Build Coastguard Worker ]],[[ 1647*6236dae4SAndroid Build Coastguard Worker if(0 != gethostbyname_r(0, 0, 0)) 1648*6236dae4SAndroid Build Coastguard Worker return 1; 1649*6236dae4SAndroid Build Coastguard Worker ]]) 1650*6236dae4SAndroid Build Coastguard Worker ],[ 1651*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1652*6236dae4SAndroid Build Coastguard Worker tst_compi_gethostbyname_r="yes" 1653*6236dae4SAndroid Build Coastguard Worker tst_nargs_gethostbyname_r="3" 1654*6236dae4SAndroid Build Coastguard Worker ],[ 1655*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1656*6236dae4SAndroid Build Coastguard Worker tst_compi_gethostbyname_r="no" 1657*6236dae4SAndroid Build Coastguard Worker ]) 1658*6236dae4SAndroid Build Coastguard Worker fi 1659*6236dae4SAndroid Build Coastguard Worker if test "$tst_nargs_gethostbyname_r" = "unknown"; then 1660*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gethostbyname_r takes 5 args.]) 1661*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 1662*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1663*6236dae4SAndroid Build Coastguard Worker $curl_includes_netdb 1664*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 1665*6236dae4SAndroid Build Coastguard Worker ]],[[ 1666*6236dae4SAndroid Build Coastguard Worker if(0 != gethostbyname_r(0, 0, 0, 0, 0)) 1667*6236dae4SAndroid Build Coastguard Worker return 1; 1668*6236dae4SAndroid Build Coastguard Worker ]]) 1669*6236dae4SAndroid Build Coastguard Worker ],[ 1670*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1671*6236dae4SAndroid Build Coastguard Worker tst_compi_gethostbyname_r="yes" 1672*6236dae4SAndroid Build Coastguard Worker tst_nargs_gethostbyname_r="5" 1673*6236dae4SAndroid Build Coastguard Worker ],[ 1674*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1675*6236dae4SAndroid Build Coastguard Worker tst_compi_gethostbyname_r="no" 1676*6236dae4SAndroid Build Coastguard Worker ]) 1677*6236dae4SAndroid Build Coastguard Worker fi 1678*6236dae4SAndroid Build Coastguard Worker if test "$tst_nargs_gethostbyname_r" = "unknown"; then 1679*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gethostbyname_r takes 6 args.]) 1680*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 1681*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1682*6236dae4SAndroid Build Coastguard Worker $curl_includes_netdb 1683*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 1684*6236dae4SAndroid Build Coastguard Worker ]],[[ 1685*6236dae4SAndroid Build Coastguard Worker if(0 != gethostbyname_r(0, 0, 0, 0, 0, 0)) 1686*6236dae4SAndroid Build Coastguard Worker return 1; 1687*6236dae4SAndroid Build Coastguard Worker ]]) 1688*6236dae4SAndroid Build Coastguard Worker ],[ 1689*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1690*6236dae4SAndroid Build Coastguard Worker tst_compi_gethostbyname_r="yes" 1691*6236dae4SAndroid Build Coastguard Worker tst_nargs_gethostbyname_r="6" 1692*6236dae4SAndroid Build Coastguard Worker ],[ 1693*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1694*6236dae4SAndroid Build Coastguard Worker tst_compi_gethostbyname_r="no" 1695*6236dae4SAndroid Build Coastguard Worker ]) 1696*6236dae4SAndroid Build Coastguard Worker fi 1697*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gethostbyname_r is compilable]) 1698*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_gethostbyname_r" = "yes"; then 1699*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1700*6236dae4SAndroid Build Coastguard Worker else 1701*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1702*6236dae4SAndroid Build Coastguard Worker fi 1703*6236dae4SAndroid Build Coastguard Worker fi 1704*6236dae4SAndroid Build Coastguard Worker # 1705*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_gethostbyname_r" = "yes"; then 1706*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gethostbyname_r usage allowed]) 1707*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_gethostbyname_r" != "xyes"; then 1708*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1709*6236dae4SAndroid Build Coastguard Worker tst_allow_gethostbyname_r="yes" 1710*6236dae4SAndroid Build Coastguard Worker else 1711*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1712*6236dae4SAndroid Build Coastguard Worker tst_allow_gethostbyname_r="no" 1713*6236dae4SAndroid Build Coastguard Worker fi 1714*6236dae4SAndroid Build Coastguard Worker fi 1715*6236dae4SAndroid Build Coastguard Worker # 1716*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gethostbyname_r might be used]) 1717*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_gethostbyname_r" = "yes" && 1718*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_gethostbyname_r" = "yes" && 1719*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_gethostbyname_r" = "yes" && 1720*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_gethostbyname_r" = "yes"; then 1721*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1722*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_GETHOSTBYNAME_R, 1, 1723*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the gethostbyname_r function.]) 1724*6236dae4SAndroid Build Coastguard Worker dnl AC_DEFINE_UNQUOTED(GETHOSTBYNAME_R_ARGS, $tst_nargs_gethostbyname_r, 1725*6236dae4SAndroid Build Coastguard Worker dnl [Specifies the number of arguments to gethostbyname_r]) 1726*6236dae4SAndroid Build Coastguard Worker # 1727*6236dae4SAndroid Build Coastguard Worker if test "$tst_nargs_gethostbyname_r" -eq "3"; then 1728*6236dae4SAndroid Build Coastguard Worker AC_DEFINE(HAVE_GETHOSTBYNAME_R_3, 1, [gethostbyname_r() takes 3 args]) 1729*6236dae4SAndroid Build Coastguard Worker elif test "$tst_nargs_gethostbyname_r" -eq "5"; then 1730*6236dae4SAndroid Build Coastguard Worker AC_DEFINE(HAVE_GETHOSTBYNAME_R_5, 1, [gethostbyname_r() takes 5 args]) 1731*6236dae4SAndroid Build Coastguard Worker elif test "$tst_nargs_gethostbyname_r" -eq "6"; then 1732*6236dae4SAndroid Build Coastguard Worker AC_DEFINE(HAVE_GETHOSTBYNAME_R_6, 1, [gethostbyname_r() takes 6 args]) 1733*6236dae4SAndroid Build Coastguard Worker fi 1734*6236dae4SAndroid Build Coastguard Worker # 1735*6236dae4SAndroid Build Coastguard Worker curl_cv_func_gethostbyname_r="yes" 1736*6236dae4SAndroid Build Coastguard Worker else 1737*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1738*6236dae4SAndroid Build Coastguard Worker curl_cv_func_gethostbyname_r="no" 1739*6236dae4SAndroid Build Coastguard Worker fi 1740*6236dae4SAndroid Build Coastguard Worker]) 1741*6236dae4SAndroid Build Coastguard Worker 1742*6236dae4SAndroid Build Coastguard Worker 1743*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_GETHOSTNAME 1744*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 1745*6236dae4SAndroid Build Coastguard Workerdnl Verify if gethostname is available, prototyped, and 1746*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 1747*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 1748*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_gethostname, then 1749*6236dae4SAndroid Build Coastguard Workerdnl HAVE_GETHOSTNAME will be defined. 1750*6236dae4SAndroid Build Coastguard Worker 1751*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_GETHOSTNAME], [ 1752*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_WINSOCK2])dnl 1753*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_BSDSOCKET])dnl 1754*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_UNISTD])dnl 1755*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_PREPROCESS_CALLCONV])dnl 1756*6236dae4SAndroid Build Coastguard Worker # 1757*6236dae4SAndroid Build Coastguard Worker tst_links_gethostname="unknown" 1758*6236dae4SAndroid Build Coastguard Worker tst_proto_gethostname="unknown" 1759*6236dae4SAndroid Build Coastguard Worker tst_compi_gethostname="unknown" 1760*6236dae4SAndroid Build Coastguard Worker tst_allow_gethostname="unknown" 1761*6236dae4SAndroid Build Coastguard Worker # 1762*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gethostname can be linked]) 1763*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 1764*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1765*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 1766*6236dae4SAndroid Build Coastguard Worker $curl_includes_unistd 1767*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 1768*6236dae4SAndroid Build Coastguard Worker ]],[[ 1769*6236dae4SAndroid Build Coastguard Worker if(0 != gethostname(0, 0)) 1770*6236dae4SAndroid Build Coastguard Worker return 1; 1771*6236dae4SAndroid Build Coastguard Worker ]]) 1772*6236dae4SAndroid Build Coastguard Worker ],[ 1773*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1774*6236dae4SAndroid Build Coastguard Worker tst_links_gethostname="yes" 1775*6236dae4SAndroid Build Coastguard Worker ],[ 1776*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1777*6236dae4SAndroid Build Coastguard Worker tst_links_gethostname="no" 1778*6236dae4SAndroid Build Coastguard Worker ]) 1779*6236dae4SAndroid Build Coastguard Worker # 1780*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_gethostname" = "yes"; then 1781*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gethostname is prototyped]) 1782*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([gethostname],[ 1783*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 1784*6236dae4SAndroid Build Coastguard Worker $curl_includes_unistd 1785*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 1786*6236dae4SAndroid Build Coastguard Worker ],[ 1787*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1788*6236dae4SAndroid Build Coastguard Worker tst_proto_gethostname="yes" 1789*6236dae4SAndroid Build Coastguard Worker ],[ 1790*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1791*6236dae4SAndroid Build Coastguard Worker tst_proto_gethostname="no" 1792*6236dae4SAndroid Build Coastguard Worker ]) 1793*6236dae4SAndroid Build Coastguard Worker fi 1794*6236dae4SAndroid Build Coastguard Worker # 1795*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_gethostname" = "yes"; then 1796*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gethostname is compilable]) 1797*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 1798*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1799*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 1800*6236dae4SAndroid Build Coastguard Worker $curl_includes_unistd 1801*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 1802*6236dae4SAndroid Build Coastguard Worker ]],[[ 1803*6236dae4SAndroid Build Coastguard Worker if(0 != gethostname(0, 0)) 1804*6236dae4SAndroid Build Coastguard Worker return 1; 1805*6236dae4SAndroid Build Coastguard Worker ]]) 1806*6236dae4SAndroid Build Coastguard Worker ],[ 1807*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1808*6236dae4SAndroid Build Coastguard Worker tst_compi_gethostname="yes" 1809*6236dae4SAndroid Build Coastguard Worker ],[ 1810*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1811*6236dae4SAndroid Build Coastguard Worker tst_compi_gethostname="no" 1812*6236dae4SAndroid Build Coastguard Worker ]) 1813*6236dae4SAndroid Build Coastguard Worker fi 1814*6236dae4SAndroid Build Coastguard Worker # 1815*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_gethostname" = "yes"; then 1816*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([for gethostname arg 2 data type]) 1817*6236dae4SAndroid Build Coastguard Worker tst_gethostname_type_arg2="unknown" 1818*6236dae4SAndroid Build Coastguard Worker for tst_arg1 in 'char *' 'unsigned char *' 'void *'; do 1819*6236dae4SAndroid Build Coastguard Worker for tst_arg2 in 'int' 'unsigned int' 'size_t'; do 1820*6236dae4SAndroid Build Coastguard Worker if test "$tst_gethostname_type_arg2" = "unknown"; then 1821*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 1822*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1823*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 1824*6236dae4SAndroid Build Coastguard Worker $curl_includes_unistd 1825*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 1826*6236dae4SAndroid Build Coastguard Worker $curl_preprocess_callconv 1827*6236dae4SAndroid Build Coastguard Worker extern int FUNCALLCONV gethostname($tst_arg1, $tst_arg2); 1828*6236dae4SAndroid Build Coastguard Worker ]],[[ 1829*6236dae4SAndroid Build Coastguard Worker if(0 != gethostname(0, 0)) 1830*6236dae4SAndroid Build Coastguard Worker return 1; 1831*6236dae4SAndroid Build Coastguard Worker ]]) 1832*6236dae4SAndroid Build Coastguard Worker ],[ 1833*6236dae4SAndroid Build Coastguard Worker tst_gethostname_type_arg2="$tst_arg2" 1834*6236dae4SAndroid Build Coastguard Worker ]) 1835*6236dae4SAndroid Build Coastguard Worker fi 1836*6236dae4SAndroid Build Coastguard Worker done 1837*6236dae4SAndroid Build Coastguard Worker done 1838*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([$tst_gethostname_type_arg2]) 1839*6236dae4SAndroid Build Coastguard Worker if test "$tst_gethostname_type_arg2" != "unknown"; then 1840*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(GETHOSTNAME_TYPE_ARG2, $tst_gethostname_type_arg2, 1841*6236dae4SAndroid Build Coastguard Worker [Define to the type of arg 2 for gethostname.]) 1842*6236dae4SAndroid Build Coastguard Worker fi 1843*6236dae4SAndroid Build Coastguard Worker fi 1844*6236dae4SAndroid Build Coastguard Worker # 1845*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_gethostname" = "yes"; then 1846*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gethostname usage allowed]) 1847*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_gethostname" != "xyes"; then 1848*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1849*6236dae4SAndroid Build Coastguard Worker tst_allow_gethostname="yes" 1850*6236dae4SAndroid Build Coastguard Worker else 1851*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1852*6236dae4SAndroid Build Coastguard Worker tst_allow_gethostname="no" 1853*6236dae4SAndroid Build Coastguard Worker fi 1854*6236dae4SAndroid Build Coastguard Worker fi 1855*6236dae4SAndroid Build Coastguard Worker # 1856*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gethostname might be used]) 1857*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_gethostname" = "yes" && 1858*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_gethostname" = "yes" && 1859*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_gethostname" = "yes" && 1860*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_gethostname" = "yes"; then 1861*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1862*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_GETHOSTNAME, 1, 1863*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the gethostname function.]) 1864*6236dae4SAndroid Build Coastguard Worker curl_cv_func_gethostname="yes" 1865*6236dae4SAndroid Build Coastguard Worker else 1866*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1867*6236dae4SAndroid Build Coastguard Worker curl_cv_func_gethostname="no" 1868*6236dae4SAndroid Build Coastguard Worker fi 1869*6236dae4SAndroid Build Coastguard Worker]) 1870*6236dae4SAndroid Build Coastguard Worker 1871*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_GETPEERNAME 1872*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 1873*6236dae4SAndroid Build Coastguard Workerdnl Verify if getpeername is available, prototyped, and 1874*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 1875*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 1876*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_getpeername, then 1877*6236dae4SAndroid Build Coastguard Workerdnl HAVE_GETPEERNAME will be defined. 1878*6236dae4SAndroid Build Coastguard Worker 1879*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_GETPEERNAME], [ 1880*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_WINSOCK2])dnl 1881*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_UNISTD])dnl 1882*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_PREPROCESS_CALLCONV])dnl 1883*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_BSDSOCKET])dnl 1884*6236dae4SAndroid Build Coastguard Worker # 1885*6236dae4SAndroid Build Coastguard Worker tst_links_getpeername="unknown" 1886*6236dae4SAndroid Build Coastguard Worker tst_proto_getpeername="unknown" 1887*6236dae4SAndroid Build Coastguard Worker tst_compi_getpeername="unknown" 1888*6236dae4SAndroid Build Coastguard Worker tst_allow_getpeername="unknown" 1889*6236dae4SAndroid Build Coastguard Worker # 1890*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getpeername can be linked]) 1891*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 1892*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1893*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 1894*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 1895*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_socket 1896*6236dae4SAndroid Build Coastguard Worker ]],[[ 1897*6236dae4SAndroid Build Coastguard Worker if(0 != getpeername(0, (void *)0, (void *)0)) 1898*6236dae4SAndroid Build Coastguard Worker return 1; 1899*6236dae4SAndroid Build Coastguard Worker ]]) 1900*6236dae4SAndroid Build Coastguard Worker ],[ 1901*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1902*6236dae4SAndroid Build Coastguard Worker tst_links_getpeername="yes" 1903*6236dae4SAndroid Build Coastguard Worker ],[ 1904*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1905*6236dae4SAndroid Build Coastguard Worker tst_links_getpeername="no" 1906*6236dae4SAndroid Build Coastguard Worker ]) 1907*6236dae4SAndroid Build Coastguard Worker # 1908*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_getpeername" = "yes"; then 1909*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getpeername is prototyped]) 1910*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([getpeername],[ 1911*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 1912*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 1913*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_socket 1914*6236dae4SAndroid Build Coastguard Worker ],[ 1915*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1916*6236dae4SAndroid Build Coastguard Worker tst_proto_getpeername="yes" 1917*6236dae4SAndroid Build Coastguard Worker ],[ 1918*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1919*6236dae4SAndroid Build Coastguard Worker tst_proto_getpeername="no" 1920*6236dae4SAndroid Build Coastguard Worker ]) 1921*6236dae4SAndroid Build Coastguard Worker fi 1922*6236dae4SAndroid Build Coastguard Worker # 1923*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_getpeername" = "yes"; then 1924*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getpeername is compilable]) 1925*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 1926*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1927*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 1928*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 1929*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_socket 1930*6236dae4SAndroid Build Coastguard Worker ]],[[ 1931*6236dae4SAndroid Build Coastguard Worker if(0 != getpeername(0, (void *)0, (void *)0)) 1932*6236dae4SAndroid Build Coastguard Worker return 1; 1933*6236dae4SAndroid Build Coastguard Worker ]]) 1934*6236dae4SAndroid Build Coastguard Worker ],[ 1935*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1936*6236dae4SAndroid Build Coastguard Worker tst_compi_getpeername="yes" 1937*6236dae4SAndroid Build Coastguard Worker ],[ 1938*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1939*6236dae4SAndroid Build Coastguard Worker tst_compi_getpeername="no" 1940*6236dae4SAndroid Build Coastguard Worker ]) 1941*6236dae4SAndroid Build Coastguard Worker fi 1942*6236dae4SAndroid Build Coastguard Worker # 1943*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_getpeername" = "yes"; then 1944*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getpeername usage allowed]) 1945*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_getpeername" != "xyes"; then 1946*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1947*6236dae4SAndroid Build Coastguard Worker tst_allow_getpeername="yes" 1948*6236dae4SAndroid Build Coastguard Worker else 1949*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1950*6236dae4SAndroid Build Coastguard Worker tst_allow_getpeername="no" 1951*6236dae4SAndroid Build Coastguard Worker fi 1952*6236dae4SAndroid Build Coastguard Worker fi 1953*6236dae4SAndroid Build Coastguard Worker # 1954*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getpeername might be used]) 1955*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_getpeername" = "yes" && 1956*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_getpeername" = "yes" && 1957*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_getpeername" = "yes" && 1958*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_getpeername" = "yes"; then 1959*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1960*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_GETPEERNAME, 1, 1961*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the getpeername function.]) 1962*6236dae4SAndroid Build Coastguard Worker curl_cv_func_getpeername="yes" 1963*6236dae4SAndroid Build Coastguard Worker else 1964*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1965*6236dae4SAndroid Build Coastguard Worker curl_cv_func_getpeername="no" 1966*6236dae4SAndroid Build Coastguard Worker fi 1967*6236dae4SAndroid Build Coastguard Worker]) 1968*6236dae4SAndroid Build Coastguard Worker 1969*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_GETSOCKNAME 1970*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 1971*6236dae4SAndroid Build Coastguard Workerdnl Verify if getsockname is available, prototyped, and 1972*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 1973*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 1974*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_getsockname, then 1975*6236dae4SAndroid Build Coastguard Workerdnl HAVE_GETSOCKNAME will be defined. 1976*6236dae4SAndroid Build Coastguard Worker 1977*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_GETSOCKNAME], [ 1978*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_WINSOCK2])dnl 1979*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_UNISTD])dnl 1980*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_PREPROCESS_CALLCONV])dnl 1981*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_BSDSOCKET])dnl 1982*6236dae4SAndroid Build Coastguard Worker # 1983*6236dae4SAndroid Build Coastguard Worker tst_links_getsockname="unknown" 1984*6236dae4SAndroid Build Coastguard Worker tst_proto_getsockname="unknown" 1985*6236dae4SAndroid Build Coastguard Worker tst_compi_getsockname="unknown" 1986*6236dae4SAndroid Build Coastguard Worker tst_allow_getsockname="unknown" 1987*6236dae4SAndroid Build Coastguard Worker # 1988*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getsockname can be linked]) 1989*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 1990*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1991*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 1992*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 1993*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_socket 1994*6236dae4SAndroid Build Coastguard Worker ]],[[ 1995*6236dae4SAndroid Build Coastguard Worker if(0 != getsockname(0, (void *)0, (void *)0)) 1996*6236dae4SAndroid Build Coastguard Worker return 1; 1997*6236dae4SAndroid Build Coastguard Worker ]]) 1998*6236dae4SAndroid Build Coastguard Worker ],[ 1999*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2000*6236dae4SAndroid Build Coastguard Worker tst_links_getsockname="yes" 2001*6236dae4SAndroid Build Coastguard Worker ],[ 2002*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2003*6236dae4SAndroid Build Coastguard Worker tst_links_getsockname="no" 2004*6236dae4SAndroid Build Coastguard Worker ]) 2005*6236dae4SAndroid Build Coastguard Worker # 2006*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_getsockname" = "yes"; then 2007*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getsockname is prototyped]) 2008*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([getsockname],[ 2009*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 2010*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 2011*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_socket 2012*6236dae4SAndroid Build Coastguard Worker ],[ 2013*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2014*6236dae4SAndroid Build Coastguard Worker tst_proto_getsockname="yes" 2015*6236dae4SAndroid Build Coastguard Worker ],[ 2016*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2017*6236dae4SAndroid Build Coastguard Worker tst_proto_getsockname="no" 2018*6236dae4SAndroid Build Coastguard Worker ]) 2019*6236dae4SAndroid Build Coastguard Worker fi 2020*6236dae4SAndroid Build Coastguard Worker # 2021*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_getsockname" = "yes"; then 2022*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getsockname is compilable]) 2023*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 2024*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 2025*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 2026*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 2027*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_socket 2028*6236dae4SAndroid Build Coastguard Worker ]],[[ 2029*6236dae4SAndroid Build Coastguard Worker if(0 != getsockname(0, (void *)0, (void *)0)) 2030*6236dae4SAndroid Build Coastguard Worker return 1; 2031*6236dae4SAndroid Build Coastguard Worker ]]) 2032*6236dae4SAndroid Build Coastguard Worker ],[ 2033*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2034*6236dae4SAndroid Build Coastguard Worker tst_compi_getsockname="yes" 2035*6236dae4SAndroid Build Coastguard Worker ],[ 2036*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2037*6236dae4SAndroid Build Coastguard Worker tst_compi_getsockname="no" 2038*6236dae4SAndroid Build Coastguard Worker ]) 2039*6236dae4SAndroid Build Coastguard Worker fi 2040*6236dae4SAndroid Build Coastguard Worker # 2041*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_getsockname" = "yes"; then 2042*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getsockname usage allowed]) 2043*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_getsockname" != "xyes"; then 2044*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2045*6236dae4SAndroid Build Coastguard Worker tst_allow_getsockname="yes" 2046*6236dae4SAndroid Build Coastguard Worker else 2047*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2048*6236dae4SAndroid Build Coastguard Worker tst_allow_getsockname="no" 2049*6236dae4SAndroid Build Coastguard Worker fi 2050*6236dae4SAndroid Build Coastguard Worker fi 2051*6236dae4SAndroid Build Coastguard Worker # 2052*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getsockname might be used]) 2053*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_getsockname" = "yes" && 2054*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_getsockname" = "yes" && 2055*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_getsockname" = "yes" && 2056*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_getsockname" = "yes"; then 2057*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2058*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_GETSOCKNAME, 1, 2059*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the getsockname function.]) 2060*6236dae4SAndroid Build Coastguard Worker curl_cv_func_getsockname="yes" 2061*6236dae4SAndroid Build Coastguard Worker else 2062*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2063*6236dae4SAndroid Build Coastguard Worker curl_cv_func_getsockname="no" 2064*6236dae4SAndroid Build Coastguard Worker fi 2065*6236dae4SAndroid Build Coastguard Worker]) 2066*6236dae4SAndroid Build Coastguard Worker 2067*6236dae4SAndroid Build Coastguard Worker 2068*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_GETIFADDRS 2069*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 2070*6236dae4SAndroid Build Coastguard Workerdnl Verify if getifaddrs is available, prototyped, can 2071*6236dae4SAndroid Build Coastguard Workerdnl be compiled and seems to work. If all of these are 2072*6236dae4SAndroid Build Coastguard Workerdnl true, and usage has not been previously disallowed 2073*6236dae4SAndroid Build Coastguard Workerdnl with shell variable curl_disallow_getifaddrs, then 2074*6236dae4SAndroid Build Coastguard Workerdnl HAVE_GETIFADDRS will be defined. 2075*6236dae4SAndroid Build Coastguard Worker 2076*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_GETIFADDRS], [ 2077*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_STDLIB])dnl 2078*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_IFADDRS])dnl 2079*6236dae4SAndroid Build Coastguard Worker # 2080*6236dae4SAndroid Build Coastguard Worker tst_links_getifaddrs="unknown" 2081*6236dae4SAndroid Build Coastguard Worker tst_proto_getifaddrs="unknown" 2082*6236dae4SAndroid Build Coastguard Worker tst_compi_getifaddrs="unknown" 2083*6236dae4SAndroid Build Coastguard Worker tst_works_getifaddrs="unknown" 2084*6236dae4SAndroid Build Coastguard Worker tst_allow_getifaddrs="unknown" 2085*6236dae4SAndroid Build Coastguard Worker # 2086*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getifaddrs can be linked]) 2087*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 2088*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([getifaddrs]) 2089*6236dae4SAndroid Build Coastguard Worker ],[ 2090*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2091*6236dae4SAndroid Build Coastguard Worker tst_links_getifaddrs="yes" 2092*6236dae4SAndroid Build Coastguard Worker ],[ 2093*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2094*6236dae4SAndroid Build Coastguard Worker tst_links_getifaddrs="no" 2095*6236dae4SAndroid Build Coastguard Worker ]) 2096*6236dae4SAndroid Build Coastguard Worker # 2097*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_getifaddrs" = "yes"; then 2098*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getifaddrs is prototyped]) 2099*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([getifaddrs],[ 2100*6236dae4SAndroid Build Coastguard Worker $curl_includes_ifaddrs 2101*6236dae4SAndroid Build Coastguard Worker ],[ 2102*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2103*6236dae4SAndroid Build Coastguard Worker tst_proto_getifaddrs="yes" 2104*6236dae4SAndroid Build Coastguard Worker ],[ 2105*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2106*6236dae4SAndroid Build Coastguard Worker tst_proto_getifaddrs="no" 2107*6236dae4SAndroid Build Coastguard Worker ]) 2108*6236dae4SAndroid Build Coastguard Worker fi 2109*6236dae4SAndroid Build Coastguard Worker # 2110*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_getifaddrs" = "yes"; then 2111*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getifaddrs is compilable]) 2112*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 2113*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 2114*6236dae4SAndroid Build Coastguard Worker $curl_includes_ifaddrs 2115*6236dae4SAndroid Build Coastguard Worker ]],[[ 2116*6236dae4SAndroid Build Coastguard Worker if(0 != getifaddrs(0)) 2117*6236dae4SAndroid Build Coastguard Worker return 1; 2118*6236dae4SAndroid Build Coastguard Worker ]]) 2119*6236dae4SAndroid Build Coastguard Worker ],[ 2120*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2121*6236dae4SAndroid Build Coastguard Worker tst_compi_getifaddrs="yes" 2122*6236dae4SAndroid Build Coastguard Worker ],[ 2123*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2124*6236dae4SAndroid Build Coastguard Worker tst_compi_getifaddrs="no" 2125*6236dae4SAndroid Build Coastguard Worker ]) 2126*6236dae4SAndroid Build Coastguard Worker fi 2127*6236dae4SAndroid Build Coastguard Worker # 2128*6236dae4SAndroid Build Coastguard Worker dnl only do runtime verification when not cross-compiling 2129*6236dae4SAndroid Build Coastguard Worker if test "x$cross_compiling" != "xyes" && 2130*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_getifaddrs" = "yes"; then 2131*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getifaddrs seems to work]) 2132*6236dae4SAndroid Build Coastguard Worker CURL_RUN_IFELSE([ 2133*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 2134*6236dae4SAndroid Build Coastguard Worker $curl_includes_stdlib 2135*6236dae4SAndroid Build Coastguard Worker $curl_includes_ifaddrs 2136*6236dae4SAndroid Build Coastguard Worker ]],[[ 2137*6236dae4SAndroid Build Coastguard Worker struct ifaddrs *ifa = 0; 2138*6236dae4SAndroid Build Coastguard Worker int error; 2139*6236dae4SAndroid Build Coastguard Worker 2140*6236dae4SAndroid Build Coastguard Worker error = getifaddrs(&ifa); 2141*6236dae4SAndroid Build Coastguard Worker if(error || !ifa) 2142*6236dae4SAndroid Build Coastguard Worker exit(1); /* fail */ 2143*6236dae4SAndroid Build Coastguard Worker else 2144*6236dae4SAndroid Build Coastguard Worker exit(0); 2145*6236dae4SAndroid Build Coastguard Worker ]]) 2146*6236dae4SAndroid Build Coastguard Worker ],[ 2147*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2148*6236dae4SAndroid Build Coastguard Worker tst_works_getifaddrs="yes" 2149*6236dae4SAndroid Build Coastguard Worker ],[ 2150*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2151*6236dae4SAndroid Build Coastguard Worker tst_works_getifaddrs="no" 2152*6236dae4SAndroid Build Coastguard Worker ]) 2153*6236dae4SAndroid Build Coastguard Worker fi 2154*6236dae4SAndroid Build Coastguard Worker # 2155*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_getifaddrs" = "yes" && 2156*6236dae4SAndroid Build Coastguard Worker test "$tst_works_getifaddrs" != "no"; then 2157*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getifaddrs usage allowed]) 2158*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_getifaddrs" != "xyes"; then 2159*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2160*6236dae4SAndroid Build Coastguard Worker tst_allow_getifaddrs="yes" 2161*6236dae4SAndroid Build Coastguard Worker else 2162*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2163*6236dae4SAndroid Build Coastguard Worker tst_allow_getifaddrs="no" 2164*6236dae4SAndroid Build Coastguard Worker fi 2165*6236dae4SAndroid Build Coastguard Worker fi 2166*6236dae4SAndroid Build Coastguard Worker # 2167*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if getifaddrs might be used]) 2168*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_getifaddrs" = "yes" && 2169*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_getifaddrs" = "yes" && 2170*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_getifaddrs" = "yes" && 2171*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_getifaddrs" = "yes" && 2172*6236dae4SAndroid Build Coastguard Worker test "$tst_works_getifaddrs" != "no"; then 2173*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2174*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_GETIFADDRS, 1, 2175*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have a working getifaddrs function.]) 2176*6236dae4SAndroid Build Coastguard Worker curl_cv_func_getifaddrs="yes" 2177*6236dae4SAndroid Build Coastguard Worker else 2178*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2179*6236dae4SAndroid Build Coastguard Worker curl_cv_func_getifaddrs="no" 2180*6236dae4SAndroid Build Coastguard Worker fi 2181*6236dae4SAndroid Build Coastguard Worker]) 2182*6236dae4SAndroid Build Coastguard Worker 2183*6236dae4SAndroid Build Coastguard Worker 2184*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_GMTIME_R 2185*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 2186*6236dae4SAndroid Build Coastguard Workerdnl Verify if gmtime_r is available, prototyped, can 2187*6236dae4SAndroid Build Coastguard Workerdnl be compiled and seems to work. If all of these are 2188*6236dae4SAndroid Build Coastguard Workerdnl true, and usage has not been previously disallowed 2189*6236dae4SAndroid Build Coastguard Workerdnl with shell variable curl_disallow_gmtime_r, then 2190*6236dae4SAndroid Build Coastguard Workerdnl HAVE_GMTIME_R will be defined. 2191*6236dae4SAndroid Build Coastguard Worker 2192*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_GMTIME_R], [ 2193*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_STDLIB])dnl 2194*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_TIME])dnl 2195*6236dae4SAndroid Build Coastguard Worker # 2196*6236dae4SAndroid Build Coastguard Worker tst_links_gmtime_r="unknown" 2197*6236dae4SAndroid Build Coastguard Worker tst_proto_gmtime_r="unknown" 2198*6236dae4SAndroid Build Coastguard Worker tst_compi_gmtime_r="unknown" 2199*6236dae4SAndroid Build Coastguard Worker tst_works_gmtime_r="unknown" 2200*6236dae4SAndroid Build Coastguard Worker tst_allow_gmtime_r="unknown" 2201*6236dae4SAndroid Build Coastguard Worker # 2202*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gmtime_r can be linked]) 2203*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 2204*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([gmtime_r]) 2205*6236dae4SAndroid Build Coastguard Worker ],[ 2206*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2207*6236dae4SAndroid Build Coastguard Worker tst_links_gmtime_r="yes" 2208*6236dae4SAndroid Build Coastguard Worker ],[ 2209*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2210*6236dae4SAndroid Build Coastguard Worker tst_links_gmtime_r="no" 2211*6236dae4SAndroid Build Coastguard Worker ]) 2212*6236dae4SAndroid Build Coastguard Worker # 2213*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_gmtime_r" = "yes"; then 2214*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gmtime_r is prototyped]) 2215*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([gmtime_r],[ 2216*6236dae4SAndroid Build Coastguard Worker $curl_includes_time 2217*6236dae4SAndroid Build Coastguard Worker ],[ 2218*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2219*6236dae4SAndroid Build Coastguard Worker tst_proto_gmtime_r="yes" 2220*6236dae4SAndroid Build Coastguard Worker ],[ 2221*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2222*6236dae4SAndroid Build Coastguard Worker tst_proto_gmtime_r="no" 2223*6236dae4SAndroid Build Coastguard Worker ]) 2224*6236dae4SAndroid Build Coastguard Worker fi 2225*6236dae4SAndroid Build Coastguard Worker # 2226*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_gmtime_r" = "yes"; then 2227*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gmtime_r is compilable]) 2228*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 2229*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 2230*6236dae4SAndroid Build Coastguard Worker $curl_includes_time 2231*6236dae4SAndroid Build Coastguard Worker ]],[[ 2232*6236dae4SAndroid Build Coastguard Worker if(0 != gmtime_r(0, 0)) 2233*6236dae4SAndroid Build Coastguard Worker return 1; 2234*6236dae4SAndroid Build Coastguard Worker ]]) 2235*6236dae4SAndroid Build Coastguard Worker ],[ 2236*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2237*6236dae4SAndroid Build Coastguard Worker tst_compi_gmtime_r="yes" 2238*6236dae4SAndroid Build Coastguard Worker ],[ 2239*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2240*6236dae4SAndroid Build Coastguard Worker tst_compi_gmtime_r="no" 2241*6236dae4SAndroid Build Coastguard Worker ]) 2242*6236dae4SAndroid Build Coastguard Worker fi 2243*6236dae4SAndroid Build Coastguard Worker # 2244*6236dae4SAndroid Build Coastguard Worker dnl only do runtime verification when not cross-compiling 2245*6236dae4SAndroid Build Coastguard Worker if test "x$cross_compiling" != "xyes" && 2246*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_gmtime_r" = "yes"; then 2247*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gmtime_r seems to work]) 2248*6236dae4SAndroid Build Coastguard Worker CURL_RUN_IFELSE([ 2249*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 2250*6236dae4SAndroid Build Coastguard Worker $curl_includes_stdlib 2251*6236dae4SAndroid Build Coastguard Worker $curl_includes_time 2252*6236dae4SAndroid Build Coastguard Worker ]],[[ 2253*6236dae4SAndroid Build Coastguard Worker time_t local = 1170352587; 2254*6236dae4SAndroid Build Coastguard Worker struct tm *gmt = 0; 2255*6236dae4SAndroid Build Coastguard Worker struct tm result; 2256*6236dae4SAndroid Build Coastguard Worker gmt = gmtime_r(&local, &result); 2257*6236dae4SAndroid Build Coastguard Worker if(gmt) 2258*6236dae4SAndroid Build Coastguard Worker exit(0); 2259*6236dae4SAndroid Build Coastguard Worker else 2260*6236dae4SAndroid Build Coastguard Worker exit(1); 2261*6236dae4SAndroid Build Coastguard Worker ]]) 2262*6236dae4SAndroid Build Coastguard Worker ],[ 2263*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2264*6236dae4SAndroid Build Coastguard Worker tst_works_gmtime_r="yes" 2265*6236dae4SAndroid Build Coastguard Worker ],[ 2266*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2267*6236dae4SAndroid Build Coastguard Worker tst_works_gmtime_r="no" 2268*6236dae4SAndroid Build Coastguard Worker ]) 2269*6236dae4SAndroid Build Coastguard Worker fi 2270*6236dae4SAndroid Build Coastguard Worker # 2271*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_gmtime_r" = "yes" && 2272*6236dae4SAndroid Build Coastguard Worker test "$tst_works_gmtime_r" != "no"; then 2273*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gmtime_r usage allowed]) 2274*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_gmtime_r" != "xyes"; then 2275*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2276*6236dae4SAndroid Build Coastguard Worker tst_allow_gmtime_r="yes" 2277*6236dae4SAndroid Build Coastguard Worker else 2278*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2279*6236dae4SAndroid Build Coastguard Worker tst_allow_gmtime_r="no" 2280*6236dae4SAndroid Build Coastguard Worker fi 2281*6236dae4SAndroid Build Coastguard Worker fi 2282*6236dae4SAndroid Build Coastguard Worker # 2283*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if gmtime_r might be used]) 2284*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_gmtime_r" = "yes" && 2285*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_gmtime_r" = "yes" && 2286*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_gmtime_r" = "yes" && 2287*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_gmtime_r" = "yes" && 2288*6236dae4SAndroid Build Coastguard Worker test "$tst_works_gmtime_r" != "no"; then 2289*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2290*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_GMTIME_R, 1, 2291*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have a working gmtime_r function.]) 2292*6236dae4SAndroid Build Coastguard Worker curl_cv_func_gmtime_r="yes" 2293*6236dae4SAndroid Build Coastguard Worker else 2294*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2295*6236dae4SAndroid Build Coastguard Worker curl_cv_func_gmtime_r="no" 2296*6236dae4SAndroid Build Coastguard Worker fi 2297*6236dae4SAndroid Build Coastguard Worker]) 2298*6236dae4SAndroid Build Coastguard Worker 2299*6236dae4SAndroid Build Coastguard Worker 2300*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_INET_NTOP 2301*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 2302*6236dae4SAndroid Build Coastguard Workerdnl Verify if inet_ntop is available, prototyped, can 2303*6236dae4SAndroid Build Coastguard Workerdnl be compiled and seems to work. If all of these are 2304*6236dae4SAndroid Build Coastguard Workerdnl true, and usage has not been previously disallowed 2305*6236dae4SAndroid Build Coastguard Workerdnl with shell variable curl_disallow_inet_ntop, then 2306*6236dae4SAndroid Build Coastguard Workerdnl HAVE_INET_NTOP will be defined. 2307*6236dae4SAndroid Build Coastguard Worker 2308*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_INET_NTOP], [ 2309*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_STDLIB])dnl 2310*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_ARPA_INET])dnl 2311*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_STRING])dnl 2312*6236dae4SAndroid Build Coastguard Worker # 2313*6236dae4SAndroid Build Coastguard Worker tst_links_inet_ntop="unknown" 2314*6236dae4SAndroid Build Coastguard Worker tst_proto_inet_ntop="unknown" 2315*6236dae4SAndroid Build Coastguard Worker tst_compi_inet_ntop="unknown" 2316*6236dae4SAndroid Build Coastguard Worker tst_works_inet_ntop="unknown" 2317*6236dae4SAndroid Build Coastguard Worker tst_allow_inet_ntop="unknown" 2318*6236dae4SAndroid Build Coastguard Worker # 2319*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if inet_ntop can be linked]) 2320*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 2321*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([inet_ntop]) 2322*6236dae4SAndroid Build Coastguard Worker ],[ 2323*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2324*6236dae4SAndroid Build Coastguard Worker tst_links_inet_ntop="yes" 2325*6236dae4SAndroid Build Coastguard Worker ],[ 2326*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2327*6236dae4SAndroid Build Coastguard Worker tst_links_inet_ntop="no" 2328*6236dae4SAndroid Build Coastguard Worker ]) 2329*6236dae4SAndroid Build Coastguard Worker # 2330*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_inet_ntop" = "yes"; then 2331*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if inet_ntop is prototyped]) 2332*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([inet_ntop],[ 2333*6236dae4SAndroid Build Coastguard Worker $curl_includes_arpa_inet 2334*6236dae4SAndroid Build Coastguard Worker ],[ 2335*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2336*6236dae4SAndroid Build Coastguard Worker tst_proto_inet_ntop="yes" 2337*6236dae4SAndroid Build Coastguard Worker ],[ 2338*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2339*6236dae4SAndroid Build Coastguard Worker tst_proto_inet_ntop="no" 2340*6236dae4SAndroid Build Coastguard Worker ]) 2341*6236dae4SAndroid Build Coastguard Worker fi 2342*6236dae4SAndroid Build Coastguard Worker # 2343*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_inet_ntop" = "yes"; then 2344*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if inet_ntop is compilable]) 2345*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 2346*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 2347*6236dae4SAndroid Build Coastguard Worker $curl_includes_arpa_inet 2348*6236dae4SAndroid Build Coastguard Worker ]],[[ 2349*6236dae4SAndroid Build Coastguard Worker if(0 != inet_ntop(0, 0, 0, 0)) 2350*6236dae4SAndroid Build Coastguard Worker return 1; 2351*6236dae4SAndroid Build Coastguard Worker ]]) 2352*6236dae4SAndroid Build Coastguard Worker ],[ 2353*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2354*6236dae4SAndroid Build Coastguard Worker tst_compi_inet_ntop="yes" 2355*6236dae4SAndroid Build Coastguard Worker ],[ 2356*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2357*6236dae4SAndroid Build Coastguard Worker tst_compi_inet_ntop="no" 2358*6236dae4SAndroid Build Coastguard Worker ]) 2359*6236dae4SAndroid Build Coastguard Worker fi 2360*6236dae4SAndroid Build Coastguard Worker # 2361*6236dae4SAndroid Build Coastguard Worker dnl only do runtime verification when not cross-compiling 2362*6236dae4SAndroid Build Coastguard Worker if test "x$cross_compiling" != "xyes" && 2363*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_inet_ntop" = "yes"; then 2364*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if inet_ntop seems to work]) 2365*6236dae4SAndroid Build Coastguard Worker CURL_RUN_IFELSE([ 2366*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 2367*6236dae4SAndroid Build Coastguard Worker $curl_includes_stdlib 2368*6236dae4SAndroid Build Coastguard Worker $curl_includes_arpa_inet 2369*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 2370*6236dae4SAndroid Build Coastguard Worker ]],[[ 2371*6236dae4SAndroid Build Coastguard Worker char ipv6res[sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")]; 2372*6236dae4SAndroid Build Coastguard Worker char ipv4res[sizeof "255.255.255.255"]; 2373*6236dae4SAndroid Build Coastguard Worker unsigned char ipv6a[26]; 2374*6236dae4SAndroid Build Coastguard Worker unsigned char ipv4a[5]; 2375*6236dae4SAndroid Build Coastguard Worker char *ipv6ptr = 0; 2376*6236dae4SAndroid Build Coastguard Worker char *ipv4ptr = 0; 2377*6236dae4SAndroid Build Coastguard Worker /* - */ 2378*6236dae4SAndroid Build Coastguard Worker ipv4res[0] = '\0'; 2379*6236dae4SAndroid Build Coastguard Worker ipv4a[0] = 0xc0; 2380*6236dae4SAndroid Build Coastguard Worker ipv4a[1] = 0xa8; 2381*6236dae4SAndroid Build Coastguard Worker ipv4a[2] = 0x64; 2382*6236dae4SAndroid Build Coastguard Worker ipv4a[3] = 0x01; 2383*6236dae4SAndroid Build Coastguard Worker ipv4a[4] = 0x01; 2384*6236dae4SAndroid Build Coastguard Worker /* - */ 2385*6236dae4SAndroid Build Coastguard Worker ipv4ptr = inet_ntop(AF_INET, ipv4a, ipv4res, sizeof(ipv4res)); 2386*6236dae4SAndroid Build Coastguard Worker if(!ipv4ptr) 2387*6236dae4SAndroid Build Coastguard Worker exit(1); /* fail */ 2388*6236dae4SAndroid Build Coastguard Worker if(ipv4ptr != ipv4res) 2389*6236dae4SAndroid Build Coastguard Worker exit(1); /* fail */ 2390*6236dae4SAndroid Build Coastguard Worker if(!ipv4ptr[0]) 2391*6236dae4SAndroid Build Coastguard Worker exit(1); /* fail */ 2392*6236dae4SAndroid Build Coastguard Worker if(memcmp(ipv4res, "192.168.100.1", 13) != 0) 2393*6236dae4SAndroid Build Coastguard Worker exit(1); /* fail */ 2394*6236dae4SAndroid Build Coastguard Worker /* - */ 2395*6236dae4SAndroid Build Coastguard Worker ipv6res[0] = '\0'; 2396*6236dae4SAndroid Build Coastguard Worker memset(ipv6a, 0, sizeof(ipv6a)); 2397*6236dae4SAndroid Build Coastguard Worker ipv6a[0] = 0xfe; 2398*6236dae4SAndroid Build Coastguard Worker ipv6a[1] = 0x80; 2399*6236dae4SAndroid Build Coastguard Worker ipv6a[8] = 0x02; 2400*6236dae4SAndroid Build Coastguard Worker ipv6a[9] = 0x14; 2401*6236dae4SAndroid Build Coastguard Worker ipv6a[10] = 0x4f; 2402*6236dae4SAndroid Build Coastguard Worker ipv6a[11] = 0xff; 2403*6236dae4SAndroid Build Coastguard Worker ipv6a[12] = 0xfe; 2404*6236dae4SAndroid Build Coastguard Worker ipv6a[13] = 0x0b; 2405*6236dae4SAndroid Build Coastguard Worker ipv6a[14] = 0x76; 2406*6236dae4SAndroid Build Coastguard Worker ipv6a[15] = 0xc8; 2407*6236dae4SAndroid Build Coastguard Worker ipv6a[25] = 0x01; 2408*6236dae4SAndroid Build Coastguard Worker /* - */ 2409*6236dae4SAndroid Build Coastguard Worker ipv6ptr = inet_ntop(AF_INET6, ipv6a, ipv6res, sizeof(ipv6res)); 2410*6236dae4SAndroid Build Coastguard Worker if(!ipv6ptr) 2411*6236dae4SAndroid Build Coastguard Worker exit(1); /* fail */ 2412*6236dae4SAndroid Build Coastguard Worker if(ipv6ptr != ipv6res) 2413*6236dae4SAndroid Build Coastguard Worker exit(1); /* fail */ 2414*6236dae4SAndroid Build Coastguard Worker if(!ipv6ptr[0]) 2415*6236dae4SAndroid Build Coastguard Worker exit(1); /* fail */ 2416*6236dae4SAndroid Build Coastguard Worker if(memcmp(ipv6res, "fe80::214:4fff:fe0b:76c8", 24) != 0) 2417*6236dae4SAndroid Build Coastguard Worker exit(1); /* fail */ 2418*6236dae4SAndroid Build Coastguard Worker /* - */ 2419*6236dae4SAndroid Build Coastguard Worker exit(0); 2420*6236dae4SAndroid Build Coastguard Worker ]]) 2421*6236dae4SAndroid Build Coastguard Worker ],[ 2422*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2423*6236dae4SAndroid Build Coastguard Worker tst_works_inet_ntop="yes" 2424*6236dae4SAndroid Build Coastguard Worker ],[ 2425*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2426*6236dae4SAndroid Build Coastguard Worker tst_works_inet_ntop="no" 2427*6236dae4SAndroid Build Coastguard Worker ]) 2428*6236dae4SAndroid Build Coastguard Worker fi 2429*6236dae4SAndroid Build Coastguard Worker # 2430*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_inet_ntop" = "yes" && 2431*6236dae4SAndroid Build Coastguard Worker test "$tst_works_inet_ntop" != "no"; then 2432*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if inet_ntop usage allowed]) 2433*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_inet_ntop" != "xyes"; then 2434*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2435*6236dae4SAndroid Build Coastguard Worker tst_allow_inet_ntop="yes" 2436*6236dae4SAndroid Build Coastguard Worker else 2437*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2438*6236dae4SAndroid Build Coastguard Worker tst_allow_inet_ntop="no" 2439*6236dae4SAndroid Build Coastguard Worker fi 2440*6236dae4SAndroid Build Coastguard Worker fi 2441*6236dae4SAndroid Build Coastguard Worker # 2442*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if inet_ntop might be used]) 2443*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_inet_ntop" = "yes" && 2444*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_inet_ntop" = "yes" && 2445*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_inet_ntop" = "yes" && 2446*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_inet_ntop" = "yes" && 2447*6236dae4SAndroid Build Coastguard Worker test "$tst_works_inet_ntop" != "no"; then 2448*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2449*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_INET_NTOP, 1, 2450*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have a IPv6 capable working inet_ntop function.]) 2451*6236dae4SAndroid Build Coastguard Worker curl_cv_func_inet_ntop="yes" 2452*6236dae4SAndroid Build Coastguard Worker else 2453*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2454*6236dae4SAndroid Build Coastguard Worker curl_cv_func_inet_ntop="no" 2455*6236dae4SAndroid Build Coastguard Worker fi 2456*6236dae4SAndroid Build Coastguard Worker]) 2457*6236dae4SAndroid Build Coastguard Worker 2458*6236dae4SAndroid Build Coastguard Worker 2459*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_INET_PTON 2460*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 2461*6236dae4SAndroid Build Coastguard Workerdnl Verify if inet_pton is available, prototyped, can 2462*6236dae4SAndroid Build Coastguard Workerdnl be compiled and seems to work. If all of these are 2463*6236dae4SAndroid Build Coastguard Workerdnl true, and usage has not been previously disallowed 2464*6236dae4SAndroid Build Coastguard Workerdnl with shell variable curl_disallow_inet_pton, then 2465*6236dae4SAndroid Build Coastguard Workerdnl HAVE_INET_PTON will be defined. 2466*6236dae4SAndroid Build Coastguard Worker 2467*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_INET_PTON], [ 2468*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_STDLIB])dnl 2469*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_ARPA_INET])dnl 2470*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_STRING])dnl 2471*6236dae4SAndroid Build Coastguard Worker # 2472*6236dae4SAndroid Build Coastguard Worker tst_links_inet_pton="unknown" 2473*6236dae4SAndroid Build Coastguard Worker tst_proto_inet_pton="unknown" 2474*6236dae4SAndroid Build Coastguard Worker tst_compi_inet_pton="unknown" 2475*6236dae4SAndroid Build Coastguard Worker tst_works_inet_pton="unknown" 2476*6236dae4SAndroid Build Coastguard Worker tst_allow_inet_pton="unknown" 2477*6236dae4SAndroid Build Coastguard Worker # 2478*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if inet_pton can be linked]) 2479*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 2480*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([inet_pton]) 2481*6236dae4SAndroid Build Coastguard Worker ],[ 2482*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2483*6236dae4SAndroid Build Coastguard Worker tst_links_inet_pton="yes" 2484*6236dae4SAndroid Build Coastguard Worker ],[ 2485*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2486*6236dae4SAndroid Build Coastguard Worker tst_links_inet_pton="no" 2487*6236dae4SAndroid Build Coastguard Worker ]) 2488*6236dae4SAndroid Build Coastguard Worker # 2489*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_inet_pton" = "yes"; then 2490*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if inet_pton is prototyped]) 2491*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([inet_pton],[ 2492*6236dae4SAndroid Build Coastguard Worker $curl_includes_arpa_inet 2493*6236dae4SAndroid Build Coastguard Worker ],[ 2494*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2495*6236dae4SAndroid Build Coastguard Worker tst_proto_inet_pton="yes" 2496*6236dae4SAndroid Build Coastguard Worker ],[ 2497*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2498*6236dae4SAndroid Build Coastguard Worker tst_proto_inet_pton="no" 2499*6236dae4SAndroid Build Coastguard Worker ]) 2500*6236dae4SAndroid Build Coastguard Worker fi 2501*6236dae4SAndroid Build Coastguard Worker # 2502*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_inet_pton" = "yes"; then 2503*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if inet_pton is compilable]) 2504*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 2505*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 2506*6236dae4SAndroid Build Coastguard Worker $curl_includes_arpa_inet 2507*6236dae4SAndroid Build Coastguard Worker ]],[[ 2508*6236dae4SAndroid Build Coastguard Worker if(0 != inet_pton(0, 0, 0)) 2509*6236dae4SAndroid Build Coastguard Worker return 1; 2510*6236dae4SAndroid Build Coastguard Worker ]]) 2511*6236dae4SAndroid Build Coastguard Worker ],[ 2512*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2513*6236dae4SAndroid Build Coastguard Worker tst_compi_inet_pton="yes" 2514*6236dae4SAndroid Build Coastguard Worker ],[ 2515*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2516*6236dae4SAndroid Build Coastguard Worker tst_compi_inet_pton="no" 2517*6236dae4SAndroid Build Coastguard Worker ]) 2518*6236dae4SAndroid Build Coastguard Worker fi 2519*6236dae4SAndroid Build Coastguard Worker # 2520*6236dae4SAndroid Build Coastguard Worker dnl only do runtime verification when not cross-compiling 2521*6236dae4SAndroid Build Coastguard Worker if test "x$cross_compiling" != "xyes" && 2522*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_inet_pton" = "yes"; then 2523*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if inet_pton seems to work]) 2524*6236dae4SAndroid Build Coastguard Worker CURL_RUN_IFELSE([ 2525*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 2526*6236dae4SAndroid Build Coastguard Worker $curl_includes_stdlib 2527*6236dae4SAndroid Build Coastguard Worker $curl_includes_arpa_inet 2528*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 2529*6236dae4SAndroid Build Coastguard Worker ]],[[ 2530*6236dae4SAndroid Build Coastguard Worker unsigned char ipv6a[16+1]; 2531*6236dae4SAndroid Build Coastguard Worker unsigned char ipv4a[4+1]; 2532*6236dae4SAndroid Build Coastguard Worker const char *ipv6src = "fe80::214:4fff:fe0b:76c8"; 2533*6236dae4SAndroid Build Coastguard Worker const char *ipv4src = "192.168.100.1"; 2534*6236dae4SAndroid Build Coastguard Worker /* - */ 2535*6236dae4SAndroid Build Coastguard Worker memset(ipv4a, 1, sizeof(ipv4a)); 2536*6236dae4SAndroid Build Coastguard Worker if(1 != inet_pton(AF_INET, ipv4src, ipv4a)) 2537*6236dae4SAndroid Build Coastguard Worker exit(1); /* fail */ 2538*6236dae4SAndroid Build Coastguard Worker /* - */ 2539*6236dae4SAndroid Build Coastguard Worker if( (ipv4a[0] != 0xc0) || 2540*6236dae4SAndroid Build Coastguard Worker (ipv4a[1] != 0xa8) || 2541*6236dae4SAndroid Build Coastguard Worker (ipv4a[2] != 0x64) || 2542*6236dae4SAndroid Build Coastguard Worker (ipv4a[3] != 0x01) || 2543*6236dae4SAndroid Build Coastguard Worker (ipv4a[4] != 0x01) ) 2544*6236dae4SAndroid Build Coastguard Worker exit(1); /* fail */ 2545*6236dae4SAndroid Build Coastguard Worker /* - */ 2546*6236dae4SAndroid Build Coastguard Worker memset(ipv6a, 1, sizeof(ipv6a)); 2547*6236dae4SAndroid Build Coastguard Worker if(1 != inet_pton(AF_INET6, ipv6src, ipv6a)) 2548*6236dae4SAndroid Build Coastguard Worker exit(1); /* fail */ 2549*6236dae4SAndroid Build Coastguard Worker /* - */ 2550*6236dae4SAndroid Build Coastguard Worker if( (ipv6a[0] != 0xfe) || 2551*6236dae4SAndroid Build Coastguard Worker (ipv6a[1] != 0x80) || 2552*6236dae4SAndroid Build Coastguard Worker (ipv6a[8] != 0x02) || 2553*6236dae4SAndroid Build Coastguard Worker (ipv6a[9] != 0x14) || 2554*6236dae4SAndroid Build Coastguard Worker (ipv6a[10] != 0x4f) || 2555*6236dae4SAndroid Build Coastguard Worker (ipv6a[11] != 0xff) || 2556*6236dae4SAndroid Build Coastguard Worker (ipv6a[12] != 0xfe) || 2557*6236dae4SAndroid Build Coastguard Worker (ipv6a[13] != 0x0b) || 2558*6236dae4SAndroid Build Coastguard Worker (ipv6a[14] != 0x76) || 2559*6236dae4SAndroid Build Coastguard Worker (ipv6a[15] != 0xc8) || 2560*6236dae4SAndroid Build Coastguard Worker (ipv6a[16] != 0x01) ) 2561*6236dae4SAndroid Build Coastguard Worker exit(1); /* fail */ 2562*6236dae4SAndroid Build Coastguard Worker /* - */ 2563*6236dae4SAndroid Build Coastguard Worker if( (ipv6a[2] != 0x0) || 2564*6236dae4SAndroid Build Coastguard Worker (ipv6a[3] != 0x0) || 2565*6236dae4SAndroid Build Coastguard Worker (ipv6a[4] != 0x0) || 2566*6236dae4SAndroid Build Coastguard Worker (ipv6a[5] != 0x0) || 2567*6236dae4SAndroid Build Coastguard Worker (ipv6a[6] != 0x0) || 2568*6236dae4SAndroid Build Coastguard Worker (ipv6a[7] != 0x0) ) 2569*6236dae4SAndroid Build Coastguard Worker exit(1); /* fail */ 2570*6236dae4SAndroid Build Coastguard Worker /* - */ 2571*6236dae4SAndroid Build Coastguard Worker exit(0); 2572*6236dae4SAndroid Build Coastguard Worker ]]) 2573*6236dae4SAndroid Build Coastguard Worker ],[ 2574*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2575*6236dae4SAndroid Build Coastguard Worker tst_works_inet_pton="yes" 2576*6236dae4SAndroid Build Coastguard Worker ],[ 2577*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2578*6236dae4SAndroid Build Coastguard Worker tst_works_inet_pton="no" 2579*6236dae4SAndroid Build Coastguard Worker ]) 2580*6236dae4SAndroid Build Coastguard Worker fi 2581*6236dae4SAndroid Build Coastguard Worker # 2582*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_inet_pton" = "yes" && 2583*6236dae4SAndroid Build Coastguard Worker test "$tst_works_inet_pton" != "no"; then 2584*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if inet_pton usage allowed]) 2585*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_inet_pton" != "xyes"; then 2586*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2587*6236dae4SAndroid Build Coastguard Worker tst_allow_inet_pton="yes" 2588*6236dae4SAndroid Build Coastguard Worker else 2589*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2590*6236dae4SAndroid Build Coastguard Worker tst_allow_inet_pton="no" 2591*6236dae4SAndroid Build Coastguard Worker fi 2592*6236dae4SAndroid Build Coastguard Worker fi 2593*6236dae4SAndroid Build Coastguard Worker # 2594*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if inet_pton might be used]) 2595*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_inet_pton" = "yes" && 2596*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_inet_pton" = "yes" && 2597*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_inet_pton" = "yes" && 2598*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_inet_pton" = "yes" && 2599*6236dae4SAndroid Build Coastguard Worker test "$tst_works_inet_pton" != "no"; then 2600*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2601*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_INET_PTON, 1, 2602*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have a IPv6 capable working inet_pton function.]) 2603*6236dae4SAndroid Build Coastguard Worker curl_cv_func_inet_pton="yes" 2604*6236dae4SAndroid Build Coastguard Worker else 2605*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2606*6236dae4SAndroid Build Coastguard Worker curl_cv_func_inet_pton="no" 2607*6236dae4SAndroid Build Coastguard Worker fi 2608*6236dae4SAndroid Build Coastguard Worker]) 2609*6236dae4SAndroid Build Coastguard Worker 2610*6236dae4SAndroid Build Coastguard Worker 2611*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_IOCTL 2612*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 2613*6236dae4SAndroid Build Coastguard Workerdnl Verify if ioctl is available, prototyped, and 2614*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 2615*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 2616*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_ioctl, then 2617*6236dae4SAndroid Build Coastguard Workerdnl HAVE_IOCTL will be defined. 2618*6236dae4SAndroid Build Coastguard Worker 2619*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_IOCTL], [ 2620*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_STROPTS])dnl 2621*6236dae4SAndroid Build Coastguard Worker # 2622*6236dae4SAndroid Build Coastguard Worker tst_links_ioctl="unknown" 2623*6236dae4SAndroid Build Coastguard Worker tst_proto_ioctl="unknown" 2624*6236dae4SAndroid Build Coastguard Worker tst_compi_ioctl="unknown" 2625*6236dae4SAndroid Build Coastguard Worker tst_allow_ioctl="unknown" 2626*6236dae4SAndroid Build Coastguard Worker # 2627*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ioctl can be linked]) 2628*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 2629*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([ioctl]) 2630*6236dae4SAndroid Build Coastguard Worker ],[ 2631*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2632*6236dae4SAndroid Build Coastguard Worker tst_links_ioctl="yes" 2633*6236dae4SAndroid Build Coastguard Worker ],[ 2634*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2635*6236dae4SAndroid Build Coastguard Worker tst_links_ioctl="no" 2636*6236dae4SAndroid Build Coastguard Worker ]) 2637*6236dae4SAndroid Build Coastguard Worker # 2638*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_ioctl" = "yes"; then 2639*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ioctl is prototyped]) 2640*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([ioctl],[ 2641*6236dae4SAndroid Build Coastguard Worker $curl_includes_stropts 2642*6236dae4SAndroid Build Coastguard Worker ],[ 2643*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2644*6236dae4SAndroid Build Coastguard Worker tst_proto_ioctl="yes" 2645*6236dae4SAndroid Build Coastguard Worker ],[ 2646*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2647*6236dae4SAndroid Build Coastguard Worker tst_proto_ioctl="no" 2648*6236dae4SAndroid Build Coastguard Worker ]) 2649*6236dae4SAndroid Build Coastguard Worker fi 2650*6236dae4SAndroid Build Coastguard Worker # 2651*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_ioctl" = "yes"; then 2652*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ioctl is compilable]) 2653*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 2654*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 2655*6236dae4SAndroid Build Coastguard Worker $curl_includes_stropts 2656*6236dae4SAndroid Build Coastguard Worker ]],[[ 2657*6236dae4SAndroid Build Coastguard Worker if(0 != ioctl(0, 0, 0)) 2658*6236dae4SAndroid Build Coastguard Worker return 1; 2659*6236dae4SAndroid Build Coastguard Worker ]]) 2660*6236dae4SAndroid Build Coastguard Worker ],[ 2661*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2662*6236dae4SAndroid Build Coastguard Worker tst_compi_ioctl="yes" 2663*6236dae4SAndroid Build Coastguard Worker ],[ 2664*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2665*6236dae4SAndroid Build Coastguard Worker tst_compi_ioctl="no" 2666*6236dae4SAndroid Build Coastguard Worker ]) 2667*6236dae4SAndroid Build Coastguard Worker fi 2668*6236dae4SAndroid Build Coastguard Worker # 2669*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_ioctl" = "yes"; then 2670*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ioctl usage allowed]) 2671*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_ioctl" != "xyes"; then 2672*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2673*6236dae4SAndroid Build Coastguard Worker tst_allow_ioctl="yes" 2674*6236dae4SAndroid Build Coastguard Worker else 2675*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2676*6236dae4SAndroid Build Coastguard Worker tst_allow_ioctl="no" 2677*6236dae4SAndroid Build Coastguard Worker fi 2678*6236dae4SAndroid Build Coastguard Worker fi 2679*6236dae4SAndroid Build Coastguard Worker # 2680*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ioctl might be used]) 2681*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_ioctl" = "yes" && 2682*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_ioctl" = "yes" && 2683*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_ioctl" = "yes" && 2684*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_ioctl" = "yes"; then 2685*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2686*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_IOCTL, 1, 2687*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the ioctl function.]) 2688*6236dae4SAndroid Build Coastguard Worker curl_cv_func_ioctl="yes" 2689*6236dae4SAndroid Build Coastguard Worker CURL_CHECK_FUNC_IOCTL_FIONBIO 2690*6236dae4SAndroid Build Coastguard Worker CURL_CHECK_FUNC_IOCTL_SIOCGIFADDR 2691*6236dae4SAndroid Build Coastguard Worker else 2692*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2693*6236dae4SAndroid Build Coastguard Worker curl_cv_func_ioctl="no" 2694*6236dae4SAndroid Build Coastguard Worker fi 2695*6236dae4SAndroid Build Coastguard Worker]) 2696*6236dae4SAndroid Build Coastguard Worker 2697*6236dae4SAndroid Build Coastguard Worker 2698*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_IOCTL_FIONBIO 2699*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 2700*6236dae4SAndroid Build Coastguard Workerdnl Verify if ioctl with the FIONBIO command is 2701*6236dae4SAndroid Build Coastguard Workerdnl available, can be compiled, and seems to work. If 2702*6236dae4SAndroid Build Coastguard Workerdnl all of these are true, then HAVE_IOCTL_FIONBIO 2703*6236dae4SAndroid Build Coastguard Workerdnl will be defined. 2704*6236dae4SAndroid Build Coastguard Worker 2705*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_IOCTL_FIONBIO], [ 2706*6236dae4SAndroid Build Coastguard Worker # 2707*6236dae4SAndroid Build Coastguard Worker tst_compi_ioctl_fionbio="unknown" 2708*6236dae4SAndroid Build Coastguard Worker tst_allow_ioctl_fionbio="unknown" 2709*6236dae4SAndroid Build Coastguard Worker # 2710*6236dae4SAndroid Build Coastguard Worker if test "$curl_cv_func_ioctl" = "yes"; then 2711*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ioctl FIONBIO is compilable]) 2712*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 2713*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 2714*6236dae4SAndroid Build Coastguard Worker $curl_includes_stropts 2715*6236dae4SAndroid Build Coastguard Worker ]],[[ 2716*6236dae4SAndroid Build Coastguard Worker int flags = 0; 2717*6236dae4SAndroid Build Coastguard Worker if(0 != ioctl(0, FIONBIO, &flags)) 2718*6236dae4SAndroid Build Coastguard Worker return 1; 2719*6236dae4SAndroid Build Coastguard Worker ]]) 2720*6236dae4SAndroid Build Coastguard Worker ],[ 2721*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2722*6236dae4SAndroid Build Coastguard Worker tst_compi_ioctl_fionbio="yes" 2723*6236dae4SAndroid Build Coastguard Worker ],[ 2724*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2725*6236dae4SAndroid Build Coastguard Worker tst_compi_ioctl_fionbio="no" 2726*6236dae4SAndroid Build Coastguard Worker ]) 2727*6236dae4SAndroid Build Coastguard Worker fi 2728*6236dae4SAndroid Build Coastguard Worker # 2729*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_ioctl_fionbio" = "yes"; then 2730*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ioctl FIONBIO usage allowed]) 2731*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_ioctl_fionbio" != "xyes"; then 2732*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2733*6236dae4SAndroid Build Coastguard Worker tst_allow_ioctl_fionbio="yes" 2734*6236dae4SAndroid Build Coastguard Worker else 2735*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2736*6236dae4SAndroid Build Coastguard Worker tst_allow_ioctl_fionbio="no" 2737*6236dae4SAndroid Build Coastguard Worker fi 2738*6236dae4SAndroid Build Coastguard Worker fi 2739*6236dae4SAndroid Build Coastguard Worker # 2740*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ioctl FIONBIO might be used]) 2741*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_ioctl_fionbio" = "yes" && 2742*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_ioctl_fionbio" = "yes"; then 2743*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2744*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_IOCTL_FIONBIO, 1, 2745*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have a working ioctl FIONBIO function.]) 2746*6236dae4SAndroid Build Coastguard Worker curl_cv_func_ioctl_fionbio="yes" 2747*6236dae4SAndroid Build Coastguard Worker else 2748*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2749*6236dae4SAndroid Build Coastguard Worker curl_cv_func_ioctl_fionbio="no" 2750*6236dae4SAndroid Build Coastguard Worker fi 2751*6236dae4SAndroid Build Coastguard Worker]) 2752*6236dae4SAndroid Build Coastguard Worker 2753*6236dae4SAndroid Build Coastguard Worker 2754*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_IOCTL_SIOCGIFADDR 2755*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 2756*6236dae4SAndroid Build Coastguard Workerdnl Verify if ioctl with the SIOCGIFADDR command is available, 2757*6236dae4SAndroid Build Coastguard Workerdnl struct ifreq is defined, they can be compiled, and seem to 2758*6236dae4SAndroid Build Coastguard Workerdnl work. If all of these are true, then HAVE_IOCTL_SIOCGIFADDR 2759*6236dae4SAndroid Build Coastguard Workerdnl will be defined. 2760*6236dae4SAndroid Build Coastguard Worker 2761*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_IOCTL_SIOCGIFADDR], [ 2762*6236dae4SAndroid Build Coastguard Worker # 2763*6236dae4SAndroid Build Coastguard Worker tst_compi_ioctl_siocgifaddr="unknown" 2764*6236dae4SAndroid Build Coastguard Worker tst_allow_ioctl_siocgifaddr="unknown" 2765*6236dae4SAndroid Build Coastguard Worker # 2766*6236dae4SAndroid Build Coastguard Worker if test "$curl_cv_func_ioctl" = "yes"; then 2767*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ioctl SIOCGIFADDR is compilable]) 2768*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 2769*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 2770*6236dae4SAndroid Build Coastguard Worker $curl_includes_stropts 2771*6236dae4SAndroid Build Coastguard Worker #include <net/if.h> 2772*6236dae4SAndroid Build Coastguard Worker ]],[[ 2773*6236dae4SAndroid Build Coastguard Worker struct ifreq ifr; 2774*6236dae4SAndroid Build Coastguard Worker if(0 != ioctl(0, SIOCGIFADDR, &ifr)) 2775*6236dae4SAndroid Build Coastguard Worker return 1; 2776*6236dae4SAndroid Build Coastguard Worker ]]) 2777*6236dae4SAndroid Build Coastguard Worker ],[ 2778*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2779*6236dae4SAndroid Build Coastguard Worker tst_compi_ioctl_siocgifaddr="yes" 2780*6236dae4SAndroid Build Coastguard Worker ],[ 2781*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2782*6236dae4SAndroid Build Coastguard Worker tst_compi_ioctl_siocgifaddr="no" 2783*6236dae4SAndroid Build Coastguard Worker ]) 2784*6236dae4SAndroid Build Coastguard Worker fi 2785*6236dae4SAndroid Build Coastguard Worker # 2786*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_ioctl_siocgifaddr" = "yes"; then 2787*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ioctl SIOCGIFADDR usage allowed]) 2788*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_ioctl_siocgifaddr" != "xyes"; then 2789*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2790*6236dae4SAndroid Build Coastguard Worker tst_allow_ioctl_siocgifaddr="yes" 2791*6236dae4SAndroid Build Coastguard Worker else 2792*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2793*6236dae4SAndroid Build Coastguard Worker tst_allow_ioctl_siocgifaddr="no" 2794*6236dae4SAndroid Build Coastguard Worker fi 2795*6236dae4SAndroid Build Coastguard Worker fi 2796*6236dae4SAndroid Build Coastguard Worker # 2797*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ioctl SIOCGIFADDR might be used]) 2798*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_ioctl_siocgifaddr" = "yes" && 2799*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_ioctl_siocgifaddr" = "yes"; then 2800*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2801*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_IOCTL_SIOCGIFADDR, 1, 2802*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have a working ioctl SIOCGIFADDR function.]) 2803*6236dae4SAndroid Build Coastguard Worker curl_cv_func_ioctl_siocgifaddr="yes" 2804*6236dae4SAndroid Build Coastguard Worker else 2805*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2806*6236dae4SAndroid Build Coastguard Worker curl_cv_func_ioctl_siocgifaddr="no" 2807*6236dae4SAndroid Build Coastguard Worker fi 2808*6236dae4SAndroid Build Coastguard Worker]) 2809*6236dae4SAndroid Build Coastguard Worker 2810*6236dae4SAndroid Build Coastguard Worker 2811*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_IOCTLSOCKET 2812*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 2813*6236dae4SAndroid Build Coastguard Workerdnl Verify if ioctlsocket is available, prototyped, and 2814*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 2815*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 2816*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_ioctlsocket, then 2817*6236dae4SAndroid Build Coastguard Workerdnl HAVE_IOCTLSOCKET will be defined. 2818*6236dae4SAndroid Build Coastguard Worker 2819*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_IOCTLSOCKET], [ 2820*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_WINSOCK2])dnl 2821*6236dae4SAndroid Build Coastguard Worker # 2822*6236dae4SAndroid Build Coastguard Worker tst_links_ioctlsocket="unknown" 2823*6236dae4SAndroid Build Coastguard Worker tst_proto_ioctlsocket="unknown" 2824*6236dae4SAndroid Build Coastguard Worker tst_compi_ioctlsocket="unknown" 2825*6236dae4SAndroid Build Coastguard Worker tst_allow_ioctlsocket="unknown" 2826*6236dae4SAndroid Build Coastguard Worker # 2827*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ioctlsocket can be linked]) 2828*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 2829*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 2830*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 2831*6236dae4SAndroid Build Coastguard Worker ]],[[ 2832*6236dae4SAndroid Build Coastguard Worker if(0 != ioctlsocket(0, 0, 0)) 2833*6236dae4SAndroid Build Coastguard Worker return 1; 2834*6236dae4SAndroid Build Coastguard Worker ]]) 2835*6236dae4SAndroid Build Coastguard Worker ],[ 2836*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2837*6236dae4SAndroid Build Coastguard Worker tst_links_ioctlsocket="yes" 2838*6236dae4SAndroid Build Coastguard Worker ],[ 2839*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2840*6236dae4SAndroid Build Coastguard Worker tst_links_ioctlsocket="no" 2841*6236dae4SAndroid Build Coastguard Worker ]) 2842*6236dae4SAndroid Build Coastguard Worker # 2843*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_ioctlsocket" = "yes"; then 2844*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ioctlsocket is prototyped]) 2845*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([ioctlsocket],[ 2846*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 2847*6236dae4SAndroid Build Coastguard Worker ],[ 2848*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2849*6236dae4SAndroid Build Coastguard Worker tst_proto_ioctlsocket="yes" 2850*6236dae4SAndroid Build Coastguard Worker ],[ 2851*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2852*6236dae4SAndroid Build Coastguard Worker tst_proto_ioctlsocket="no" 2853*6236dae4SAndroid Build Coastguard Worker ]) 2854*6236dae4SAndroid Build Coastguard Worker fi 2855*6236dae4SAndroid Build Coastguard Worker # 2856*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_ioctlsocket" = "yes"; then 2857*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ioctlsocket is compilable]) 2858*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 2859*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 2860*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 2861*6236dae4SAndroid Build Coastguard Worker ]],[[ 2862*6236dae4SAndroid Build Coastguard Worker if(0 != ioctlsocket(0, 0, 0)) 2863*6236dae4SAndroid Build Coastguard Worker return 1; 2864*6236dae4SAndroid Build Coastguard Worker ]]) 2865*6236dae4SAndroid Build Coastguard Worker ],[ 2866*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2867*6236dae4SAndroid Build Coastguard Worker tst_compi_ioctlsocket="yes" 2868*6236dae4SAndroid Build Coastguard Worker ],[ 2869*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2870*6236dae4SAndroid Build Coastguard Worker tst_compi_ioctlsocket="no" 2871*6236dae4SAndroid Build Coastguard Worker ]) 2872*6236dae4SAndroid Build Coastguard Worker fi 2873*6236dae4SAndroid Build Coastguard Worker # 2874*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_ioctlsocket" = "yes"; then 2875*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ioctlsocket usage allowed]) 2876*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_ioctlsocket" != "xyes"; then 2877*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2878*6236dae4SAndroid Build Coastguard Worker tst_allow_ioctlsocket="yes" 2879*6236dae4SAndroid Build Coastguard Worker else 2880*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2881*6236dae4SAndroid Build Coastguard Worker tst_allow_ioctlsocket="no" 2882*6236dae4SAndroid Build Coastguard Worker fi 2883*6236dae4SAndroid Build Coastguard Worker fi 2884*6236dae4SAndroid Build Coastguard Worker # 2885*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ioctlsocket might be used]) 2886*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_ioctlsocket" = "yes" && 2887*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_ioctlsocket" = "yes" && 2888*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_ioctlsocket" = "yes" && 2889*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_ioctlsocket" = "yes"; then 2890*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2891*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_IOCTLSOCKET, 1, 2892*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the ioctlsocket function.]) 2893*6236dae4SAndroid Build Coastguard Worker curl_cv_func_ioctlsocket="yes" 2894*6236dae4SAndroid Build Coastguard Worker CURL_CHECK_FUNC_IOCTLSOCKET_FIONBIO 2895*6236dae4SAndroid Build Coastguard Worker else 2896*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2897*6236dae4SAndroid Build Coastguard Worker curl_cv_func_ioctlsocket="no" 2898*6236dae4SAndroid Build Coastguard Worker fi 2899*6236dae4SAndroid Build Coastguard Worker]) 2900*6236dae4SAndroid Build Coastguard Worker 2901*6236dae4SAndroid Build Coastguard Worker 2902*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_IOCTLSOCKET_FIONBIO 2903*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 2904*6236dae4SAndroid Build Coastguard Workerdnl Verify if ioctlsocket with the FIONBIO command is 2905*6236dae4SAndroid Build Coastguard Workerdnl available, can be compiled, and seems to work. If 2906*6236dae4SAndroid Build Coastguard Workerdnl all of these are true, then HAVE_IOCTLSOCKET_FIONBIO 2907*6236dae4SAndroid Build Coastguard Workerdnl will be defined. 2908*6236dae4SAndroid Build Coastguard Worker 2909*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_IOCTLSOCKET_FIONBIO], [ 2910*6236dae4SAndroid Build Coastguard Worker # 2911*6236dae4SAndroid Build Coastguard Worker tst_compi_ioctlsocket_fionbio="unknown" 2912*6236dae4SAndroid Build Coastguard Worker tst_allow_ioctlsocket_fionbio="unknown" 2913*6236dae4SAndroid Build Coastguard Worker # 2914*6236dae4SAndroid Build Coastguard Worker if test "$curl_cv_func_ioctlsocket" = "yes"; then 2915*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ioctlsocket FIONBIO is compilable]) 2916*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 2917*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 2918*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 2919*6236dae4SAndroid Build Coastguard Worker ]],[[ 2920*6236dae4SAndroid Build Coastguard Worker unsigned long flags = 0; 2921*6236dae4SAndroid Build Coastguard Worker if(0 != ioctlsocket(0, FIONBIO, &flags)) 2922*6236dae4SAndroid Build Coastguard Worker return 1; 2923*6236dae4SAndroid Build Coastguard Worker ]]) 2924*6236dae4SAndroid Build Coastguard Worker ],[ 2925*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2926*6236dae4SAndroid Build Coastguard Worker tst_compi_ioctlsocket_fionbio="yes" 2927*6236dae4SAndroid Build Coastguard Worker ],[ 2928*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2929*6236dae4SAndroid Build Coastguard Worker tst_compi_ioctlsocket_fionbio="no" 2930*6236dae4SAndroid Build Coastguard Worker ]) 2931*6236dae4SAndroid Build Coastguard Worker fi 2932*6236dae4SAndroid Build Coastguard Worker # 2933*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_ioctlsocket_fionbio" = "yes"; then 2934*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ioctlsocket FIONBIO usage allowed]) 2935*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_ioctlsocket_fionbio" != "xyes"; then 2936*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2937*6236dae4SAndroid Build Coastguard Worker tst_allow_ioctlsocket_fionbio="yes" 2938*6236dae4SAndroid Build Coastguard Worker else 2939*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2940*6236dae4SAndroid Build Coastguard Worker tst_allow_ioctlsocket_fionbio="no" 2941*6236dae4SAndroid Build Coastguard Worker fi 2942*6236dae4SAndroid Build Coastguard Worker fi 2943*6236dae4SAndroid Build Coastguard Worker # 2944*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if ioctlsocket FIONBIO might be used]) 2945*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_ioctlsocket_fionbio" = "yes" && 2946*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_ioctlsocket_fionbio" = "yes"; then 2947*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2948*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_IOCTLSOCKET_FIONBIO, 1, 2949*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have a working ioctlsocket FIONBIO function.]) 2950*6236dae4SAndroid Build Coastguard Worker curl_cv_func_ioctlsocket_fionbio="yes" 2951*6236dae4SAndroid Build Coastguard Worker else 2952*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2953*6236dae4SAndroid Build Coastguard Worker curl_cv_func_ioctlsocket_fionbio="no" 2954*6236dae4SAndroid Build Coastguard Worker fi 2955*6236dae4SAndroid Build Coastguard Worker]) 2956*6236dae4SAndroid Build Coastguard Worker 2957*6236dae4SAndroid Build Coastguard Worker 2958*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_IOCTLSOCKET_CAMEL 2959*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 2960*6236dae4SAndroid Build Coastguard Workerdnl Verify if IoctlSocket is available, prototyped, and 2961*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 2962*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 2963*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_ioctlsocket_camel, 2964*6236dae4SAndroid Build Coastguard Workerdnl then HAVE_IOCTLSOCKET_CAMEL will be defined. 2965*6236dae4SAndroid Build Coastguard Worker 2966*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_IOCTLSOCKET_CAMEL], [ 2967*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_BSDSOCKET])dnl 2968*6236dae4SAndroid Build Coastguard Worker # 2969*6236dae4SAndroid Build Coastguard Worker tst_links_ioctlsocket_camel="unknown" 2970*6236dae4SAndroid Build Coastguard Worker tst_proto_ioctlsocket_camel="unknown" 2971*6236dae4SAndroid Build Coastguard Worker tst_compi_ioctlsocket_camel="unknown" 2972*6236dae4SAndroid Build Coastguard Worker tst_allow_ioctlsocket_camel="unknown" 2973*6236dae4SAndroid Build Coastguard Worker # 2974*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if IoctlSocket can be linked]) 2975*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 2976*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 2977*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 2978*6236dae4SAndroid Build Coastguard Worker ]],[[ 2979*6236dae4SAndroid Build Coastguard Worker IoctlSocket(0, 0, 0); 2980*6236dae4SAndroid Build Coastguard Worker ]]) 2981*6236dae4SAndroid Build Coastguard Worker ],[ 2982*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2983*6236dae4SAndroid Build Coastguard Worker tst_links_ioctlsocket_camel="yes" 2984*6236dae4SAndroid Build Coastguard Worker ],[ 2985*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2986*6236dae4SAndroid Build Coastguard Worker tst_links_ioctlsocket_camel="no" 2987*6236dae4SAndroid Build Coastguard Worker ]) 2988*6236dae4SAndroid Build Coastguard Worker # 2989*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_ioctlsocket_camel" = "yes"; then 2990*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if IoctlSocket is prototyped]) 2991*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([IoctlSocket],[ 2992*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 2993*6236dae4SAndroid Build Coastguard Worker ],[ 2994*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 2995*6236dae4SAndroid Build Coastguard Worker tst_proto_ioctlsocket_camel="yes" 2996*6236dae4SAndroid Build Coastguard Worker ],[ 2997*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 2998*6236dae4SAndroid Build Coastguard Worker tst_proto_ioctlsocket_camel="no" 2999*6236dae4SAndroid Build Coastguard Worker ]) 3000*6236dae4SAndroid Build Coastguard Worker fi 3001*6236dae4SAndroid Build Coastguard Worker # 3002*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_ioctlsocket_camel" = "yes"; then 3003*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if IoctlSocket is compilable]) 3004*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 3005*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 3006*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 3007*6236dae4SAndroid Build Coastguard Worker ]],[[ 3008*6236dae4SAndroid Build Coastguard Worker if(0 != IoctlSocket(0, 0, 0)) 3009*6236dae4SAndroid Build Coastguard Worker return 1; 3010*6236dae4SAndroid Build Coastguard Worker ]]) 3011*6236dae4SAndroid Build Coastguard Worker ],[ 3012*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3013*6236dae4SAndroid Build Coastguard Worker tst_compi_ioctlsocket_camel="yes" 3014*6236dae4SAndroid Build Coastguard Worker ],[ 3015*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3016*6236dae4SAndroid Build Coastguard Worker tst_compi_ioctlsocket_camel="no" 3017*6236dae4SAndroid Build Coastguard Worker ]) 3018*6236dae4SAndroid Build Coastguard Worker fi 3019*6236dae4SAndroid Build Coastguard Worker # 3020*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_ioctlsocket_camel" = "yes"; then 3021*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if IoctlSocket usage allowed]) 3022*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_ioctlsocket_camel" != "xyes"; then 3023*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3024*6236dae4SAndroid Build Coastguard Worker tst_allow_ioctlsocket_camel="yes" 3025*6236dae4SAndroid Build Coastguard Worker else 3026*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3027*6236dae4SAndroid Build Coastguard Worker tst_allow_ioctlsocket_camel="no" 3028*6236dae4SAndroid Build Coastguard Worker fi 3029*6236dae4SAndroid Build Coastguard Worker fi 3030*6236dae4SAndroid Build Coastguard Worker # 3031*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if IoctlSocket might be used]) 3032*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_ioctlsocket_camel" = "yes" && 3033*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_ioctlsocket_camel" = "yes" && 3034*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_ioctlsocket_camel" = "yes" && 3035*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_ioctlsocket_camel" = "yes"; then 3036*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3037*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_IOCTLSOCKET_CAMEL, 1, 3038*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the IoctlSocket camel case function.]) 3039*6236dae4SAndroid Build Coastguard Worker curl_cv_func_ioctlsocket_camel="yes" 3040*6236dae4SAndroid Build Coastguard Worker CURL_CHECK_FUNC_IOCTLSOCKET_CAMEL_FIONBIO 3041*6236dae4SAndroid Build Coastguard Worker else 3042*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3043*6236dae4SAndroid Build Coastguard Worker curl_cv_func_ioctlsocket_camel="no" 3044*6236dae4SAndroid Build Coastguard Worker fi 3045*6236dae4SAndroid Build Coastguard Worker]) 3046*6236dae4SAndroid Build Coastguard Worker 3047*6236dae4SAndroid Build Coastguard Worker 3048*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_IOCTLSOCKET_CAMEL_FIONBIO 3049*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 3050*6236dae4SAndroid Build Coastguard Workerdnl Verify if IoctlSocket with FIONBIO command is available, 3051*6236dae4SAndroid Build Coastguard Workerdnl can be compiled, and seems to work. If all of these are 3052*6236dae4SAndroid Build Coastguard Workerdnl true, then HAVE_IOCTLSOCKET_CAMEL_FIONBIO will be defined. 3053*6236dae4SAndroid Build Coastguard Worker 3054*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_IOCTLSOCKET_CAMEL_FIONBIO], [ 3055*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_BSDSOCKET])dnl 3056*6236dae4SAndroid Build Coastguard Worker # 3057*6236dae4SAndroid Build Coastguard Worker tst_compi_ioctlsocket_camel_fionbio="unknown" 3058*6236dae4SAndroid Build Coastguard Worker tst_allow_ioctlsocket_camel_fionbio="unknown" 3059*6236dae4SAndroid Build Coastguard Worker # 3060*6236dae4SAndroid Build Coastguard Worker if test "$curl_cv_func_ioctlsocket_camel" = "yes"; then 3061*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if IoctlSocket FIONBIO is compilable]) 3062*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 3063*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 3064*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 3065*6236dae4SAndroid Build Coastguard Worker ]],[[ 3066*6236dae4SAndroid Build Coastguard Worker long flags = 0; 3067*6236dae4SAndroid Build Coastguard Worker if(0 != IoctlSocket(0, FIONBIO, &flags)) 3068*6236dae4SAndroid Build Coastguard Worker return 1; 3069*6236dae4SAndroid Build Coastguard Worker ]]) 3070*6236dae4SAndroid Build Coastguard Worker ],[ 3071*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3072*6236dae4SAndroid Build Coastguard Worker tst_compi_ioctlsocket_camel_fionbio="yes" 3073*6236dae4SAndroid Build Coastguard Worker ],[ 3074*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3075*6236dae4SAndroid Build Coastguard Worker tst_compi_ioctlsocket_camel_fionbio="no" 3076*6236dae4SAndroid Build Coastguard Worker ]) 3077*6236dae4SAndroid Build Coastguard Worker fi 3078*6236dae4SAndroid Build Coastguard Worker # 3079*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_ioctlsocket_camel_fionbio" = "yes"; then 3080*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if IoctlSocket FIONBIO usage allowed]) 3081*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_ioctlsocket_camel_fionbio" != "xyes"; then 3082*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3083*6236dae4SAndroid Build Coastguard Worker tst_allow_ioctlsocket_camel_fionbio="yes" 3084*6236dae4SAndroid Build Coastguard Worker else 3085*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3086*6236dae4SAndroid Build Coastguard Worker tst_allow_ioctlsocket_camel_fionbio="no" 3087*6236dae4SAndroid Build Coastguard Worker fi 3088*6236dae4SAndroid Build Coastguard Worker fi 3089*6236dae4SAndroid Build Coastguard Worker # 3090*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if IoctlSocket FIONBIO might be used]) 3091*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_ioctlsocket_camel_fionbio" = "yes" && 3092*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_ioctlsocket_camel_fionbio" = "yes"; then 3093*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3094*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_IOCTLSOCKET_CAMEL_FIONBIO, 1, 3095*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have a working IoctlSocket camel case FIONBIO function.]) 3096*6236dae4SAndroid Build Coastguard Worker curl_cv_func_ioctlsocket_camel_fionbio="yes" 3097*6236dae4SAndroid Build Coastguard Worker else 3098*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3099*6236dae4SAndroid Build Coastguard Worker curl_cv_func_ioctlsocket_camel_fionbio="no" 3100*6236dae4SAndroid Build Coastguard Worker fi 3101*6236dae4SAndroid Build Coastguard Worker]) 3102*6236dae4SAndroid Build Coastguard Worker 3103*6236dae4SAndroid Build Coastguard Worker 3104*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_MEMRCHR 3105*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 3106*6236dae4SAndroid Build Coastguard Workerdnl Verify if memrchr is available, prototyped, and 3107*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 3108*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 3109*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_memrchr, then 3110*6236dae4SAndroid Build Coastguard Workerdnl HAVE_MEMRCHR will be defined. 3111*6236dae4SAndroid Build Coastguard Worker 3112*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_MEMRCHR], [ 3113*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_STRING])dnl 3114*6236dae4SAndroid Build Coastguard Worker # 3115*6236dae4SAndroid Build Coastguard Worker tst_links_memrchr="unknown" 3116*6236dae4SAndroid Build Coastguard Worker tst_macro_memrchr="unknown" 3117*6236dae4SAndroid Build Coastguard Worker tst_proto_memrchr="unknown" 3118*6236dae4SAndroid Build Coastguard Worker tst_compi_memrchr="unknown" 3119*6236dae4SAndroid Build Coastguard Worker tst_allow_memrchr="unknown" 3120*6236dae4SAndroid Build Coastguard Worker # 3121*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if memrchr can be linked]) 3122*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 3123*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([memrchr]) 3124*6236dae4SAndroid Build Coastguard Worker ],[ 3125*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3126*6236dae4SAndroid Build Coastguard Worker tst_links_memrchr="yes" 3127*6236dae4SAndroid Build Coastguard Worker ],[ 3128*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3129*6236dae4SAndroid Build Coastguard Worker tst_links_memrchr="no" 3130*6236dae4SAndroid Build Coastguard Worker ]) 3131*6236dae4SAndroid Build Coastguard Worker # 3132*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_memrchr" = "no"; then 3133*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if memrchr seems a macro]) 3134*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 3135*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 3136*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 3137*6236dae4SAndroid Build Coastguard Worker ]],[[ 3138*6236dae4SAndroid Build Coastguard Worker if(0 != memrchr(0, 0, 0)) 3139*6236dae4SAndroid Build Coastguard Worker return 1; 3140*6236dae4SAndroid Build Coastguard Worker ]]) 3141*6236dae4SAndroid Build Coastguard Worker ],[ 3142*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3143*6236dae4SAndroid Build Coastguard Worker tst_macro_memrchr="yes" 3144*6236dae4SAndroid Build Coastguard Worker ],[ 3145*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3146*6236dae4SAndroid Build Coastguard Worker tst_macro_memrchr="no" 3147*6236dae4SAndroid Build Coastguard Worker ]) 3148*6236dae4SAndroid Build Coastguard Worker fi 3149*6236dae4SAndroid Build Coastguard Worker # 3150*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_memrchr" = "yes"; then 3151*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if memrchr is prototyped]) 3152*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([memrchr],[ 3153*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 3154*6236dae4SAndroid Build Coastguard Worker ],[ 3155*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3156*6236dae4SAndroid Build Coastguard Worker tst_proto_memrchr="yes" 3157*6236dae4SAndroid Build Coastguard Worker ],[ 3158*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3159*6236dae4SAndroid Build Coastguard Worker tst_proto_memrchr="no" 3160*6236dae4SAndroid Build Coastguard Worker ]) 3161*6236dae4SAndroid Build Coastguard Worker fi 3162*6236dae4SAndroid Build Coastguard Worker # 3163*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_memrchr" = "yes" || 3164*6236dae4SAndroid Build Coastguard Worker test "$tst_macro_memrchr" = "yes"; then 3165*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if memrchr is compilable]) 3166*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 3167*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 3168*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 3169*6236dae4SAndroid Build Coastguard Worker ]],[[ 3170*6236dae4SAndroid Build Coastguard Worker if(0 != memrchr(0, 0, 0)) 3171*6236dae4SAndroid Build Coastguard Worker return 1; 3172*6236dae4SAndroid Build Coastguard Worker ]]) 3173*6236dae4SAndroid Build Coastguard Worker ],[ 3174*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3175*6236dae4SAndroid Build Coastguard Worker tst_compi_memrchr="yes" 3176*6236dae4SAndroid Build Coastguard Worker ],[ 3177*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3178*6236dae4SAndroid Build Coastguard Worker tst_compi_memrchr="no" 3179*6236dae4SAndroid Build Coastguard Worker ]) 3180*6236dae4SAndroid Build Coastguard Worker fi 3181*6236dae4SAndroid Build Coastguard Worker # 3182*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_memrchr" = "yes"; then 3183*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if memrchr usage allowed]) 3184*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_memrchr" != "xyes"; then 3185*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3186*6236dae4SAndroid Build Coastguard Worker tst_allow_memrchr="yes" 3187*6236dae4SAndroid Build Coastguard Worker else 3188*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3189*6236dae4SAndroid Build Coastguard Worker tst_allow_memrchr="no" 3190*6236dae4SAndroid Build Coastguard Worker fi 3191*6236dae4SAndroid Build Coastguard Worker fi 3192*6236dae4SAndroid Build Coastguard Worker # 3193*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if memrchr might be used]) 3194*6236dae4SAndroid Build Coastguard Worker if (test "$tst_proto_memrchr" = "yes" || 3195*6236dae4SAndroid Build Coastguard Worker test "$tst_macro_memrchr" = "yes") && 3196*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_memrchr" = "yes" && 3197*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_memrchr" = "yes"; then 3198*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3199*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_MEMRCHR, 1, 3200*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the memrchr function or macro.]) 3201*6236dae4SAndroid Build Coastguard Worker curl_cv_func_memrchr="yes" 3202*6236dae4SAndroid Build Coastguard Worker else 3203*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3204*6236dae4SAndroid Build Coastguard Worker curl_cv_func_memrchr="no" 3205*6236dae4SAndroid Build Coastguard Worker fi 3206*6236dae4SAndroid Build Coastguard Worker]) 3207*6236dae4SAndroid Build Coastguard Worker 3208*6236dae4SAndroid Build Coastguard Worker 3209*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_SIGACTION 3210*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 3211*6236dae4SAndroid Build Coastguard Workerdnl Verify if sigaction is available, prototyped, and 3212*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 3213*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 3214*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_sigaction, then 3215*6236dae4SAndroid Build Coastguard Workerdnl HAVE_SIGACTION will be defined. 3216*6236dae4SAndroid Build Coastguard Worker 3217*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_SIGACTION], [ 3218*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_SIGNAL])dnl 3219*6236dae4SAndroid Build Coastguard Worker # 3220*6236dae4SAndroid Build Coastguard Worker tst_links_sigaction="unknown" 3221*6236dae4SAndroid Build Coastguard Worker tst_proto_sigaction="unknown" 3222*6236dae4SAndroid Build Coastguard Worker tst_compi_sigaction="unknown" 3223*6236dae4SAndroid Build Coastguard Worker tst_allow_sigaction="unknown" 3224*6236dae4SAndroid Build Coastguard Worker # 3225*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if sigaction can be linked]) 3226*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 3227*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([sigaction]) 3228*6236dae4SAndroid Build Coastguard Worker ],[ 3229*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3230*6236dae4SAndroid Build Coastguard Worker tst_links_sigaction="yes" 3231*6236dae4SAndroid Build Coastguard Worker ],[ 3232*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3233*6236dae4SAndroid Build Coastguard Worker tst_links_sigaction="no" 3234*6236dae4SAndroid Build Coastguard Worker ]) 3235*6236dae4SAndroid Build Coastguard Worker # 3236*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_sigaction" = "yes"; then 3237*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if sigaction is prototyped]) 3238*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([sigaction],[ 3239*6236dae4SAndroid Build Coastguard Worker $curl_includes_signal 3240*6236dae4SAndroid Build Coastguard Worker ],[ 3241*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3242*6236dae4SAndroid Build Coastguard Worker tst_proto_sigaction="yes" 3243*6236dae4SAndroid Build Coastguard Worker ],[ 3244*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3245*6236dae4SAndroid Build Coastguard Worker tst_proto_sigaction="no" 3246*6236dae4SAndroid Build Coastguard Worker ]) 3247*6236dae4SAndroid Build Coastguard Worker fi 3248*6236dae4SAndroid Build Coastguard Worker # 3249*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_sigaction" = "yes"; then 3250*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if sigaction is compilable]) 3251*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 3252*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 3253*6236dae4SAndroid Build Coastguard Worker $curl_includes_signal 3254*6236dae4SAndroid Build Coastguard Worker ]],[[ 3255*6236dae4SAndroid Build Coastguard Worker if(0 != sigaction(0, 0, 0)) 3256*6236dae4SAndroid Build Coastguard Worker return 1; 3257*6236dae4SAndroid Build Coastguard Worker ]]) 3258*6236dae4SAndroid Build Coastguard Worker ],[ 3259*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3260*6236dae4SAndroid Build Coastguard Worker tst_compi_sigaction="yes" 3261*6236dae4SAndroid Build Coastguard Worker ],[ 3262*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3263*6236dae4SAndroid Build Coastguard Worker tst_compi_sigaction="no" 3264*6236dae4SAndroid Build Coastguard Worker ]) 3265*6236dae4SAndroid Build Coastguard Worker fi 3266*6236dae4SAndroid Build Coastguard Worker # 3267*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_sigaction" = "yes"; then 3268*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if sigaction usage allowed]) 3269*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_sigaction" != "xyes"; then 3270*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3271*6236dae4SAndroid Build Coastguard Worker tst_allow_sigaction="yes" 3272*6236dae4SAndroid Build Coastguard Worker else 3273*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3274*6236dae4SAndroid Build Coastguard Worker tst_allow_sigaction="no" 3275*6236dae4SAndroid Build Coastguard Worker fi 3276*6236dae4SAndroid Build Coastguard Worker fi 3277*6236dae4SAndroid Build Coastguard Worker # 3278*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if sigaction might be used]) 3279*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_sigaction" = "yes" && 3280*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_sigaction" = "yes" && 3281*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_sigaction" = "yes" && 3282*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_sigaction" = "yes"; then 3283*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3284*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_SIGACTION, 1, 3285*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the sigaction function.]) 3286*6236dae4SAndroid Build Coastguard Worker curl_cv_func_sigaction="yes" 3287*6236dae4SAndroid Build Coastguard Worker else 3288*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3289*6236dae4SAndroid Build Coastguard Worker curl_cv_func_sigaction="no" 3290*6236dae4SAndroid Build Coastguard Worker fi 3291*6236dae4SAndroid Build Coastguard Worker]) 3292*6236dae4SAndroid Build Coastguard Worker 3293*6236dae4SAndroid Build Coastguard Worker 3294*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_SIGINTERRUPT 3295*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 3296*6236dae4SAndroid Build Coastguard Workerdnl Verify if siginterrupt is available, prototyped, and 3297*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 3298*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 3299*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_siginterrupt, then 3300*6236dae4SAndroid Build Coastguard Workerdnl HAVE_SIGINTERRUPT will be defined. 3301*6236dae4SAndroid Build Coastguard Worker 3302*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_SIGINTERRUPT], [ 3303*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_SIGNAL])dnl 3304*6236dae4SAndroid Build Coastguard Worker # 3305*6236dae4SAndroid Build Coastguard Worker tst_links_siginterrupt="unknown" 3306*6236dae4SAndroid Build Coastguard Worker tst_proto_siginterrupt="unknown" 3307*6236dae4SAndroid Build Coastguard Worker tst_compi_siginterrupt="unknown" 3308*6236dae4SAndroid Build Coastguard Worker tst_allow_siginterrupt="unknown" 3309*6236dae4SAndroid Build Coastguard Worker # 3310*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if siginterrupt can be linked]) 3311*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 3312*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([siginterrupt]) 3313*6236dae4SAndroid Build Coastguard Worker ],[ 3314*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3315*6236dae4SAndroid Build Coastguard Worker tst_links_siginterrupt="yes" 3316*6236dae4SAndroid Build Coastguard Worker ],[ 3317*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3318*6236dae4SAndroid Build Coastguard Worker tst_links_siginterrupt="no" 3319*6236dae4SAndroid Build Coastguard Worker ]) 3320*6236dae4SAndroid Build Coastguard Worker # 3321*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_siginterrupt" = "yes"; then 3322*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if siginterrupt is prototyped]) 3323*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([siginterrupt],[ 3324*6236dae4SAndroid Build Coastguard Worker $curl_includes_signal 3325*6236dae4SAndroid Build Coastguard Worker ],[ 3326*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3327*6236dae4SAndroid Build Coastguard Worker tst_proto_siginterrupt="yes" 3328*6236dae4SAndroid Build Coastguard Worker ],[ 3329*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3330*6236dae4SAndroid Build Coastguard Worker tst_proto_siginterrupt="no" 3331*6236dae4SAndroid Build Coastguard Worker ]) 3332*6236dae4SAndroid Build Coastguard Worker fi 3333*6236dae4SAndroid Build Coastguard Worker # 3334*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_siginterrupt" = "yes"; then 3335*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if siginterrupt is compilable]) 3336*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 3337*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 3338*6236dae4SAndroid Build Coastguard Worker $curl_includes_signal 3339*6236dae4SAndroid Build Coastguard Worker ]],[[ 3340*6236dae4SAndroid Build Coastguard Worker if(0 != siginterrupt(0, 0)) 3341*6236dae4SAndroid Build Coastguard Worker return 1; 3342*6236dae4SAndroid Build Coastguard Worker ]]) 3343*6236dae4SAndroid Build Coastguard Worker ],[ 3344*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3345*6236dae4SAndroid Build Coastguard Worker tst_compi_siginterrupt="yes" 3346*6236dae4SAndroid Build Coastguard Worker ],[ 3347*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3348*6236dae4SAndroid Build Coastguard Worker tst_compi_siginterrupt="no" 3349*6236dae4SAndroid Build Coastguard Worker ]) 3350*6236dae4SAndroid Build Coastguard Worker fi 3351*6236dae4SAndroid Build Coastguard Worker # 3352*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_siginterrupt" = "yes"; then 3353*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if siginterrupt usage allowed]) 3354*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_siginterrupt" != "xyes"; then 3355*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3356*6236dae4SAndroid Build Coastguard Worker tst_allow_siginterrupt="yes" 3357*6236dae4SAndroid Build Coastguard Worker else 3358*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3359*6236dae4SAndroid Build Coastguard Worker tst_allow_siginterrupt="no" 3360*6236dae4SAndroid Build Coastguard Worker fi 3361*6236dae4SAndroid Build Coastguard Worker fi 3362*6236dae4SAndroid Build Coastguard Worker # 3363*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if siginterrupt might be used]) 3364*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_siginterrupt" = "yes" && 3365*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_siginterrupt" = "yes" && 3366*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_siginterrupt" = "yes" && 3367*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_siginterrupt" = "yes"; then 3368*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3369*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_SIGINTERRUPT, 1, 3370*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the siginterrupt function.]) 3371*6236dae4SAndroid Build Coastguard Worker curl_cv_func_siginterrupt="yes" 3372*6236dae4SAndroid Build Coastguard Worker else 3373*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3374*6236dae4SAndroid Build Coastguard Worker curl_cv_func_siginterrupt="no" 3375*6236dae4SAndroid Build Coastguard Worker fi 3376*6236dae4SAndroid Build Coastguard Worker]) 3377*6236dae4SAndroid Build Coastguard Worker 3378*6236dae4SAndroid Build Coastguard Worker 3379*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_SIGNAL 3380*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 3381*6236dae4SAndroid Build Coastguard Workerdnl Verify if signal is available, prototyped, and 3382*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 3383*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 3384*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_signal, then 3385*6236dae4SAndroid Build Coastguard Workerdnl HAVE_SIGNAL will be defined. 3386*6236dae4SAndroid Build Coastguard Worker 3387*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_SIGNAL], [ 3388*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_SIGNAL])dnl 3389*6236dae4SAndroid Build Coastguard Worker # 3390*6236dae4SAndroid Build Coastguard Worker tst_links_signal="unknown" 3391*6236dae4SAndroid Build Coastguard Worker tst_proto_signal="unknown" 3392*6236dae4SAndroid Build Coastguard Worker tst_compi_signal="unknown" 3393*6236dae4SAndroid Build Coastguard Worker tst_allow_signal="unknown" 3394*6236dae4SAndroid Build Coastguard Worker # 3395*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if signal can be linked]) 3396*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 3397*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([signal]) 3398*6236dae4SAndroid Build Coastguard Worker ],[ 3399*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3400*6236dae4SAndroid Build Coastguard Worker tst_links_signal="yes" 3401*6236dae4SAndroid Build Coastguard Worker ],[ 3402*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3403*6236dae4SAndroid Build Coastguard Worker tst_links_signal="no" 3404*6236dae4SAndroid Build Coastguard Worker ]) 3405*6236dae4SAndroid Build Coastguard Worker # 3406*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_signal" = "yes"; then 3407*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if signal is prototyped]) 3408*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([signal],[ 3409*6236dae4SAndroid Build Coastguard Worker $curl_includes_signal 3410*6236dae4SAndroid Build Coastguard Worker ],[ 3411*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3412*6236dae4SAndroid Build Coastguard Worker tst_proto_signal="yes" 3413*6236dae4SAndroid Build Coastguard Worker ],[ 3414*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3415*6236dae4SAndroid Build Coastguard Worker tst_proto_signal="no" 3416*6236dae4SAndroid Build Coastguard Worker ]) 3417*6236dae4SAndroid Build Coastguard Worker fi 3418*6236dae4SAndroid Build Coastguard Worker # 3419*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_signal" = "yes"; then 3420*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if signal is compilable]) 3421*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 3422*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 3423*6236dae4SAndroid Build Coastguard Worker $curl_includes_signal 3424*6236dae4SAndroid Build Coastguard Worker ]],[[ 3425*6236dae4SAndroid Build Coastguard Worker if(0 != signal(0, 0)) 3426*6236dae4SAndroid Build Coastguard Worker return 1; 3427*6236dae4SAndroid Build Coastguard Worker ]]) 3428*6236dae4SAndroid Build Coastguard Worker ],[ 3429*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3430*6236dae4SAndroid Build Coastguard Worker tst_compi_signal="yes" 3431*6236dae4SAndroid Build Coastguard Worker ],[ 3432*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3433*6236dae4SAndroid Build Coastguard Worker tst_compi_signal="no" 3434*6236dae4SAndroid Build Coastguard Worker ]) 3435*6236dae4SAndroid Build Coastguard Worker fi 3436*6236dae4SAndroid Build Coastguard Worker # 3437*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_signal" = "yes"; then 3438*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if signal usage allowed]) 3439*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_signal" != "xyes"; then 3440*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3441*6236dae4SAndroid Build Coastguard Worker tst_allow_signal="yes" 3442*6236dae4SAndroid Build Coastguard Worker else 3443*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3444*6236dae4SAndroid Build Coastguard Worker tst_allow_signal="no" 3445*6236dae4SAndroid Build Coastguard Worker fi 3446*6236dae4SAndroid Build Coastguard Worker fi 3447*6236dae4SAndroid Build Coastguard Worker # 3448*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if signal might be used]) 3449*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_signal" = "yes" && 3450*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_signal" = "yes" && 3451*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_signal" = "yes" && 3452*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_signal" = "yes"; then 3453*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3454*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_SIGNAL, 1, 3455*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the signal function.]) 3456*6236dae4SAndroid Build Coastguard Worker curl_cv_func_signal="yes" 3457*6236dae4SAndroid Build Coastguard Worker else 3458*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3459*6236dae4SAndroid Build Coastguard Worker curl_cv_func_signal="no" 3460*6236dae4SAndroid Build Coastguard Worker fi 3461*6236dae4SAndroid Build Coastguard Worker]) 3462*6236dae4SAndroid Build Coastguard Worker 3463*6236dae4SAndroid Build Coastguard Worker 3464*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_SIGSETJMP 3465*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 3466*6236dae4SAndroid Build Coastguard Workerdnl Verify if sigsetjmp is available, prototyped, and 3467*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 3468*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 3469*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_sigsetjmp, then 3470*6236dae4SAndroid Build Coastguard Workerdnl HAVE_SIGSETJMP will be defined. 3471*6236dae4SAndroid Build Coastguard Worker 3472*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_SIGSETJMP], [ 3473*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_SETJMP])dnl 3474*6236dae4SAndroid Build Coastguard Worker # 3475*6236dae4SAndroid Build Coastguard Worker tst_links_sigsetjmp="unknown" 3476*6236dae4SAndroid Build Coastguard Worker tst_macro_sigsetjmp="unknown" 3477*6236dae4SAndroid Build Coastguard Worker tst_proto_sigsetjmp="unknown" 3478*6236dae4SAndroid Build Coastguard Worker tst_compi_sigsetjmp="unknown" 3479*6236dae4SAndroid Build Coastguard Worker tst_allow_sigsetjmp="unknown" 3480*6236dae4SAndroid Build Coastguard Worker # 3481*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if sigsetjmp can be linked]) 3482*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 3483*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([sigsetjmp]) 3484*6236dae4SAndroid Build Coastguard Worker ],[ 3485*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3486*6236dae4SAndroid Build Coastguard Worker tst_links_sigsetjmp="yes" 3487*6236dae4SAndroid Build Coastguard Worker ],[ 3488*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3489*6236dae4SAndroid Build Coastguard Worker tst_links_sigsetjmp="no" 3490*6236dae4SAndroid Build Coastguard Worker ]) 3491*6236dae4SAndroid Build Coastguard Worker # 3492*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_sigsetjmp" = "no"; then 3493*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if sigsetjmp seems a macro]) 3494*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 3495*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 3496*6236dae4SAndroid Build Coastguard Worker $curl_includes_setjmp 3497*6236dae4SAndroid Build Coastguard Worker ]],[[ 3498*6236dae4SAndroid Build Coastguard Worker sigjmp_buf env; 3499*6236dae4SAndroid Build Coastguard Worker if(0 != sigsetjmp(env, 0)) 3500*6236dae4SAndroid Build Coastguard Worker return 1; 3501*6236dae4SAndroid Build Coastguard Worker ]]) 3502*6236dae4SAndroid Build Coastguard Worker ],[ 3503*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3504*6236dae4SAndroid Build Coastguard Worker tst_macro_sigsetjmp="yes" 3505*6236dae4SAndroid Build Coastguard Worker ],[ 3506*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3507*6236dae4SAndroid Build Coastguard Worker tst_macro_sigsetjmp="no" 3508*6236dae4SAndroid Build Coastguard Worker ]) 3509*6236dae4SAndroid Build Coastguard Worker fi 3510*6236dae4SAndroid Build Coastguard Worker # 3511*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_sigsetjmp" = "yes"; then 3512*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if sigsetjmp is prototyped]) 3513*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([sigsetjmp],[ 3514*6236dae4SAndroid Build Coastguard Worker $curl_includes_setjmp 3515*6236dae4SAndroid Build Coastguard Worker ],[ 3516*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3517*6236dae4SAndroid Build Coastguard Worker tst_proto_sigsetjmp="yes" 3518*6236dae4SAndroid Build Coastguard Worker ],[ 3519*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3520*6236dae4SAndroid Build Coastguard Worker tst_proto_sigsetjmp="no" 3521*6236dae4SAndroid Build Coastguard Worker ]) 3522*6236dae4SAndroid Build Coastguard Worker fi 3523*6236dae4SAndroid Build Coastguard Worker # 3524*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_sigsetjmp" = "yes" || 3525*6236dae4SAndroid Build Coastguard Worker test "$tst_macro_sigsetjmp" = "yes"; then 3526*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if sigsetjmp is compilable]) 3527*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 3528*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 3529*6236dae4SAndroid Build Coastguard Worker $curl_includes_setjmp 3530*6236dae4SAndroid Build Coastguard Worker ]],[[ 3531*6236dae4SAndroid Build Coastguard Worker sigjmp_buf env; 3532*6236dae4SAndroid Build Coastguard Worker if(0 != sigsetjmp(env, 0)) 3533*6236dae4SAndroid Build Coastguard Worker return 1; 3534*6236dae4SAndroid Build Coastguard Worker ]]) 3535*6236dae4SAndroid Build Coastguard Worker ],[ 3536*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3537*6236dae4SAndroid Build Coastguard Worker tst_compi_sigsetjmp="yes" 3538*6236dae4SAndroid Build Coastguard Worker ],[ 3539*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3540*6236dae4SAndroid Build Coastguard Worker tst_compi_sigsetjmp="no" 3541*6236dae4SAndroid Build Coastguard Worker ]) 3542*6236dae4SAndroid Build Coastguard Worker fi 3543*6236dae4SAndroid Build Coastguard Worker # 3544*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_sigsetjmp" = "yes"; then 3545*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if sigsetjmp usage allowed]) 3546*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_sigsetjmp" != "xyes"; then 3547*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3548*6236dae4SAndroid Build Coastguard Worker tst_allow_sigsetjmp="yes" 3549*6236dae4SAndroid Build Coastguard Worker else 3550*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3551*6236dae4SAndroid Build Coastguard Worker tst_allow_sigsetjmp="no" 3552*6236dae4SAndroid Build Coastguard Worker fi 3553*6236dae4SAndroid Build Coastguard Worker fi 3554*6236dae4SAndroid Build Coastguard Worker # 3555*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if sigsetjmp might be used]) 3556*6236dae4SAndroid Build Coastguard Worker if (test "$tst_proto_sigsetjmp" = "yes" || 3557*6236dae4SAndroid Build Coastguard Worker test "$tst_macro_sigsetjmp" = "yes") && 3558*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_sigsetjmp" = "yes" && 3559*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_sigsetjmp" = "yes"; then 3560*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3561*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_SIGSETJMP, 1, 3562*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the sigsetjmp function or macro.]) 3563*6236dae4SAndroid Build Coastguard Worker curl_cv_func_sigsetjmp="yes" 3564*6236dae4SAndroid Build Coastguard Worker else 3565*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3566*6236dae4SAndroid Build Coastguard Worker curl_cv_func_sigsetjmp="no" 3567*6236dae4SAndroid Build Coastguard Worker fi 3568*6236dae4SAndroid Build Coastguard Worker]) 3569*6236dae4SAndroid Build Coastguard Worker 3570*6236dae4SAndroid Build Coastguard Worker 3571*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_SOCKET 3572*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 3573*6236dae4SAndroid Build Coastguard Workerdnl Verify if socket is available, prototyped, and 3574*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 3575*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 3576*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_socket, then 3577*6236dae4SAndroid Build Coastguard Workerdnl HAVE_SOCKET will be defined. 3578*6236dae4SAndroid Build Coastguard Worker 3579*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_SOCKET], [ 3580*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_WINSOCK2])dnl 3581*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_SYS_SOCKET])dnl 3582*6236dae4SAndroid Build Coastguard Worker # 3583*6236dae4SAndroid Build Coastguard Worker tst_links_socket="unknown" 3584*6236dae4SAndroid Build Coastguard Worker tst_proto_socket="unknown" 3585*6236dae4SAndroid Build Coastguard Worker tst_compi_socket="unknown" 3586*6236dae4SAndroid Build Coastguard Worker tst_allow_socket="unknown" 3587*6236dae4SAndroid Build Coastguard Worker # 3588*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if socket can be linked]) 3589*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 3590*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 3591*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 3592*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 3593*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_socket 3594*6236dae4SAndroid Build Coastguard Worker ]],[[ 3595*6236dae4SAndroid Build Coastguard Worker if(0 != socket(0, 0, 0)) 3596*6236dae4SAndroid Build Coastguard Worker return 1; 3597*6236dae4SAndroid Build Coastguard Worker ]]) 3598*6236dae4SAndroid Build Coastguard Worker ],[ 3599*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3600*6236dae4SAndroid Build Coastguard Worker tst_links_socket="yes" 3601*6236dae4SAndroid Build Coastguard Worker ],[ 3602*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3603*6236dae4SAndroid Build Coastguard Worker tst_links_socket="no" 3604*6236dae4SAndroid Build Coastguard Worker ]) 3605*6236dae4SAndroid Build Coastguard Worker # 3606*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_socket" = "yes"; then 3607*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if socket is prototyped]) 3608*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([socket],[ 3609*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 3610*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 3611*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_socket 3612*6236dae4SAndroid Build Coastguard Worker ],[ 3613*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3614*6236dae4SAndroid Build Coastguard Worker tst_proto_socket="yes" 3615*6236dae4SAndroid Build Coastguard Worker ],[ 3616*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3617*6236dae4SAndroid Build Coastguard Worker tst_proto_socket="no" 3618*6236dae4SAndroid Build Coastguard Worker ]) 3619*6236dae4SAndroid Build Coastguard Worker fi 3620*6236dae4SAndroid Build Coastguard Worker # 3621*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_socket" = "yes"; then 3622*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if socket is compilable]) 3623*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 3624*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 3625*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 3626*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 3627*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_socket 3628*6236dae4SAndroid Build Coastguard Worker ]],[[ 3629*6236dae4SAndroid Build Coastguard Worker if(0 != socket(0, 0, 0)) 3630*6236dae4SAndroid Build Coastguard Worker return 1; 3631*6236dae4SAndroid Build Coastguard Worker ]]) 3632*6236dae4SAndroid Build Coastguard Worker ],[ 3633*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3634*6236dae4SAndroid Build Coastguard Worker tst_compi_socket="yes" 3635*6236dae4SAndroid Build Coastguard Worker ],[ 3636*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3637*6236dae4SAndroid Build Coastguard Worker tst_compi_socket="no" 3638*6236dae4SAndroid Build Coastguard Worker ]) 3639*6236dae4SAndroid Build Coastguard Worker fi 3640*6236dae4SAndroid Build Coastguard Worker # 3641*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_socket" = "yes"; then 3642*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if socket usage allowed]) 3643*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_socket" != "xyes"; then 3644*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3645*6236dae4SAndroid Build Coastguard Worker tst_allow_socket="yes" 3646*6236dae4SAndroid Build Coastguard Worker else 3647*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3648*6236dae4SAndroid Build Coastguard Worker tst_allow_socket="no" 3649*6236dae4SAndroid Build Coastguard Worker fi 3650*6236dae4SAndroid Build Coastguard Worker fi 3651*6236dae4SAndroid Build Coastguard Worker # 3652*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if socket might be used]) 3653*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_socket" = "yes" && 3654*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_socket" = "yes" && 3655*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_socket" = "yes" && 3656*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_socket" = "yes"; then 3657*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3658*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_SOCKET, 1, 3659*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the socket function.]) 3660*6236dae4SAndroid Build Coastguard Worker curl_cv_func_socket="yes" 3661*6236dae4SAndroid Build Coastguard Worker else 3662*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3663*6236dae4SAndroid Build Coastguard Worker curl_cv_func_socket="no" 3664*6236dae4SAndroid Build Coastguard Worker fi 3665*6236dae4SAndroid Build Coastguard Worker]) 3666*6236dae4SAndroid Build Coastguard Worker 3667*6236dae4SAndroid Build Coastguard Worker 3668*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_SOCKETPAIR 3669*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 3670*6236dae4SAndroid Build Coastguard Workerdnl Verify if socketpair is available, prototyped, and 3671*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 3672*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 3673*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_socketpair, then 3674*6236dae4SAndroid Build Coastguard Workerdnl HAVE_SOCKETPAIR will be defined. 3675*6236dae4SAndroid Build Coastguard Worker 3676*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_SOCKETPAIR], [ 3677*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_SYS_SOCKET])dnl 3678*6236dae4SAndroid Build Coastguard Worker # 3679*6236dae4SAndroid Build Coastguard Worker tst_links_socketpair="unknown" 3680*6236dae4SAndroid Build Coastguard Worker tst_proto_socketpair="unknown" 3681*6236dae4SAndroid Build Coastguard Worker tst_compi_socketpair="unknown" 3682*6236dae4SAndroid Build Coastguard Worker tst_allow_socketpair="unknown" 3683*6236dae4SAndroid Build Coastguard Worker # 3684*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if socketpair can be linked]) 3685*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 3686*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([socketpair]) 3687*6236dae4SAndroid Build Coastguard Worker ],[ 3688*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3689*6236dae4SAndroid Build Coastguard Worker tst_links_socketpair="yes" 3690*6236dae4SAndroid Build Coastguard Worker ],[ 3691*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3692*6236dae4SAndroid Build Coastguard Worker tst_links_socketpair="no" 3693*6236dae4SAndroid Build Coastguard Worker ]) 3694*6236dae4SAndroid Build Coastguard Worker # 3695*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_socketpair" = "yes"; then 3696*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if socketpair is prototyped]) 3697*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([socketpair],[ 3698*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_socket 3699*6236dae4SAndroid Build Coastguard Worker ],[ 3700*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3701*6236dae4SAndroid Build Coastguard Worker tst_proto_socketpair="yes" 3702*6236dae4SAndroid Build Coastguard Worker ],[ 3703*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3704*6236dae4SAndroid Build Coastguard Worker tst_proto_socketpair="no" 3705*6236dae4SAndroid Build Coastguard Worker ]) 3706*6236dae4SAndroid Build Coastguard Worker fi 3707*6236dae4SAndroid Build Coastguard Worker # 3708*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_socketpair" = "yes"; then 3709*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if socketpair is compilable]) 3710*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 3711*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 3712*6236dae4SAndroid Build Coastguard Worker $curl_includes_sys_socket 3713*6236dae4SAndroid Build Coastguard Worker ]],[[ 3714*6236dae4SAndroid Build Coastguard Worker int sv[2]; 3715*6236dae4SAndroid Build Coastguard Worker if(0 != socketpair(0, 0, 0, sv)) 3716*6236dae4SAndroid Build Coastguard Worker return 1; 3717*6236dae4SAndroid Build Coastguard Worker ]]) 3718*6236dae4SAndroid Build Coastguard Worker ],[ 3719*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3720*6236dae4SAndroid Build Coastguard Worker tst_compi_socketpair="yes" 3721*6236dae4SAndroid Build Coastguard Worker ],[ 3722*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3723*6236dae4SAndroid Build Coastguard Worker tst_compi_socketpair="no" 3724*6236dae4SAndroid Build Coastguard Worker ]) 3725*6236dae4SAndroid Build Coastguard Worker fi 3726*6236dae4SAndroid Build Coastguard Worker # 3727*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_socketpair" = "yes"; then 3728*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if socketpair usage allowed]) 3729*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_socketpair" != "xyes"; then 3730*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3731*6236dae4SAndroid Build Coastguard Worker tst_allow_socketpair="yes" 3732*6236dae4SAndroid Build Coastguard Worker else 3733*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3734*6236dae4SAndroid Build Coastguard Worker tst_allow_socketpair="no" 3735*6236dae4SAndroid Build Coastguard Worker fi 3736*6236dae4SAndroid Build Coastguard Worker fi 3737*6236dae4SAndroid Build Coastguard Worker # 3738*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if socketpair might be used]) 3739*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_socketpair" = "yes" && 3740*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_socketpair" = "yes" && 3741*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_socketpair" = "yes" && 3742*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_socketpair" = "yes"; then 3743*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3744*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_SOCKETPAIR, 1, 3745*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the socketpair function.]) 3746*6236dae4SAndroid Build Coastguard Worker curl_cv_func_socketpair="yes" 3747*6236dae4SAndroid Build Coastguard Worker else 3748*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3749*6236dae4SAndroid Build Coastguard Worker curl_cv_func_socketpair="no" 3750*6236dae4SAndroid Build Coastguard Worker fi 3751*6236dae4SAndroid Build Coastguard Worker]) 3752*6236dae4SAndroid Build Coastguard Worker 3753*6236dae4SAndroid Build Coastguard Worker 3754*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_STRCASECMP 3755*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 3756*6236dae4SAndroid Build Coastguard Workerdnl Verify if strcasecmp is available, prototyped, and 3757*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 3758*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 3759*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_strcasecmp, then 3760*6236dae4SAndroid Build Coastguard Workerdnl HAVE_STRCASECMP will be defined. 3761*6236dae4SAndroid Build Coastguard Worker 3762*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_STRCASECMP], [ 3763*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_STRING])dnl 3764*6236dae4SAndroid Build Coastguard Worker # 3765*6236dae4SAndroid Build Coastguard Worker tst_links_strcasecmp="unknown" 3766*6236dae4SAndroid Build Coastguard Worker tst_proto_strcasecmp="unknown" 3767*6236dae4SAndroid Build Coastguard Worker tst_compi_strcasecmp="unknown" 3768*6236dae4SAndroid Build Coastguard Worker tst_allow_strcasecmp="unknown" 3769*6236dae4SAndroid Build Coastguard Worker # 3770*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strcasecmp can be linked]) 3771*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 3772*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([strcasecmp]) 3773*6236dae4SAndroid Build Coastguard Worker ],[ 3774*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3775*6236dae4SAndroid Build Coastguard Worker tst_links_strcasecmp="yes" 3776*6236dae4SAndroid Build Coastguard Worker ],[ 3777*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3778*6236dae4SAndroid Build Coastguard Worker tst_links_strcasecmp="no" 3779*6236dae4SAndroid Build Coastguard Worker ]) 3780*6236dae4SAndroid Build Coastguard Worker # 3781*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_strcasecmp" = "yes"; then 3782*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strcasecmp is prototyped]) 3783*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([strcasecmp],[ 3784*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 3785*6236dae4SAndroid Build Coastguard Worker ],[ 3786*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3787*6236dae4SAndroid Build Coastguard Worker tst_proto_strcasecmp="yes" 3788*6236dae4SAndroid Build Coastguard Worker ],[ 3789*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3790*6236dae4SAndroid Build Coastguard Worker tst_proto_strcasecmp="no" 3791*6236dae4SAndroid Build Coastguard Worker ]) 3792*6236dae4SAndroid Build Coastguard Worker fi 3793*6236dae4SAndroid Build Coastguard Worker # 3794*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_strcasecmp" = "yes"; then 3795*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strcasecmp is compilable]) 3796*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 3797*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 3798*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 3799*6236dae4SAndroid Build Coastguard Worker ]],[[ 3800*6236dae4SAndroid Build Coastguard Worker if(0 != strcasecmp(0, 0)) 3801*6236dae4SAndroid Build Coastguard Worker return 1; 3802*6236dae4SAndroid Build Coastguard Worker ]]) 3803*6236dae4SAndroid Build Coastguard Worker ],[ 3804*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3805*6236dae4SAndroid Build Coastguard Worker tst_compi_strcasecmp="yes" 3806*6236dae4SAndroid Build Coastguard Worker ],[ 3807*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3808*6236dae4SAndroid Build Coastguard Worker tst_compi_strcasecmp="no" 3809*6236dae4SAndroid Build Coastguard Worker ]) 3810*6236dae4SAndroid Build Coastguard Worker fi 3811*6236dae4SAndroid Build Coastguard Worker # 3812*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_strcasecmp" = "yes"; then 3813*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strcasecmp usage allowed]) 3814*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_strcasecmp" != "xyes"; then 3815*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3816*6236dae4SAndroid Build Coastguard Worker tst_allow_strcasecmp="yes" 3817*6236dae4SAndroid Build Coastguard Worker else 3818*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3819*6236dae4SAndroid Build Coastguard Worker tst_allow_strcasecmp="no" 3820*6236dae4SAndroid Build Coastguard Worker fi 3821*6236dae4SAndroid Build Coastguard Worker fi 3822*6236dae4SAndroid Build Coastguard Worker # 3823*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strcasecmp might be used]) 3824*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_strcasecmp" = "yes" && 3825*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_strcasecmp" = "yes" && 3826*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_strcasecmp" = "yes" && 3827*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_strcasecmp" = "yes"; then 3828*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3829*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_STRCASECMP, 1, 3830*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the strcasecmp function.]) 3831*6236dae4SAndroid Build Coastguard Worker curl_cv_func_strcasecmp="yes" 3832*6236dae4SAndroid Build Coastguard Worker else 3833*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3834*6236dae4SAndroid Build Coastguard Worker curl_cv_func_strcasecmp="no" 3835*6236dae4SAndroid Build Coastguard Worker fi 3836*6236dae4SAndroid Build Coastguard Worker]) 3837*6236dae4SAndroid Build Coastguard Worker 3838*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_STRCMPI 3839*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 3840*6236dae4SAndroid Build Coastguard Workerdnl Verify if strcmpi is available, prototyped, and 3841*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 3842*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 3843*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_strcmpi, then 3844*6236dae4SAndroid Build Coastguard Workerdnl HAVE_STRCMPI will be defined. 3845*6236dae4SAndroid Build Coastguard Worker 3846*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_STRCMPI], [ 3847*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_STRING])dnl 3848*6236dae4SAndroid Build Coastguard Worker # 3849*6236dae4SAndroid Build Coastguard Worker tst_links_strcmpi="unknown" 3850*6236dae4SAndroid Build Coastguard Worker tst_proto_strcmpi="unknown" 3851*6236dae4SAndroid Build Coastguard Worker tst_compi_strcmpi="unknown" 3852*6236dae4SAndroid Build Coastguard Worker tst_allow_strcmpi="unknown" 3853*6236dae4SAndroid Build Coastguard Worker # 3854*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strcmpi can be linked]) 3855*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 3856*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([strcmpi]) 3857*6236dae4SAndroid Build Coastguard Worker ],[ 3858*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3859*6236dae4SAndroid Build Coastguard Worker tst_links_strcmpi="yes" 3860*6236dae4SAndroid Build Coastguard Worker ],[ 3861*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3862*6236dae4SAndroid Build Coastguard Worker tst_links_strcmpi="no" 3863*6236dae4SAndroid Build Coastguard Worker ]) 3864*6236dae4SAndroid Build Coastguard Worker # 3865*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_strcmpi" = "yes"; then 3866*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strcmpi is prototyped]) 3867*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([strcmpi],[ 3868*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 3869*6236dae4SAndroid Build Coastguard Worker ],[ 3870*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3871*6236dae4SAndroid Build Coastguard Worker tst_proto_strcmpi="yes" 3872*6236dae4SAndroid Build Coastguard Worker ],[ 3873*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3874*6236dae4SAndroid Build Coastguard Worker tst_proto_strcmpi="no" 3875*6236dae4SAndroid Build Coastguard Worker ]) 3876*6236dae4SAndroid Build Coastguard Worker fi 3877*6236dae4SAndroid Build Coastguard Worker # 3878*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_strcmpi" = "yes"; then 3879*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strcmpi is compilable]) 3880*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 3881*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 3882*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 3883*6236dae4SAndroid Build Coastguard Worker ]],[[ 3884*6236dae4SAndroid Build Coastguard Worker if(0 != strcmpi(0, 0)) 3885*6236dae4SAndroid Build Coastguard Worker return 1; 3886*6236dae4SAndroid Build Coastguard Worker ]]) 3887*6236dae4SAndroid Build Coastguard Worker ],[ 3888*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3889*6236dae4SAndroid Build Coastguard Worker tst_compi_strcmpi="yes" 3890*6236dae4SAndroid Build Coastguard Worker ],[ 3891*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3892*6236dae4SAndroid Build Coastguard Worker tst_compi_strcmpi="no" 3893*6236dae4SAndroid Build Coastguard Worker ]) 3894*6236dae4SAndroid Build Coastguard Worker fi 3895*6236dae4SAndroid Build Coastguard Worker # 3896*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_strcmpi" = "yes"; then 3897*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strcmpi usage allowed]) 3898*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_strcmpi" != "xyes"; then 3899*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3900*6236dae4SAndroid Build Coastguard Worker tst_allow_strcmpi="yes" 3901*6236dae4SAndroid Build Coastguard Worker else 3902*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3903*6236dae4SAndroid Build Coastguard Worker tst_allow_strcmpi="no" 3904*6236dae4SAndroid Build Coastguard Worker fi 3905*6236dae4SAndroid Build Coastguard Worker fi 3906*6236dae4SAndroid Build Coastguard Worker # 3907*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strcmpi might be used]) 3908*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_strcmpi" = "yes" && 3909*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_strcmpi" = "yes" && 3910*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_strcmpi" = "yes" && 3911*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_strcmpi" = "yes"; then 3912*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3913*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_STRCMPI, 1, 3914*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the strcmpi function.]) 3915*6236dae4SAndroid Build Coastguard Worker curl_cv_func_strcmpi="yes" 3916*6236dae4SAndroid Build Coastguard Worker else 3917*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3918*6236dae4SAndroid Build Coastguard Worker curl_cv_func_strcmpi="no" 3919*6236dae4SAndroid Build Coastguard Worker fi 3920*6236dae4SAndroid Build Coastguard Worker]) 3921*6236dae4SAndroid Build Coastguard Worker 3922*6236dae4SAndroid Build Coastguard Worker 3923*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_STRDUP 3924*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 3925*6236dae4SAndroid Build Coastguard Workerdnl Verify if strdup is available, prototyped, and 3926*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 3927*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 3928*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_strdup, then 3929*6236dae4SAndroid Build Coastguard Workerdnl HAVE_STRDUP will be defined. 3930*6236dae4SAndroid Build Coastguard Worker 3931*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_STRDUP], [ 3932*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_STRING])dnl 3933*6236dae4SAndroid Build Coastguard Worker # 3934*6236dae4SAndroid Build Coastguard Worker tst_links_strdup="unknown" 3935*6236dae4SAndroid Build Coastguard Worker tst_proto_strdup="unknown" 3936*6236dae4SAndroid Build Coastguard Worker tst_compi_strdup="unknown" 3937*6236dae4SAndroid Build Coastguard Worker tst_allow_strdup="unknown" 3938*6236dae4SAndroid Build Coastguard Worker # 3939*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strdup can be linked]) 3940*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 3941*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([strdup]) 3942*6236dae4SAndroid Build Coastguard Worker ],[ 3943*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3944*6236dae4SAndroid Build Coastguard Worker tst_links_strdup="yes" 3945*6236dae4SAndroid Build Coastguard Worker ],[ 3946*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3947*6236dae4SAndroid Build Coastguard Worker tst_links_strdup="no" 3948*6236dae4SAndroid Build Coastguard Worker ]) 3949*6236dae4SAndroid Build Coastguard Worker # 3950*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_strdup" = "yes"; then 3951*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strdup is prototyped]) 3952*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([strdup],[ 3953*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 3954*6236dae4SAndroid Build Coastguard Worker ],[ 3955*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3956*6236dae4SAndroid Build Coastguard Worker tst_proto_strdup="yes" 3957*6236dae4SAndroid Build Coastguard Worker ],[ 3958*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3959*6236dae4SAndroid Build Coastguard Worker tst_proto_strdup="no" 3960*6236dae4SAndroid Build Coastguard Worker ]) 3961*6236dae4SAndroid Build Coastguard Worker fi 3962*6236dae4SAndroid Build Coastguard Worker # 3963*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_strdup" = "yes"; then 3964*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strdup is compilable]) 3965*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 3966*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 3967*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 3968*6236dae4SAndroid Build Coastguard Worker ]],[[ 3969*6236dae4SAndroid Build Coastguard Worker if(0 != strdup(0)) 3970*6236dae4SAndroid Build Coastguard Worker return 1; 3971*6236dae4SAndroid Build Coastguard Worker ]]) 3972*6236dae4SAndroid Build Coastguard Worker ],[ 3973*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3974*6236dae4SAndroid Build Coastguard Worker tst_compi_strdup="yes" 3975*6236dae4SAndroid Build Coastguard Worker ],[ 3976*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3977*6236dae4SAndroid Build Coastguard Worker tst_compi_strdup="no" 3978*6236dae4SAndroid Build Coastguard Worker ]) 3979*6236dae4SAndroid Build Coastguard Worker fi 3980*6236dae4SAndroid Build Coastguard Worker # 3981*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_strdup" = "yes"; then 3982*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strdup usage allowed]) 3983*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_strdup" != "xyes"; then 3984*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3985*6236dae4SAndroid Build Coastguard Worker tst_allow_strdup="yes" 3986*6236dae4SAndroid Build Coastguard Worker else 3987*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 3988*6236dae4SAndroid Build Coastguard Worker tst_allow_strdup="no" 3989*6236dae4SAndroid Build Coastguard Worker fi 3990*6236dae4SAndroid Build Coastguard Worker fi 3991*6236dae4SAndroid Build Coastguard Worker # 3992*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strdup might be used]) 3993*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_strdup" = "yes" && 3994*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_strdup" = "yes" && 3995*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_strdup" = "yes" && 3996*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_strdup" = "yes"; then 3997*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 3998*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_STRDUP, 1, 3999*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the strdup function.]) 4000*6236dae4SAndroid Build Coastguard Worker curl_cv_func_strdup="yes" 4001*6236dae4SAndroid Build Coastguard Worker else 4002*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4003*6236dae4SAndroid Build Coastguard Worker curl_cv_func_strdup="no" 4004*6236dae4SAndroid Build Coastguard Worker fi 4005*6236dae4SAndroid Build Coastguard Worker]) 4006*6236dae4SAndroid Build Coastguard Worker 4007*6236dae4SAndroid Build Coastguard Worker 4008*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_STRERROR_R 4009*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 4010*6236dae4SAndroid Build Coastguard Workerdnl Verify if strerror_r is available, prototyped, can be compiled and 4011*6236dae4SAndroid Build Coastguard Workerdnl seems to work. If all of these are true, and usage has not been 4012*6236dae4SAndroid Build Coastguard Workerdnl previously disallowed with shell variable curl_disallow_strerror_r, 4013*6236dae4SAndroid Build Coastguard Workerdnl then HAVE_STRERROR_R will be defined, as well as one of 4014*6236dae4SAndroid Build Coastguard Workerdnl HAVE_GLIBC_STRERROR_R or HAVE_POSIX_STRERROR_R. 4015*6236dae4SAndroid Build Coastguard Workerdnl 4016*6236dae4SAndroid Build Coastguard Workerdnl glibc-style strerror_r: 4017*6236dae4SAndroid Build Coastguard Workerdnl 4018*6236dae4SAndroid Build Coastguard Workerdnl char *strerror_r(int errnum, char *workbuf, size_t bufsize); 4019*6236dae4SAndroid Build Coastguard Workerdnl 4020*6236dae4SAndroid Build Coastguard Workerdnl glibc-style strerror_r returns a pointer to the error string, 4021*6236dae4SAndroid Build Coastguard Workerdnl and might use the provided workbuf as a scratch area if needed. A 4022*6236dae4SAndroid Build Coastguard Workerdnl quick test on a few systems shows that it's usually not used at all. 4023*6236dae4SAndroid Build Coastguard Workerdnl 4024*6236dae4SAndroid Build Coastguard Workerdnl POSIX-style strerror_r: 4025*6236dae4SAndroid Build Coastguard Workerdnl 4026*6236dae4SAndroid Build Coastguard Workerdnl int strerror_r(int errnum, char *resultbuf, size_t bufsize); 4027*6236dae4SAndroid Build Coastguard Workerdnl 4028*6236dae4SAndroid Build Coastguard Workerdnl POSIX-style strerror_r returns 0 upon successful completion and the 4029*6236dae4SAndroid Build Coastguard Workerdnl error string in the provided resultbuf. 4030*6236dae4SAndroid Build Coastguard Workerdnl 4031*6236dae4SAndroid Build Coastguard Worker 4032*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_STRERROR_R], [ 4033*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_STDLIB])dnl 4034*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_STRING])dnl 4035*6236dae4SAndroid Build Coastguard Worker # 4036*6236dae4SAndroid Build Coastguard Worker tst_links_strerror_r="unknown" 4037*6236dae4SAndroid Build Coastguard Worker tst_proto_strerror_r="unknown" 4038*6236dae4SAndroid Build Coastguard Worker tst_compi_strerror_r="unknown" 4039*6236dae4SAndroid Build Coastguard Worker tst_glibc_strerror_r="unknown" 4040*6236dae4SAndroid Build Coastguard Worker tst_posix_strerror_r="unknown" 4041*6236dae4SAndroid Build Coastguard Worker tst_allow_strerror_r="unknown" 4042*6236dae4SAndroid Build Coastguard Worker tst_works_glibc_strerror_r="unknown" 4043*6236dae4SAndroid Build Coastguard Worker tst_works_posix_strerror_r="unknown" 4044*6236dae4SAndroid Build Coastguard Worker tst_glibc_strerror_r_type_arg3="unknown" 4045*6236dae4SAndroid Build Coastguard Worker tst_posix_strerror_r_type_arg3="unknown" 4046*6236dae4SAndroid Build Coastguard Worker # 4047*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strerror_r can be linked]) 4048*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 4049*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([strerror_r]) 4050*6236dae4SAndroid Build Coastguard Worker ],[ 4051*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4052*6236dae4SAndroid Build Coastguard Worker tst_links_strerror_r="yes" 4053*6236dae4SAndroid Build Coastguard Worker ],[ 4054*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4055*6236dae4SAndroid Build Coastguard Worker tst_links_strerror_r="no" 4056*6236dae4SAndroid Build Coastguard Worker ]) 4057*6236dae4SAndroid Build Coastguard Worker # 4058*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_strerror_r" = "yes"; then 4059*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strerror_r is prototyped]) 4060*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([strerror_r],[ 4061*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 4062*6236dae4SAndroid Build Coastguard Worker ],[ 4063*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4064*6236dae4SAndroid Build Coastguard Worker tst_proto_strerror_r="yes" 4065*6236dae4SAndroid Build Coastguard Worker ],[ 4066*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4067*6236dae4SAndroid Build Coastguard Worker tst_proto_strerror_r="no" 4068*6236dae4SAndroid Build Coastguard Worker ]) 4069*6236dae4SAndroid Build Coastguard Worker fi 4070*6236dae4SAndroid Build Coastguard Worker # 4071*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_strerror_r" = "yes"; then 4072*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strerror_r is compilable]) 4073*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 4074*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 4075*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 4076*6236dae4SAndroid Build Coastguard Worker ]],[[ 4077*6236dae4SAndroid Build Coastguard Worker if(0 != strerror_r(0, 0, 0)) 4078*6236dae4SAndroid Build Coastguard Worker return 1; 4079*6236dae4SAndroid Build Coastguard Worker ]]) 4080*6236dae4SAndroid Build Coastguard Worker ],[ 4081*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4082*6236dae4SAndroid Build Coastguard Worker tst_compi_strerror_r="yes" 4083*6236dae4SAndroid Build Coastguard Worker ],[ 4084*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4085*6236dae4SAndroid Build Coastguard Worker tst_compi_strerror_r="no" 4086*6236dae4SAndroid Build Coastguard Worker ]) 4087*6236dae4SAndroid Build Coastguard Worker fi 4088*6236dae4SAndroid Build Coastguard Worker # 4089*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_strerror_r" = "yes"; then 4090*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strerror_r is glibc like]) 4091*6236dae4SAndroid Build Coastguard Worker tst_glibc_strerror_r_type_arg3="unknown" 4092*6236dae4SAndroid Build Coastguard Worker for arg3 in 'size_t' 'int' 'unsigned int'; do 4093*6236dae4SAndroid Build Coastguard Worker if test "$tst_glibc_strerror_r_type_arg3" = "unknown"; then 4094*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 4095*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 4096*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 4097*6236dae4SAndroid Build Coastguard Worker char *strerror_r(int errnum, char *workbuf, $arg3 bufsize); 4098*6236dae4SAndroid Build Coastguard Worker ]],[[ 4099*6236dae4SAndroid Build Coastguard Worker if(0 != strerror_r(0, 0, 0)) 4100*6236dae4SAndroid Build Coastguard Worker return 1; 4101*6236dae4SAndroid Build Coastguard Worker ]]) 4102*6236dae4SAndroid Build Coastguard Worker ],[ 4103*6236dae4SAndroid Build Coastguard Worker tst_glibc_strerror_r_type_arg3="$arg3" 4104*6236dae4SAndroid Build Coastguard Worker ]) 4105*6236dae4SAndroid Build Coastguard Worker fi 4106*6236dae4SAndroid Build Coastguard Worker done 4107*6236dae4SAndroid Build Coastguard Worker case "$tst_glibc_strerror_r_type_arg3" in 4108*6236dae4SAndroid Build Coastguard Worker unknown) 4109*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4110*6236dae4SAndroid Build Coastguard Worker tst_glibc_strerror_r="no" 4111*6236dae4SAndroid Build Coastguard Worker ;; 4112*6236dae4SAndroid Build Coastguard Worker *) 4113*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4114*6236dae4SAndroid Build Coastguard Worker tst_glibc_strerror_r="yes" 4115*6236dae4SAndroid Build Coastguard Worker ;; 4116*6236dae4SAndroid Build Coastguard Worker esac 4117*6236dae4SAndroid Build Coastguard Worker fi 4118*6236dae4SAndroid Build Coastguard Worker # 4119*6236dae4SAndroid Build Coastguard Worker dnl only do runtime verification when not cross-compiling 4120*6236dae4SAndroid Build Coastguard Worker if test "x$cross_compiling" != "xyes" && 4121*6236dae4SAndroid Build Coastguard Worker test "$tst_glibc_strerror_r" = "yes"; then 4122*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strerror_r seems to work]) 4123*6236dae4SAndroid Build Coastguard Worker CURL_RUN_IFELSE([ 4124*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 4125*6236dae4SAndroid Build Coastguard Worker $curl_includes_stdlib 4126*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 4127*6236dae4SAndroid Build Coastguard Worker# include <errno.h> 4128*6236dae4SAndroid Build Coastguard Worker ]],[[ 4129*6236dae4SAndroid Build Coastguard Worker char buffer[1024]; 4130*6236dae4SAndroid Build Coastguard Worker char *string = 0; 4131*6236dae4SAndroid Build Coastguard Worker buffer[0] = '\0'; 4132*6236dae4SAndroid Build Coastguard Worker string = strerror_r(EACCES, buffer, sizeof(buffer)); 4133*6236dae4SAndroid Build Coastguard Worker if(!string) 4134*6236dae4SAndroid Build Coastguard Worker exit(1); /* fail */ 4135*6236dae4SAndroid Build Coastguard Worker if(!string[0]) 4136*6236dae4SAndroid Build Coastguard Worker exit(1); /* fail */ 4137*6236dae4SAndroid Build Coastguard Worker else 4138*6236dae4SAndroid Build Coastguard Worker exit(0); 4139*6236dae4SAndroid Build Coastguard Worker ]]) 4140*6236dae4SAndroid Build Coastguard Worker ],[ 4141*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4142*6236dae4SAndroid Build Coastguard Worker tst_works_glibc_strerror_r="yes" 4143*6236dae4SAndroid Build Coastguard Worker ],[ 4144*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4145*6236dae4SAndroid Build Coastguard Worker tst_works_glibc_strerror_r="no" 4146*6236dae4SAndroid Build Coastguard Worker ]) 4147*6236dae4SAndroid Build Coastguard Worker fi 4148*6236dae4SAndroid Build Coastguard Worker # 4149*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_strerror_r" = "yes" && 4150*6236dae4SAndroid Build Coastguard Worker test "$tst_works_glibc_strerror_r" != "yes"; then 4151*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strerror_r is POSIX like]) 4152*6236dae4SAndroid Build Coastguard Worker tst_posix_strerror_r_type_arg3="unknown" 4153*6236dae4SAndroid Build Coastguard Worker for arg3 in 'size_t' 'int' 'unsigned int'; do 4154*6236dae4SAndroid Build Coastguard Worker if test "$tst_posix_strerror_r_type_arg3" = "unknown"; then 4155*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 4156*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 4157*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 4158*6236dae4SAndroid Build Coastguard Worker int strerror_r(int errnum, char *resultbuf, $arg3 bufsize); 4159*6236dae4SAndroid Build Coastguard Worker ]],[[ 4160*6236dae4SAndroid Build Coastguard Worker if(0 != strerror_r(0, 0, 0)) 4161*6236dae4SAndroid Build Coastguard Worker return 1; 4162*6236dae4SAndroid Build Coastguard Worker ]]) 4163*6236dae4SAndroid Build Coastguard Worker ],[ 4164*6236dae4SAndroid Build Coastguard Worker tst_posix_strerror_r_type_arg3="$arg3" 4165*6236dae4SAndroid Build Coastguard Worker ]) 4166*6236dae4SAndroid Build Coastguard Worker fi 4167*6236dae4SAndroid Build Coastguard Worker done 4168*6236dae4SAndroid Build Coastguard Worker case "$tst_posix_strerror_r_type_arg3" in 4169*6236dae4SAndroid Build Coastguard Worker unknown) 4170*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4171*6236dae4SAndroid Build Coastguard Worker tst_posix_strerror_r="no" 4172*6236dae4SAndroid Build Coastguard Worker ;; 4173*6236dae4SAndroid Build Coastguard Worker *) 4174*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4175*6236dae4SAndroid Build Coastguard Worker tst_posix_strerror_r="yes" 4176*6236dae4SAndroid Build Coastguard Worker ;; 4177*6236dae4SAndroid Build Coastguard Worker esac 4178*6236dae4SAndroid Build Coastguard Worker fi 4179*6236dae4SAndroid Build Coastguard Worker # 4180*6236dae4SAndroid Build Coastguard Worker dnl only do runtime verification when not cross-compiling 4181*6236dae4SAndroid Build Coastguard Worker if test "x$cross_compiling" != "xyes" && 4182*6236dae4SAndroid Build Coastguard Worker test "$tst_posix_strerror_r" = "yes"; then 4183*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strerror_r seems to work]) 4184*6236dae4SAndroid Build Coastguard Worker CURL_RUN_IFELSE([ 4185*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 4186*6236dae4SAndroid Build Coastguard Worker $curl_includes_stdlib 4187*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 4188*6236dae4SAndroid Build Coastguard Worker# include <errno.h> 4189*6236dae4SAndroid Build Coastguard Worker ]],[[ 4190*6236dae4SAndroid Build Coastguard Worker char buffer[1024]; 4191*6236dae4SAndroid Build Coastguard Worker int error = 1; 4192*6236dae4SAndroid Build Coastguard Worker buffer[0] = '\0'; 4193*6236dae4SAndroid Build Coastguard Worker error = strerror_r(EACCES, buffer, sizeof(buffer)); 4194*6236dae4SAndroid Build Coastguard Worker if(error) 4195*6236dae4SAndroid Build Coastguard Worker exit(1); /* fail */ 4196*6236dae4SAndroid Build Coastguard Worker if(buffer[0] == '\0') 4197*6236dae4SAndroid Build Coastguard Worker exit(1); /* fail */ 4198*6236dae4SAndroid Build Coastguard Worker else 4199*6236dae4SAndroid Build Coastguard Worker exit(0); 4200*6236dae4SAndroid Build Coastguard Worker ]]) 4201*6236dae4SAndroid Build Coastguard Worker ],[ 4202*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4203*6236dae4SAndroid Build Coastguard Worker tst_works_posix_strerror_r="yes" 4204*6236dae4SAndroid Build Coastguard Worker ],[ 4205*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4206*6236dae4SAndroid Build Coastguard Worker tst_works_posix_strerror_r="no" 4207*6236dae4SAndroid Build Coastguard Worker ]) 4208*6236dae4SAndroid Build Coastguard Worker fi 4209*6236dae4SAndroid Build Coastguard Worker # 4210*6236dae4SAndroid Build Coastguard Worker if test "$tst_works_glibc_strerror_r" = "yes"; then 4211*6236dae4SAndroid Build Coastguard Worker tst_posix_strerror_r="no" 4212*6236dae4SAndroid Build Coastguard Worker fi 4213*6236dae4SAndroid Build Coastguard Worker if test "$tst_works_posix_strerror_r" = "yes"; then 4214*6236dae4SAndroid Build Coastguard Worker tst_glibc_strerror_r="no" 4215*6236dae4SAndroid Build Coastguard Worker fi 4216*6236dae4SAndroid Build Coastguard Worker if test "$tst_glibc_strerror_r" = "yes" && 4217*6236dae4SAndroid Build Coastguard Worker test "$tst_works_glibc_strerror_r" != "no" && 4218*6236dae4SAndroid Build Coastguard Worker test "$tst_posix_strerror_r" != "yes"; then 4219*6236dae4SAndroid Build Coastguard Worker tst_allow_strerror_r="check" 4220*6236dae4SAndroid Build Coastguard Worker fi 4221*6236dae4SAndroid Build Coastguard Worker if test "$tst_posix_strerror_r" = "yes" && 4222*6236dae4SAndroid Build Coastguard Worker test "$tst_works_posix_strerror_r" != "no" && 4223*6236dae4SAndroid Build Coastguard Worker test "$tst_glibc_strerror_r" != "yes"; then 4224*6236dae4SAndroid Build Coastguard Worker tst_allow_strerror_r="check" 4225*6236dae4SAndroid Build Coastguard Worker fi 4226*6236dae4SAndroid Build Coastguard Worker if test "$tst_allow_strerror_r" = "check"; then 4227*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strerror_r usage allowed]) 4228*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_strerror_r" != "xyes"; then 4229*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4230*6236dae4SAndroid Build Coastguard Worker tst_allow_strerror_r="yes" 4231*6236dae4SAndroid Build Coastguard Worker else 4232*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4233*6236dae4SAndroid Build Coastguard Worker tst_allow_strerror_r="no" 4234*6236dae4SAndroid Build Coastguard Worker fi 4235*6236dae4SAndroid Build Coastguard Worker fi 4236*6236dae4SAndroid Build Coastguard Worker # 4237*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strerror_r might be used]) 4238*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_strerror_r" = "yes" && 4239*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_strerror_r" = "yes" && 4240*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_strerror_r" = "yes" && 4241*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_strerror_r" = "yes"; then 4242*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4243*6236dae4SAndroid Build Coastguard Worker if test "$tst_glibc_strerror_r" = "yes"; then 4244*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_STRERROR_R, 1, 4245*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the strerror_r function.]) 4246*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_GLIBC_STRERROR_R, 1, 4247*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have a working glibc-style strerror_r function.]) 4248*6236dae4SAndroid Build Coastguard Worker fi 4249*6236dae4SAndroid Build Coastguard Worker if test "$tst_posix_strerror_r" = "yes"; then 4250*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_STRERROR_R, 1, 4251*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the strerror_r function.]) 4252*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_POSIX_STRERROR_R, 1, 4253*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have a working POSIX-style strerror_r function.]) 4254*6236dae4SAndroid Build Coastguard Worker fi 4255*6236dae4SAndroid Build Coastguard Worker curl_cv_func_strerror_r="yes" 4256*6236dae4SAndroid Build Coastguard Worker else 4257*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4258*6236dae4SAndroid Build Coastguard Worker curl_cv_func_strerror_r="no" 4259*6236dae4SAndroid Build Coastguard Worker fi 4260*6236dae4SAndroid Build Coastguard Worker # 4261*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_strerror_r" = "yes" && 4262*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_strerror_r" = "unknown"; then 4263*6236dae4SAndroid Build Coastguard Worker AC_MSG_WARN([cannot determine strerror_r() style: edit lib/curl_config.h manually.]) 4264*6236dae4SAndroid Build Coastguard Worker fi 4265*6236dae4SAndroid Build Coastguard Worker # 4266*6236dae4SAndroid Build Coastguard Worker]) 4267*6236dae4SAndroid Build Coastguard Worker 4268*6236dae4SAndroid Build Coastguard Worker 4269*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_STRICMP 4270*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 4271*6236dae4SAndroid Build Coastguard Workerdnl Verify if stricmp is available, prototyped, and 4272*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 4273*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 4274*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_stricmp, then 4275*6236dae4SAndroid Build Coastguard Workerdnl HAVE_STRICMP will be defined. 4276*6236dae4SAndroid Build Coastguard Worker 4277*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_STRICMP], [ 4278*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_STRING])dnl 4279*6236dae4SAndroid Build Coastguard Worker # 4280*6236dae4SAndroid Build Coastguard Worker tst_links_stricmp="unknown" 4281*6236dae4SAndroid Build Coastguard Worker tst_proto_stricmp="unknown" 4282*6236dae4SAndroid Build Coastguard Worker tst_compi_stricmp="unknown" 4283*6236dae4SAndroid Build Coastguard Worker tst_allow_stricmp="unknown" 4284*6236dae4SAndroid Build Coastguard Worker # 4285*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if stricmp can be linked]) 4286*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 4287*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([stricmp]) 4288*6236dae4SAndroid Build Coastguard Worker ],[ 4289*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4290*6236dae4SAndroid Build Coastguard Worker tst_links_stricmp="yes" 4291*6236dae4SAndroid Build Coastguard Worker ],[ 4292*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4293*6236dae4SAndroid Build Coastguard Worker tst_links_stricmp="no" 4294*6236dae4SAndroid Build Coastguard Worker ]) 4295*6236dae4SAndroid Build Coastguard Worker # 4296*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_stricmp" = "yes"; then 4297*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if stricmp is prototyped]) 4298*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([stricmp],[ 4299*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 4300*6236dae4SAndroid Build Coastguard Worker ],[ 4301*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4302*6236dae4SAndroid Build Coastguard Worker tst_proto_stricmp="yes" 4303*6236dae4SAndroid Build Coastguard Worker ],[ 4304*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4305*6236dae4SAndroid Build Coastguard Worker tst_proto_stricmp="no" 4306*6236dae4SAndroid Build Coastguard Worker ]) 4307*6236dae4SAndroid Build Coastguard Worker fi 4308*6236dae4SAndroid Build Coastguard Worker # 4309*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_stricmp" = "yes"; then 4310*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if stricmp is compilable]) 4311*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 4312*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 4313*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 4314*6236dae4SAndroid Build Coastguard Worker ]],[[ 4315*6236dae4SAndroid Build Coastguard Worker if(0 != stricmp(0, 0)) 4316*6236dae4SAndroid Build Coastguard Worker return 1; 4317*6236dae4SAndroid Build Coastguard Worker ]]) 4318*6236dae4SAndroid Build Coastguard Worker ],[ 4319*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4320*6236dae4SAndroid Build Coastguard Worker tst_compi_stricmp="yes" 4321*6236dae4SAndroid Build Coastguard Worker ],[ 4322*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4323*6236dae4SAndroid Build Coastguard Worker tst_compi_stricmp="no" 4324*6236dae4SAndroid Build Coastguard Worker ]) 4325*6236dae4SAndroid Build Coastguard Worker fi 4326*6236dae4SAndroid Build Coastguard Worker # 4327*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_stricmp" = "yes"; then 4328*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if stricmp usage allowed]) 4329*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_stricmp" != "xyes"; then 4330*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4331*6236dae4SAndroid Build Coastguard Worker tst_allow_stricmp="yes" 4332*6236dae4SAndroid Build Coastguard Worker else 4333*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4334*6236dae4SAndroid Build Coastguard Worker tst_allow_stricmp="no" 4335*6236dae4SAndroid Build Coastguard Worker fi 4336*6236dae4SAndroid Build Coastguard Worker fi 4337*6236dae4SAndroid Build Coastguard Worker # 4338*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if stricmp might be used]) 4339*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_stricmp" = "yes" && 4340*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_stricmp" = "yes" && 4341*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_stricmp" = "yes" && 4342*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_stricmp" = "yes"; then 4343*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4344*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_STRICMP, 1, 4345*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the stricmp function.]) 4346*6236dae4SAndroid Build Coastguard Worker curl_cv_func_stricmp="yes" 4347*6236dae4SAndroid Build Coastguard Worker else 4348*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4349*6236dae4SAndroid Build Coastguard Worker curl_cv_func_stricmp="no" 4350*6236dae4SAndroid Build Coastguard Worker fi 4351*6236dae4SAndroid Build Coastguard Worker]) 4352*6236dae4SAndroid Build Coastguard Worker 4353*6236dae4SAndroid Build Coastguard Worker 4354*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_STRTOK_R 4355*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 4356*6236dae4SAndroid Build Coastguard Workerdnl Verify if strtok_r is available, prototyped, and 4357*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 4358*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 4359*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_strtok_r, then 4360*6236dae4SAndroid Build Coastguard Workerdnl HAVE_STRTOK_R will be defined. 4361*6236dae4SAndroid Build Coastguard Worker 4362*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_STRTOK_R], [ 4363*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_STRING])dnl 4364*6236dae4SAndroid Build Coastguard Worker # 4365*6236dae4SAndroid Build Coastguard Worker tst_links_strtok_r="unknown" 4366*6236dae4SAndroid Build Coastguard Worker tst_proto_strtok_r="unknown" 4367*6236dae4SAndroid Build Coastguard Worker tst_compi_strtok_r="unknown" 4368*6236dae4SAndroid Build Coastguard Worker tst_allow_strtok_r="unknown" 4369*6236dae4SAndroid Build Coastguard Worker # 4370*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strtok_r can be linked]) 4371*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 4372*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([strtok_r]) 4373*6236dae4SAndroid Build Coastguard Worker ],[ 4374*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4375*6236dae4SAndroid Build Coastguard Worker tst_links_strtok_r="yes" 4376*6236dae4SAndroid Build Coastguard Worker ],[ 4377*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4378*6236dae4SAndroid Build Coastguard Worker tst_links_strtok_r="no" 4379*6236dae4SAndroid Build Coastguard Worker ]) 4380*6236dae4SAndroid Build Coastguard Worker # 4381*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_strtok_r" = "yes"; then 4382*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strtok_r is prototyped]) 4383*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([strtok_r],[ 4384*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 4385*6236dae4SAndroid Build Coastguard Worker ],[ 4386*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4387*6236dae4SAndroid Build Coastguard Worker tst_proto_strtok_r="yes" 4388*6236dae4SAndroid Build Coastguard Worker ],[ 4389*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4390*6236dae4SAndroid Build Coastguard Worker tst_proto_strtok_r="no" 4391*6236dae4SAndroid Build Coastguard Worker ]) 4392*6236dae4SAndroid Build Coastguard Worker fi 4393*6236dae4SAndroid Build Coastguard Worker # 4394*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_strtok_r" = "yes"; then 4395*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strtok_r is compilable]) 4396*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 4397*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 4398*6236dae4SAndroid Build Coastguard Worker $curl_includes_string 4399*6236dae4SAndroid Build Coastguard Worker ]],[[ 4400*6236dae4SAndroid Build Coastguard Worker if(0 != strtok_r(0, 0, 0)) 4401*6236dae4SAndroid Build Coastguard Worker return 1; 4402*6236dae4SAndroid Build Coastguard Worker ]]) 4403*6236dae4SAndroid Build Coastguard Worker ],[ 4404*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4405*6236dae4SAndroid Build Coastguard Worker tst_compi_strtok_r="yes" 4406*6236dae4SAndroid Build Coastguard Worker ],[ 4407*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4408*6236dae4SAndroid Build Coastguard Worker tst_compi_strtok_r="no" 4409*6236dae4SAndroid Build Coastguard Worker ]) 4410*6236dae4SAndroid Build Coastguard Worker fi 4411*6236dae4SAndroid Build Coastguard Worker # 4412*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_strtok_r" = "yes"; then 4413*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strtok_r usage allowed]) 4414*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_strtok_r" != "xyes"; then 4415*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4416*6236dae4SAndroid Build Coastguard Worker tst_allow_strtok_r="yes" 4417*6236dae4SAndroid Build Coastguard Worker else 4418*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4419*6236dae4SAndroid Build Coastguard Worker tst_allow_strtok_r="no" 4420*6236dae4SAndroid Build Coastguard Worker fi 4421*6236dae4SAndroid Build Coastguard Worker fi 4422*6236dae4SAndroid Build Coastguard Worker # 4423*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strtok_r might be used]) 4424*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_strtok_r" = "yes" && 4425*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_strtok_r" = "yes" && 4426*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_strtok_r" = "yes" && 4427*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_strtok_r" = "yes"; then 4428*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4429*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_STRTOK_R, 1, 4430*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the strtok_r function.]) 4431*6236dae4SAndroid Build Coastguard Worker curl_cv_func_strtok_r="yes" 4432*6236dae4SAndroid Build Coastguard Worker else 4433*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4434*6236dae4SAndroid Build Coastguard Worker curl_cv_func_strtok_r="no" 4435*6236dae4SAndroid Build Coastguard Worker fi 4436*6236dae4SAndroid Build Coastguard Worker]) 4437*6236dae4SAndroid Build Coastguard Worker 4438*6236dae4SAndroid Build Coastguard Worker 4439*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_STRTOLL 4440*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 4441*6236dae4SAndroid Build Coastguard Workerdnl Verify if strtoll is available, prototyped, and 4442*6236dae4SAndroid Build Coastguard Workerdnl can be compiled. If all of these are true, and 4443*6236dae4SAndroid Build Coastguard Workerdnl usage has not been previously disallowed with 4444*6236dae4SAndroid Build Coastguard Workerdnl shell variable curl_disallow_strtoll, then 4445*6236dae4SAndroid Build Coastguard Workerdnl HAVE_STRTOLL will be defined. 4446*6236dae4SAndroid Build Coastguard Worker 4447*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_STRTOLL], [ 4448*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_STDLIB])dnl 4449*6236dae4SAndroid Build Coastguard Worker # 4450*6236dae4SAndroid Build Coastguard Worker tst_links_strtoll="unknown" 4451*6236dae4SAndroid Build Coastguard Worker tst_proto_strtoll="unknown" 4452*6236dae4SAndroid Build Coastguard Worker tst_compi_strtoll="unknown" 4453*6236dae4SAndroid Build Coastguard Worker tst_allow_strtoll="unknown" 4454*6236dae4SAndroid Build Coastguard Worker # 4455*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strtoll can be linked]) 4456*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 4457*6236dae4SAndroid Build Coastguard Worker AC_LANG_FUNC_LINK_TRY([strtoll]) 4458*6236dae4SAndroid Build Coastguard Worker ],[ 4459*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4460*6236dae4SAndroid Build Coastguard Worker tst_links_strtoll="yes" 4461*6236dae4SAndroid Build Coastguard Worker ],[ 4462*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4463*6236dae4SAndroid Build Coastguard Worker tst_links_strtoll="no" 4464*6236dae4SAndroid Build Coastguard Worker ]) 4465*6236dae4SAndroid Build Coastguard Worker # 4466*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_strtoll" = "yes"; then 4467*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strtoll is prototyped]) 4468*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([strtoll],[ 4469*6236dae4SAndroid Build Coastguard Worker $curl_includes_stdlib 4470*6236dae4SAndroid Build Coastguard Worker ],[ 4471*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4472*6236dae4SAndroid Build Coastguard Worker tst_proto_strtoll="yes" 4473*6236dae4SAndroid Build Coastguard Worker ],[ 4474*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4475*6236dae4SAndroid Build Coastguard Worker tst_proto_strtoll="no" 4476*6236dae4SAndroid Build Coastguard Worker ]) 4477*6236dae4SAndroid Build Coastguard Worker fi 4478*6236dae4SAndroid Build Coastguard Worker # 4479*6236dae4SAndroid Build Coastguard Worker if test "$tst_proto_strtoll" = "yes"; then 4480*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strtoll is compilable]) 4481*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 4482*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 4483*6236dae4SAndroid Build Coastguard Worker $curl_includes_stdlib 4484*6236dae4SAndroid Build Coastguard Worker ]],[[ 4485*6236dae4SAndroid Build Coastguard Worker if(0 != strtoll(0, 0, 0)) 4486*6236dae4SAndroid Build Coastguard Worker return 1; 4487*6236dae4SAndroid Build Coastguard Worker ]]) 4488*6236dae4SAndroid Build Coastguard Worker ],[ 4489*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4490*6236dae4SAndroid Build Coastguard Worker tst_compi_strtoll="yes" 4491*6236dae4SAndroid Build Coastguard Worker ],[ 4492*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4493*6236dae4SAndroid Build Coastguard Worker tst_compi_strtoll="no" 4494*6236dae4SAndroid Build Coastguard Worker ]) 4495*6236dae4SAndroid Build Coastguard Worker fi 4496*6236dae4SAndroid Build Coastguard Worker # 4497*6236dae4SAndroid Build Coastguard Worker if test "$tst_compi_strtoll" = "yes"; then 4498*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strtoll usage allowed]) 4499*6236dae4SAndroid Build Coastguard Worker if test "x$curl_disallow_strtoll" != "xyes"; then 4500*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4501*6236dae4SAndroid Build Coastguard Worker tst_allow_strtoll="yes" 4502*6236dae4SAndroid Build Coastguard Worker else 4503*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4504*6236dae4SAndroid Build Coastguard Worker tst_allow_strtoll="no" 4505*6236dae4SAndroid Build Coastguard Worker fi 4506*6236dae4SAndroid Build Coastguard Worker fi 4507*6236dae4SAndroid Build Coastguard Worker # 4508*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if strtoll might be used]) 4509*6236dae4SAndroid Build Coastguard Worker if test "$tst_links_strtoll" = "yes" && 4510*6236dae4SAndroid Build Coastguard Worker test "$tst_proto_strtoll" = "yes" && 4511*6236dae4SAndroid Build Coastguard Worker test "$tst_compi_strtoll" = "yes" && 4512*6236dae4SAndroid Build Coastguard Worker test "$tst_allow_strtoll" = "yes"; then 4513*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4514*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_STRTOLL, 1, 4515*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the strtoll function.]) 4516*6236dae4SAndroid Build Coastguard Worker curl_cv_func_strtoll="yes" 4517*6236dae4SAndroid Build Coastguard Worker else 4518*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4519*6236dae4SAndroid Build Coastguard Worker curl_cv_func_strtoll="no" 4520*6236dae4SAndroid Build Coastguard Worker fi 4521*6236dae4SAndroid Build Coastguard Worker]) 4522*6236dae4SAndroid Build Coastguard Worker 4523*6236dae4SAndroid Build Coastguard Workerdnl CURL_RUN_IFELSE 4524*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 4525*6236dae4SAndroid Build Coastguard Workerdnl Wrapper macro to use instead of AC_RUN_IFELSE. It 4526*6236dae4SAndroid Build Coastguard Workerdnl sets LD_LIBRARY_PATH locally for this run only, from the 4527*6236dae4SAndroid Build Coastguard Workerdnl CURL_LIBRARY_PATH variable. It keeps the LD_LIBRARY_PATH 4528*6236dae4SAndroid Build Coastguard Workerdnl changes contained within this macro. 4529*6236dae4SAndroid Build Coastguard Worker 4530*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_RUN_IFELSE], [ 4531*6236dae4SAndroid Build Coastguard Worker case $host in 4532*6236dae4SAndroid Build Coastguard Worker *-apple-*) 4533*6236dae4SAndroid Build Coastguard Worker AC_RUN_IFELSE([AC_LANG_SOURCE([$1])], $2, $3, $4) 4534*6236dae4SAndroid Build Coastguard Worker ;; 4535*6236dae4SAndroid Build Coastguard Worker *) 4536*6236dae4SAndroid Build Coastguard Worker oldcc=$CC 4537*6236dae4SAndroid Build Coastguard Worker old=$LD_LIBRARY_PATH 4538*6236dae4SAndroid Build Coastguard Worker CC="sh ./run-compiler" 4539*6236dae4SAndroid Build Coastguard Worker LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old 4540*6236dae4SAndroid Build Coastguard Worker export LD_LIBRARY_PATH 4541*6236dae4SAndroid Build Coastguard Worker AC_RUN_IFELSE([AC_LANG_SOURCE([$1])], $2, $3, $4) 4542*6236dae4SAndroid Build Coastguard Worker LD_LIBRARY_PATH=$old # restore 4543*6236dae4SAndroid Build Coastguard Worker CC=$oldcc 4544*6236dae4SAndroid Build Coastguard Worker ;; 4545*6236dae4SAndroid Build Coastguard Worker esac 4546*6236dae4SAndroid Build Coastguard Worker]) 4547*6236dae4SAndroid Build Coastguard Worker 4548*6236dae4SAndroid Build Coastguard Workerdnl CURL_COVERAGE 4549*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------- 4550*6236dae4SAndroid Build Coastguard Workerdnl Switch on options and libs to build with gcc's code coverage. 4551*6236dae4SAndroid Build Coastguard Workerdnl 4552*6236dae4SAndroid Build Coastguard Worker 4553*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_COVERAGE],[ 4554*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([AC_PROG_SED]) 4555*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([AC_ARG_ENABLE]) 4556*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([for code coverage support]) 4557*6236dae4SAndroid Build Coastguard Worker coverage="no" 4558*6236dae4SAndroid Build Coastguard Worker curl_coverage_msg="disabled" 4559*6236dae4SAndroid Build Coastguard Worker 4560*6236dae4SAndroid Build Coastguard Worker dnl check if enabled by argument 4561*6236dae4SAndroid Build Coastguard Worker AC_ARG_ENABLE(code-coverage, 4562*6236dae4SAndroid Build Coastguard Worker AS_HELP_STRING([--enable-code-coverage], [Provide code coverage]), 4563*6236dae4SAndroid Build Coastguard Worker coverage="$enableval") 4564*6236dae4SAndroid Build Coastguard Worker 4565*6236dae4SAndroid Build Coastguard Worker dnl if not gcc switch off again 4566*6236dae4SAndroid Build Coastguard Worker AS_IF([ test "$GCC" != "yes" ], coverage="no" ) 4567*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT($coverage) 4568*6236dae4SAndroid Build Coastguard Worker 4569*6236dae4SAndroid Build Coastguard Worker if test "x$coverage" = "xyes"; then 4570*6236dae4SAndroid Build Coastguard Worker curl_coverage_msg="enabled" 4571*6236dae4SAndroid Build Coastguard Worker 4572*6236dae4SAndroid Build Coastguard Worker AC_CHECK_TOOL([GCOV], [gcov], [gcov]) 4573*6236dae4SAndroid Build Coastguard Worker if test -z "$GCOV"; then 4574*6236dae4SAndroid Build Coastguard Worker AC_MSG_ERROR([needs gcov for code coverage]) 4575*6236dae4SAndroid Build Coastguard Worker fi 4576*6236dae4SAndroid Build Coastguard Worker AC_CHECK_PROG([LCOV], [lcov], [lcov]) 4577*6236dae4SAndroid Build Coastguard Worker if test -z "$LCOV"; then 4578*6236dae4SAndroid Build Coastguard Worker AC_MSG_ERROR([needs lcov for code coverage]) 4579*6236dae4SAndroid Build Coastguard Worker fi 4580*6236dae4SAndroid Build Coastguard Worker 4581*6236dae4SAndroid Build Coastguard Worker CPPFLAGS="$CPPFLAGS -DNDEBUG" 4582*6236dae4SAndroid Build Coastguard Worker CFLAGS="$CFLAGS -O0 -g -fprofile-arcs -ftest-coverage" 4583*6236dae4SAndroid Build Coastguard Worker LIBS="$LIBS -lgcov" 4584*6236dae4SAndroid Build Coastguard Worker fi 4585*6236dae4SAndroid Build Coastguard Worker]) 4586*6236dae4SAndroid Build Coastguard Worker 4587*6236dae4SAndroid Build Coastguard Workerdnl CURL_ATOMIC 4588*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------------------- 4589*6236dae4SAndroid Build Coastguard Workerdnl Check if _Atomic works. But only check if stdatomic.h exists. 4590*6236dae4SAndroid Build Coastguard Workerdnl 4591*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_ATOMIC],[ 4592*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS(stdatomic.h, [ 4593*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if _Atomic is available]) 4594*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 4595*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 4596*6236dae4SAndroid Build Coastguard Worker $curl_includes_unistd 4597*6236dae4SAndroid Build Coastguard Worker ]],[[ 4598*6236dae4SAndroid Build Coastguard Worker _Atomic int i = 0; 4599*6236dae4SAndroid Build Coastguard Worker i = 4; // Force an atomic-write operation. 4600*6236dae4SAndroid Build Coastguard Worker ]]) 4601*6236dae4SAndroid Build Coastguard Worker ],[ 4602*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 4603*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_ATOMIC, 1, 4604*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have _Atomic support.]) 4605*6236dae4SAndroid Build Coastguard Worker tst_atomic="yes" 4606*6236dae4SAndroid Build Coastguard Worker ],[ 4607*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 4608*6236dae4SAndroid Build Coastguard Worker tst_atomic="no" 4609*6236dae4SAndroid Build Coastguard Worker ]) 4610*6236dae4SAndroid Build Coastguard Worker ]) 4611*6236dae4SAndroid Build Coastguard Worker]) 4612*6236dae4SAndroid Build Coastguard Worker 4613*6236dae4SAndroid Build Coastguard Worker# Rewrite inspired by the functionality once provided by 4614*6236dae4SAndroid Build Coastguard Worker# AX_COMPILE_CHECK_SIZEOF. Uses the switch() "trick" to find the size of the 4615*6236dae4SAndroid Build Coastguard Worker# given type. 4616*6236dae4SAndroid Build Coastguard Worker# 4617*6236dae4SAndroid Build Coastguard Worker# This code fails to compile: 4618*6236dae4SAndroid Build Coastguard Worker# 4619*6236dae4SAndroid Build Coastguard Worker# switch() { case 0: case 0: } 4620*6236dae4SAndroid Build Coastguard Worker# 4621*6236dae4SAndroid Build Coastguard Worker# By making the second case number a boolean check, it fails to compile the 4622*6236dae4SAndroid Build Coastguard Worker# test code when the boolean is false and thus creating a zero, making it a 4623*6236dae4SAndroid Build Coastguard Worker# duplicated case label. If the boolean equals true, it becomes a one, the 4624*6236dae4SAndroid Build Coastguard Worker# code compiles and we know it was a match. 4625*6236dae4SAndroid Build Coastguard Worker# 4626*6236dae4SAndroid Build Coastguard Worker# The check iterates over all possible sizes and stops as soon it compiles 4627*6236dae4SAndroid Build Coastguard Worker# error-free. 4628*6236dae4SAndroid Build Coastguard Worker# 4629*6236dae4SAndroid Build Coastguard Worker# Usage: 4630*6236dae4SAndroid Build Coastguard Worker# 4631*6236dae4SAndroid Build Coastguard Worker# CURL_SIZEOF(TYPE, [HEADERS]) 4632*6236dae4SAndroid Build Coastguard Worker# 4633*6236dae4SAndroid Build Coastguard Worker 4634*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_SIZEOF], [ 4635*6236dae4SAndroid Build Coastguard Worker dnl The #define name to make autoheader put the name in curl_config.h.in 4636*6236dae4SAndroid Build Coastguard Worker define(TYPE, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl 4637*6236dae4SAndroid Build Coastguard Worker 4638*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING(size of $1) 4639*6236dae4SAndroid Build Coastguard Worker r=0 4640*6236dae4SAndroid Build Coastguard Worker dnl Check the sizes in a reasonable order 4641*6236dae4SAndroid Build Coastguard Worker for typesize in 8 4 2 16 1; do 4642*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 4643*6236dae4SAndroid Build Coastguard Worker#include <sys/types.h> 4644*6236dae4SAndroid Build Coastguard Worker$2 4645*6236dae4SAndroid Build Coastguard Worker]], 4646*6236dae4SAndroid Build Coastguard Worker [switch(0) { 4647*6236dae4SAndroid Build Coastguard Worker case 0: 4648*6236dae4SAndroid Build Coastguard Worker case (sizeof($1) == $typesize):; 4649*6236dae4SAndroid Build Coastguard Worker } 4650*6236dae4SAndroid Build Coastguard Worker ]) ], 4651*6236dae4SAndroid Build Coastguard Worker [ 4652*6236dae4SAndroid Build Coastguard Worker r=$typesize], 4653*6236dae4SAndroid Build Coastguard Worker [ 4654*6236dae4SAndroid Build Coastguard Worker r=0]) 4655*6236dae4SAndroid Build Coastguard Worker dnl get out of the loop once matched 4656*6236dae4SAndroid Build Coastguard Worker if test $r -gt 0; then 4657*6236dae4SAndroid Build Coastguard Worker break; 4658*6236dae4SAndroid Build Coastguard Worker fi 4659*6236dae4SAndroid Build Coastguard Worker done 4660*6236dae4SAndroid Build Coastguard Worker if test $r -eq 0; then 4661*6236dae4SAndroid Build Coastguard Worker AC_MSG_ERROR([Failed to find size of $1]) 4662*6236dae4SAndroid Build Coastguard Worker fi 4663*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT($r) 4664*6236dae4SAndroid Build Coastguard Worker dnl lowercase and underscore instead of space 4665*6236dae4SAndroid Build Coastguard Worker tname=`echo "ac_cv_sizeof_$1" | tr A-Z a-z | tr " " "_"` 4666*6236dae4SAndroid Build Coastguard Worker eval "$tname=$r" 4667*6236dae4SAndroid Build Coastguard Worker 4668*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(TYPE, [$r], [Size of $1 in number of bytes]) 4669*6236dae4SAndroid Build Coastguard Worker 4670*6236dae4SAndroid Build Coastguard Worker]) 4671