I'm not able to reproduce, what compiler are you using? James M
On Jul 27, 2011, at 4:00 PM, Brendan Gregg wrote: > G'Day, > > The way isenabled probes are compiled on Mac OS X Lion has changed in a way > that dosen't compile (at least, with some compilers). Here's the test to try: > > $ cat -n liontest.d > 1 provider lion { > 2 probe hello(const char *world); > 3 }; > $ dtrace -h -s liontest.d -o liontest.h > > On Snow Leopard this output: > > $ cat -n liontest.h > [...] > 24 #define LION_HELLO_ENABLED() \ > 25 __dtrace_isenabled$lion$hello$v1() > > On Lion that is now: > > $ can -n liontest.h > [...] > 26 #define LION_HELLO_ENABLED() \ > 27 ({ int _r = __dtrace_isenabled$lion$hello$v1(); \ > 28 __asm__ volatile(""); \ > 29 _r; }) > > Which doesn't compile when used in if statements (the use case for > isenabled). Which means, some software that has DTrace probes is now not > compiling on Lion. > > Another difference is the addition of: > > #if !defined(DTRACE_PROBES_DISABLED) || !DTRACE_PROBES_DISABLED > > but I don't think that is breaking anything. > > I've attached both header files from the OS versions. Does Apple know of > this? > > thanks, > > Brendan > > -- > Brendan Gregg, Joyent http://dtrace.org/blogs/brendan > <lion.h><snowleopard.h>_______________________________________________ > dtrace-discuss mailing list > dtrace-discuss@opensolaris.org
_______________________________________________ dtrace-discuss mailing list dtrace-discuss@opensolaris.org