Re: [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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • Re: Check handling of kernel build output directory
    ... is what you need to clean up. ... CLEAN .config ... HOSTCC scripts/basic/docproc ... Linux Kernel Configuration ...
    (Linux-Kernel)
  • Re: kernel patch
    ... I only "make clean" when I really screw bzImage or modules up ... I don't "make mrproper" without backing up my .config file ... I "make bzImage modules" to get a clean build, ... My lilo.conf references both the current kernel, ...
    (comp.os.linux.misc)
  • Re: Building 100 kernels; we suck at dependencies and drown in warnings
    ... kernel was build with the config I normally use for my own box. ... kernel was build from 'make defconfig'. ... make clean ...
    (Linux-Kernel)
  • Re: Building a kernel-source RPM (not a kernel RPM)?
    ... The kernel-source including all patches and configured as usually to be ... For external modules you need a fully build kernel which may be ... clean up by "make clean". ... .config and after `make oldconfig` - so that one can build out-of-tree ...
    (Linux-Kernel)
  • Re: [Fastboot] Kexec with latest kernel fail
    ... kexec suse 10.0 amd64 vmlinuz and initrd. ... What config? ... > Do I need patch for kexec tools with latest kexec in kernel? ... Its largely dependant on what architecture you are using. ...
    (Linux-Kernel)