Compilation problems with 2.1.20, incorrectly globalized symbols

Dale R. Worley (worley@ariadne.com)
Tue, 14 Jan 1997 10:31:57 -0500


One "fun" consequence of attempting to choose "everything" when
compiling a kernel is discovering symbols that were declared global
when they should have been local to individual source files. In this
case, I've found:

- drivers/isdn/teles/mod.c defines "io" globally at 23

- drivers/char/wdt.c defines "io" and "irq" globally at 53 and 54

- drivers/isdn/pcbit/module.c defines "irq" and "mem" globally at 25
and 26

In all cases the solution is to mark these declarations static.
Recompilation shows that these identifiers are not referenced from any
other file.

The horror is realizing that I have only discovered the symbols that
are incorrectly globalized in two or more files -- ones globalized in
one file don't cause visible errors.

BTW, I notice that someone occasionally publishes a list of
multiply-defined symbols, incorrectly globalized symbols, and other
namespace pollution. Doesn't anyone *do* anything with that list?
Might it not be a good idea if Linus were to take that list and tell
the developers "Your code doesn't go into the kernel until it isn't on
this list!"

Anyway, could someone get these changes into the kernel?

Thanks!

Dale

--
Dale R. Worley					Ariadne Internet Services
Voice: +1 617-899-7949   Fax: +1 617-899-7946	E-mail: worley@ariadne.com
"Internet-based electronic commerce solutions to real business problems."