Re: VirtualBox module build breakage since commit 39808e451fdf

From: Masahiro Yamada
Date: Mon Dec 16 2019 - 00:13:10 EST


Hi.

On Mon, Dec 16, 2019 at 11:48 AM Larry Finger <Larry.Finger@xxxxxxxxxxxx> wrote:
>
> Hi,
>
> Since commit 39808e451fdf ("kbuild: do not read
> $(KBUILD_EXTMOD)/Module.symvers"), some of the modules for VirtualBox have
> failed to build. There are at least 3 such modules, namely vboxdrv, vboxnetflt,
> and vboxnetadp.

As the section 6.3 of Documentation/kbuild/modules.rst says,
the best practice is to put the related modules into the same source
tree, and then do like this:

obj-m := vboxdrv/ vboxnetfit/ vboxnetadp/



If you want to maintain the three separately,
as 39808e451fdf mentions, you can useKBUILD_EXTRA_SYMBOLS.
KBUILD_EXTRA_SYMBOLS was added more than a decade.
So, you should be able to use it for your modules.

I think it is a cleaner solution than
copying around Module.symvers in your build tree.

Thanks.


> The latter 2 require linking to routines exported from the build
> of the first, thus file "Module.symvers" is copied from the build directory of
> vboxdrv into that of the other modules. Even though the documentation says that
> this method should work, and it has in the past, it fails after this commit. The
> necessary external symbols are not found.
>
> Am I missing some step needed to make the copy of "Module.symvers" method work?
> I understand that the method could lead to stale values; however, the build of
> vboxdrv immediately precedes the build of the others, thus the values are always
> current.
>
> Thanks,
>
> Larry
>


--
Best Regards
Masahiro Yamada