lkml.org 
[lkml]   [2005]   [Dec]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 1 of 3] Introduce __memcpy_toio32
On Fri, Dec 30, 2005 at 04:23:46PM -0800, Linus Torvalds wrote:
>...
> > > Where's the problem with the __HAVE_ARCH_* mechanism?
>...
> And no, I don't like the __HAVE_ARCH_xxx mechanisms at all. They are
> pointless, and hard to follow. If an architecture wants to use a generic
> mechanism, it should do one of the following (or a combination):
>
> - use the config file mechanism, and use
>
> obj-$(CONFIG_GENERIC_FOO) += generic-foo.c
>
> in a Makefile to link in the generic version.
>
> Examples: CONFIG_RWSEM_GENERIC_SPINLOCK.
>
> - just include the generic header from its own header, eg just do a
>
> #include <asm-generic/div64.h>
>
> or similar.
>
> Now, the latter in particular is very easy to follow: if you look into the
> <asm/div64.h> file and see that it just includes <asm-generic/div64.h>,
> it's very obvious what is going on and where to find the real
> implementation. You never have to wonder what the indirection means.
>...
> Now, the CONFIG_GENERIC_FOO thing is a bit less obvious, and you may have
> to know about that config option in order to realize that a particular
> architecture is using a generic library routine, but at least with those
> Kconfig options, the language to describe them is clean these days, and
> it's _the_ standard way to express configuration information. So it may be
> a bit subtler and more indirect, but once you get used to it, it too is
> very clean.
>...

OK, this I don't have any problem with.

I'm not yet fully convinced that __HAVE_ARCH_xxx is really that bad, but
your proposed solution doesn't have the problems I had in mind.

What is OK:
obj-$(CONFIG_GENERIC_FOO) += generic-foo.o

What is not OK:
lib-y += generic-foo.o

The latter has the following disadvantages:
- it's non-obvious whether the object actually gets included in the
kernel
- if the contents of generic-foo.o is only used in modules,
generic-foo.o is _not_ included in the kernel resulting in an
obvious breakage

> Linus

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

-
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/

\
 
 \ /
  Last update: 2005-12-31 22:28    [from the cache]
©2003-2011 Jasper Spaans