On Sat, Jan 23, 2021 at 4:27 AM Elliot Berman <eberman@xxxxxxxxxxxxxx> wrote: > > This series was developed after discussion in https://lkml.org/lkml/2021/1/19/850 > > The motivation for this series is an out-of-tree module which contains a large > number of source files. This causes Kbuild to exceed the maximum command line > argument length when linking the files. Proposal here permits composite objects > to contain other composite objects. This allows the driver to split linking into > several steps and avoid the maximum command line length error. External modules often get the cold shoulder. For example, https://lore.kernel.org/patchwork/patch/1175556/#1372233 This problem has not been observed in the upstream tree. I do not see a good reason to complicate the build infrastructure for some external modules. > Kbuild composite objects only supports one level of composite objects. > That is, a composite object may only be composed of real compilable > source files. > > As a simple example, the following Kbuild description is now supported: > > bar-a-y := a/bar0.o a/bar1.o > bar-b-y := b/bar2.o b/bar3.o > > foo-objs := bar-a.o bar-b.o > > obj-m += foo.o > > Add such support by recursively searching for composite objects and > listing them in $(multi-used-*) and $(real-obj-*). > > Elliot Berman (2): > Kbuild: Make composite object searching more generic > Kbuild: Support nested composite objects > > scripts/Makefile.lib | 20 ++++++++++++++++---- > 1 file changed, 16 insertions(+), 4 deletions(-) > > -- > The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, > a Linux Foundation Collaborative Project > -- Best Regards Masahiro Yamada