bpo-46602: Do not append conftest.c (GH-31062)

The heredoc creation statements use >> to append conftest.c.  This can cause
tricky build issues if the file is not correctly removed prior to its
name being reused (such name is reused several times for different
contextual tests during the build).  One such result from appending may
cause #include <ac_nonexistent.h> to persist when testing to acquire
PLATFORM_TRIPLET.  This can then lead to downstream issues concerning SOABI.
This commit is contained in:
adanhawth 2022-02-01 21:38:15 -05:00 committed by GitHub
parent 0611eafc70
commit b1288964e3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 4 deletions

View File

@ -0,0 +1 @@
Tidied up configure.ac so that conftest.c is truncated rather than appended. This assists in the case where the 'rm' of conftest.c fails to happen between tests. Downstream issues such as a clobbered SOABI can result.

4
configure generated vendored
View File

@ -5942,7 +5942,7 @@ fi
{ $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
cat > conftest.c <<EOF
#undef bfin
#undef cris
#undef fr30
@ -6169,7 +6169,7 @@ $as_echo "$ac_cv_wl_no_as_needed" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the Android API level" >&5
$as_echo_n "checking for the Android API level... " >&6; }
cat >> conftest.c <<EOF
cat > conftest.c <<EOF
#ifdef __ANDROID__
android_api = __ANDROID_API__
arm_arch = __ARM_ARCH

View File

@ -833,7 +833,7 @@ fi
AC_MSG_CHECKING([for the platform triplet based on compiler characteristics])
cat >> conftest.c <<EOF
cat > conftest.c <<EOF
#undef bfin
#undef cris
#undef fr30
@ -1028,7 +1028,7 @@ AC_CACHE_CHECK([for -Wl,--no-as-needed], [ac_cv_wl_no_as_needed], [
AC_SUBST(NO_AS_NEEDED)
AC_MSG_CHECKING([for the Android API level])
cat >> conftest.c <<EOF
cat > conftest.c <<EOF
#ifdef __ANDROID__
android_api = __ANDROID_API__
arm_arch = __ARM_ARCH