[RFC PATCH 0/3] Add kconfig symbol as module attribute

From: Cristina Moraru
Date: Sun Jul 31 2016 - 11:37:37 EST


This patchset implements dynamic pegging of kconfig symbol
into driver modinfo section

* adds a kconfig symbol attribute to struct module
* updates streamline_config.pl to generate the auxiliary file
scripts/mod/Module.ksymb containing associations of driver file
names and corresponding kconfig symbols CONFIG_*
* updates modpost to use the information from Module.ksymb to
add the content of the attribute kconfig_symbol.

Please note that this patchset is part of a research and
currently does not provide complete correctness or efficiency.

The result of this patchset is the following: the attribute
kconfig_symbol is added but only for some modules, namely for
those for which the module name corresponds to the source file
name of the driver. This has been observed by the fact that
there are more srcversion attributes than kconfig_symbol. This
happens mostly because, in some cases, the driver name does not
match the registered module name (more details in the the PATCH2
commit message). Also, in file Module.ksymb some object names
have more than one CONFIG_* symbol. This is because that object
it may be a platform independent component that is linked to more
than one driver. So, all CONFIGs in which is found appear as
associated with this object. However, I'm guessing this doesn't
happen for final individual modules.
Currently, for the sake of the proof of concept, the first of
the CONFIG_* options is considered.

Usage:
First run 'make localmodconfig' in order to generate the .config
file and Module.ksymb file with the associations. Then compile
the kernel. In the machine booted with this kernel kconfig_symbol
attributes should appear in /sys instances of the modules.

Thanks,
Cristina

Cristina Moraru (3):
Add kconfig_symbol attribute to struct module
Add generation of Module.ksymb file in streamline_config.pl
Add dynamic pegging of Kconfig symbol

include/linux/module.h | 1 +
kernel/module.c | 1 +
scripts/kconfig/streamline_config.pl | 20 +++++++++++++++
scripts/mod/modpost.c | 47 ++++++++++++++++++++++++++++++++++++
scripts/mod/modpost.h | 1 +
5 files changed, 70 insertions(+)

--
2.7.4