| 0.9 Release of module-init-tools |
| |
| This release needs depmod again, which should help speed for those of |
| you with 1300 modules. A replacement depmod is provided, since the |
| previous one gets rightfully confused by 2.5.47+ kernels. You will |
| require a small kernel patch to 2.5.50 (see below) for PCI and USB |
| tables to work. |
| |
| Also included is modules.conf2modprobe.conf, which is fairly |
| simplistic but should get most people up and running. This will be |
| enhanced as new features go into the new modprobe. |
| |
| Some dummy options are implemented, and "modprobe -c" is implemented |
| too, which should help Mandrake and RedHat's init scripts deal with |
| the change. |
| |
| Many thanks to those who provided patches, bug reports, and copies of |
| their init scripts. Your feedback is greatly appreciated! |
| |
| Please report any bugs to rusty@rustcorp.com.au. |
| |
| Thanks! |
| Rusty. |
| |
| diff -urNp --exclude TAGS -X /home/rusty/current-dontdiff --minimal linux-2.5.50/include/linux/module.h working-2.5.50-table/include/linux/module.h |
| --- linux-2.5.50/include/linux/module.h Mon Nov 25 08:44:18 2002 |
| +++ working-2.5.50-table/include/linux/module.h Thu Nov 28 10:59:39 2002 |
| @@ -14,6 +14,7 @@ |
| #include <linux/cache.h> |
| #include <linux/kmod.h> |
| #include <linux/elf.h> |
| +#include <linux/stringify.h> |
| |
| #include <asm/module.h> |
| #include <asm/uaccess.h> /* For struct exception_table_entry */ |
| @@ -40,11 +40,14 @@ struct kernel_symbol |
| |
| #ifdef MODULE |
| |
| -#define MODULE_GENERIC_TABLE(gtype,name) \ |
| -static const unsigned long __module_##gtype##_size \ |
| - __attribute__ ((unused)) = sizeof(struct gtype##_id); \ |
| -static const struct gtype##_id * __module_##gtype##_table \ |
| - __attribute__ ((unused)) = name |
| +/* For replacement modutils, use an alias not a pointer. */ |
| +#define MODULE_GENERIC_TABLE(gtype,name) \ |
| +static const unsigned long __module_##gtype##_size \ |
| + __attribute__ ((unused)) = sizeof(struct gtype##_id); \ |
| +static const struct gtype##_id * __module_##gtype##_table \ |
| + __attribute__ ((unused)) = name; \ |
| +extern const struct gtype##_id __mod_##gtype##_table \ |
| + __attribute__ ((unused, alias(__stringify(name)))) |
| |
| /* This is magically filled in by the linker, but THIS_MODULE must be |
| a constant so it works in initializers. */ |