On Mon, 2009-11-09 at 12:31 +0800, Wu Zhangjin wrote: > I think if we use something like __mips_notrace here, we may get lots of > __ARCH_notraces here too, 'Cause some other platforms(at least, as I > know, Microblaze will do it too) may also need to add one here, it will > become: > > __mips_notrace __ARCH1_notrace __ARCH2_notrace .... foo() {...} > > A little ugly ;) I agree, that is ugly. > > and If a new platform need it's __ARCH_notrace, they need to touch the > common part of ftrace, more side-effects! > > but with __arch_notrace, the archs only need to touch it's own part, > Although there is a side-effect as you mentioned above ;) > > So, what should we do? Just do it in the Makefile. We can add __arch_notrace, and then in the Makefile define it with the arch. ifeq ($(ARCH), MIPS) CFLAGS_foo.o = -D__arch_notrace=notrace endif And we can simply define __arch_notrace in a header: #ifndef __arch_notrace # define __arch_notrace #endif I much rather uglify the Makefile than the code. -- Steve