Update on LibreOffice support for ARM-Based Macs

It is always an exciting time to see freshly minted ARM based silicon arriving in the form of Apple’s massive shift to the ARM based M1. This of course means work for Collabora’s LibreOffice team too. The code needs to be prepared for M1, step by step. Here we update you on the status of the work, and what needs to be done.

With the launch of the new Apple devices nearing, it is important that suitable software arrives around the same time as new hardware. Apple ensures this by a translation layer, so that software for Intel Macs can be used, using Rosetta translation.

Nevertheless, given the code size of LibreOffice, for the best performance it makes most sense to have a pre-optimized native binary. As such Collabora joined the Universal App Quickstart Programme back in July and has been doing work on enabling LibreOffice for M1 since then.

This effort is made possible by the kind support of those who buy LibreOffice Vanilla in the Mac app store. Thank you! And thanks too to Tor Lillqvist for his patience and hard work here.

The status of the work

All of these changes are in master, or in the gerrit queue getting past our CI automation:

  • Configuration changes (mostly there). It should now possible to configure and build a native LibreOffice on a Apple Silicon, as well as cross-compiling to x86_64.
  • Patching and fixing of lots of bundled libraries to make them build cleanly.
  • Then there is a first attempt at a new C++/UNO ABI bridge – we need to match Apple’s ABI by tweaking Linux’s ARM64 support to match. This allows UNO scripting to work (in theory).
  • We still have some failing unit tests, that need investigation, as well as some other bits, described below.
All of this means that LibreOffice should start and work on M1! So far it has had only very basic Writer & Calc testing. The more exciting, complex features are not yet tested.

What’s next .. want to get involved?

Post-launch, if you can get an M1 Mac, then help is always most welcome! We have several missing pieces that will require further work, with some unusual low-level bits.

  • The new C++/UNO ABI bridge requires more testing, to ensure the UNO scripting support works smoothly.
  • Enabling bits we didn’t compile in yet: Firebird, Java (when there is a JDK).
  • Scripts to combine builds for arm64 and x86_64 into one universal app (i.e. one where binaries are “fat,” consisting of separate parts for each architecture)
  • Adaptation to whatever new checks are added for universal apps in the App Store. This is an ongoing unpredictable part of our work: adapting 8 million lines of code to the latest updated rules, keeping our builds compiling and signing with the latest tool chains.
Of course we’ll continue to work to bring the best LibreOffice possible to Apple Silicon as time permits, and we are confident that even if we don’t make it in the next month or two, Rosetta 2 will fill the gap using dynamic instruction set translation. And when all is done, our open source desktop productivity tools will benefit the full power of the new Macs!

3 thoughts on “Update on LibreOffice support for ARM-Based Macs

  1. Dear LibreOffice community,
    I really appreciate this announcement. I am using StarOffice from the very first time on OS/2 and in the meantime I fully migrated to LibreOffice on Mac. The new Mac mini with M1 SOC will be ordered soon and I cannot wait to run LibreOffice on it. It is really a great piece of software and I support you also financially with a yearly donation.
    Thanks for all your work!
    Best regards
    Matthias

  2. This is obviously a naive question, but why is the M1 migration so hard? The source code is(??) 64-bit clean, so there shouldn’t be the same kind of alignment issues seen when going from 32->64 bits (and 8->16 and 16->32).

    Thanks.

    1. The UNO bridge is a fun part – we unwind the ABI to be able to generate synthetic virtual tables, collect function arguments from trampolines by assembler magic, with constructed in-memory trampolines. But with any 8 million odd lines of code + tons of depdendencies you will find some architectural quirks, quite without needing to adapt to the new Apple app-store submission policy changes & tooling issues =) As you say the alignment issues shouldn’t be hugely problematic, we already run on other 64bit ARM devices.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.