Temporary fixes for the Android build
* configure.ac: * src/conf_post.h [__ANDROID__]: Define substitutes for functions used by Gnulib that are occasionally absent.
This commit is contained in:
parent
748521ba34
commit
0e44ab5f06
2 changed files with 52 additions and 0 deletions
19
configure.ac
19
configure.ac
|
@ -2710,6 +2710,25 @@ for Android, but all API calls need to be stubbed out])
|
|||
|
||||
# Check for some functions not always present in the NDK.
|
||||
AC_CHECK_DECLS([android_get_device_api_level])
|
||||
AC_CHECK_DECLS([endutent, sysinfo], [], [],
|
||||
[[
|
||||
#include <sys/sysinfo.h>
|
||||
#include <utmp.h>
|
||||
]])
|
||||
|
||||
# Establish if BOOT_TIME is defined in utmp.h.
|
||||
AC_CACHE_CHECK([if utmp.h defines BOOT_TIME],
|
||||
[emacs_cv_utmp_h_defines_boot_time],
|
||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
#include <utmp.h>
|
||||
#ifndef BOOT_TIME
|
||||
BOOT_TIME not defined
|
||||
#endif /* BOOT_TIME */
|
||||
]], [[]])], [emacs_cv_utmp_h_defines_boot_time=yes],
|
||||
[emacs_cv_utmp_h_defines_boot_time=no])])
|
||||
AS_IF([test x"$emacs_cv_utmp_h_defines_boot_time" = xyes],
|
||||
[AC_DEFINE([UTMP_H_DEFINES_BOOT_TIME], [1],
|
||||
[Define to 1 if building for Android and utmp.h declares BOOT_TIME])])
|
||||
|
||||
# Say this build is really for Android.
|
||||
REALLY_ANDROID=yes])])
|
||||
|
|
|
@ -471,3 +471,36 @@ extern int emacs_setenv_TZ (char const *);
|
|||
#undef MB_CUR_MAX
|
||||
#define MB_CUR_MAX REPLACEMENT_MB_CUR_MAX
|
||||
#endif /* REPLACEMENT_MB_CUR_MAX */
|
||||
|
||||
#ifdef __ANDROID__
|
||||
|
||||
/* The Android NDK r10b omits the function `endutent' that is actually
|
||||
defined in the C library and used by Gnulib. Define a prototype
|
||||
for it here. */
|
||||
|
||||
#ifndef HAVE_DECL_ENDUTENT
|
||||
extern void endutent (void);
|
||||
#endif /* HAVE_DECL_ENDUTENT */
|
||||
|
||||
/* Now define substitutes for BOOT_TIME if necessary. */
|
||||
|
||||
#ifndef UTMP_H_DEFINES_BOOT_TIME
|
||||
#include <utmp.h>
|
||||
|
||||
#define BOOT_TIME 2
|
||||
#endif /* UTMP_H_DEFINES_BOOT_TIME */
|
||||
|
||||
/* sysinfo is also absent from some versions of the NDK, yet is
|
||||
present on API level 9 and above. */
|
||||
|
||||
#ifndef HAVE_DECL_SYSINFO
|
||||
#include <sys/sysinfo.h>
|
||||
|
||||
#if __ANDROID_API__ >= 9
|
||||
extern int sysinfo (struct sysinfo *info);
|
||||
#else /* __ANDROID_API__ < 8 */
|
||||
/* Gnulib uses this function unconditionally. */
|
||||
#define sysinfo(ignored) ((void) ignored, (errno = ENOSYS), -1)
|
||||
#endif /* HAVE_DECL_SYSINFO */
|
||||
|
||||
#endif /* __ANDROID__ */
|
||||
|
|
Loading…
Add table
Reference in a new issue