aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernhard Walle <bernhard@bwalle.de>2018-05-27 19:51:04 +0200
committerDaniel Stenberg <daniel@haxx.se>2018-05-31 12:51:15 +0200
commit9c33813d835dde214c1a9449f789dd72ab3d9dc3 (patch)
treecc9f86f1841379c388c988349e0eb52ef3f054e4
parent7179b8393ee5965fcfef2989c042ed25d43cd868 (diff)
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
-rwxr-xr-xconfigure.ac5
-rw-r--r--lib/curl_setup.h7
2 files changed, 12 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index f5f4e7717..9c4e697de 100755
--- a/configure.ac
+++ b/configure.ac
@@ -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 \
diff --git a/lib/curl_setup.h b/lib/curl_setup.h
index 5593a3b5c..9696a07d0 100644
--- a/lib/curl_setup.h
+++ b/lib/curl_setup.h
@@ -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 */