All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cristina Moraru <cristina.moraru09@gmail.com>
To: linux-kernel@vger.kernel.org
Cc: mcgrof@kernel.org, teg@jklm.no, kay@vrfy.org,
	rusty@rustcorp.com.au, akpm@linux-foundation.org,
	Cristina Moraru <cristina.moraru09@gmail.com>
Subject: [RFC PATCH 2/5] Add CONFIG symbol to module as compilation parameter
Date: Wed, 17 Aug 2016 21:27:00 +0200	[thread overview]
Message-ID: <1471462023-119645-3-git-send-email-cristina.moraru09@gmail.com> (raw)
In-Reply-To: <1471462023-119645-1-git-send-email-cristina.moraru09@gmail.com>

Add CONFIG symbol to kernel modules as a define via -D
compilation parameter. The CONFIG_FOO symbol for each
module is determined by the module name, using the
associations from Module.ksymb. This file is loaded
using the 'include' directive, thus run like a regular
makefile. The format of the content of the file is the
following:

foo_KCONF=CONFIG_FOO

creating a set of Makefile variables foo_KCONF with the
CONFIG_FOO as values.

The Makefile then adds this value in the compilation
command with -DKBUILD_KCONF='"CONFIG_FOO"'.

This patch is part of a research project within
Google Summer of Code of porting 'make localmodconfig'
for backported drivers. The goal is to enable each
module to expose in /sys its corresponding CONFIG_* option.
The value of this attribute will be dynamically pegged by
modpost without requiring extra work from the driver developers.
Further, this information will be used by a hardware interogation
tool to extract build information about the existing devices.

Signed-off-by: Cristina Moraru <cristina.moraru09@gmail.com>
---
 scripts/Makefile.lib | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index e7df0f5..8ae9b7f 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -89,6 +89,10 @@ multi-objs-m	:= $(addprefix $(obj)/,$(multi-objs-m))
 subdir-ym	:= $(addprefix $(obj)/,$(subdir-ym))
 obj-dirs	:= $(addprefix $(obj)/,$(obj-dirs))
 
+# Include Module.ksymb which contains the associations of modules' names
+# and corresponding CONFIG_* options
+include Module.ksymb
+
 # These flags are needed for modversions and compiling, so we define them here
 # already
 # $(modname_flags) #defines KBUILD_MODNAME as the name of the module it will
@@ -100,6 +104,9 @@ name-fix = $(squote)$(quote)$(subst $(comma),_,$(subst -,_,$1))$(quote)$(squote)
 basename_flags = -DKBUILD_BASENAME=$(call name-fix,$(basetarget))
 modname_flags  = $(if $(filter 1,$(words $(modname))),\
                  -DKBUILD_MODNAME=$(call name-fix,$(modname)))
+ksym-fix = $(squote)$(quote)$($(subst $(comma),_,$(subst -,_,$1))_KCONF)$(quote)$(squote)
+ksymb_flags = $(if $(filter 1,$(words $(modname))),\
+                 -DKBUILD_KSYMB=$(call ksym-fix, $(modname)))
 
 orig_c_flags   = $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(KBUILD_SUBDIR_CCFLAGS) \
                  $(ccflags-y) $(CFLAGS_$(basetarget).o)
@@ -162,7 +169,7 @@ endif
 
 c_flags        = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE)     \
 		 $(__c_flags) $(modkern_cflags)                           \
-		 $(basename_flags) $(modname_flags)
+		 $(basename_flags) $(modname_flags) $(ksymb_flags)
 
 a_flags        = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE)     \
 		 $(__a_flags) $(modkern_aflags)
