[MacPorts] #60818: darwintrace cannot inject into binaries of a different architecture (missing arm64e) (was: darwintrace cannot inject into binaries of a different architecture)
MacPorts
noreply at macports.org
Fri Dec 23 23:58:12 UTC 2022
#60818: darwintrace cannot inject into binaries of a different architecture
(missing arm64e)
--------------------------+-----------------------
Reporter: saagarjha | Owner: (none)
Type: enhancement | Status: reopened
Priority: Normal | Milestone:
Component: base | Version:
Resolution: | Keywords: tracemode
Port: |
--------------------------+-----------------------
Comment (by raimue):
The missing part is `arm64e`, which is a new ABI to support Pointer
Authentication as specified with ARMv8.3.
https://developer.apple.com/documentation/security/preparing_your_app_to_work_with_pointer_authentication
However, Apple does not consider this ABI as stable. The use of arm64e
seems to be limited to binaries signed by Apple. As I have read, it is
actually used in binaries in `/usr/bin` but I cannot confirm this. I
assume (!) this limitation also applies to libraries and therefore we
cannot just build darwintrace.dylib for arm64e and inject it into the
process.
Maybe a possible workaround would be to force use of arm64 for such
binaries with something like `arch -arm64 /usr/bin/...`? This could be
done in the SIP workaround that we have to use anyway.
--
Ticket URL: <https://trac.macports.org/ticket/60818#comment:5>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list