Re: Linux GPL and binary module exception clause?

Nix
2003-12-13T15:01:21Z

On Sat, 13 Dec 2003, viro@parcelfarce.linux.theplanet.co.uk yowled:
> On Sat, Dec 13, 2003 at 12:11:58AM +0000, Nix wrote:
>> > Some approximation might be obtained by building all modules and
>> > doing nm on them, with manual work for non-obvious cases.
>>
>> Hang on, surely you can tell which symbols in modules are exported just
>> by looking for expansions of EXPORT_SYMBOL{_GPL}? Why is this bit hard?
>
> It's not a question of which symbols are exported by module, it's what
> symbols are _imported_.

Yes, of course. That's what you use the hacked-up non-macro-expanding-or-
#if-processing preprocessor for. :)

> IOW, the hard question is "what modules use foo()", not "where do we define
> foo()". And while it's easy for a single symbol, we want it for _all_
> exported symbols in the tree at once.

Hm, OK, so a hacked cpp isn't good enough because it still requires more
than grep over preprocessed-save-for-#if-and-macro-expansion sources to
determine if you'll get an external symbol reference.

(Hm, or does it? We'll get FPs doing it that way, from text in literal
strings, but how many? How many modules contain the names of exported
symbols from other modules in literal strings? Not many, I guess, but
there's no way to tell but to try... I'll have a whack at it.)

--
`...some suburbanite DSL customer who thinks kernel patches are some
form of military insignia.' --- Bob Apthorpe