public inbox for linux-usb@vger.kernel.org
 help / color / mirror / Atom feed
From: Mika Westerberg <mika.westerberg@linux.intel.com>
To: Jiri Slaby <jirislaby@kernel.org>
Cc: Masahiro Yamada <masahiroy@kernel.org>,
	Linux Kbuild mailing list <linux-kbuild@vger.kernel.org>,
	andreas.noever@gmail.com, michael.jamet@intel.com,
	YehezkelShB@gmail.com, USB list <linux-usb@vger.kernel.org>,
	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Subject: Re: make localmodconfig doesn't work for thunderbolt
Date: Thu, 11 May 2023 11:51:54 +0300	[thread overview]
Message-ID: <20230511085154.GQ66750@black.fi.intel.com> (raw)
In-Reply-To: <4cb758c7-f4f5-820c-c7e7-5b900ccc2534@kernel.org>

Hi,

On Wed, May 10, 2023 at 01:00:54PM +0200, Jiri Slaby wrote:
> Hi,
> 
> if I use localmodconfig for example like this:
> mkdir /tmp/tb/
> echo thunderbolt >/tmp/tb/lsmod
> make O=/tmp/tb LSMOD=/tmp/tb/lsmod localmodconfig
> 
> I get:
> using config: '.config'
> thunderbolt config not found!!
> 
> $ grep 'USB4\>' /tmp/tb/.config
> # CONFIG_USB4 is not set
> 
> I believe it's due to:
>   obj-${CONFIG_USB4} := thunderbolt.o
> in drivers/thunderbolt/Makefile. I.e. ${} used instead of more common $().
> 
> But even if I change the parser:
> 
> --- a/scripts/kconfig/streamline_config.pl
> +++ b/scripts/kconfig/streamline_config.pl
> @@ -317,7 +317,7 @@ foreach my $makefile (@makefiles) {
>         $_ = convert_vars($_, %make_vars);
> 
>         # collect objects after obj-$(CONFIG_FOO_BAR)
> -       if (/obj-\$\((CONFIG_[^\)]*)\)\s*[+:]?=\s*(.*)/) {
> +       if (/obj-\$[({](CONFIG_[^})]*)[)}]\s*[+:]?=\s*(.*)/) {
>             $var = $1;
>             $objs = $2;
> 
> 
> I see:
> module thunderbolt did not have configs CONFIG_USB4
> 
> and:
> $ grep 'USB4\>' /tmp/tb/.config
> # CONFIG_USB4 is not set
> 
> So two questions:
> 1) is ${} supported and should be the above change sent as a patch? Or
> should be drivers/thunderbolt/Makefile fixed to use $(). (And maybe other
> Makefiles too.)

The streamline_config.pl mentions use of ${} in comments itself:

# add to the configs hash all configs that are needed to enable
# a loaded module. This is a direct obj-${CONFIG_FOO} += bar.o
# where we know we need bar.o so we add FOO to the list.

So I think it should be made to support this.

> 2) how to fix that 'thunderbolt did not have configs'?

There are bunch of other symbols that generate the same (after the above
fix from you), not just Thunderbolt so figuring that out and fix would
be the way forward I think. However, my perl skills are are not up to
this task at the moment. I can take a look but cannot promise that I
figure a solution.

  reply	other threads:[~2023-05-11  8:52 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-10 11:00 make localmodconfig doesn't work for thunderbolt Jiri Slaby
2023-05-11  8:51 ` Mika Westerberg [this message]
2023-05-11 16:15 ` Masahiro Yamada
2023-05-13 23:28   ` Steven Rostedt
2023-05-13 23:30     ` Steven Rostedt
2023-06-06  4:16 ` Masahiro Yamada
2023-06-06  6:52   ` Jiri Slaby

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=20230511085154.GQ66750@black.fi.intel.com \
    --to=mika.westerberg@linux.intel.com \
    --cc=YehezkelShB@gmail.com \
    --cc=andreas.noever@gmail.com \
    --cc=jirislaby@kernel.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=masahiroy@kernel.org \
    --cc=michael.jamet@intel.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox