Messages in this thread | | | Subject | Re: OFFTOPIC: binary modules, bad idea! | Date | Fri, 19 Dec 1997 17:05:03 -0800 | From | Stephen Williams <> |
| |
/* resident.c */ EXPORT_SYMBOL( foo ); extern void foo( char * );
/* module.c */ extern int foo( int );
How 'bout if after linking the dwarf information is twisted into something that can be used to compare symbol types? I don't know enough about dwarf, but seems like something can be done. Perhaps one can post-process the dwarf information into something small and efficient.
Compiling a module would use only the information available from the dwarf symbols in the module, and a similar transformation is made.
Finally, insmod can compare the crunched information from the kernel with the crunched information from the module, and reject it if they fail to match. This way, in theory, one can detect type mismatches of most any form without paying any attention to the version numbers.
gcc goes through all kinds of hoops to decorate the types, it seems plausible to leverage that information. Or am I missing something?
-- Steve Williams steve@icarus.com steve@picturel.com
"The woods are lovely, dark and deep. But I have promises to keep, And lines to code before I sleep, And lines to code before I sleep."
| |