-- 
2.7.4

  parent reply	other threads:[~2016-08-17 19:27 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-17 19:26 [RFC PATCH 0/5] Add CONFIG symbol as module attribute Cristina Moraru
2016-08-17 19:26 ` [RFC PATCH 1/5] Add generation of Module.symb in streamline_config Cristina Moraru
2016-08-18 18:22   ` Luis R. Rodriguez
2016-08-18 18:22     ` Luis R. Rodriguez
2016-08-18 18:32     ` Luis R. Rodriguez
2016-08-18 18:32       ` Luis R. Rodriguez
     [not found]     ` <CAGZ2q2xi9Uy-ye387=mWhy_fOEJBC593Nos7fH027m-_ZdoOXA@mail.gmail.com>
2016-08-20 14:49       ` Cristina-Gabriela Moraru
2016-08-20 14:49         ` Cristina-Gabriela Moraru
2016-08-23 19:00       ` Luis R. Rodriguez
2016-08-23 19:00         ` Luis R. Rodriguez
2016-08-17 19:27 ` Cristina Moraru [this message]
2016-08-18 18:10   ` [RFC PATCH 2/5] Add CONFIG symbol to module as compilation parameter Luis R. Rodriguez
2016-08-18 18:10     ` Luis R. Rodriguez
2016-08-18 18:55     ` Luis R. Rodriguez
2016-08-18 18:55       ` Luis R. Rodriguez
2016-08-20 15:11     ` Cristina-Gabriela Moraru
2016-08-20 15:11       ` Cristina-Gabriela Moraru
2016-08-23 19:07       ` Luis R. Rodriguez
2016-08-23 19:07         ` Luis R. Rodriguez
2016-08-17 19:27 ` [RFC PATCH 3/5] Trigger Module.ksymb generation in Makefile Cristina Moraru
2016-08-18 18:30   ` Luis R. Rodriguez
2016-08-18 18:30     ` Luis R. Rodriguez
2016-08-17 19:27 ` [RFC PATCH 4/5] Set KCONFIG_KSYMB as value for kconfig_ksymb module attribute Cristina Moraru
2016-08-18 18:59   ` Luis R. Rodriguez
2016-08-18 18:59     ` Luis R. Rodriguez
2016-08-20 15:16     ` Cristina-Gabriela Moraru
2016-08-20 15:16       ` Cristina-Gabriela Moraru
2016-08-23 19:10       ` Luis R. Rodriguez
2016-08-23 19:10         ` Luis R. Rodriguez
2016-08-17 19:27 ` [RFC PATCH 5/5] Add kconf_symb as kernel " Cristina Moraru
2016-08-18 19:02   ` Luis R. Rodriguez
2016-08-18 19:02     ` Luis R. Rodriguez
2016-08-18 17:55 ` [RFC PATCH 0/5] Add CONFIG symbol as " Luis R. Rodriguez
2016-08-18 17:55   ` Luis R. Rodriguez
2016-08-19  9:07   ` Michal Marek
2016-08-19  9:07     ` Michal Marek
2016-08-22 19:48     ` Cristina-Gabriela Moraru
2016-08-22 19:48       ` Cristina-Gabriela Moraru
2016-08-23 21:32     ` Luis R. Rodriguez
2016-08-23 21:32       ` Luis R. Rodriguez
2016-08-24 11:05       ` Michal Marek
2016-08-24 11:05         ` Michal Marek
2016-08-24 16:33         ` Luis R. Rodriguez
2016-08-24 16:33           ` Luis R. Rodriguez
2016-08-24 17:31           ` Naveen Kumar
2016-08-24 17:31             ` Naveen Kumar
2016-08-22 19:35   ` Cristina-Gabriela Moraru
2016-08-22 19:35     ` Cristina-Gabriela Moraru
2016-08-23 19:17     ` Luis R. Rodriguez
2016-08-23 19:17       ` Luis R. Rodriguez
2016-08-25  7:43   ` Christoph Hellwig
2016-08-25  7:43     ` Christoph Hellwig
2016-08-25  8:00     ` Johannes Berg
2016-08-25  8:00       ` Johannes Berg
2016-08-25 19:51       ` Luis R. Rodriguez
2016-08-25 19:51         ` Luis R. Rodriguez
2016-08-25  8:41     ` Michal Marek
2016-08-25  8:41       ` Michal Marek
2016-08-25 20:19     ` Luis R. Rodriguez
2016-08-25 20:19       ` Luis R. Rodriguez
2019-02-05 22:07       ` Luis Chamberlain
2019-02-05 22:07         ` Luis Chamberlain
2019-06-26 22:21         ` Luis Chamberlain
2019-06-26 22:21           ` Luis Chamberlain
2019-06-27  4:50           ` Christoph Hellwig
2019-06-27  4:50             ` Christoph Hellwig
2019-06-28 18:40             ` Luis Chamberlain
2019-06-28 18:40               ` Luis Chamberlain
2019-06-29  8:42               ` Greg Kroah-Hartman
2019-06-29  8:42                 ` Greg Kroah-Hartman
2019-07-02 20:51                 ` Luis Chamberlain
2019-07-02 20:51                   ` Luis Chamberlain
2019-07-03  7:40                   ` Greg Kroah-Hartman
2019-07-03  7:40                     ` Greg Kroah-Hartman
2019-07-03 16:50                     ` Luis Chamberlain
2019-07-03 16:50                       ` Luis Chamberlain
2019-07-03 18:57                       ` Greg Kroah-Hartman
2019-07-03 18:57                         ` Greg Kroah-Hartman
2019-07-03 22:25                         ` Luis Chamberlain
2019-07-03 22:25                           ` Luis Chamberlain
2019-07-11 23:07                           ` Brendan Higgins
2019-07-11 23:07                             ` Brendan Higgins
2019-07-11 23:22                             ` Luis Chamberlain
2019-07-11 23:22                               ` Luis Chamberlain
2019-07-03 12:16               ` Enrico Weigelt, metux IT consult
2019-07-03 12:16                 ` Enrico Weigelt, metux IT consult
2019-07-03 17:35                 ` Luis Chamberlain
2019-07-03 17:35                   ` Luis Chamberlain
2019-07-03 19:31                   ` Enrico Weigelt, metux IT consult
2019-07-03 19:31                     ` Enrico Weigelt, metux IT consult
2019-07-03 22:42                     ` Luis Chamberlain
2019-07-03 22:42                       ` Luis Chamberlain
2019-07-11 23:27                       ` Brendan Higgins
2019-07-11 23:27                         ` Brendan Higgins
2019-07-13 14:44                         ` Enrico Weigelt, metux IT consult
2019-07-13 14:44                           ` Enrico Weigelt, metux IT consult

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1471462023-119645-3-git-send-email-cristina.moraru09@gmail.com \
    --to=cristina.moraru09@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=kay@vrfy.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mcgrof@kernel.org \
    --cc=rusty@rustcorp.com.au \
    --cc=teg@jklm.no \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.