[RFC 0/2] Kbuild: Support nested composite objects

From: Elliot Berman
Date: Fri Jan 22 2021 - 14:40:25 EST


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.

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