Re: [patch 01/18] fork: Remove the weak insanity

From: Sam Ravnborg
Date: Mon May 07 2012 - 17:03:55 EST


On Mon, May 07, 2012 at 10:55:18PM +0200, Thomas Gleixner wrote:
> On Sat, 5 May 2012, Sam Ravnborg wrote:
>
> > On Sat, May 05, 2012 at 03:05:40PM -0000, Thomas Gleixner wrote:
> > > We error out when compiling with gcc4.1.[01] as it miscompiles
> > > __weak. The workaround with magic defines is not longer
> > > necessary. Make it __weak again.
> >
> > The cleanup is much appreciated!
> >
> > But the magic defines is IMO much better than the CONFIG_ based approach
> > that this patch-set introduces in the last patch.
> >
> > If you do:
> >
> > $git grep arch_task_cache_init
> >
> > Then if you see:
> >
> > #define arch_task_cache_init arch_task_cache_init
> >
> > Then you know alrady that this arch will provide a local implementation
> > of arch_task_cache_init().
> > No need to grep for an ARCH_XXX symbol that you need to look up
> > somewhere else.
>
> I'm not following that argument.
>
> Removing that magic define thing does not change anything. The change
> is:
...
>
> Now for the last patch in the series:
>
> It merily moves
>
> #define __HAVE_ARCH_THREAD_INFO_ALLOCATOR
>
> to a Kconfig based
>
> select ARCH_THREAD_INFO_ALLOCATOR

The point was that rather than using a Kconfig symbol for this the
architecutres that required a dedicated implementation could do the:

#define foo foo

trick.


And the generic implmentation should then do:
#ifndef foo
void foo(int bar)
{
}
#endif

You are right that the archs implmenting foo() will stand
out in the grep anyway.
But using the define trick you do not spread it up to the Kconfig level,
for individual functions.

Sam
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/