xref: /aosp_15_r20/external/grpc-grpc/third_party/cares/ares_build.h (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1*cc02d7e2SAndroid Build Coastguard Worker #ifndef __CARES_BUILD_H
2*cc02d7e2SAndroid Build Coastguard Worker #define __CARES_BUILD_H
3*cc02d7e2SAndroid Build Coastguard Worker 
4*cc02d7e2SAndroid Build Coastguard Worker 
5*cc02d7e2SAndroid Build Coastguard Worker /* Copyright (C) 2009 - 2013 by Daniel Stenberg et al
6*cc02d7e2SAndroid Build Coastguard Worker  *
7*cc02d7e2SAndroid Build Coastguard Worker  * Permission to use, copy, modify, and distribute this software and its
8*cc02d7e2SAndroid Build Coastguard Worker  * documentation for any purpose and without fee is hereby granted, provided
9*cc02d7e2SAndroid Build Coastguard Worker  * that the above copyright notice appear in all copies and that both that
10*cc02d7e2SAndroid Build Coastguard Worker  * copyright notice and this permission notice appear in supporting
11*cc02d7e2SAndroid Build Coastguard Worker  * documentation, and that the name of M.I.T. not be used in advertising or
12*cc02d7e2SAndroid Build Coastguard Worker  * publicity pertaining to distribution of the software without specific,
13*cc02d7e2SAndroid Build Coastguard Worker  * written prior permission.  M.I.T. makes no representations about the
14*cc02d7e2SAndroid Build Coastguard Worker  * suitability of this software for any purpose.  It is provided "as is"
15*cc02d7e2SAndroid Build Coastguard Worker  * without express or implied warranty.
16*cc02d7e2SAndroid Build Coastguard Worker  */
17*cc02d7e2SAndroid Build Coastguard Worker 
18*cc02d7e2SAndroid Build Coastguard Worker /* ================================================================ */
19*cc02d7e2SAndroid Build Coastguard Worker /*               NOTES FOR CONFIGURE CAPABLE SYSTEMS                */
20*cc02d7e2SAndroid Build Coastguard Worker /* ================================================================ */
21*cc02d7e2SAndroid Build Coastguard Worker 
22*cc02d7e2SAndroid Build Coastguard Worker /*
23*cc02d7e2SAndroid Build Coastguard Worker  * NOTE 1:
24*cc02d7e2SAndroid Build Coastguard Worker  * -------
25*cc02d7e2SAndroid Build Coastguard Worker  *
26*cc02d7e2SAndroid Build Coastguard Worker  * See file ares_build.h.in, run configure, and forget that this file
27*cc02d7e2SAndroid Build Coastguard Worker  * exists it is only used for non-configure systems.
28*cc02d7e2SAndroid Build Coastguard Worker  * But you can keep reading if you want ;-)
29*cc02d7e2SAndroid Build Coastguard Worker  *
30*cc02d7e2SAndroid Build Coastguard Worker  */
31*cc02d7e2SAndroid Build Coastguard Worker 
32*cc02d7e2SAndroid Build Coastguard Worker /* ================================================================ */
33*cc02d7e2SAndroid Build Coastguard Worker /*                 NOTES FOR NON-CONFIGURE SYSTEMS                  */
34*cc02d7e2SAndroid Build Coastguard Worker /* ================================================================ */
35*cc02d7e2SAndroid Build Coastguard Worker 
36*cc02d7e2SAndroid Build Coastguard Worker /*
37*cc02d7e2SAndroid Build Coastguard Worker  * NOTE 1:
38*cc02d7e2SAndroid Build Coastguard Worker  * -------
39*cc02d7e2SAndroid Build Coastguard Worker  *
40*cc02d7e2SAndroid Build Coastguard Worker  * Nothing in this file is intended to be modified or adjusted by the
41*cc02d7e2SAndroid Build Coastguard Worker  * c-ares library user nor by the c-ares library builder.
42*cc02d7e2SAndroid Build Coastguard Worker  *
43*cc02d7e2SAndroid Build Coastguard Worker  * If you think that something actually needs to be changed, adjusted
44*cc02d7e2SAndroid Build Coastguard Worker  * or fixed in this file, then, report it on the c-ares development
45*cc02d7e2SAndroid Build Coastguard Worker  * mailing list: http://cool.haxx.se/mailman/listinfo/c-ares/
46*cc02d7e2SAndroid Build Coastguard Worker  *
47*cc02d7e2SAndroid Build Coastguard Worker  * Try to keep one section per platform, compiler and architecture,
48*cc02d7e2SAndroid Build Coastguard Worker  * otherwise, if an existing section is reused for a different one and
49*cc02d7e2SAndroid Build Coastguard Worker  * later on the original is adjusted, probably the piggybacking one can
50*cc02d7e2SAndroid Build Coastguard Worker  * be adversely changed.
51*cc02d7e2SAndroid Build Coastguard Worker  *
52*cc02d7e2SAndroid Build Coastguard Worker  * In order to differentiate between platforms/compilers/architectures
53*cc02d7e2SAndroid Build Coastguard Worker  * use only compiler built in predefined preprocessor symbols.
54*cc02d7e2SAndroid Build Coastguard Worker  *
55*cc02d7e2SAndroid Build Coastguard Worker  * This header file shall only export symbols which are 'cares' or 'CARES'
56*cc02d7e2SAndroid Build Coastguard Worker  * prefixed, otherwise public name space would be polluted.
57*cc02d7e2SAndroid Build Coastguard Worker  *
58*cc02d7e2SAndroid Build Coastguard Worker  * NOTE 2:
59*cc02d7e2SAndroid Build Coastguard Worker  * -------
60*cc02d7e2SAndroid Build Coastguard Worker  *
61*cc02d7e2SAndroid Build Coastguard Worker  * Right now you might be staring at file ares_build.h.dist or ares_build.h,
62*cc02d7e2SAndroid Build Coastguard Worker  * this is due to the following reason: file ares_build.h.dist is renamed
63*cc02d7e2SAndroid Build Coastguard Worker  * to ares_build.h when the c-ares source code distribution archive file is
64*cc02d7e2SAndroid Build Coastguard Worker  * created.
65*cc02d7e2SAndroid Build Coastguard Worker  *
66*cc02d7e2SAndroid Build Coastguard Worker  * File ares_build.h.dist is not included in the distribution archive.
67*cc02d7e2SAndroid Build Coastguard Worker  * File ares_build.h is not present in the git tree.
68*cc02d7e2SAndroid Build Coastguard Worker  *
69*cc02d7e2SAndroid Build Coastguard Worker  * The distributed ares_build.h file is only intended to be used on systems
70*cc02d7e2SAndroid Build Coastguard Worker  * which can not run the also distributed configure script.
71*cc02d7e2SAndroid Build Coastguard Worker  *
72*cc02d7e2SAndroid Build Coastguard Worker  * On systems capable of running the configure script, the configure process
73*cc02d7e2SAndroid Build Coastguard Worker  * will overwrite the distributed ares_build.h file with one that is suitable
74*cc02d7e2SAndroid Build Coastguard Worker  * and specific to the library being configured and built, which is generated
75*cc02d7e2SAndroid Build Coastguard Worker  * from the ares_build.h.in template file.
76*cc02d7e2SAndroid Build Coastguard Worker  *
77*cc02d7e2SAndroid Build Coastguard Worker  * If you check out from git on a non-configure platform, you must run the
78*cc02d7e2SAndroid Build Coastguard Worker  * appropriate buildconf* script to set up ares_build.h and other local files.
79*cc02d7e2SAndroid Build Coastguard Worker  *
80*cc02d7e2SAndroid Build Coastguard Worker  */
81*cc02d7e2SAndroid Build Coastguard Worker 
82*cc02d7e2SAndroid Build Coastguard Worker /* ================================================================ */
83*cc02d7e2SAndroid Build Coastguard Worker /*  DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE  */
84*cc02d7e2SAndroid Build Coastguard Worker /* ================================================================ */
85*cc02d7e2SAndroid Build Coastguard Worker 
86*cc02d7e2SAndroid Build Coastguard Worker #ifdef CARES_TYPEOF_ARES_SOCKLEN_T
87*cc02d7e2SAndroid Build Coastguard Worker #  error "CARES_TYPEOF_ARES_SOCKLEN_T shall not be defined except in ares_build.h"
88*cc02d7e2SAndroid Build Coastguard Worker    Error Compilation_aborted_CARES_TYPEOF_ARES_SOCKLEN_T_already_defined
89*cc02d7e2SAndroid Build Coastguard Worker #endif
90*cc02d7e2SAndroid Build Coastguard Worker 
91*cc02d7e2SAndroid Build Coastguard Worker /* ================================================================ */
92*cc02d7e2SAndroid Build Coastguard Worker /*    EXTERNAL INTERFACE SETTINGS FOR NON-CONFIGURE SYSTEMS ONLY    */
93*cc02d7e2SAndroid Build Coastguard Worker /* ================================================================ */
94*cc02d7e2SAndroid Build Coastguard Worker 
95*cc02d7e2SAndroid Build Coastguard Worker #if defined(__DJGPP__) || defined(__GO32__)
96*cc02d7e2SAndroid Build Coastguard Worker #  define CARES_TYPEOF_ARES_SOCKLEN_T int
97*cc02d7e2SAndroid Build Coastguard Worker 
98*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__SALFORDC__)
99*cc02d7e2SAndroid Build Coastguard Worker #  define CARES_TYPEOF_ARES_SOCKLEN_T int
100*cc02d7e2SAndroid Build Coastguard Worker 
101*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__BORLANDC__)
102*cc02d7e2SAndroid Build Coastguard Worker #  define CARES_TYPEOF_ARES_SOCKLEN_T int
103*cc02d7e2SAndroid Build Coastguard Worker 
104*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__TURBOC__)
105*cc02d7e2SAndroid Build Coastguard Worker #  define CARES_TYPEOF_ARES_SOCKLEN_T int
106*cc02d7e2SAndroid Build Coastguard Worker 
107*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__WATCOMC__)
108*cc02d7e2SAndroid Build Coastguard Worker #  define CARES_TYPEOF_ARES_SOCKLEN_T int
109*cc02d7e2SAndroid Build Coastguard Worker 
110*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__POCC__)
111*cc02d7e2SAndroid Build Coastguard Worker #  define CARES_TYPEOF_ARES_SOCKLEN_T int
112*cc02d7e2SAndroid Build Coastguard Worker 
113*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__LCC__)
114*cc02d7e2SAndroid Build Coastguard Worker #  define CARES_TYPEOF_ARES_SOCKLEN_T int
115*cc02d7e2SAndroid Build Coastguard Worker 
116*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__SYMBIAN32__)
117*cc02d7e2SAndroid Build Coastguard Worker #  define CARES_TYPEOF_ARES_SOCKLEN_T unsigned int
118*cc02d7e2SAndroid Build Coastguard Worker 
119*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__MWERKS__)
120*cc02d7e2SAndroid Build Coastguard Worker #  define CARES_TYPEOF_ARES_SOCKLEN_T int
121*cc02d7e2SAndroid Build Coastguard Worker 
122*cc02d7e2SAndroid Build Coastguard Worker #elif defined(_WIN32_WCE)
123*cc02d7e2SAndroid Build Coastguard Worker #  define CARES_TYPEOF_ARES_SOCKLEN_T int
124*cc02d7e2SAndroid Build Coastguard Worker 
125*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__MINGW32__)
126*cc02d7e2SAndroid Build Coastguard Worker #  define CARES_TYPEOF_ARES_SOCKLEN_T int
127*cc02d7e2SAndroid Build Coastguard Worker 
128*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__VMS)
129*cc02d7e2SAndroid Build Coastguard Worker #  define CARES_TYPEOF_ARES_SOCKLEN_T unsigned int
130*cc02d7e2SAndroid Build Coastguard Worker 
131*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__OS400__)
132*cc02d7e2SAndroid Build Coastguard Worker #  if defined(__ILEC400__)
133*cc02d7e2SAndroid Build Coastguard Worker #    define CARES_TYPEOF_ARES_SOCKLEN_T socklen_t
134*cc02d7e2SAndroid Build Coastguard Worker #    define CARES_PULL_SYS_TYPES_H      1
135*cc02d7e2SAndroid Build Coastguard Worker #    define CARES_PULL_SYS_SOCKET_H     1
136*cc02d7e2SAndroid Build Coastguard Worker #  endif
137*cc02d7e2SAndroid Build Coastguard Worker 
138*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__MVS__)
139*cc02d7e2SAndroid Build Coastguard Worker #  if defined(__IBMC__) || defined(__IBMCPP__)
140*cc02d7e2SAndroid Build Coastguard Worker #    define CARES_TYPEOF_ARES_SOCKLEN_T socklen_t
141*cc02d7e2SAndroid Build Coastguard Worker #    define CARES_PULL_SYS_TYPES_H      1
142*cc02d7e2SAndroid Build Coastguard Worker #    define CARES_PULL_SYS_SOCKET_H     1
143*cc02d7e2SAndroid Build Coastguard Worker #  endif
144*cc02d7e2SAndroid Build Coastguard Worker 
145*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__370__)
146*cc02d7e2SAndroid Build Coastguard Worker #  if defined(__IBMC__) || defined(__IBMCPP__)
147*cc02d7e2SAndroid Build Coastguard Worker #    define CARES_TYPEOF_ARES_SOCKLEN_T socklen_t
148*cc02d7e2SAndroid Build Coastguard Worker #    define CARES_PULL_SYS_TYPES_H      1
149*cc02d7e2SAndroid Build Coastguard Worker #    define CARES_PULL_SYS_SOCKET_H     1
150*cc02d7e2SAndroid Build Coastguard Worker #  endif
151*cc02d7e2SAndroid Build Coastguard Worker 
152*cc02d7e2SAndroid Build Coastguard Worker #elif defined(TPF)
153*cc02d7e2SAndroid Build Coastguard Worker #  define CARES_TYPEOF_ARES_SOCKLEN_T int
154*cc02d7e2SAndroid Build Coastguard Worker 
155*cc02d7e2SAndroid Build Coastguard Worker /* ===================================== */
156*cc02d7e2SAndroid Build Coastguard Worker /*    KEEP MSVC THE PENULTIMATE ENTRY    */
157*cc02d7e2SAndroid Build Coastguard Worker /* ===================================== */
158*cc02d7e2SAndroid Build Coastguard Worker 
159*cc02d7e2SAndroid Build Coastguard Worker #elif defined(_MSC_VER)
160*cc02d7e2SAndroid Build Coastguard Worker #  define CARES_TYPEOF_ARES_SOCKLEN_T int
161*cc02d7e2SAndroid Build Coastguard Worker 
162*cc02d7e2SAndroid Build Coastguard Worker /* ===================================== */
163*cc02d7e2SAndroid Build Coastguard Worker /*    KEEP GENERIC GCC THE LAST ENTRY    */
164*cc02d7e2SAndroid Build Coastguard Worker /* ===================================== */
165*cc02d7e2SAndroid Build Coastguard Worker 
166*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__GNUC__)
167*cc02d7e2SAndroid Build Coastguard Worker #  define CARES_TYPEOF_ARES_SOCKLEN_T socklen_t
168*cc02d7e2SAndroid Build Coastguard Worker #  define CARES_PULL_SYS_TYPES_H      1
169*cc02d7e2SAndroid Build Coastguard Worker #  define CARES_PULL_SYS_SOCKET_H     1
170*cc02d7e2SAndroid Build Coastguard Worker 
171*cc02d7e2SAndroid Build Coastguard Worker #else
172*cc02d7e2SAndroid Build Coastguard Worker #  error "Unknown non-configure build target!"
173*cc02d7e2SAndroid Build Coastguard Worker    Error Compilation_aborted_Unknown_non_configure_build_target
174*cc02d7e2SAndroid Build Coastguard Worker #endif
175*cc02d7e2SAndroid Build Coastguard Worker 
176*cc02d7e2SAndroid Build Coastguard Worker /* CARES_PULL_SYS_TYPES_H is defined above when inclusion of header file  */
177*cc02d7e2SAndroid Build Coastguard Worker /* sys/types.h is required here to properly make type definitions below.  */
178*cc02d7e2SAndroid Build Coastguard Worker #ifdef CARES_PULL_SYS_TYPES_H
179*cc02d7e2SAndroid Build Coastguard Worker #  include <sys/types.h>
180*cc02d7e2SAndroid Build Coastguard Worker #endif
181*cc02d7e2SAndroid Build Coastguard Worker 
182*cc02d7e2SAndroid Build Coastguard Worker /* CARES_PULL_SYS_SOCKET_H is defined above when inclusion of header file  */
183*cc02d7e2SAndroid Build Coastguard Worker /* sys/socket.h is required here to properly make type definitions below.  */
184*cc02d7e2SAndroid Build Coastguard Worker #ifdef CARES_PULL_SYS_SOCKET_H
185*cc02d7e2SAndroid Build Coastguard Worker #  include <sys/socket.h>
186*cc02d7e2SAndroid Build Coastguard Worker #endif
187*cc02d7e2SAndroid Build Coastguard Worker 
188*cc02d7e2SAndroid Build Coastguard Worker /* Data type definition of ares_socklen_t. */
189*cc02d7e2SAndroid Build Coastguard Worker 
190*cc02d7e2SAndroid Build Coastguard Worker #ifdef CARES_TYPEOF_ARES_SOCKLEN_T
191*cc02d7e2SAndroid Build Coastguard Worker   typedef CARES_TYPEOF_ARES_SOCKLEN_T ares_socklen_t;
192*cc02d7e2SAndroid Build Coastguard Worker #endif
193*cc02d7e2SAndroid Build Coastguard Worker 
194*cc02d7e2SAndroid Build Coastguard Worker /* Data type definition of ares_ssize_t. */
195*cc02d7e2SAndroid Build Coastguard Worker /* gRPC Manuel edit here!
196*cc02d7e2SAndroid Build Coastguard Worker  * Possibly include <_mingw.h> header to define __int64 type under mingw */
197*cc02d7e2SAndroid Build Coastguard Worker #ifdef _WIN32
198*cc02d7e2SAndroid Build Coastguard Worker #  ifdef _WIN64
199*cc02d7e2SAndroid Build Coastguard Worker #    ifdef __MINGW32__
200*cc02d7e2SAndroid Build Coastguard Worker #      include <_mingw.h>
201*cc02d7e2SAndroid Build Coastguard Worker #    endif
202*cc02d7e2SAndroid Build Coastguard Worker #    define CARES_TYPEOF_ARES_SSIZE_T __int64
203*cc02d7e2SAndroid Build Coastguard Worker #  else
204*cc02d7e2SAndroid Build Coastguard Worker #    define CARES_TYPEOF_ARES_SSIZE_T long
205*cc02d7e2SAndroid Build Coastguard Worker #  endif
206*cc02d7e2SAndroid Build Coastguard Worker #else
207*cc02d7e2SAndroid Build Coastguard Worker #  define CARES_TYPEOF_ARES_SSIZE_T ssize_t
208*cc02d7e2SAndroid Build Coastguard Worker #endif
209*cc02d7e2SAndroid Build Coastguard Worker 
210*cc02d7e2SAndroid Build Coastguard Worker typedef CARES_TYPEOF_ARES_SSIZE_T ares_ssize_t;
211*cc02d7e2SAndroid Build Coastguard Worker 
212*cc02d7e2SAndroid Build Coastguard Worker /* IMPORTANT: gRPC MANUAL EDIT HERE!
213*cc02d7e2SAndroid Build Coastguard Worker  * Undefine UNICODE, as c-ares does not use the ANSI version of functions
214*cc02d7e2SAndroid Build Coastguard Worker  * explicitly. */
215*cc02d7e2SAndroid Build Coastguard Worker #ifdef UNICODE
216*cc02d7e2SAndroid Build Coastguard Worker #  undef UNICODE
217*cc02d7e2SAndroid Build Coastguard Worker #endif
218*cc02d7e2SAndroid Build Coastguard Worker 
219*cc02d7e2SAndroid Build Coastguard Worker #ifdef _UNICODE
220*cc02d7e2SAndroid Build Coastguard Worker #  undef _UNICODE
221*cc02d7e2SAndroid Build Coastguard Worker #endif
222*cc02d7e2SAndroid Build Coastguard Worker 
223*cc02d7e2SAndroid Build Coastguard Worker #endif /* __CARES_BUILD_H */
224