build: replace configure check with PP condition (Android <21)

To make it build again with CMake + Android 20 and earlier.

8e34505776 synced `getpwuid_r()` detection
in cmake with autotools. It means cmake started detecting it with
Android <21 just like autotools, and thus cmake builds also need to
tackle the missing declaration with old Android SDK versions. Use a PP
solution, allowing to drop the autotools-specific on used before this
patch.

Follow-up to 8e34505776 #15164
Follow-up to 9c33813d83 #2609
Ref: #2058
Closes #15871
This commit is contained in:
Viktor Szakats 2024-12-31 02:22:42 +01:00
parent 280ff5ca03
commit 0f1b23e960
No known key found for this signature in database
GPG Key ID: B5ABD165E2AEF201
3 changed files with 2 additions and 8 deletions

View File

@ -41,9 +41,6 @@ my %remove = (
'#define GETHOSTNAME_TYPE_ARG2 size_t' => 1,
'#define HAVE_BROTLI 1' => 1,
'#define HAVE_BROTLI_DECODE_H 1' => 1,
'#define HAVE_DECL_GETPWUID_R 0' => 1,
'#define HAVE_DECL_GETPWUID_R 1' => 1,
'#define HAVE_DECL_GETPWUID_R_MISSING 1' => 1,
'#define HAVE_DLFCN_H 1' => 1,
'#define HAVE_GSSAPI_GSSAPI_KRB5_H 1' => 1,
'#define HAVE_INTTYPES_H 1' => 1,

View File

@ -4040,10 +4040,6 @@ 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([\
eventfd \
fnmatch \

View File

@ -927,7 +927,8 @@ endings either CRLF or LF so 't' is appropriate.
#define STRCONST(x) x,sizeof(x)-1
/* Some versions of the Android SDK is missing the declaration */
#if defined(HAVE_GETPWUID_R) && defined(HAVE_DECL_GETPWUID_R_MISSING)
#if defined(HAVE_GETPWUID_R) && \
defined(__ANDROID_API__) && (__ANDROID_API__ < 21)
struct passwd;
int getpwuid_r(uid_t uid, struct passwd *pwd, char *buf,
size_t buflen, struct passwd **result);