Re: [PATCH] Linux Kernel Markers 0.20 for 2.6.17

Atsushi Nemoto <[email protected]>
Newsgroups gmane.linux.kernel,gmane.linux.kernel.tracing,gmane.linux.systemtap
Message-ID <[email protected]>
On Sat, 30 Sep 2006 14:04:43 -0400, Mathieu Desnoyers <[email protected]> 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.