[lkml]   [1997]   [Jan]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectCompilation problems with 2.1.20, incorrectly globalized symbols
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?


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

 \ /
  Last update: 2005-03-22 13:38    [W:0.034 / U:0.036 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site