[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH] build: work around older systemtap header

On 07/06/2011 08:45 AM, Eric Blake wrote:
>> #define _SDT_ARGARRAY(x)	(__builtin_classify_type (x) == 14 \
>> 				 || __builtin_classify_type (x) == 5)
> Too bad gcc doesn't document this builtin.

It's documented in the Internals manual:

>> So perhaps you could copy that macro and let your compatibility casting
>> do something like this:
>> #define _SDT_CAST(x) \
>>     __builtin_choose_expr (_SDT_ARGARRAY(x), (uintptr_t)(x), (x))
> That depends on gcc - so we'd have to provide a fallback define to a
> plain cast for other compilers.  I'll keep that in mind if the current
> patch for libvirt (which doesn't use any gcc extensions) proves to be
> problematic.

Well, sdt.h itself uses such extensions, so you may not get far with
very different compilers anyway.  But FWIW, it seems to work fine on
F15's clang-2.8.

> And we may still end up defining away the problem, by just stating
> that libvirt requires systemtap 1.4 or newer before libvirt will use
> systemtap.

I wouldn't blame you, if you can get away with that.  We think the
current version of SDT is more sane overall, with better flexibility as
well as better resulting metadata.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]