]> granicus.if.org Git - python/commitdiff
bpo-29040: Support building Android with Unified Headers (GH-4492)
authorxdegaye <xdegaye@gmail.com>
Thu, 23 Nov 2017 10:44:38 +0000 (11:44 +0100)
committerGitHub <noreply@github.com>
Thu, 23 Nov 2017 10:44:38 +0000 (11:44 +0100)
Include/pyport.h
Misc/NEWS.d/next/Build/2017-11-21-16-56-24.bpo-29040.14lCSr.rst [new file with mode: 0644]
configure
configure.ac

index 0e82543ac783551456849d45946b9f002c44bd4f..f2e247a374e063c5519e90c60664ebb8c792e797 100644 (file)
@@ -784,7 +784,9 @@ extern _invalid_parameter_handler _Py_silent_invalid_parameter_handler;
 #endif /* Py_BUILD_CORE */
 
 #ifdef __ANDROID__
-#include <android/api-level.h>
+/* The Android langinfo.h header is not used. */
+#undef HAVE_LANGINFO_H
+#undef CODESET
 #endif
 
 /* Maximum value of the Windows DWORD type */
diff --git a/Misc/NEWS.d/next/Build/2017-11-21-16-56-24.bpo-29040.14lCSr.rst b/Misc/NEWS.d/next/Build/2017-11-21-16-56-24.bpo-29040.14lCSr.rst
new file mode 100644 (file)
index 0000000..60f05db
--- /dev/null
@@ -0,0 +1,2 @@
+Support building Android with Unified Headers. The first NDK release to
+support Unified Headers is android-ndk-r14.
index ab33115d56398dfd5c9b1f287ab450b98f48d350..969e1d51c6efe6e6d52fb32a63e3561bf65b4b84 100755 (executable)
--- a/configure
+++ b/configure
@@ -5611,7 +5611,6 @@ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
 $as_echo_n "checking for the Android API level... " >&6; }
 cat >> conftest.c <<EOF
 #ifdef __ANDROID__
-#include <android/api-level.h>
 android_api = __ANDROID_API__
 arm_arch = __ARM_ARCH
 #else
@@ -5624,6 +5623,10 @@ if $CPP $CPPFLAGS conftest.c >conftest.out 2>/dev/null; then
   _arm_arch=`sed -n -e '/__ARM_ARCH/d' -e 's/^arm_arch = //p' conftest.out`
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ANDROID_API_LEVEL" >&5
 $as_echo "$ANDROID_API_LEVEL" >&6; }
+  if test -z "$ANDROID_API_LEVEL"; then
+    echo 'Fatal: you must define __ANDROID_API__'
+    exit 1
+  fi
 
 cat >>confdefs.h <<_ACEOF
 #define ANDROID_API_LEVEL $ANDROID_API_LEVEL
index 501f07892f8575f2d5c015b70534d7b674d99d3d..6a69f789fe1774a9ca24fc1440fe1dbeb6548cd0 100644 (file)
@@ -885,7 +885,6 @@ AC_USE_SYSTEM_EXTENSIONS
 AC_MSG_CHECKING([for the Android API level])
 cat >> conftest.c <<EOF
 #ifdef __ANDROID__
-#include <android/api-level.h>
 android_api = __ANDROID_API__
 arm_arch = __ARM_ARCH
 #else
@@ -897,6 +896,10 @@ if $CPP $CPPFLAGS conftest.c >conftest.out 2>/dev/null; then
   ANDROID_API_LEVEL=`sed -n -e '/__ANDROID_API__/d' -e 's/^android_api = //p' conftest.out`
   _arm_arch=`sed -n -e '/__ARM_ARCH/d' -e 's/^arm_arch = //p' conftest.out`
   AC_MSG_RESULT([$ANDROID_API_LEVEL])
+  if test -z "$ANDROID_API_LEVEL"; then
+    echo 'Fatal: you must define __ANDROID_API__'
+    exit 1
+  fi
   AC_DEFINE_UNQUOTED(ANDROID_API_LEVEL, $ANDROID_API_LEVEL, [The Android API level.])
 
   AC_MSG_CHECKING([for the Android arm ABI])