Hi, The following patch is needed for modutils to initialize __dbe_table table pointers appropriately for modules that want to handle bus error exceptions on MIPS. A separate patch is needed for the kernel. Maciej -- + Maciej W. Rozycki, Technical University of Gdansk, Poland + +--------------------------------------------------------------+ + e-mail: macro@ds2.pg.gda.pl, PGP key available + modutils-2.4.6-mips-dbe.patch diff -up --recursive --new-file modutils-2.4.6.macro/include/module.h modutils-2.4.6/include/module.h --- modutils-2.4.6.macro/include/module.h Fri Jan 5 01:45:19 2001 +++ modutils-2.4.6/include/module.h Sun Aug 12 13:16:13 2001 @@ -153,6 +153,10 @@ struct module unsigned tgt_long cleanup; unsigned tgt_long ex_table_start; unsigned tgt_long ex_table_end; +#ifdef __mips__ + unsigned tgt_long dbe_table_start; + unsigned tgt_long dbe_table_end; +#endif #ifdef __alpha__ unsigned tgt_long gp; #endif diff -up --recursive --new-file modutils-2.4.6.macro/man/init_module.2 modutils-2.4.6/man/init_module.2 --- modutils-2.4.6.macro/man/init_module.2 Fri Jan 5 01:45:19 2001 +++ modutils-2.4.6/man/init_module.2 Sun Aug 12 13:17:14 2001 @@ -39,6 +39,10 @@ struct module void (*cleanup)(void); const struct exception_table_entry *ex_table_start; const struct exception_table_entry *ex_table_end; +#ifdef __mips__ + const struct exception_table_entry *dbe_table_start; + const struct exception_table_entry *dbe_table_end; +#endif #ifdef __alpha__ unsigned long gp; #endif diff -up --recursive --new-file modutils-2.4.6.macro/obj/obj_mips.c modutils-2.4.6/obj/obj_mips.c --- modutils-2.4.6.macro/obj/obj_mips.c Fri Jan 5 01:45:19 2001 +++ modutils-2.4.6/obj/obj_mips.c Sun Aug 12 16:16:26 2001 @@ -217,6 +217,15 @@ arch_create_got (struct obj_file *f) int arch_init_module (struct obj_file *f, struct module *mod) { + struct obj_section *sec; + + sec = obj_find_section(f, "__dbe_table"); + if (sec) + { + mod->dbe_table_start = sec->header.sh_addr; + mod->dbe_table_end = sec->header.sh_addr + sec->header.sh_size; + } + return 1; }