On 10/25/19 10:45 AM, Keller, Jacob E wrote: > >> -----Original Message----- >> From: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> >> Sent: Wednesday, October 23, 2019 6:22 PM >> To: Keller, Jacob E <jacob.e.keller@xxxxxxxxx> >> Cc: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>; intel-wired-lan@xxxxxxxxxxxxxxxx; >> linux-kernel@xxxxxxxxxxxxxxx; linux-kbuild <linux-kbuild@xxxxxxxxxxxxxxx> >> Subject: Re: [PATCH] namespace: fix namespace.pl script to support relative >> paths >> >> On Thu, Oct 24, 2019 at 6:34 AM Keller, Jacob E >> <jacob.e.keller@xxxxxxxxx> wrote: >>> >>>> -----Original Message----- >>>> From: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> >>>> Sent: Tuesday, October 22, 2019 10:22 PM >>>> To: Keller, Jacob E <jacob.e.keller@xxxxxxxxx>; Randy Dunlap >>>> <rdunlap@xxxxxxxxxxxxx> >>>> Cc: intel-wired-lan@xxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; linux- >> kbuild >>>> <linux-kbuild@xxxxxxxxxxxxxxx> >>>> Subject: Re: [PATCH] namespace: fix namespace.pl script to support relative >>>> paths >>>> >>>> This scripts has been 5-year broken, >>>> and I did not see any complaint except from you. >>>> So, I wonder how many people are using this. >>>> >>>> Nor, do I understand how to use it. >>>> >>>> Could you teach me a bit more about this script? >>>> >>>> >>>> >>>> Something might be missing in my mind, but >>>> I do not know how to use this script in a useful way. >>>> >>>> >>>> >>>> It provides three checks. >>>> >>>> [1] list_multiply_defined() >>>> >>>> This warns multiple definition of functions. >>>> >>>> The compiler would fail if it saw any multiple definition, >>>> so the reports from this check are all false-positive. >>>> >>>> >>>> [2] resolve_external_references() >>>> >>>> This warns unresolved symbols. >>>> >>>> The compiler would fail if it saw any unresolved symbol, >>>> so the reports from this check are all false-positive, too. >>>> >>>> >>> >>> The compiler won't necessarily fail when building modules, because the symbol >> might be in another loadable module. >> >> Right, but this is already checked by modpost, isn't it? >> >> >> >>>> >>>> >>>> [3] list_extra_externals >>>> >>>> This warns symbols with no reference. >>>> >>>> This potentially contains lots of false-positives. >>>> For example, the core framework provides APIs, but if all drivers >>>> are disabled, there is no user of those APIs. >>>> >>> >>> We use this to help verify that driver modules do not expose symbols. >> >> Ah, the output is quite large, so >> you search for only modules in your interest. Right? >> > > We run it on only one module at a time, yes. > >> >> If you want to detect missing 'static', >> have you tried 'sparse'? >> > > We've used that as well. > > To be fair, I agree that it covers similar functionality as other tools. I haven't looked directly at namespace.pl output in a while, and the fix here is multiple years old that took a long time to get picked up. > > If it's agreed that the tool has no value, and especially if it results in false indications of a problem, then maybe removing it to prevent someone from mis-reading its output makes sense? If there is a satisfactory alternative, I expect that namespace.pl is old, unmaintained, and unneeded, and should go away. -- ~Randy