Bug 7520 - ThinLinc client for macOS ARM
Summary: ThinLinc client for macOS ARM
Status: NEW
Alias: None
Product: ThinLinc
Classification: Unclassified
Component: Client platforms (show other bugs)
Version: trunk
Hardware: PC Unknown
: P2 Normal
Target Milestone: MediumPrio
Assignee: Bugzilla mail exporter
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-06-23 13:40 CEST by Pierre Ossman
Modified: 2025-02-04 09:13 CET (History)
3 users (show)

See Also:
Acceptance Criteria:


Attachments

Description Pierre Ossman cendio 2020-06-23 13:40:21 CEST
Apple are switching to ARM for their machines, abandoning Intel and x86:

https://www.apple.com/newsroom/2020/06/apple-announces-mac-transition-to-apple-silicon/

Backwards compatibility is unclear at this point, but given that its a different architecture that will likely be limited. So we'll at some point need to switch our toolchain over to support ARM.
Comment 1 Pierre Ossman cendio 2021-06-02 10:22:50 CEST
GCC bug for this:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96168

There is also the mess around binutils. Their assembler and linker don't even support macOS x86, much less ARM.
Comment 2 Samuel Mannehed cendio 2021-12-01 15:43:21 CET
Jens Maus seems to want this:

https://community.thinlinc.com/t/does-thinlinc-support-mac-m1/277
Comment 4 Kyle Rhorer 2022-08-15 16:31:35 CEST
There have apparently been improvements in GCC's Apple Silicon support. Is there any update on the ThinLinc client? I'm waiting on an Apple Silicon version of the client so I can put a new workstation in service.
Comment 5 Pierre Ossman cendio 2022-08-18 10:34:35 CEST
As mentioned in the community discussion above, gcc support seems to still be experimental. So, we need to wait for a stable release, and there is also the work to actually integrate new versions in to our build system.
Comment 6 Pierre Ossman cendio 2023-01-11 14:17:49 CET
Did a quick performance test now that TigerVNC has M1 builds:

https://github.com/TigerVNC/tigervnc/issues/1434#issuecomment-1378736309

There was surprisingly little difference between native and Rosetta.
Comment 7 Samuel Mannehed cendio 2024-08-16 14:17:43 CEST
This project contains a proof-of-concept Linux-based build system able to target recent macOS SDK versions, as well as combining x86 and ARM binaries into a universal binary that runs natively on both Intel x86 and Apple M1 ARM:

https://git.cendio.se/cendio/macos-toolchain
Comment 8 Pierre Ossman cendio 2025-01-24 09:39:51 CET
One error-prone area in ARM is that all binaries now have to be signed. If they aren't, macOS does a hard SIGKILL on load.

Fortunately, they don't have to have proper signatures. What Apple calls an "adhoc" signature is sufficient. Which is basically just a checksum.

To help out with this, Apple's linker implicitly does one of these adhoc signatures on everything it outputs. I don't remember if we verified this for our proof-of-concept, or if we only tested fully signed binaries.
Comment 9 Pierre Ossman cendio 2025-01-24 10:32:13 CET
One issue with this signature requirement, is when modifying the library load path in the binaries, as discussed here:

https://gitlab.kitware.com/cmake/cmake/-/issues/21854

Note You need to log in before you can comment on or make changes to this bug.