summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2016-09-06 15:54:38 -0700
committerBenjamin Peterson <benjamin@python.org>2016-09-06 15:54:38 -0700
commit5afa1c9935766d08fefb1652915f090e602f4f07 (patch)
tree09557d20ef8d268b94e139c532fe2e4e90d47a77 /configure.ac
parent6d29c05389084bc155dd90940ae3e56816930a4b (diff)
parenta6e36dc17b59768ce0308c5e03981ba96a26c469 (diff)
downloadcpython-5afa1c9935766d08fefb1652915f090e602f4f07.tar.gz
merge 3.5
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac258
1 files changed, 148 insertions, 110 deletions
diff --git a/configure.ac b/configure.ac
index fb2ae67b78..786796ad16 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@ dnl * Please run autoreconf to test your changes! *
dnl ***********************************************
# Set VERSION so we only need to edit in one place (i.e., here)
-m4_define(PYTHON_VERSION, 3.5)
+m4_define(PYTHON_VERSION, 3.6)
AC_PREREQ(2.65)
@@ -69,7 +69,7 @@ if test "$cross_compiling" = yes; then
if test -z "$PYTHON_FOR_BUILD"; then
for interp in python$PACKAGE_VERSION python3 python; do
which $interp >/dev/null 2>&1 || continue
- if $interp -c 'import sys;sys.exit(not sys.version_info@<:@:2@:>@ >= (3,3))'; then
+ if $interp -c "import sys;sys.exit(not '.'.join(str(n) for n in sys.version_info@<:@:2@:>@) == '$PACKAGE_VERSION')"; then
break
fi
interp=
@@ -768,7 +768,31 @@ cat >> conftest.c <<EOF
#undef powerpc
#undef sparc
#undef unix
-#if defined(__linux__)
+#if defined(__ANDROID__)
+# if defined(__x86_64__) && defined(__LP64__)
+ x86_64-linux-android
+# elif defined(__i386__)
+ i686-linux-android
+# elif defined(__aarch64__) && defined(__AARCH64EL__)
+# if defined(__ILP32__)
+ aarch64_ilp32-linux-android
+# else
+ aarch64-linux-android
+# endif
+# elif defined(__ARM_EABI__) && defined(__ARMEL__)
+ arm-linux-androideabi
+# elif defined(__mips_hard_float) && defined(_MIPSEL)
+# if _MIPS_SIM == _ABIO32
+ mipsel-linux-android
+# elif _MIPS_SIM == _ABI64
+ mips64el-linux-android
+# else
+# error unknown platform triplet
+# endif
+# else
+# error unknown platform triplet
+# endif
+#elif defined(__linux__)
# if defined(__x86_64__) && defined(__LP64__)
x86_64-linux-gnu
# elif defined(__x86_64__) && defined(__ILP32__)
@@ -882,11 +906,20 @@ if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then
if test x$PLATFORM_TRIPLET != x$MULTIARCH; then
AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report])
fi
+elif test x$PLATFORM_TRIPLET != x && test x$MULTIARCH = x; then
+ MULTIARCH=$PLATFORM_TRIPLET
+fi
+if test x$PLATFORM_TRIPLET = x; then
+ PLATDIR=plat-$MACHDEP
+else
+ PLATDIR=plat-$PLATFORM_TRIPLET
fi
-PLATDIR=plat-$MACHDEP
AC_SUBST(PLATDIR)
AC_SUBST(PLATFORM_TRIPLET)
-
+if test x$MULTIARCH != x; then
+ MULTIARCH_CPPFLAGS="-DMULTIARCH=\\\"$MULTIARCH\\\""
+fi
+AC_SUBST(MULTIARCH_CPPFLAGS)
AC_MSG_CHECKING([for -Wl,--no-as-needed])
save_LDFLAGS="$LDFLAGS"
@@ -903,6 +936,25 @@ AC_SUBST(NO_AS_NEEDED)
# checks for UNIX variants that set C preprocessor variables
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__
+#else
+#error not Android
+#endif
+EOF
+
+if $CPP $CPPFLAGS conftest.c >conftest.out 2>/dev/null; then
+ ANDROID_API_LEVEL=`grep -v '^#' conftest.out | grep -v '^ *$'`
+ AC_MSG_RESULT([$ANDROID_API_LEVEL])
+ AC_DEFINE_UNQUOTED(ANDROID_API_LEVEL, $ANDROID_API_LEVEL, [The Android API level.])
+else
+ AC_MSG_RESULT([not Android])
+fi
+rm -f conftest.c conftest.out
+
# Check for unsupported systems
case $ac_sys_system/$ac_sys_release in
atheos*|Linux*/1*)
@@ -1247,13 +1299,20 @@ fi],
if test "$Py_LTO" = 'true' ; then
case $CC in
*clang*)
- # Any changes made here should be reflected in the GCC+Darwin case below
- LTOFLAGS="-flto"
+ case $ac_sys_system in
+ Darwin*)
+ # Any changes made here should be reflected in the GCC+Darwin case below
+ LTOFLAGS="-flto -Wl,-export_dynamic"
+ ;;
+ *)
+ LTOFLAGS="-flto"
+ ;;
+ esac
;;
*gcc*)
case $ac_sys_system in
Darwin*)
- LTOFLAGS="-flto"
+ LTOFLAGS="-flto -Wl,-export_dynamic"
;;
*)
LTOFLAGS="-flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none"
@@ -1611,7 +1670,7 @@ yes)
# Calculate an appropriate deployment target for this build:
# The deployment target value is used explicitly to enable certain
# features are enabled (such as builtin libedit support for readline)
- # through the use of Apple's Availabiliy Macros and is used as a
+ # through the use of Apple's Availability Macros and is used as a
# component of the string returned by distutils.get_platform().
#
# Use the value from:
@@ -1866,7 +1925,7 @@ AC_HEADER_STDC
AC_CHECK_HEADERS(asm/types.h conio.h direct.h dlfcn.h errno.h \
fcntl.h grp.h \
ieeefp.h io.h langinfo.h libintl.h process.h pthread.h \
-sched.h shadow.h signal.h stdint.h stropts.h termios.h \
+sched.h shadow.h signal.h stropts.h termios.h \
unistd.h utime.h \
poll.h sys/devpoll.h sys/epoll.h sys/poll.h \
sys/audioio.h sys/xattr.h sys/bsdtty.h sys/event.h sys/file.h sys/ioctl.h \
@@ -1973,6 +2032,11 @@ if test "$sol_lfs_bug" = "yes"; then
use_lfs=no
fi
+# Don't use largefile support for GNU/Hurd
+case $ac_sys_system in GNU*)
+ use_lfs=no
+esac
+
if test "$use_lfs" = "yes"; then
# Two defines needed to enable largefile support on various platforms
# These may affect some typedefs
@@ -2003,29 +2067,6 @@ AC_DEFINE_UNQUOTED([RETSIGTYPE],[void],[assume C89 semantics that RETSIGTYPE is
AC_TYPE_SIZE_T
AC_TYPE_UID_T
-# There are two separate checks for each of the exact-width integer types we
-# need. First we check whether the type is available using the usual
-# AC_CHECK_TYPE macro with the default includes (which includes <inttypes.h>
-# and <stdint.h> where available). We then also use the special type checks of
-# the form AC_TYPE_UINT32_T, which in the case that uint32_t is not available
-# directly, #define's uint32_t to be a suitable type.
-
-AC_CHECK_TYPE(uint32_t,
- AC_DEFINE(HAVE_UINT32_T, 1, [Define if your compiler provides uint32_t.]),,)
-AC_TYPE_UINT32_T
-
-AC_CHECK_TYPE(uint64_t,
- AC_DEFINE(HAVE_UINT64_T, 1, [Define if your compiler provides uint64_t.]),,)
-AC_TYPE_UINT64_T
-
-AC_CHECK_TYPE(int32_t,
- AC_DEFINE(HAVE_INT32_T, 1, [Define if your compiler provides int32_t.]),,)
-AC_TYPE_INT32_T
-
-AC_CHECK_TYPE(int64_t,
- AC_DEFINE(HAVE_INT64_T, 1, [Define if your compiler provides int64_t.]),,)
-AC_TYPE_INT64_T
-
AC_CHECK_TYPE(ssize_t,
AC_DEFINE(HAVE_SSIZE_T, 1, [Define if your compiler provides ssize_t]),,)
AC_CHECK_TYPE(__uint128_t,
@@ -2035,6 +2076,7 @@ AC_CHECK_TYPE(__uint128_t,
# ANSI C requires sizeof(char) == 1, so no need to check it
AC_CHECK_SIZEOF(int, 4)
AC_CHECK_SIZEOF(long, 4)
+AC_CHECK_SIZEOF(long long, 8)
AC_CHECK_SIZEOF(void *, 4)
AC_CHECK_SIZEOF(short, 2)
AC_CHECK_SIZEOF(float, 4)
@@ -2042,17 +2084,7 @@ AC_CHECK_SIZEOF(double, 8)
AC_CHECK_SIZEOF(fpos_t, 4)
AC_CHECK_SIZEOF(size_t, 4)
AC_CHECK_SIZEOF(pid_t, 4)
-
-AC_MSG_CHECKING(for long long support)
-have_long_long=no
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[long long x; x = (long long)0;]])],[
- AC_DEFINE(HAVE_LONG_LONG, 1, [Define this if you have the type long long.])
- have_long_long=yes
-],[])
-AC_MSG_RESULT($have_long_long)
-if test "$have_long_long" = yes ; then
-AC_CHECK_SIZEOF(long long, 8)
-fi
+AC_CHECK_SIZEOF(uintptr_t)
AC_MSG_CHECKING(for long double support)
have_long_double=no
@@ -2077,15 +2109,6 @@ if test "$have_c99_bool" = yes ; then
AC_CHECK_SIZEOF(_Bool, 1)
fi
-AC_CHECK_TYPES(uintptr_t,
- [AC_CHECK_SIZEOF(uintptr_t, 4)],
- [], [#ifdef HAVE_STDINT_H
- #include <stdint.h>
- #endif
- #ifdef HAVE_INTTYPES_H
- #include <inttypes.h>
- #endif])
-
AC_CHECK_SIZEOF(off_t, [], [
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
@@ -2093,8 +2116,6 @@ AC_CHECK_SIZEOF(off_t, [], [
])
AC_MSG_CHECKING(whether to enable large file support)
-if test "$have_long_long" = yes
-then
if test "$ac_cv_sizeof_off_t" -gt "$ac_cv_sizeof_long" -a \
"$ac_cv_sizeof_long_long" -ge "$ac_cv_sizeof_off_t"; then
AC_DEFINE(HAVE_LARGEFILE_SUPPORT, 1,
@@ -2106,9 +2127,6 @@ if test "$ac_cv_sizeof_off_t" -gt "$ac_cv_sizeof_long" -a \
else
AC_MSG_RESULT(no)
fi
-else
- AC_MSG_RESULT(no)
-fi
AC_CHECK_SIZEOF(time_t, [], [
#ifdef HAVE_SYS_TYPES_H
@@ -3755,6 +3773,10 @@ AC_CHECK_MEMBERS([struct stat.st_flags])
AC_CHECK_MEMBERS([struct stat.st_gen])
AC_CHECK_MEMBERS([struct stat.st_birthtime])
AC_CHECK_MEMBERS([struct stat.st_blocks])
+AC_CHECK_MEMBERS([struct passwd.pw_gecos, struct passwd.pw_passwd], [], [], [[
+ #include <sys/types.h>
+ #include <pwd.h>
+]])
AC_MSG_CHECKING(for time.h that defines altzone)
AC_CACHE_VAL(ac_cv_header_time_altzone,[
@@ -3803,6 +3825,19 @@ if test $ac_cv_struct_sockaddr_storage = yes; then
AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, [struct sockaddr_storage (sys/socket.h)])
fi
+AC_MSG_CHECKING(for sockaddr_alg)
+AC_CACHE_VAL(ac_cv_struct_sockaddr_alg,
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+# include <sys/types.h>
+# include <sys/socket.h>
+# include <linux/if_alg.h>]], [[struct sockaddr_alg s]])],
+ [ac_cv_struct_sockaddr_alg=yes],
+ [ac_cv_struct_sockaddr_alg=no]))
+AC_MSG_RESULT($ac_cv_struct_sockaddr_alg)
+if test $ac_cv_struct_sockaddr_alg = yes; then
+ AC_DEFINE(HAVE_SOCKADDR_ALG, 1, [struct sockaddr_alg (linux/if_alg.h)])
+fi
+
# checks for compiler characteristics
AC_C_CHAR_UNSIGNED
@@ -4331,6 +4366,8 @@ then
[define to 1 if your sem_getvalue is broken.])
fi
+AC_CHECK_DECLS([RTLD_LAZY, RTLD_NOW, RTLD_GLOBAL, RTLD_LOCAL, RTLD_NODELETE, RTLD_NOLOAD, RTLD_DEEPBIND], [], [], [[#include <dlfcn.h>]])
+
# determine what size digit to use for Python's longs
AC_MSG_CHECKING([digit size for Python's longs])
AC_ARG_ENABLE(big-digits,
@@ -4449,7 +4486,11 @@ AC_MSG_RESULT($LDVERSION)
dnl define LIBPL after ABIFLAGS and LDVERSION is defined.
AC_SUBST(PY_ENABLE_SHARED)
-LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}"
+if test x$PLATFORM_TRIPLET = x; then
+ LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}"
+else
+ LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}"
+fi
AC_SUBST(LIBPL)
# Check whether right shifting a negative integer extends the sign bit
@@ -4847,63 +4888,60 @@ if test "x$ac_cv_file__dev_ptc" = xyes; then
[Define to 1 if you have the /dev/ptc device file.])
fi
-if test "$have_long_long" = yes
-then
- AC_MSG_CHECKING(for %lld and %llu printf() format support)
- AC_CACHE_VAL(ac_cv_have_long_long_format,
- AC_RUN_IFELSE([AC_LANG_SOURCE([[[
- #include <stdio.h>
- #include <stddef.h>
- #include <string.h>
+AC_MSG_CHECKING(for %lld and %llu printf() format support)
+AC_CACHE_VAL(ac_cv_have_long_long_format,
+AC_RUN_IFELSE([AC_LANG_SOURCE([[[
+#include <stdio.h>
+#include <stddef.h>
+#include <string.h>
- #ifdef HAVE_SYS_TYPES_H
- #include <sys/types.h>
- #endif
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
- int main()
- {
- char buffer[256];
+int main()
+{
+char buffer[256];
- if (sprintf(buffer, "%lld", (long long)123) < 0)
- return 1;
- if (strcmp(buffer, "123"))
- return 1;
+if (sprintf(buffer, "%lld", (long long)123) < 0)
+return 1;
+if (strcmp(buffer, "123"))
+return 1;
- if (sprintf(buffer, "%lld", (long long)-123) < 0)
- return 1;
- if (strcmp(buffer, "-123"))
- return 1;
+if (sprintf(buffer, "%lld", (long long)-123) < 0)
+return 1;
+if (strcmp(buffer, "-123"))
+return 1;
- if (sprintf(buffer, "%llu", (unsigned long long)123) < 0)
- return 1;
- if (strcmp(buffer, "123"))
- return 1;
+if (sprintf(buffer, "%llu", (unsigned long long)123) < 0)
+return 1;
+if (strcmp(buffer, "123"))
+return 1;
- return 0;
- }
- ]]])],
- [ac_cv_have_long_long_format=yes],
- [ac_cv_have_long_long_format=no],
- [ac_cv_have_long_long_format="cross -- assuming no"
- if test x$GCC = xyes; then
- save_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS -Werror -Wformat"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
- #include <stdio.h>
- #include <stddef.h>
- ]], [[
- char *buffer;
- sprintf(buffer, "%lld", (long long)123);
- sprintf(buffer, "%lld", (long long)-123);
- sprintf(buffer, "%llu", (unsigned long long)123);
- ]])],
- ac_cv_have_long_long_format=yes
- )
- CFLAGS=$save_CFLAGS
- fi])
- )
- AC_MSG_RESULT($ac_cv_have_long_long_format)
-fi
+return 0;
+}
+]]])],
+[ac_cv_have_long_long_format=yes],
+[ac_cv_have_long_long_format=no],
+[ac_cv_have_long_long_format="cross -- assuming no"
+if test x$GCC = xyes; then
+save_CFLAGS=$CFLAGS
+CFLAGS="$CFLAGS -Werror -Wformat"
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <stdio.h>
+#include <stddef.h>
+]], [[
+char *buffer;
+sprintf(buffer, "%lld", (long long)123);
+sprintf(buffer, "%lld", (long long)-123);
+sprintf(buffer, "%llu", (unsigned long long)123);
+]])],
+ac_cv_have_long_long_format=yes
+)
+CFLAGS=$save_CFLAGS
+fi])
+)
+AC_MSG_RESULT($ac_cv_have_long_long_format)
if test "$ac_cv_have_long_long_format" = yes
then