Opened 10 years ago

Closed 7 years ago

Last modified 3 years ago

#29228 closed enhancement (fixed)

darwintrace:Update to modern interposing

Reported by: wsiegrist@… Owned by: neverpanic (Clemens Lang)
Priority: Normal Milestone:
Component: base Version: 1.9.2
Keywords: darwintrace Cc: cooljeanius (Eric Gallager)


There is a new way to do interposing that is more supported/proper. The original darwintrace from the DarwinBuild project has the DARWINTRACE_INTERPOSE macro which shows how to do it.

Attachments (1) (9.4 KB) - added by gauravb7090@… 7 years ago.

Download all attachments as: .zip

Change History (5)

comment:1 Changed 7 years ago by neverpanic (Clemens Lang)

Keywords: trace removed
Owner: changed from macports-tickets@… to cal@…

I assume this still applies even with the major changes in darwintrace I've made? Are there any limitations to which functions can be interposed? I assume we can skip setting DYLD_FORCE_FLAT_NAMESPACE=1 when using interposing?

Changed 7 years ago by gauravb7090@…

comment:2 Changed 7 years ago by neverpanic (Clemens Lang)

Resolution: fixed
Status: newclosed

In r117751 with some minor changes. Thanks!

comment:3 Changed 7 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

comment:4 Changed 3 years ago by raimue (Rainer Müller)

In a57dae1ec8a0bdfb0ff8edbcaae08982d1a065f9/macports-base:

darwintrace: get rid of deprecated syscall() macro

Since using dyld interposing [1], it is no longer necessary to make
direct syscalls. Instead, the normal library functions can be called.

The syscall() macro is deprecated as of macOS 10.12, so we should get
rid of it.

[1] #29228 and 7aa2869ef

Note: See TracTickets for help on using tickets.