The Mac OS X "dtrace -h" emits all the information required for
successfully linking a USDT probe by the rest of the toolchain. On Mac
OS X "dtrace -G" is superfluous. For historical reasons "-G" was
disabled early on in the bring up. We'll take a bug to re-introduce "-
G" as a no-op with a warning message.
See the section "BUILDING CODE CONTAINING USDT PROBES" in the Leopard
dtrace(1) man page.
In Postgres we follow the old way of implementing USDT.
1) add probes to src.c
2) cc -c src.c -o src.o
3) dtrace -G -s probes.d src.o ...
4) cc -o postgres src.o probes.o
This works fine on Solaris but it breaks on OSX since the -G flag doesn't exist (adding it with no-op won't help). Can this still be done in OSX (replacing -G with -h?) or does it only support the new way where the .h file has to be produced first? If not, I'd say the two implementations have incompatible behavior.