mirror of https://github.com/python/cpython
- Issue #22980: Under Linux, GNU/KFreeBSD and the Hurd, C extensions now include
the architecture triplet in the extension name, to make it easy to test builds for different ABIs in the same working tree.
This commit is contained in:
parent
7a80389ce5
commit
d3899c1a96
|
@ -390,10 +390,19 @@ class TestSysConfig(unittest.TestCase):
|
|||
self.assertEqual(vars['SO'], vars['EXT_SUFFIX'])
|
||||
|
||||
@unittest.skipUnless(sys.platform == 'linux', 'Linux-specific test')
|
||||
def test_bitness_in_ext_suffix(self):
|
||||
def test_triplet_in_ext_suffix(self):
|
||||
import ctypes, platform, re
|
||||
machine = platform.machine()
|
||||
suffix = sysconfig.get_config_var('EXT_SUFFIX')
|
||||
bitness = '-32b' if sys.maxsize < 2**32 else '-64b'
|
||||
self.assertTrue(suffix.endswith(bitness + '.so'), suffix)
|
||||
if re.match('(aarch64|arm|mips|ppc|powerpc|s390|sparc)', machine):
|
||||
self.assertTrue('linux' in suffix, suffix)
|
||||
if re.match('(i[3-6]86|x86_64)$', 'x86_64'):
|
||||
if ctypes.sizeof(ctypes.c_char_p()) == 4:
|
||||
self.assertTrue(suffix.endswith('i386-linux-gnu.so') \
|
||||
or suffix.endswith('x86_64-linux-gnux32.so'),
|
||||
suffix)
|
||||
else: # 8 byte pointer size
|
||||
self.assertTrue(suffix.endswith('x86_64-linux-gnu.so'), suffix)
|
||||
|
||||
|
||||
class MakefileTests(unittest.TestCase):
|
||||
|
|
|
@ -10,6 +10,10 @@ Release date: XXX
|
|||
Core and Builtins
|
||||
-----------------
|
||||
|
||||
- Issue #22980: Under Linux, GNU/KFreeBSD and the Hurd, C extensions now include
|
||||
the architecture triplet in the extension name, to make it easy to test builds
|
||||
for different ABIs in the same working tree.
|
||||
|
||||
- Issue #22631: Added Linux-specific socket constant CAN_RAW_FD_FRAMES.
|
||||
Patch courtesy of Joe Jevnik.
|
||||
|
||||
|
@ -382,10 +386,6 @@ Release date: 2015-03-09
|
|||
Core and Builtins
|
||||
-----------------
|
||||
|
||||
- Issue #22980: Under Linux, C extensions now include bitness in the file
|
||||
name, to make it easy to test 32-bit and 64-bit builds in the same
|
||||
working tree.
|
||||
|
||||
- Issue #23571: PyObject_Call() and PyCFunction_Call() now raise a SystemError
|
||||
if a function returns a result and raises an exception. The SystemError is
|
||||
chained to the previous exception.
|
||||
|
|
|
@ -694,15 +694,16 @@ BLDLIBRARY
|
|||
DLLLIBRARY
|
||||
LDLIBRARY
|
||||
LIBRARY
|
||||
MULTIARCH
|
||||
BUILDEXEEXT
|
||||
EGREP
|
||||
GREP
|
||||
CPP
|
||||
NO_AS_NEEDED
|
||||
PLATFORM_TRIPLET
|
||||
MULTIARCH
|
||||
ac_ct_CXX
|
||||
MAINCC
|
||||
CXX
|
||||
GREP
|
||||
CPP
|
||||
OBJEXT
|
||||
EXEEXT
|
||||
ac_ct_CC
|
||||
|
@ -1648,6 +1649,43 @@ fi
|
|||
|
||||
} # ac_fn_c_try_compile
|
||||
|
||||
# ac_fn_c_try_cpp LINENO
|
||||
# ----------------------
|
||||
# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
|
||||
ac_fn_c_try_cpp ()
|
||||
{
|
||||
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||||
if { { ac_try="$ac_cpp conftest.$ac_ext"
|
||||
case "(($ac_try" in
|
||||
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||
*) ac_try_echo=$ac_try;;
|
||||
esac
|
||||
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
|
||||
$as_echo "$ac_try_echo"; } >&5
|
||||
(eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
|
||||
ac_status=$?
|
||||
if test -s conftest.err; then
|
||||
grep -v '^ *+' conftest.err >conftest.er1
|
||||
cat conftest.er1 >&5
|
||||
mv -f conftest.er1 conftest.err
|
||||
fi
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||
test $ac_status = 0; } > conftest.i && {
|
||||
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
|
||||
test ! -s conftest.err
|
||||
}; then :
|
||||
ac_retval=0
|
||||
else
|
||||
$as_echo "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
ac_retval=1
|
||||
fi
|
||||
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
|
||||
as_fn_set_status $ac_retval
|
||||
|
||||
} # ac_fn_c_try_cpp
|
||||
|
||||
# ac_fn_c_try_link LINENO
|
||||
# -----------------------
|
||||
# Try to link conftest.$ac_ext, and return whether this succeeded.
|
||||
|
@ -1694,43 +1732,6 @@ fi
|
|||
|
||||
} # ac_fn_c_try_link
|
||||
|
||||
# ac_fn_c_try_cpp LINENO
|
||||
# ----------------------
|
||||
# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
|
||||
ac_fn_c_try_cpp ()
|
||||
{
|
||||
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||||
if { { ac_try="$ac_cpp conftest.$ac_ext"
|
||||
case "(($ac_try" in
|
||||
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||
*) ac_try_echo=$ac_try;;
|
||||
esac
|
||||
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
|
||||
$as_echo "$ac_try_echo"; } >&5
|
||||
(eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
|
||||
ac_status=$?
|
||||
if test -s conftest.err; then
|
||||
grep -v '^ *+' conftest.err >conftest.er1
|
||||
cat conftest.er1 >&5
|
||||
mv -f conftest.er1 conftest.err
|
||||
fi
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||
test $ac_status = 0; } > conftest.i && {
|
||||
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
|
||||
test ! -s conftest.err
|
||||
}; then :
|
||||
ac_retval=0
|
||||
else
|
||||
$as_echo "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
ac_retval=1
|
||||
fi
|
||||
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
|
||||
as_fn_set_status $ac_retval
|
||||
|
||||
} # ac_fn_c_try_cpp
|
||||
|
||||
# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
|
||||
# -------------------------------------------------------
|
||||
# Tests whether HEADER exists, giving a warning if it cannot be compiled using
|
||||
|
@ -4407,6 +4408,206 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
|||
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
|
||||
ac_ext=c
|
||||
ac_cpp='$CPP $CPPFLAGS'
|
||||
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
|
||||
$as_echo_n "checking how to run the C preprocessor... " >&6; }
|
||||
# On Suns, sometimes $CPP names a directory.
|
||||
if test -n "$CPP" && test -d "$CPP"; then
|
||||
CPP=
|
||||
fi
|
||||
if test -z "$CPP"; then
|
||||
if ${ac_cv_prog_CPP+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
# Double quotes because CPP needs to be expanded
|
||||
for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
|
||||
do
|
||||
ac_preproc_ok=false
|
||||
for ac_c_preproc_warn_flag in '' yes
|
||||
do
|
||||
# Use a header file that comes with gcc, so configuring glibc
|
||||
# with a fresh cross-compiler works.
|
||||
# Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
|
||||
# <limits.h> exists even on freestanding compilers.
|
||||
# On the NeXT, cc -E runs the code through the compiler's parser,
|
||||
# not just through cpp. "Syntax error" is here to catch this case.
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#ifdef __STDC__
|
||||
# include <limits.h>
|
||||
#else
|
||||
# include <assert.h>
|
||||
#endif
|
||||
Syntax error
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"; then :
|
||||
|
||||
else
|
||||
# Broken: fails on valid input.
|
||||
continue
|
||||
fi
|
||||
rm -f conftest.err conftest.i conftest.$ac_ext
|
||||
|
||||
# OK, works on sane cases. Now check whether nonexistent headers
|
||||
# can be detected and how.
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <ac_nonexistent.h>
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"; then :
|
||||
# Broken: success on invalid input.
|
||||
continue
|
||||
else
|
||||
# Passes both tests.
|
||||
ac_preproc_ok=:
|
||||
break
|
||||
fi
|
||||
rm -f conftest.err conftest.i conftest.$ac_ext
|
||||
|
||||
done
|
||||
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
|
||||
rm -f conftest.i conftest.err conftest.$ac_ext
|
||||
if $ac_preproc_ok; then :
|
||||
break
|
||||
fi
|
||||
|
||||
done
|
||||
ac_cv_prog_CPP=$CPP
|
||||
|
||||
fi
|
||||
CPP=$ac_cv_prog_CPP
|
||||
else
|
||||
ac_cv_prog_CPP=$CPP
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
|
||||
$as_echo "$CPP" >&6; }
|
||||
ac_preproc_ok=false
|
||||
for ac_c_preproc_warn_flag in '' yes
|
||||
do
|
||||
# Use a header file that comes with gcc, so configuring glibc
|
||||
# with a fresh cross-compiler works.
|
||||
# Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
|
||||
# <limits.h> exists even on freestanding compilers.
|
||||
# On the NeXT, cc -E runs the code through the compiler's parser,
|
||||
# not just through cpp. "Syntax error" is here to catch this case.
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#ifdef __STDC__
|
||||
# include <limits.h>
|
||||
#else
|
||||
# include <assert.h>
|
||||
#endif
|
||||
Syntax error
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"; then :
|
||||
|
||||
else
|
||||
# Broken: fails on valid input.
|
||||
continue
|
||||
fi
|
||||
rm -f conftest.err conftest.i conftest.$ac_ext
|
||||
|
||||
# OK, works on sane cases. Now check whether nonexistent headers
|
||||
# can be detected and how.
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <ac_nonexistent.h>
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"; then :
|
||||
# Broken: success on invalid input.
|
||||
continue
|
||||
else
|
||||
# Passes both tests.
|
||||
ac_preproc_ok=:
|
||||
break
|
||||
fi
|
||||
rm -f conftest.err conftest.i conftest.$ac_ext
|
||||
|
||||
done
|
||||
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
|
||||
rm -f conftest.i conftest.err conftest.$ac_ext
|
||||
if $ac_preproc_ok; then :
|
||||
|
||||
else
|
||||
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||
as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
|
||||
See \`config.log' for more details" "$LINENO" 5; }
|
||||
fi
|
||||
|
||||
ac_ext=c
|
||||
ac_cpp='$CPP $CPPFLAGS'
|
||||
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
|
||||
$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
|
||||
if ${ac_cv_path_GREP+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
if test -z "$GREP"; then
|
||||
ac_path_GREP_found=false
|
||||
# Loop through the user's path and test for each of PROGNAME-LIST
|
||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
for ac_prog in grep ggrep; do
|
||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
|
||||
as_fn_executable_p "$ac_path_GREP" || continue
|
||||
# Check for GNU ac_path_GREP and select it if it is found.
|
||||
# Check for GNU $ac_path_GREP
|
||||
case `"$ac_path_GREP" --version 2>&1` in
|
||||
*GNU*)
|
||||
ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
|
||||
*)
|
||||
ac_count=0
|
||||
$as_echo_n 0123456789 >"conftest.in"
|
||||
while :
|
||||
do
|
||||
cat "conftest.in" "conftest.in" >"conftest.tmp"
|
||||
mv "conftest.tmp" "conftest.in"
|
||||
cp "conftest.in" "conftest.nl"
|
||||
$as_echo 'GREP' >> "conftest.nl"
|
||||
"$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
|
||||
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
|
||||
as_fn_arith $ac_count + 1 && ac_count=$as_val
|
||||
if test $ac_count -gt ${ac_path_GREP_max-0}; then
|
||||
# Best one so far, save it but keep looking for a better one
|
||||
ac_cv_path_GREP="$ac_path_GREP"
|
||||
ac_path_GREP_max=$ac_count
|
||||
fi
|
||||
# 10*(2^10) chars as input seems more than enough
|
||||
test $ac_count -gt 10 && break
|
||||
done
|
||||
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
|
||||
esac
|
||||
|
||||
$ac_path_GREP_found && break 3
|
||||
done
|
||||
done
|
||||
done
|
||||
IFS=$as_save_IFS
|
||||
if test -z "$ac_cv_path_GREP"; then
|
||||
as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
|
||||
fi
|
||||
else
|
||||
ac_cv_path_GREP=$GREP
|
||||
fi
|
||||
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
|
||||
$as_echo "$ac_cv_path_GREP" >&6; }
|
||||
GREP="$ac_cv_path_GREP"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -4865,6 +5066,135 @@ $as_echo "$as_me:
|
|||
fi
|
||||
|
||||
|
||||
MULTIARCH=$($CC --print-multiarch 2>/dev/null)
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5
|
||||
$as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; }
|
||||
cat >> conftest.c <<EOF
|
||||
#undef linux
|
||||
#undef i386
|
||||
#undef unix
|
||||
#if defined(__linux__)
|
||||
# if defined(__x86_64__) && defined(__LP64__)
|
||||
x86_64-linux-gnu
|
||||
# elif defined(__x86_64__) && defined(__ILP32__)
|
||||
x86_64-linux-gnux32
|
||||
# elif defined(__i386__)
|
||||
i386-linux-gnu
|
||||
# elif defined(__aarch64__) && defined(__AARCH64EL__)
|
||||
# if defined(__ILP32__)
|
||||
aarch64_ilp32-linux-gnu
|
||||
# else
|
||||
aarch64-linux-gnu
|
||||
# endif
|
||||
# elif defined(__aarch64__) && defined(__AARCH64EB__)
|
||||
# if defined(__ILP32__)
|
||||
aarch64_be_ilp32-linux-gnu
|
||||
# else
|
||||
aarch64_be-linux-gnu
|
||||
# endif
|
||||
# elif defined(__alpha__)
|
||||
alpha-linux-gnu
|
||||
# elif defined(__ARM_EABI__) && defined(__ARM_PCS_VFP)
|
||||
# if defined(__ARMEL__)
|
||||
arm-linux-gnueabihf
|
||||
# else
|
||||
armeb-linux-gnueabihf
|
||||
# endif
|
||||
# elif defined(__ARM_EABI__) && !defined(__ARM_PCS_VFP)
|
||||
# if defined(__ARMEL__)
|
||||
arm-linux-gnueabi
|
||||
# else
|
||||
armeb-linux-gnueabi
|
||||
# endif
|
||||
# elif defined(__hppa__)
|
||||
hppa-linux-gnu
|
||||
# elif defined(__ia64__)
|
||||
ia64-linux-gnu
|
||||
# elif defined(__m68k__) && !defined(__mcoldfire__)
|
||||
m68k-linux-gnu
|
||||
# elif defined(__mips_hard_float) && defined(_MIPSEL)
|
||||
# if _MIPS_SIM == _ABIO32
|
||||
mipsel-linux-gnu
|
||||
# elif _MIPS_SIM == _ABIN32
|
||||
mips64el-linux-gnuabin32
|
||||
# elif _MIPS_SIM == _ABI64
|
||||
mips64el-linux-gnuabi64
|
||||
# else
|
||||
# error unknown platform triplet
|
||||
# endif
|
||||
# elif defined(__mips_hard_float)
|
||||
# if _MIPS_SIM == _ABIO32
|
||||
mips-linux-gnu
|
||||
# elif _MIPS_SIM == _ABIN32
|
||||
mips64-linux-gnuabin32
|
||||
# elif _MIPS_SIM == _ABI64
|
||||
mips64-linux-gnuabi64
|
||||
# else
|
||||
# error unknown platform triplet
|
||||
# endif
|
||||
# elif defined(__or1k__)
|
||||
or1k-linux-gnu
|
||||
# elif defined(__powerpc__) && defined(__SPE__)
|
||||
powerpc-linux-gnuspe
|
||||
# elif defined(__powerpc64__)
|
||||
# if defined(__LITTLE_ENDIAN__)
|
||||
powerpc64le-linux-gnu
|
||||
# else
|
||||
powerpc64-linux-gnu
|
||||
# endif
|
||||
# elif defined(__powerpc__)
|
||||
powerpc-linux-gnu
|
||||
# elif defined(__s390x__)
|
||||
s390x-linux-gnu
|
||||
# elif defined(__s390__)
|
||||
s390-linux-gnu
|
||||
# elif defined(__sh__) && defined(__LITTLE_ENDIAN__)
|
||||
sh4-linux-gnu
|
||||
# elif defined(__sparc__) && defined(__arch64__)
|
||||
sparc64-linux-gnu
|
||||
# elif defined(__sparc__)
|
||||
sparc-linux-gnu
|
||||
# else
|
||||
# error unknown platform triplet
|
||||
# endif
|
||||
#elif defined(__FreeBSD_kernel__)
|
||||
# if defined(__LP64__)
|
||||
x86_64-kfreebsd-gnu
|
||||
# elif defined(__i386__)
|
||||
i386-kfreebsd-gnu
|
||||
# else
|
||||
# error unknown platform triplet
|
||||
# endif
|
||||
#elif defined(__gnu_hurd__)
|
||||
i386-gnu
|
||||
#else
|
||||
# error unknown platform triplet
|
||||
#endif
|
||||
|
||||
EOF
|
||||
|
||||
if $CPP conftest.c >conftest.out 2>/dev/null; then
|
||||
PLATFORM_TRIPLET=`grep -v '^#' conftest.out | grep -v '^ *$' | tr -d ' '`
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PLATFORM_TRIPLET" >&5
|
||||
$as_echo "$PLATFORM_TRIPLET" >&6; }
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
|
||||
$as_echo "none" >&6; }
|
||||
fi
|
||||
rm -f conftest.c conftest.out
|
||||
|
||||
if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then
|
||||
if test x$PLATFORM_TRIPLET != x$MULTIARCH; then
|
||||
as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5
|
||||
fi
|
||||
fi
|
||||
PLATDIR=plat-$MACHDEP
|
||||
|
||||
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wl,--no-as-needed" >&5
|
||||
$as_echo_n "checking for -Wl,--no-as-needed... " >&6; }
|
||||
save_LDFLAGS="$LDFLAGS"
|
||||
|
@ -4897,206 +5227,6 @@ LDFLAGS="$save_LDFLAGS"
|
|||
|
||||
|
||||
# checks for UNIX variants that set C preprocessor variables
|
||||
ac_ext=c
|
||||
ac_cpp='$CPP $CPPFLAGS'
|
||||
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
|
||||
$as_echo_n "checking how to run the C preprocessor... " >&6; }
|
||||
# On Suns, sometimes $CPP names a directory.
|
||||
if test -n "$CPP" && test -d "$CPP"; then
|
||||
CPP=
|
||||
fi
|
||||
if test -z "$CPP"; then
|
||||
if ${ac_cv_prog_CPP+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
# Double quotes because CPP needs to be expanded
|
||||
for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
|
||||
do
|
||||
ac_preproc_ok=false
|
||||
for ac_c_preproc_warn_flag in '' yes
|
||||
do
|
||||
# Use a header file that comes with gcc, so configuring glibc
|
||||
# with a fresh cross-compiler works.
|
||||
# Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
|
||||
# <limits.h> exists even on freestanding compilers.
|
||||
# On the NeXT, cc -E runs the code through the compiler's parser,
|
||||
# not just through cpp. "Syntax error" is here to catch this case.
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#ifdef __STDC__
|
||||
# include <limits.h>
|
||||
#else
|
||||
# include <assert.h>
|
||||
#endif
|
||||
Syntax error
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"; then :
|
||||
|
||||
else
|
||||
# Broken: fails on valid input.
|
||||
continue
|
||||
fi
|
||||
rm -f conftest.err conftest.i conftest.$ac_ext
|
||||
|
||||
# OK, works on sane cases. Now check whether nonexistent headers
|
||||
# can be detected and how.
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <ac_nonexistent.h>
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"; then :
|
||||
# Broken: success on invalid input.
|
||||
continue
|
||||
else
|
||||
# Passes both tests.
|
||||
ac_preproc_ok=:
|
||||
break
|
||||
fi
|
||||
rm -f conftest.err conftest.i conftest.$ac_ext
|
||||
|
||||
done
|
||||
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
|
||||
rm -f conftest.i conftest.err conftest.$ac_ext
|
||||
if $ac_preproc_ok; then :
|
||||
break
|
||||
fi
|
||||
|
||||
done
|
||||
ac_cv_prog_CPP=$CPP
|
||||
|
||||
fi
|
||||
CPP=$ac_cv_prog_CPP
|
||||
else
|
||||
ac_cv_prog_CPP=$CPP
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
|
||||
$as_echo "$CPP" >&6; }
|
||||
ac_preproc_ok=false
|
||||
for ac_c_preproc_warn_flag in '' yes
|
||||
do
|
||||
# Use a header file that comes with gcc, so configuring glibc
|
||||
# with a fresh cross-compiler works.
|
||||
# Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
|
||||
# <limits.h> exists even on freestanding compilers.
|
||||
# On the NeXT, cc -E runs the code through the compiler's parser,
|
||||
# not just through cpp. "Syntax error" is here to catch this case.
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#ifdef __STDC__
|
||||
# include <limits.h>
|
||||
#else
|
||||
# include <assert.h>
|
||||
#endif
|
||||
Syntax error
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"; then :
|
||||
|
||||
else
|
||||
# Broken: fails on valid input.
|
||||
continue
|
||||
fi
|
||||
rm -f conftest.err conftest.i conftest.$ac_ext
|
||||
|
||||
# OK, works on sane cases. Now check whether nonexistent headers
|
||||
# can be detected and how.
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <ac_nonexistent.h>
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"; then :
|
||||
# Broken: success on invalid input.
|
||||
continue
|
||||
else
|
||||
# Passes both tests.
|
||||
ac_preproc_ok=:
|
||||
break
|
||||
fi
|
||||
rm -f conftest.err conftest.i conftest.$ac_ext
|
||||
|
||||
done
|
||||
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
|
||||
rm -f conftest.i conftest.err conftest.$ac_ext
|
||||
if $ac_preproc_ok; then :
|
||||
|
||||
else
|
||||
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||
as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
|
||||
See \`config.log' for more details" "$LINENO" 5; }
|
||||
fi
|
||||
|
||||
ac_ext=c
|
||||
ac_cpp='$CPP $CPPFLAGS'
|
||||
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
|
||||
$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
|
||||
if ${ac_cv_path_GREP+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
if test -z "$GREP"; then
|
||||
ac_path_GREP_found=false
|
||||
# Loop through the user's path and test for each of PROGNAME-LIST
|
||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
for ac_prog in grep ggrep; do
|
||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
|
||||
as_fn_executable_p "$ac_path_GREP" || continue
|
||||
# Check for GNU ac_path_GREP and select it if it is found.
|
||||
# Check for GNU $ac_path_GREP
|
||||
case `"$ac_path_GREP" --version 2>&1` in
|
||||
*GNU*)
|
||||
ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
|
||||
*)
|
||||
ac_count=0
|
||||
$as_echo_n 0123456789 >"conftest.in"
|
||||
while :
|
||||
do
|
||||
cat "conftest.in" "conftest.in" >"conftest.tmp"
|
||||
mv "conftest.tmp" "conftest.in"
|
||||
cp "conftest.in" "conftest.nl"
|
||||
$as_echo 'GREP' >> "conftest.nl"
|
||||
"$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
|
||||
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
|
||||
as_fn_arith $ac_count + 1 && ac_count=$as_val
|
||||
if test $ac_count -gt ${ac_path_GREP_max-0}; then
|
||||
# Best one so far, save it but keep looking for a better one
|
||||
ac_cv_path_GREP="$ac_path_GREP"
|
||||
ac_path_GREP_max=$ac_count
|
||||
fi
|
||||
# 10*(2^10) chars as input seems more than enough
|
||||
test $ac_count -gt 10 && break
|
||||
done
|
||||
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
|
||||
esac
|
||||
|
||||
$ac_path_GREP_found && break 3
|
||||
done
|
||||
done
|
||||
done
|
||||
IFS=$as_save_IFS
|
||||
if test -z "$ac_cv_path_GREP"; then
|
||||
as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
|
||||
fi
|
||||
else
|
||||
ac_cv_path_GREP=$GREP
|
||||
fi
|
||||
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
|
||||
$as_echo "$ac_cv_path_GREP" >&6; }
|
||||
GREP="$ac_cv_path_GREP"
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
|
||||
$as_echo_n "checking for egrep... " >&6; }
|
||||
|
@ -5416,10 +5546,6 @@ hp*|HP*)
|
|||
esac;;
|
||||
esac
|
||||
|
||||
MULTIARCH=$($CC --print-multiarch 2>/dev/null)
|
||||
|
||||
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBRARY" >&5
|
||||
$as_echo_n "checking LIBRARY... " >&6; }
|
||||
|
@ -14229,15 +14355,7 @@ $as_echo_n "checking ABIFLAGS... " >&6; }
|
|||
$as_echo "$ABIFLAGS" >&6; }
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking SOABI" >&5
|
||||
$as_echo_n "checking SOABI... " >&6; }
|
||||
|
||||
case $ac_sys_system in
|
||||
Linux*|GNU*)
|
||||
BITNESS_SUFFIX=-$(($ac_cv_sizeof_void_p * 8))b;;
|
||||
*)
|
||||
BITNESS_SUFFIX=;;
|
||||
esac
|
||||
SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${BITNESS_SUFFIX}
|
||||
|
||||
SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET}
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SOABI" >&5
|
||||
$as_echo "$SOABI" >&6; }
|
||||
|
||||
|
|
142
configure.ac
142
configure.ac
|
@ -667,6 +667,8 @@ then
|
|||
fi
|
||||
fi
|
||||
AC_PROG_CC
|
||||
AC_PROG_CPP
|
||||
AC_PROG_GREP
|
||||
|
||||
AC_SUBST(CXX)
|
||||
AC_SUBST(MAINCC)
|
||||
|
@ -724,6 +726,132 @@ then
|
|||
fi
|
||||
|
||||
|
||||
MULTIARCH=$($CC --print-multiarch 2>/dev/null)
|
||||
AC_SUBST(MULTIARCH)
|
||||
|
||||
AC_MSG_CHECKING([for the platform triplet based on compiler characteristics])
|
||||
cat >> conftest.c <<EOF
|
||||
#undef linux
|
||||
#undef i386
|
||||
#undef unix
|
||||
#if defined(__linux__)
|
||||
# if defined(__x86_64__) && defined(__LP64__)
|
||||
x86_64-linux-gnu
|
||||
# elif defined(__x86_64__) && defined(__ILP32__)
|
||||
x86_64-linux-gnux32
|
||||
# elif defined(__i386__)
|
||||
i386-linux-gnu
|
||||
# elif defined(__aarch64__) && defined(__AARCH64EL__)
|
||||
# if defined(__ILP32__)
|
||||
aarch64_ilp32-linux-gnu
|
||||
# else
|
||||
aarch64-linux-gnu
|
||||
# endif
|
||||
# elif defined(__aarch64__) && defined(__AARCH64EB__)
|
||||
# if defined(__ILP32__)
|
||||
aarch64_be_ilp32-linux-gnu
|
||||
# else
|
||||
aarch64_be-linux-gnu
|
||||
# endif
|
||||
# elif defined(__alpha__)
|
||||
alpha-linux-gnu
|
||||
# elif defined(__ARM_EABI__) && defined(__ARM_PCS_VFP)
|
||||
# if defined(__ARMEL__)
|
||||
arm-linux-gnueabihf
|
||||
# else
|
||||
armeb-linux-gnueabihf
|
||||
# endif
|
||||
# elif defined(__ARM_EABI__) && !defined(__ARM_PCS_VFP)
|
||||
# if defined(__ARMEL__)
|
||||
arm-linux-gnueabi
|
||||
# else
|
||||
armeb-linux-gnueabi
|
||||
# endif
|
||||
# elif defined(__hppa__)
|
||||
hppa-linux-gnu
|
||||
# elif defined(__ia64__)
|
||||
ia64-linux-gnu
|
||||
# elif defined(__m68k__) && !defined(__mcoldfire__)
|
||||
m68k-linux-gnu
|
||||
# elif defined(__mips_hard_float) && defined(_MIPSEL)
|
||||
# if _MIPS_SIM == _ABIO32
|
||||
mipsel-linux-gnu
|
||||
# elif _MIPS_SIM == _ABIN32
|
||||
mips64el-linux-gnuabin32
|
||||
# elif _MIPS_SIM == _ABI64
|
||||
mips64el-linux-gnuabi64
|
||||
# else
|
||||
# error unknown platform triplet
|
||||
# endif
|
||||
# elif defined(__mips_hard_float)
|
||||
# if _MIPS_SIM == _ABIO32
|
||||
mips-linux-gnu
|
||||
# elif _MIPS_SIM == _ABIN32
|
||||
mips64-linux-gnuabin32
|
||||
# elif _MIPS_SIM == _ABI64
|
||||
mips64-linux-gnuabi64
|
||||
# else
|
||||
# error unknown platform triplet
|
||||
# endif
|
||||
# elif defined(__or1k__)
|
||||
or1k-linux-gnu
|
||||
# elif defined(__powerpc__) && defined(__SPE__)
|
||||
powerpc-linux-gnuspe
|
||||
# elif defined(__powerpc64__)
|
||||
# if defined(__LITTLE_ENDIAN__)
|
||||
powerpc64le-linux-gnu
|
||||
# else
|
||||
powerpc64-linux-gnu
|
||||
# endif
|
||||
# elif defined(__powerpc__)
|
||||
powerpc-linux-gnu
|
||||
# elif defined(__s390x__)
|
||||
s390x-linux-gnu
|
||||
# elif defined(__s390__)
|
||||
s390-linux-gnu
|
||||
# elif defined(__sh__) && defined(__LITTLE_ENDIAN__)
|
||||
sh4-linux-gnu
|
||||
# elif defined(__sparc__) && defined(__arch64__)
|
||||
sparc64-linux-gnu
|
||||
# elif defined(__sparc__)
|
||||
sparc-linux-gnu
|
||||
# else
|
||||
# error unknown platform triplet
|
||||
# endif
|
||||
#elif defined(__FreeBSD_kernel__)
|
||||
# if defined(__LP64__)
|
||||
x86_64-kfreebsd-gnu
|
||||
# elif defined(__i386__)
|
||||
i386-kfreebsd-gnu
|
||||
# else
|
||||
# error unknown platform triplet
|
||||
# endif
|
||||
#elif defined(__gnu_hurd__)
|
||||
i386-gnu
|
||||
#else
|
||||
# error unknown platform triplet
|
||||
#endif
|
||||
|
||||
EOF
|
||||
|
||||
if $CPP conftest.c >conftest.out 2>/dev/null; then
|
||||
PLATFORM_TRIPLET=`grep -v '^#' conftest.out | grep -v '^ *$' | tr -d ' '`
|
||||
AC_MSG_RESULT([$PLATFORM_TRIPLET])
|
||||
else
|
||||
AC_MSG_RESULT([none])
|
||||
fi
|
||||
rm -f conftest.c conftest.out
|
||||
|
||||
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
|
||||
fi
|
||||
PLATDIR=plat-$MACHDEP
|
||||
AC_SUBST(PLATDIR)
|
||||
AC_SUBST(PLATFORM_TRIPLET)
|
||||
|
||||
|
||||
AC_MSG_CHECKING([for -Wl,--no-as-needed])
|
||||
save_LDFLAGS="$LDFLAGS"
|
||||
LDFLAGS="$LDFLAGS -Wl,--no-as-needed"
|
||||
|
@ -791,10 +919,6 @@ hp*|HP*)
|
|||
esac;;
|
||||
esac
|
||||
|
||||
MULTIARCH=$($CC --print-multiarch 2>/dev/null)
|
||||
AC_SUBST(MULTIARCH)
|
||||
|
||||
|
||||
AC_SUBST(LIBRARY)
|
||||
AC_MSG_CHECKING(LIBRARY)
|
||||
if test -z "$LIBRARY"
|
||||
|
@ -4183,15 +4307,7 @@ AC_SUBST(SOABI)
|
|||
AC_MSG_CHECKING(ABIFLAGS)
|
||||
AC_MSG_RESULT($ABIFLAGS)
|
||||
AC_MSG_CHECKING(SOABI)
|
||||
|
||||
case $ac_sys_system in
|
||||
Linux*|GNU*)
|
||||
BITNESS_SUFFIX=-$(($ac_cv_sizeof_void_p * 8))b;;
|
||||
*)
|
||||
BITNESS_SUFFIX=;;
|
||||
esac
|
||||
SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${BITNESS_SUFFIX}
|
||||
|
||||
SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET}
|
||||
AC_MSG_RESULT($SOABI)
|
||||
|
||||
AC_SUBST(EXT_SUFFIX)
|
||||
|
|
Loading…
Reference in New Issue