| 5e139d9f | 05-Jun-2026 |
Jim Jagielski <jimjag@gmail.com> |
Native Apple Silicon (arm64) support and bundled Python 3.10 baseline
Squashed combination of two efforts, applied onto trunk as a single commit. (trunk is not intended to be buildable; this lands t
Native Apple Silicon (arm64) support and bundled Python 3.10 baseline
Squashed combination of two efforts, applied onto trunk as a single commit. (trunk is not intended to be buildable; this lands the work for reference/integration.)
=== Apple Silicon (macOS arm64 / AAPCS64) === Build plumbing: set_soenv.in + source_soenv.sh arm64 Darwin branch (CPU=R, CPUNAME=AARCH64, OUTPATH=unxmaccr); new solenv/inc/unxmaccr.mk and unx.mk dispatch; macro.hxx AARCH64 arch string; osarch.pm + gbuild/platform/macosx.mk arch entries; configure.ac arm64 host detection, Big Sur+ version math, and 11.0 deployment target.
C++/UNO bridge (new s5abi_macosx_aarch64): abi.cxx/hxx AAPCS64 classifier (HFA + <=16B/>16B size rules), uno2cpp + call.s AArch64 trampoline, cpp2uno incoming path + privateSnippetExecutor + AArch64 codeSnippet codegen (x8 indirect-result handled, not displacing this/x0), share.hxx __cxa_exception reserved-member alignment fix; Library_cpp_uno.mk + makefile.mk wiring. sal/osl/unx/interlck.c arm64 atomics (__sync_* -> LSE).
Externals: openssl darwin64-arm64-cc; icu arm64 little-endian. (NSS 3.39 deferred -- too old for arm64.)
Packaging/JVM: Info.plist LSMinimumSystemVersion 11.0; installer download.pm/worker.pm/update_module_ignore_lists.pl recognize unxmaccr; jvmfwk modern macOS JDK discovery (/Library/Java/JavaVirtualMachines + Contents/Home probe).
The ABI/atomics/trampoline/JDK-discovery code was unit-tested natively on an arm64 macOS host; a full AOO build (and bridgetest) was not run. Code-signing infra (mandatory for arm64 distribution) is NOT included.
=== Bundled Python 2.7.18 -> 3.10 baseline (Unix/macOS first) === pyversion.mk/_dmake.mk -> 3.10.18 (single version knob). Shipped .py fixes: imp -> types.ModuleType (pythonscript.py, pythonloader.py) and file() -> open(); mailmerge.py Py3 email module imports + encoders. Windows Python 3 build and the makefile.mk/d.lst/configure.ac Py3 work are NOT included (separate, larger effort).
NOTE: macOS 11 becomes the minimum supported version. Python 3.10 is EOL 2026-10; the version knob allows a later bump.
show more ...
|