Messages in this thread | | | Date | Wed, 18 Oct 2006 00:51:22 +0900 (JST) | Subject | Re: [PATCH] Linux Kernel Markers 0.20 for 2.6.17 | From | Atsushi Nemoto <> |
| |
On Sat, 30 Sep 2006 14:04:43 -0400, Mathieu Desnoyers <compudj@krystal.dyndns.org> wrote: > +#define MARK(name, format, args...) \ > + do { \ > + static marker_probe_func *__mark_call_##name = \ > + __mark_empty_function; \ > + volatile static char __marker_enable_##name = 0; \ > + static const struct __mark_marker_c __mark_c_##name \ > + __attribute__((section(".markers.c"))) = \ > + { #name, &__mark_call_##name, format } ; \ > + static const struct __mark_marker __mark_##name \ > + __attribute__((section(".markers"), unused)) = \ > + { &__mark_c_##name, &__marker_enable_##name } ; \ > + if (unlikely(__marker_enable_##name)) { \ > + preempt_disable(); \ > + (*__mark_call_##name)(format, ## args); \ > + preempt_enable_no_resched(); \ > + } \ > + } while(0)
When I compiled this with gcc 4.1.1 (mips), ".markers" section was empty.
I suppose "unused" attribute is not suitable for modern gcc. Maybe __attribute_used__ should be used?
The __attrribute_used__ is defined in compiler-gcc3.h as:
#if __GNUC_MINOR__ >= 3 # define __attribute_used__ __attribute__((__used__)) #else # define __attribute_used__ __attribute__((__unused__)) #endif
--- Atsushi Nemoto - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |