Title: unavailable --with-universal-archs= macOS confgure options fail cryptically
Type: Stage: needs patch
Components: Build, macOS Versions: Python 3.9, Python 3.8
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: ned.deily, ronaldoussoren
Priority: normal Keywords:

Created on 2019-10-11 07:53 by ned.deily, last changed 2019-10-11 08:08 by ned.deily.

Messages (2)
msg354429 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2019-10-11 07:53
./configure's --with-universal-archs= supports a number of different CPU architecture combinations.  However most of them are no longer supported on current macOS systems.  If you choose an option with archs not available in the build tool chain in use, the configure script fails in various cryptic ways, usually with multiple configure test failures like:

checking dlfcn.h presence... yes
configure: WARNING: dlfcn.h: present but cannot be compiled
configure: WARNING: dlfcn.h:     check for missing prerequisite headers?
configure: WARNING: dlfcn.h: see the Autoconf documentation
configure: WARNING: dlfcn.h:     section "Present But Cannot Be Compiled"
configure: WARNING: dlfcn.h: proceeding with the compiler's result
configure: WARNING:     ## --------------------------------------- ##
configure: WARNING:     ## Report this to ##
configure: WARNING:     ## --------------------------------------- ##

./configure should be more user-friendly here.  At a minimum, it should report near the beginning exactly which archs are going to be tested; it already reports the --with-universal-archs value.  Even better it should explicitly test for support of each arch in the build tool chain in use and stop if any of the requested archs are not available.
msg354430 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2019-10-11 08:08
Also note that, on current macOS systems, specifying just --enable-universalsdk to ./configure results in an implicit --with-universal-archs of intel (which implies both x86_64 and i386).

checking for --enable-universalsdk... /
checking for --with-universal-archs... intel

With macOS 10.15 Catalina and Xcode 11, i364 arch is no longer supported and that results in another cryptic ./configure failure:

checking size of size_t... configure: error: in `/Users/sysadmin/cpython':
configure: error: cannot compute sizeof (size_t)
See `config.log' for more details
Date User Action Args
2019-10-11 08:08:33ned.deilysetmessages: + msg354430
2019-10-11 07:53:54ned.deilycreate