| 1454d898 | 11-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
Remove postmortem of bridge work
|
| 87dc3894 | 11-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
Add the macOS/arm64 UNO exception RTTI post-mortem
The comments in solenv/src/component.map and solenv/bin/addsym-macosx.sh point here rather than restating why keyless-class typeinfo cannot be expo
Add the macOS/arm64 UNO exception RTTI post-mortem
The comments in solenv/src/component.map and solenv/bin/addsym-macosx.sh point here rather than restating why keyless-class typeinfo cannot be exported.
show more ...
|
| 55c04d13 | 07-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
Run the remaining Extension Manager dialogs on the main thread |
| 2e8c4aec | 07-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
Run the Extension Manager update dialog on the main thread
Dialog::Execute() was called from the deployment worker thread, where AquaSalInstance::Yield cannot pump the Cocoa event queue, so on macOS
Run the Extension Manager update dialog on the main thread
Dialog::Execute() was called from the deployment worker thread, where AquaSalInstance::Yield cannot pump the Cocoa event queue, so on macOS "Check for Updates" left the dialog unstable.
show more ...
|
| ee5121da | 07-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
ustring.c: gate the mixed UTF-16/ASCII NULL guards behind OSL_DEBUG_LEVEL
strtmpl.c's aImplGuardEmptyStr, which these macros reference, only exists under OSL_DEBUG_LEVEL > 0. Without a matching guar
ustring.c: gate the mixed UTF-16/ASCII NULL guards behind OSL_DEBUG_LEVEL
strtmpl.c's aImplGuardEmptyStr, which these macros reference, only exists under OSL_DEBUG_LEVEL > 0. Without a matching guard here, a product build fails: "use of undeclared identifier 'aImplGuardEmptyStr'". Mirrors strtmpl.c's own #if/#else pattern. Found rebuilding AOO42X in product configuration after picking this same fix (f0853378f1) there.
show more ...
|
| 6aebc026 | 07-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
testtools: rebuild uno_types.rdb when bridgetest.idl changes
The registry merges in bridgetest.rdb but did not depend on it, so an IDL edit left it describing the old interface while the headers and
testtools: rebuild uno_types.rdb when bridgetest.idl changes
The registry merges in bridgetest.rdb but did not depend on it, so an IDL edit left it describing the old interface while the headers and libraries described the new one, and the bridge dispatched the added methods through stale vtable slots. It only ever came out right on a clean build.
$? can no longer name the copy source now that there are two prerequisites.
Found while building AOO42X on macOS/arm64, where it broke bridgetest after the arm64 bridge commits added methods to the IDL; committed there as 4421c0a19d. Build-tested on that branch only.
show more ...
|
| a282c51e | 07-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
Fix the --with-system-icu build plumbing
icuversion.mk is only delivered when building the bundled ICU, so guard the include; with SYSTEM_ICU=YES even -include still lets make try, and fail, to rema
Fix the --with-system-icu build plumbing
icuversion.mk is only delivered when building the bundled ICU, so guard the include; with SYSTEM_ICU=YES even -include still lets make try, and fail, to remake it through the generic Package rule.
Also pass icu-config --cppflags through to compiles. That until now only worked by accident on Linux, where the ICU headers already sit in a default search path, and not on macOS.
Found while building AOO42X on macOS/arm64; committed there as 61ceef5ddb. Build-tested on that branch only.
show more ...
|
| df457996 | 06-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
libxml2: build --without-iconv, and drop the resulting -liconv linkage
No OpenOffice code calls iconv, and libxml2-configure.patch has always meant to disable it -- but it patches the generated xmlv
libxml2: build --without-iconv, and drop the resulting -liconv linkage
No OpenOffice code calls iconv, and libxml2-configure.patch has always meant to disable it -- but it patches the generated xmlversion.h, which configure regenerates, so it never took effect. Windows already passed iconv=no.
--with-static-system-libs=libiconv stays, for a system libxml2 whose own build enabled iconv and whose xml2-config therefore reports -liconv.
show more ...
|
| f0853378 | 06-Aug-2026 |
Peter <leginee@users.noreply.github.com> |
Fix rtl string qa NULL-deref crashes (test bug + source hardening) (#486)
* Fix rtl string qa NULL-deref crashes (test bug + source hardening)
Error case 1 of the test migration: ~40 *_000 cases in
Fix rtl string qa NULL-deref crashes (test bug + source hardening) (#486)
* Fix rtl string qa NULL-deref crashes (test bug + source hardening)
Error case 1 of the test migration: ~40 *_000 cases in the rtl string qa suites passed NULL into C string functions that dereference it (e.g. rtl_str_compare(NULL, NULL)), causing 0xC0000005 AVs. These were dormant under the old dmake build and only surface now that the tests actually run. NULL violates the functions' documented contract ("must be null-terminated"), so the defect was in the tests, not the (correct, unchanged) source. Fixed both sides for defense in depth.
Tests (qa/rtl/ostring/rtl_str.cxx, rtl_string.cxx, qa/rtl/oustring/rtl_ustr.cxx): - Rewrote the UB NULL-deref cases as contract-respecting boundary tests (empty string, prefix/ordering-sign < 0 / > 0), which also closes a previously-untested coverage gap (result sign was never asserted). - Added real assertions to the safe NULL-with-length-0 cases, which document the length-bounded functions' tolerance as a regression guard.
Source (rtl/source/strtmpl.c, ustring.c): - Added entry-point NULL guards: OSL_PRECOND (diagnoses misuse loudly in non-product builds, compiles out in product builds) plus a defined empty-string fallback so the library never dereferences NULL. Guards sit at function entry, outside the per-character loops, so string-processing throughput is unchanged. - strtmpl.c: one edit covers both the sal_Char and sal_Unicode instantiations. getLength is the choke point (guarding it transitively protects hashCode, lastIndexOf*, indexOfStr, trim); compare/compareIgnoreAsciiCase/indexOfChar/replaceChar/ toAscii{Lower,Upper}Case/valueOfChar guarded directly. - ustring.c: guarded the 6 mixed UTF-16/ASCII comparison helpers; length-bounded args clamp the length to 0 to avoid NULL+0 pointer arithmetic.
BUILD.bazel: rtl_str/rtl_ustr/rtl_string removed from the "known upstream failures" notes; they now pass.
Verified: sal3.dll rebuilds (both template instantiations) and rtl_str / rtl_ustr / rtl_string all pass.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* use guards only in debug mode.
* improved comment by elaborate that it has been the former test and not just The former
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
show more ...
|
| aa60cec5 | 06-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
--with-static-system-libs: accept NAME:DIR, and support libiconv
iconv is only ever pulled in as a transitive dep of the XML libs and has no --with-system-libiconv, so it has no prefix of its own --
--with-static-system-libs: accept NAME:DIR, and support libiconv
iconv is only ever pulled in as a transitive dep of the XML libs and has no --with-system-libiconv, so it has no prefix of its own -- hence the NAME:DIR form, e.g. --with-static-system-libs=libiconv:/usr/local. Pinning it rewrites -liconv in the libxml/libxslt/curl link flags and in the bundled-libxml2 macOS path in RepositoryExternal.mk and libs.mk.
The SDK ships only a .tbd stub for the iconv dylib, so there is no system libiconv.a to fall back on; without a prefix the link stays -liconv.
show more ...
|
| d77f6794 | 06-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
Add --with-static-system-libs, and drop -licuuc from the dmake LIBXML2LIB
Takes a comma-separated list (libxml, libxslt, curl) and rewrites each "-lfoo" to the archive's absolute path, so a dylib si
Add --with-static-system-libs, and drop -licuuc from the dmake LIBXML2LIB
Takes a comma-separated list (libxml, libxslt, curl) and rewrites each "-lfoo" to the archive's absolute path, so a dylib sitting beside it can't win. Without it the choice is implicit -- and those dylibs carry absolute install names that don't exist on an end user's machine.
LIBXML2LIB now filters -licuuc as RepositoryExternal.mk already did, so dmake and gbuild consumers agree.
show more ...
|
| 7d1f0570 | 06-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
deliver.pl: fix greedy base-name match in the macOS dylib linklib regex
\S matches dots, so the base name swallowed leading version components: libxslt.1.1.34.dylib keyed as libxslt.1.1 rather than
deliver.pl: fix greedy base-name match in the macOS dylib linklib regex
\S matches dots, so the base name swallowed leading version components: libxslt.1.1.34.dylib keyed as libxslt.1.1 rather than libxslt, and the unversioned symlink was never created. Two-component names were unaffected.
show more ...
|
| d3e3951e | 06-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
Revert "RepositoryExternal.mk, libs.mk: prefer /usr/local/lib static libs on macOS"
This reverts commit 9b92099a7350282ddfb677eafe03e37ee774e545. |
| 9b92099a | 06-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
RepositoryExternal.mk, libs.mk: prefer /usr/local/lib static libs on macOS
If the user already has a prebuilt libxml2.a/libxslt.a/libexslt.a/ libcurl.a/libiconv.a under /usr/local/lib, use that inst
RepositoryExternal.mk, libs.mk: prefer /usr/local/lib static libs on macOS
If the user already has a prebuilt libxml2.a/libxslt.a/libexslt.a/ libcurl.a/libiconv.a under /usr/local/lib, use that instead of what this tree just built. Falls back to the tree's own copy when absent.
show more ...
|
| 91877337 | 06-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
libs.mk: link libxml2's static-lib deps for dmake modules on macOS |
| e28c1c5c | 06-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
deliver.pl: recognize macOS libfoo.N.dylib naming in linklib: |
| 807b69bc | 06-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
macosx-dylib-link-list.pl: skip .framework dependencies
The @rpath/... entry for a system framework (e.g. Xcode's bundled Python3.framework) isn't a flat libFOO.dylib, so locate() can never find it
macosx-dylib-link-list.pl: skip .framework dependencies
The @rpath/... entry for a system framework (e.g. Xcode's bundled Python3.framework) isn't a flat libFOO.dylib, so locate() can never find it and the script died with "unknown". These are system frameworks, not tree-built dylibs needing a -dylib_file fixup.
show more ...
|
| 8dfc6561 | 06-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
RepositoryExternal.mk: link libxml2's static-lib private deps on macOS
A static archive doesn't record its transitive deps the way a dylib does. libxml-2.0.pc's own "Libs.private: -lpthread -liconv
RepositoryExternal.mk: link libxml2's static-lib private deps on macOS
A static archive doesn't record its transitive deps the way a dylib does. libxml-2.0.pc's own "Libs.private: -lpthread -liconv -lm" says what's actually needed; add it explicitly.
show more ...
|
| 559080ed | 06-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
libxml2, libxslt: deliver macOS static archives to solver |
| cdd63492 | 06-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
curl: fix macOS bundled-openssl linker flags and dylib naming |
| 5dc0b13d | 06-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
RepositoryExternal.mk: link static libxml2/libxslt on macOS
gbuild's !SYSTEM_LIBXML/!SYSTEM_LIBXSLT branches register a PLAINLIB expecting a dylib, but the bundled build produces a static .a on macO
RepositoryExternal.mk: link static libxml2/libxslt on macOS
gbuild's !SYSTEM_LIBXML/!SYSTEM_LIBXSLT branches register a PLAINLIB expecting a dylib, but the bundled build produces a static .a on macOS. Link the archive by absolute path there instead.
show more ...
|
| 4cc9990e | 06-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
libxslt: pin to bundled libxml2 and fix static xsltproc output path
The macOS static-build config (c46d036de4) didn't stop libxslt's own configure from discovering libxml2 via pkg-config, which reso
libxslt: pin to bundled libxml2 and fix static xsltproc output path
The macOS static-build config (c46d036de4) didn't stop libxslt's own configure from discovering libxml2 via pkg-config, which resolves to whatever libxml2 a package manager (MacPorts, Homebrew) has registered -- not the bundled copy. Modern libxml2 turns xmlParserMaxDepth into a macro, breaking xsltproc.c's assignment to it. --with-libxml-prefix pins the lookup to the bundled xml2-config instead.
Separately, --enable-shared=no makes libtool link xsltproc directly without a .libs wrapper dir (unlike the static .a archives, which still land in .libs), so OUT2BIN's path was wrong and the binary never made it into the solver.
show more ...
|
| fe39fbac | 06-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
solenv: skip .pc pkg-config files in macOS install-name fixup |
| 96a14a43 | 06-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
libxslt: add missing stdlib.h include for getenv/strtol
Clang defaults to C23, which errors on implicit function declarations. libxslt 1.1.34's extensions.c and libexslt/date.c call getenv/strtol wi
libxslt: add missing stdlib.h include for getenv/strtol
Clang defaults to C23, which errors on implicit function declarations. libxslt 1.1.34's extensions.c and libexslt/date.c call getenv/strtol without including stdlib.h, breaking the bundled build on modern toolchains (e.g. Xcode clang on macOS).
show more ...
|
| ca2ed8ee | 06-Aug-2026 |
Jim Jagielski <jimjag@gmail.com> |
vcl: fix CPUNAME token for Win64 entrypoint (X86-64 -> X86_64) |