[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Y/fR0KnxKP2rF3Da@bombadil.infradead.org>
Date: Thu, 23 Feb 2023 12:51:28 -0800
From: Luis Chamberlain <mcgrof@...nel.org>
To: Nick Alcock <nick.alcock@...cle.com>
Cc: Christoph Hellwig <hch@....de>,
Thomas Gleixner <tglx@...utronix.de>,
Masahiro Yamada <masahiroy@...nel.org>,
linux-modules@...r.kernel.org, linux-kernel@...r.kernel.org,
Hitomi Hasegawa <hasegawa-hitomi@...itsu.com>,
Marek Szyprowski <m.szyprowski@...sung.com>,
iommu@...ts.linux.dev
Subject: Re: [PATCH 21/27] kbuild, dma-mapping: benchmark: remove
MODULE_LICENSE in non-modules
On Thu, Feb 23, 2023 at 03:31:50PM +0000, Nick Alcock wrote:
> On 22 Feb 2023, Luis Chamberlain spake thusly:
> > Then we look for an optimal way to address the final step:
> >
> > * remove all MODULE_LICENSE() and autogenerate them from SPDX
>
> Ooh that would be nice!
>
> > The difficulty in this will be that we want to upkeep existing build
> > heuristics and avoid to have to traverse the tree twice (see details
> > on commit 8b41fc4454e). I can't think of an easy way to do this that
> > does not involve using kconfig tristate somehow.
>
> Nor can I -- and more generally I can't figure out a way to get from the
> Kconfig symbols to the source files that constitute them without
> retraversing the tree, since the only place the relationship is recorded
> is in makefiles, and those makefiles use a lot of make functionality
> (including more or less arbitrary make functions).
$ grep "_MODULE 1" ./include/generated/autoconf.h| wc -l
560
$ grep "_MODULE 1" ./include/generated/autoconf.h| grep XFS
#define CONFIG_XFS_FS_MODULE 1
I *think* the trick will likely be to have new a possibilities.h or just
agument autoconf.h with POSSIBLE_MODULE for each module.
The next complexity lies in inferring the license and doing the license
output given a combination. I *think* you already figured out the objs
from the module, and in fact your new kallsyms extension I think prints
these out right (which I find highly useful)? If so then we use these as
input source for an SPDX license lookup. Instead of having this
relationship grep'd after at build time, I wonder if might be good to
just collect all license associates to all files in a header file
similar to _MODULE prefix so maybe SPDX_$(file_path)_LICENSE_$license
which creates a header file 1-1 mapping.
Not sure if that's too much noise.
Just a thought, to get the wheels spinning.
Luis
Powered by blists - more mailing lists