Skip to content

Commit

Permalink
deps: c-ares float, manual ares_ssize_t definition
Browse files Browse the repository at this point in the history
c-ares switched to using ares_ssize_t for platform-independent ssize_t,
our GYP usage to include config/<platform>/ares_config.h causes problems
when including gyp as a library in core, i.e. in env.h and cares_wrap.h,
where the defines don't get pulled in properly. This, so far, is the
easiest approach to just making it work nicely--explicitly defining
ares_ssize_t for the different Windows variants and ssize_t for
non-Windows where we don't have a configured type from an ares_config.h.
In all of our non-Windows platforms it is ssize_t anyway so this is
safe.

PR-URL: nodejs/node#15378
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
  • Loading branch information
rvagg authored and addaleax committed Oct 4, 2017
1 parent 8a3f48b commit fb8bcc3
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions deps/cares/include/ares_build.h
Original file line number Diff line number Diff line change
Expand Up @@ -194,14 +194,16 @@
/* Data type definition of ares_ssize_t. */
#ifdef _WIN32
# ifdef _WIN64
# define CARES_TYPEOF_ARES_SSIZE_T __int64
typedef __int64 ares_ssize_t;
# else
# define CARES_TYPEOF_ARES_SSIZE_T long
typedef long ares_ssize_t;
# endif
#else
# define CARES_TYPEOF_ARES_SSIZE_T ssize_t;
# ifdef CARES_TYPEOF_ARES_SSIZE_T
typedef CARES_TYPEOF_ARES_SSIZE_T ares_ssize_t;
# else
typedef ssize_t ares_ssize_t;
# endif
#endif

typedef CARES_TYPEOF_ARES_SSIZE_T ares_ssize_t;

#endif /* __CARES_BUILD_H */

0 comments on commit fb8bcc3

Please sign in to comment.