Messages in this thread | | | From | Keith Owens <> | Subject | Re: Portable binary modules | Date | Sun, 12 Dec 1999 13:17:30 +1100 |
| |
On 11 Dec 1999 17:42:21 +0100, Kjetil Torgrim Homme <kjetilho@ifi.uio.no> wrote: >How about mechanisms which tag the variant in the module directory? >E.g., make it possible to keep both the SMP version and the UP version >around without doing manual labour when switching kernels.
In top level Makefile, set EXTRAVERSION = -smp. Two kernels, two sets of modules, automatic mapping of kernel to modules. Trivial.
>The big question is: What _are_ the variables? I know of: > > SMP/UP > 386/486/586/586TSC/686/K7 > old gcc/new gcc > >What are the equivalence classes?
None.
>What combinations are compatible (for fallback)?
None.
Any change of options, architecture, compiler, debugging switches etc. might change the size of data items. All it takes is for one exported symbol to change its size and you have lost module to kernel compatibility. This is why kernel symbol versioning (genksyms) exists, it adds a checksum to each symbol which is sensitive to changes. If the checksum for a symbol in a module and the kernel are the same you can be fairly sure that the symbol is compatible, otherwise they are not and the module should not be loaded.
Don't try to invent a manual process, if you are that worried about mixing modules and kernels, use symbol versions.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |