Ned Deily <n...@python.org> added the comment:

Framework builds on macOS now fail with a bus error when trying to run the 
newly built _bootstrap_python. A simplified example:

$ ./configure --enable-framework=$PWD/Library/Frameworks
checking for git... found
checking build system type... x86_64-apple-darwin20.6.0
checking host system type... x86_64-apple-darwin20.6.0
checking for Python interpreter freezing... ./_bootstrap_python
checking for python3.11... no
checking for python3.10... no
checking for python3.9... no
checking for python3.8... no
checking for python3.7... no
checking for python3.6... no
checking for python3... python3
checking Python for regen version... Python 3.8.9
[...]
creating Modules/Setup.local
creating Makefile

pkg-config is missing. Some dependencies may not be detected correctly.


If you want a release build with all stable optimizations active (PGO, etc),
please run ./configure --enable-optimizations


$ make
[...]
gcc     -o _bootstrap_python Modules/getbuildinfo.o Parser/token.o  
Parser/pegen.o Parser/pegen_errors.o Parser/action_helpers.o Parser/parser.o 
Parser/string_parser.o Parser/peg_api.o Parser/myreadline.o Parser/tokenizer.o 
Objects/abstract.o Objects/accu.o Objects/boolobject.o Objects/bytes_methods.o 
Objects/bytearrayobject.o Objects/bytesobject.o Objects/call.o 
Objects/capsule.o Objects/cellobject.o Objects/classobject.o 
Objects/codeobject.o Objects/complexobject.o Objects/descrobject.o 
Objects/enumobject.o Objects/exceptions.o Objects/genericaliasobject.o 
Objects/genobject.o Objects/fileobject.o Objects/floatobject.o 
Objects/frameobject.o Objects/funcobject.o Objects/interpreteridobject.o 
Objects/iterobject.o Objects/listobject.o Objects/longobject.o 
Objects/dictobject.o Objects/odictobject.o Objects/memoryobject.o 
Objects/methodobject.o Objects/moduleobject.o Objects/namespaceobject.o 
Objects/object.o Objects/obmalloc.o Objects/picklebufobject.o 
Objects/rangeobject.o Objects/seto
 bject.o Objects/sliceobject.o Objects/structseq.o Objects/tupleobject.o 
Objects/typeobject.o Objects/unicodeobject.o Objects/unicodectype.o 
Objects/unionobject.o Objects/weakrefobject.o Python/_warnings.o 
Python/Python-ast.o Python/Python-tokenize.o Python/asdl.o Python/ast.o 
Python/ast_opt.o Python/ast_unparse.o Python/bltinmodule.o Python/ceval.o 
Python/codecs.o Python/compile.o Python/context.o Python/dynamic_annotations.o 
Python/errors.o Python/frame.o Python/frozenmain.o Python/future.o 
Python/getargs.o Python/getcompiler.o Python/getcopyright.o 
Python/getplatform.o Python/getversion.o Python/hamt.o Python/hashtable.o 
Python/import.o Python/importdl.o Python/initconfig.o Python/marshal.o 
Python/modsupport.o Python/mysnprintf.o Python/mystrtoul.o Python/pathconfig.o 
Python/preconfig.o Python/pyarena.o Python/pyctype.o Python/pyfpe.o 
Python/pyhash.o Python/pylifecycle.o Python/pymath.o Python/pystate.o 
Python/pythonrun.o Python/pytime.o Python/bootstrap_hash.o Python/specialize.o
  Python/structmember.o Python/symtable.o Python/sysmodule.o Python/thread.o 
Python/traceback.o Python/getopt.o Python/pystrcmp.o Python/pystrtod.o 
Python/pystrhex.o Python/dtoa.o Python/formatter_unicode.o Python/fileutils.o 
Python/suggestions.o Python/dynload_shlib.o    Modules/config.o Modules/main.o 
Modules/gcmodule.o Modules/atexitmodule.o  Modules/faulthandler.o  
Modules/posixmodule.o  Modules/signalmodule.o  Modules/_tracemalloc.o  
Modules/_codecsmodule.o  Modules/_collectionsmodule.o  Modules/errnomodule.o  
Modules/_io/_iomodule.o Modules/_io/iobase.o Modules/_io/fileio.o 
Modules/_io/bytesio.o Modules/_io/bufferedio.o Modules/_io/textio.o 
Modules/_io/stringio.o  Modules/itertoolsmodule.o  Modules/_sre.o  
Modules/_threadmodule.o  Modules/timemodule.o  Modules/_weakref.o  
Modules/_abc.o  Modules/_functoolsmodule.o  Modules/_localemodule.o  
Modules/_operator.o  Modules/_stat.o  Modules/symtablemodule.o  
Modules/pwdmodule.o  Modules/xxsubtype.o \
                Programs/_bootstrap_python.o Modules/getpath.o -ldl  -framework 
CoreFoundation
./_bootstrap_python ./Tools/scripts/deepfreeze.py 
Python/frozen_modules/importlib._bootstrap.h -m importlib._bootstrap -o 
Python/deepfreeze/importlib._bootstrap.c
make: *** [Python/deepfreeze/importlib._bootstrap.c] Bus error: 10
$

--enable-framework causes a number of changes in interpreter building and 
initialization. Since, as it stands, _bootstrap_python executable isn't and 
doesn't need to be built as a framework, there is probably some path confusion 
in getpath.c or elsewhere.

Prior to these changes (at 3.11.0a2 at least), it was still possible to run a 
framework build executable in the build directory through some careful use of 
build variables in Makefile (like how "make test" works). Without delving 
deeper into it at the moment, I'm not sure what to suggest. It may be simpler 
to just do a clean separate non-framework build to provide _bootstrap_python. 
And/or possibly re-allow the use of --with-build-python to specify a 
user-supplied build python. I wonder if there are certain configurations on 
other platforms where there might be similar problems with the current approach.

I'm marking this as a "release blocker" since it is preventing building the 
usual python.org macOS binary installer for 3.11.0a3. Since it is still early 
in the release cycle for 3.11, the release manager might reasonably decide to 
not delay the release for a fix and thus skip having a macOS installer for a3.

----------
nosy: +ned.deily
priority: normal -> release blocker

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue45950>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to