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

Reply via email to