configure: check for declaration of getpwuid_r

On our x86 Android toolchain, getpwuid_r is implemented but the header
is missing:

 netrc.c:81:7: error: implicit declaration of function 'getpwuid_r' [-Werror=implicit-function-declaration]

Unfortunately, the function is used in curl_ntlm_wb.c, too, so I moved
the prototype to curl_setup.h.

Signed-off-by: Bernhard Walle <bernhard@bwalle.de>
Closes #2609
This commit is contained in:
Bernhard Walle 2018-05-27 19:51:04 +02:00 committed by Daniel Stenberg
parent 7179b8393e
commit 9c33813d83
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
2 changed files with 12 additions and 0 deletions

View File

@ -3618,6 +3618,11 @@ case $host in
;;
esac
AC_CHECK_DECLS([getpwuid_r], [], [AC_DEFINE(HAVE_DECL_GETPWUID_R_MISSING, 1, "Set if getpwuid_r() declaration is missing")],
[[#include <pwd.h>
#include <sys/types.h>]])
AC_CHECK_FUNCS([geteuid \
getpass_r \
getppid \

View File

@ -800,4 +800,11 @@ endings either CRLF or LF so 't' is appropriate.
#define CURL_SA_FAMILY_T unsigned short
#endif
/* Some versions of the Android SDK is missing the declaration */
#if defined(HAVE_GETPWUID_R) && defined(HAVE_DECL_GETPWUID_R_MISSING)
struct passwd;
int getpwuid_r(uid_t uid, struct passwd *pwd, char *buf,
size_t buflen, struct passwd **result);
#endif
#endif /* HEADER_CURL_SETUP_H */