Messages in this thread | | | From | Keith Owens <> | Subject | 2.1.16, 1,600 externally defined symbols with no external references | Date | Sun, 22 Dec 1996 21:42:33 +1100 |
| |
There are over 1,600 externally defined kernel variables and functions that do not appear to be referenced outside the module they are declared in. These symbols are spread over 300+ modules.
Externally defined symbols with no external references can complicate kernel hacking. Whenever a symbol is defined as static you *know* it is only used in the current module or via X() or some sort of ops structure. If a global symbol is not defined as static, you have to start hunting for any external references, often there is none.
Some of these external names leave a lot to be desired. For example, drivers/char/wdt.c defines 'io' and 'irq' with no prefix, a bit of name space pollution there.
For the sanity of current and future kernel hackers, it would be nice to reduce the number of "incorrectly" defined external variables. Defining these symbols as static will also highlight any global variables that are declared and not used. Given the large number of modules, I would prefer to let the various maintainers update their own modules.
Rather than mail a 2,000 line report to everybody on this list (15K gzipped and uuencoded), anybody who is interested in cleaning up these definitions can fetch the report by anonymous ftp from
ftp://ftp.ocs.com.au/pub/extra_externals-2.1.16.gz
Be gentle, it is behind a 28.8K link.
| |