pkubaj opened a new pull request, #512:
URL: https://github.com/apache/openoffice/pull/512
Two fixes for the FreeBSD powerpc64 C++-UNO bridge, plus what
powerpc64le needs to bootstrap and to find its JRE.
- call.s was generated on a glibc system with -fstack-protector and
checks a canary at -28688(r13). On FreeBSD that slot holds the DTV
pointer, which rtld replaces when a thread first uses TLS after a
library with TLS was loaded, so a bridged call could abort in
__stack_chk_fail (saving a document from Python was enough).
- Under ELFv2, structs of up to 16 bytes come back in r3/r4 and structs
of up to eight floats or doubles in f1-f8. The bridge used a hidden
return pointer for every struct, so Basic, Python and Java got
garbage from methods like getCellAddress(), and the bridgetest
crashed.
- source_soenv.sh only knew the powerpc64-*-freebsd* triplet, so
bootstrap failed on powerpc64le.
- set_soenv.in and jvmfwk: OpenJDK on powerpc64le uses jre/lib/ppc64le.
Testing, FreeBSD 15.1 powerpc64le, AOO 4.1.17 built by the FreeBSD port
(which carries this bridge as local patches) with these fixes:
- testtools bridgetest passes in-process and over URP, against the C++
and the Java test objects (the build skips it on FreeBSD PPC, so it
was run by hand from the build tree);
- a PyUNO script over a pipe connection: Writer/Calc/Draw/Impress
export and reload (odt/doc/pdf, ods/xls/csv, odg, odp/ppt), structs
returned by value (CellAddress, CellRangeAddress, Point, Size), C++
exceptions mapped to Python, a Python listener called back from the
office, a Basic macro;
- OpenJDK 8 found under jre/lib/ppc64le and started in-process.
FreeBSD 15.1 powerpc64 (big-endian), the same port and checks: the
bridgetest and the PyUNO script pass there too.
trunk at 430d1577c6 on FreeBSD 15.1 powerpc64le, built by the FreeBSD
port editors/openoffice-devel (its local patches give the same files as
this series): it builds, and the same checks pass. The URP bridgetest
client needed -env:OOO_BASE_DIR set to the installed office, because
trunk's testtools services.rdb registers uuresolver under
$OOO_BASE_DIR/program. Since 430d1577c6 the files this series touches
have changed only in unrelated places.
These changes were prepared with the help of an AI assistant (Claude);
the commits carry a Co-authored-by line as the ASF generative tooling
guidance suggests.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]