Oh, is this a gcc issue?  Does xcode handle it ok?

Brendan

On Thu, Jul 28, 2011 at 5:07 AM, James McIlree <jmcil...@apple.com> wrote:

>
> 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
>
>
>


-- 
Brendan Gregg, Joyent                      http://dtrace.org/blogs/brendan
_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org

Reply via email to