bpo-38443: Check that the specified universal architectures work (GH-22910)

As [bpo-38443]() says the error message from configure when specifying --enable-universalsdk with a set of architectures that is not supported by the compiler is not very helpful.   This PR explicitly checks if the compiler works and bails out if it doesn't.
This commit is contained in:
Ronald Oussoren 2020-11-22 02:13:11 +01:00 committed by GitHub
parent 68f68fa423
commit 0f20bd9042
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 34 additions and 0 deletions

View File

@ -0,0 +1,2 @@
The ``--enable-universalsdk`` and ``--with-universal-archs`` options for the
configure script now check that the specified architectures can be used.

25
configure vendored
View File

@ -7611,6 +7611,31 @@ $as_echo_n "checking which MACOSX_DEPLOYMENT_TARGET to use... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MACOSX_DEPLOYMENT_TARGET" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MACOSX_DEPLOYMENT_TARGET" >&5
$as_echo "$MACOSX_DEPLOYMENT_TARGET" >&6; } $as_echo "$MACOSX_DEPLOYMENT_TARGET" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if specified universal architectures work" >&5
$as_echo_n "checking if specified universal architectures work... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
int
main ()
{
printf("%d", 42);
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
as_fn_error $? "check config.log and use the '--with-universal-archs' option" "$LINENO" 5
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
# end of Darwin* tests # end of Darwin* tests
;; ;;
esac esac

View File

@ -1978,6 +1978,13 @@ yes)
EXPORT_MACOSX_DEPLOYMENT_TARGET='' EXPORT_MACOSX_DEPLOYMENT_TARGET=''
AC_MSG_RESULT($MACOSX_DEPLOYMENT_TARGET) AC_MSG_RESULT($MACOSX_DEPLOYMENT_TARGET)
AC_MSG_CHECKING(if specified universal architectures work)
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]], [[printf("%d", 42);]])],
[AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)
AC_MSG_ERROR(check config.log and use the '--with-universal-archs' option)
])
# end of Darwin* tests # end of Darwin* tests
;; ;;
esac esac