| 3e6a53ec | 05-Jul-2026 |
Damjan Jovanovic <damjan@apache.org> |
Pass --undefined-version to the linker on *nix where supported, as we use quite loose version map scripts intended for many systems. This is needed for building with recent versions of Clang's lld.
Pass --undefined-version to the linker on *nix where supported, as we use quite loose version map scripts intended for many systems. This is needed for building with recent versions of Clang's lld.
Patch by: me
show more ...
|
| 7ce5b5df | 02-Jul-2026 |
Jim Jagielski <jimjag@gmail.com> |
Raise the C++ standard floor to C++11 on Linux and FreeBSD
Linux and FreeBSD were pinned to -std=gnu++98 while macOS already builds at C++11. Bump both platforms (dmake and gbuild build systems) to
Raise the C++ standard floor to C++11 on Linux and FreeBSD
Linux and FreeBSD were pinned to -std=gnu++98 while macOS already builds at C++11. Bump both platforms (dmake and gbuild build systems) to -std=gnu++11, making C++11 the lowest supported standard across all platforms. gnu++11 (rather than strict c++11) preserves the GNU dialect the codebase relies on and avoids __STRICT_ANSI__ system-header fallout.
Compiler floor is GCC 4.8.5 (CentOS 7), which fully supports gnu++11.
show more ...
|
| 8c537dee | 11-Jun-2026 |
Jim Jagielski <jimjag@gmail.com> |
Don't force MAC_OS_X_VERSION_MAX_ALLOWED (breaks on macOS 11+ SDKs)
Building sal on a modern SDK fails:
AvailabilityMacros.h:128: error: MAC_OS_X_VERSION_MAX_ALLOWED must be >= MAC_OS_X
Don't force MAC_OS_X_VERSION_MAX_ALLOWED (breaks on macOS 11+ SDKs)
Building sal on a modern SDK fails:
AvailabilityMacros.h:128: error: MAC_OS_X_VERSION_MAX_ALLOWED must be >= MAC_OS_X_VERSION_MIN_REQUIRED
Both build systems passed -DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_<deployment-target> (unxmacc.mk for dmake, gbuild/platform/macosx.mk for gbuild). Apple renamed the SDK version constants at macOS 11: the old MAC_OS_X_VERSION_<v> family stops at 10_15, and 11+ uses MAC_OS_VERSION_<v> (no "_X_"). With our 11.0 Apple Silicon deployment baseline this generates MAC_OS_X_VERSION_11_0, which is undefined -> the preprocessor treats it as 0 -> MAX_ALLOWED(0) < MIN_REQUIRED(110000) -> #error.
Drop the -D in both places and let the SDK auto-derive MAX_ALLOWED as max(14.0, MIN_REQUIRED), which is what a modern SDK wants. Verified by compiling <AvailabilityMacros.h> with -mmacosx-version-min=11.0: fails with the forced -D, compiles cleanly without it. Nothing in the tree reads this macro -- the only consumer (vcl PictToBmpFlt.cxx) checks the distinct __MAC_OS_X_VERSION_MAX_ALLOWED -- so removal is safe on old SDKs too.
show more ...
|
| a9dc1362 | 11-Jun-2026 |
Jim Jagielski <jimjag@gmail.com> |
Fix macOS build with Clang 16+ (Xcode 15+): pin C dialect to gnu89
Clang 16+ removed support for K&R-style function definitions and implicit-int, turning them from warnings into hard errors. Much of
Fix macOS build with Clang 16+ (Xcode 15+): pin C dialect to gnu89
Clang 16+ removed support for K&R-style function definitions and implicit-int, turning them from warnings into hard errors. Much of the in-tree legacy C (e.g. soltools/mkdepend) is old-style and fails to compile with errors like 'unknown type name'. EXTERNAL_WARNINGS_NOT_ERRORS does not help since this is a parse-level rejection.
Pin CFLAGSCC to -std=gnu89 in unxmacc.mk (the base file included by the Intel, x, and arm64 mac platform makefiles) so the fix applies tree-wide. This is symmetric with the existing -std=gnu++98 C++ pin, and gnu89 still permits later constructs as GNU extensions so it does not break modern C.
show more ...
|
| 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 ...
|