python-greenlet / greenlet

Lightweight in-process concurrent programming
Other
1.64k stars 246 forks source link

Build fails on PowerPC: `Parameter syntax error (parameter 2)` #418

Closed barracuda156 closed 1 month ago

barracuda156 commented 2 months ago
--->  Building py312-greenlet
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-greenlet/py312-greenlet/work/greenlet-3.0.3" && /opt/local/Library/Frameworks/Python.framework/Versions/3.12/bin/python3.12 -m build --no-isolation --wheel --outdir /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-greenlet/py312-greenlet/work 
* Getting build dependencies for wheel...
running egg_info
writing src/greenlet.egg-info/PKG-INFO
writing dependency_links to src/greenlet.egg-info/dependency_links.txt
writing requirements to src/greenlet.egg-info/requires.txt
writing top-level names to src/greenlet.egg-info/top_level.txt
[08/28/24 22:29:46] ERROR    listing git files failed - pretending     git.py:26
                             there aren't any                                   
reading manifest file 'src/greenlet.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no previously-included files found matching 'benchmarks/*.json'
no previously-included directories found matching 'docs/_build'
warning: no files found matching '*.py' under directory 'appveyor'
warning: no previously-included files matching '*.pyc' found anywhere in distribution
warning: no previously-included files matching '*.pyd' found anywhere in distribution
warning: no previously-included files matching '*.so' found anywhere in distribution
warning: no previously-included files matching '.coverage' found anywhere in distribution
adding license file 'LICENSE'
adding license file 'LICENSE.PSF'
adding license file 'AUTHORS'
writing manifest file 'src/greenlet.egg-info/SOURCES.txt'
* Building wheel...
running bdist_wheel
running build
running build_py
creating build
creating build/lib.macosx-10.6-ppc-cpython-312
creating build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/__init__.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
creating build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/__init__.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
creating build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/__init__.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/fail_clearing_run_switches.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/fail_cpp_exception.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/fail_initialstub_already_started.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/fail_slp_switch.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/fail_switch_three_greenlets.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/fail_switch_three_greenlets2.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/fail_switch_two_greenlets.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/leakcheck.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/test_contextvars.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/test_cpp.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/test_extension_interface.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/test_gc.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/test_generator.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/test_generator_nested.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/test_greenlet.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/test_greenlet_trash.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/test_leaks.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/test_stack_saved.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/test_throw.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/test_tracing.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/test_version.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/test_weakref.py -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
running egg_info
writing src/greenlet.egg-info/PKG-INFO
writing dependency_links to src/greenlet.egg-info/dependency_links.txt
writing requirements to src/greenlet.egg-info/requires.txt
writing top-level names to src/greenlet.egg-info/top_level.txt
[08/28/24 22:29:51] ERROR    listing git files failed - pretending     git.py:26
                             there aren't any                                   
reading manifest file 'src/greenlet.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no previously-included files found matching 'benchmarks/*.json'
no previously-included directories found matching 'docs/_build'
warning: no files found matching '*.py' under directory 'appveyor'
warning: no previously-included files matching '*.pyc' found anywhere in distribution
warning: no previously-included files matching '*.pyd' found anywhere in distribution
warning: no previously-included files matching '*.so' found anywhere in distribution
warning: no previously-included files matching '.coverage' found anywhere in distribution
adding license file 'LICENSE'
adding license file 'LICENSE.PSF'
adding license file 'AUTHORS'
writing manifest file 'src/greenlet.egg-info/SOURCES.txt'
copying src/greenlet/TBrokenGreenlet.cpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/TExceptionState.cpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/TGreenlet.cpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/TGreenletGlobals.cpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/TMainGreenlet.cpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/TPythonState.cpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/TStackState.cpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/TThreadStateDestroy.cpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/TUserGreenlet.cpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/greenlet.cpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/greenlet.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/greenlet_allocator.hpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/greenlet_compiler_compat.hpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/greenlet_cpython_add_pending.hpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/greenlet_cpython_compat.hpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/greenlet_exceptions.hpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/greenlet_greenlet.hpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/greenlet_internal.hpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/greenlet_refs.hpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/greenlet_slp_switch.hpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/greenlet_thread_state.hpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/greenlet_thread_state_dict_cleanup.hpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/greenlet_thread_support.hpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/slp_platformselect.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet
copying src/greenlet/platform/setup_switch_x64_masm.cmd -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_aarch64_gcc.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_alpha_unix.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_amd64_unix.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_arm32_gcc.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_arm32_ios.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_arm64_masm.asm -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_arm64_masm.obj -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_arm64_msvc.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_csky_gcc.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_loongarch64_linux.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_m68k_gcc.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_mips_unix.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_ppc64_aix.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_ppc64_linux.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_ppc_aix.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_ppc_linux.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_ppc_macosx.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_ppc_unix.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_riscv_unix.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_s390_unix.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_sparc_sun_gcc.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_x32_unix.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_x64_masm.asm -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_x64_masm.obj -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_x64_msvc.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_x86_msvc.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_x86_unix.h -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/platform
copying src/greenlet/tests/_test_extension.c -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
copying src/greenlet/tests/_test_extension_cpp.cpp -> build/lib.macosx-10.6-ppc-cpython-312/greenlet/tests
running build_ext
INFO: Disabling color, you really want to install colorlog.
Disabling color, you really want to install colorlog.
building 'greenlet._greenlet' extension
creating build/temp.macosx-10.6-ppc-cpython-312
creating build/temp.macosx-10.6-ppc-cpython-312/src
creating build/temp.macosx-10.6-ppc-cpython-312/src/greenlet
/opt/local/bin/g++-mp-14 -arch ppc -D_GLIBCXX_USE_CXX11_ABI=0 -isysroot/ -I/opt/local/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12 -c src/greenlet/greenlet.cpp -o build/temp.macosx-10.6-ppc-cpython-312/src/greenlet/greenlet.o --std=gnu++11
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-greenlet/py312-greenlet/work/.tmp/cchfUSKy.s:7418:Parameter syntax error (parameter 2)
error: command '/opt/local/bin/g++-mp-14' failed with exit code 1

ERROR Backend subprocess exited when trying to invoke build_wheel
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-greenlet/py312-greenlet/work/greenlet-3.0.3" && /opt/local/Library/Frameworks/Python.framework/Versions/3.12/bin/python3.12 -m build --no-isolation --wheel --outdir /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-greenlet/py312-greenlet/work 
Exit code: 1
barracuda156 commented 2 months ago

This is what fails:

; 55 "src/greenlet/platform/switch_ppc_macosx.h" 1
    ; asm block 3
    mr r11, 60(r30)
    add r1, r1, r11
    add r30, r30, r11

And this indeed is wrong, since mr takes two registers.