From: "Daniel Walker (danielwa)" <danielwa@cisco.com>
To: Masahiro Yamada <masahiroy@kernel.org>
Cc: Jing Leng <jleng@ambarella.com>,
"Valerii Chernous -X (vchernou - GLOBALLOGIC INC at Cisco)"
<vchernou@cisco.com>,
"xe-linux-external(mailer list)" <xe-linux-external@cisco.com>,
"linux-kbuild@vger.kernel.org" <linux-kbuild@vger.kernel.org>
Subject: Re: M= modules build w/ objects in different directory
Date: Wed, 27 Mar 2024 16:40:29 +0000 [thread overview]
Message-ID: <ZgRL/GHwgV16+yTb@goliath> (raw)
In-Reply-To: <CAK7LNATUFzG9jTfFB831vZr7t-8w6UWfX85Jn2tEvypkmhcs4A@mail.gmail.com>
On Thu, Mar 21, 2024 at 12:01:23AM +0900, Masahiro Yamada wrote:
> On Wed, Mar 20, 2024 at 8:20 AM Daniel Walker (danielwa)
> <danielwa@cisco.com> wrote:
> >
> >
> > Masahiro,
> >
> > I found this commit,
> >
> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=23a0cb8e3225122496bfa79172005c587c2d64bf
> >
> > It had this note,
> >
> > [masahiro: I do not think "M=$(OUT_DIR) src=$(PWD)" is the official way,
> > but this patch is a nice clean up anyway.]
> >
> > Is there an official way or recommended way to build objects in a directory
> > outside the external modules source directory and outside the original kernel
> > source directory ?
> >
> > Daniel
>
>
> There is no official way.
> One known tip is to use a relative path for M=.
>
> For example, the relative path from your kernel source
> to your external module directory is ../path/to/module
>
> $ make O=path/to/output M=../path/to/module
>
>
> The module objects will be output into
> path/to/output/../path/to/module/.
It seems that this does place objects into the output directory, but there is an
issue where the build system expects include files to exist inside the output
directory as well. For example if the modules includes linux/module.h this file
exists and is found, but module.h also includes asm/rwonce.h which is not found.
I think it's located in include/asm-generic/rwonce.h . I think these asm location
are linked or added as special -I additions during the build but using O=
results in these asm directories not appearing to exist correctly.
Daniel
next prev parent reply other threads:[~2024-03-27 16:41 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-19 23:18 M= modules build w/ objects in different directory Daniel Walker (danielwa)
2024-03-20 15:01 ` Masahiro Yamada
2024-03-27 16:40 ` Daniel Walker (danielwa) [this message]
2024-03-30 23:10 ` Masahiro Yamada
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=ZgRL/GHwgV16+yTb@goliath \
--to=danielwa@cisco.com \
--cc=jleng@ambarella.com \
--cc=linux-kbuild@vger.kernel.org \
--cc=masahiroy@kernel.org \
--cc=vchernou@cisco.com \
--cc=xe-linux-external@cisco.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