Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp1291255pxb; Fri, 22 Jan 2021 11:40:50 -0800 (PST) X-Google-Smtp-Source: ABdhPJzlu7PxNEgrD+JMdZFBjUQB/ZkEHRIW0p93ZjlJ3fwgb68kLTBLdyjOfECogwe5Lx0T2ZTK X-Received: by 2002:a17:907:1b27:: with SMTP id mp39mr54181ejc.519.1611344449937; Fri, 22 Jan 2021 11:40:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1611344449; cv=none; d=google.com; s=arc-20160816; b=g0DOEt+Qa+NWxSJJuXEtB2QGGQ6DUMAn2RYDlG+XK/LyZggdjjTIZIN56Sw7tQgOyT tcYEMIIzFpkyJT+gTpvIDJcBkKDpDpgjy7snzTK3JzhLV8oGf1Ma40lvXFuAarULQg+x 4vOBAZgo7teox+7pfKW90dCnvMMtb5ByImUatk36ssgciXA3TuKDTwvS2QENra3mdS76 X2ql7jinoEj+v5IkV+DaluE8OtaiEyIE3GDnskPRQ3EyEJSFoJm9jWN80VxTeSAEWNNo XehKWlw8Kp+mrG0x5cbMlISSELPaJccdn3M9rXvpAiEEit0EISF/QV+9GpZglEGdnUMX QP4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from:dmarc-filter :sender:dkim-signature; bh=NLASw+FMPYsOPSzQUMWurko1Y5QqPihZKYt4qAXLYvw=; b=Auva1pCSQSp06XdlKNyOobcvkNFSk0OnjRD3jBXfZLEjc+oCVqtjAfx+itB1q9RvUu tU7BxH9J29NmGpEa1y6xnLF86vSJfMpcl3NFBm3K6Vtk8q6FJ5JzmoR594dX2dNvsrGW LXRv9uq1TZU97ARvle5qO/R6xo0HQjPORUpAZv+ysCzBm7QqGaFd8mulnWFn3R0fcXw4 5RR6kN+yz7Qp3c157zE91boK6BKLfmsamJ63z6bxTUTayUPs3DjICuOJuXImjRw9vRqk EQR8K9Gk15nUBJFRuAa/Y8r7uo2ZY697fBuHxqKgkmTVaXNpFi5WDUnVIKkbMKvCytuD GbKQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mg.codeaurora.org header.s=smtp header.b=EFDGA9CA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q4si3253651ejr.478.2021.01.22.11.40.25; Fri, 22 Jan 2021 11:40:49 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mg.codeaurora.org header.s=smtp header.b=EFDGA9CA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730815AbhAVTj5 (ORCPT + 99 others); Fri, 22 Jan 2021 14:39:57 -0500 Received: from a1.mail.mailgun.net ([198.61.254.60]:36014 "EHLO a1.mail.mailgun.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730633AbhAVT25 (ORCPT ); Fri, 22 Jan 2021 14:28:57 -0500 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1611343707; h=Message-Id: Date: Subject: Cc: To: From: Sender; bh=NLASw+FMPYsOPSzQUMWurko1Y5QqPihZKYt4qAXLYvw=; b=EFDGA9CAZO4S8h3epDhlLzoy1DE45+Y26ue5bzsvnkzp+qP3B/7++o+9G7qtN8VVKxGmsOXR EollkCIokWVxmmiZLEZTAA9kzB/eQamfUqeH5pAlVi+GC89h8FZYhMR1GhjiFetJi2hv2P+W lZC9Kg217iGBT262TOI591o8llc= X-Mailgun-Sending-Ip: 198.61.254.60 X-Mailgun-Sid: WyI0MWYwYSIsICJsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnIiwgImJlOWU0YSJd Received: from smtp.codeaurora.org (ec2-35-166-182-171.us-west-2.compute.amazonaws.com [35.166.182.171]) by smtp-out-n04.prod.us-east-1.postgun.com with SMTP id 600b273b2c36b2106db2ce00 (version=TLS1.2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256); Fri, 22 Jan 2021 19:27:55 GMT Sender: eberman=codeaurora.org@mg.codeaurora.org Received: by smtp.codeaurora.org (Postfix, from userid 1001) id B8E64C43464; Fri, 22 Jan 2021 19:27:54 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-caf-mail-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=ALL_TRUSTED,BAYES_00,SPF_FAIL, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from eberman-linux.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: eberman) by smtp.codeaurora.org (Postfix) with ESMTPSA id 8FFEBC433ED; Fri, 22 Jan 2021 19:27:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 8FFEBC433ED Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; spf=fail smtp.mailfrom=eberman@codeaurora.org From: Elliot Berman To: Nick Desaulniers , Masahiro Yamada Cc: Elliot Berman , linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, Michal Marek , Sami Tolvanen , Trilok Soni , Mahesh Kumar Kalikot Veetil , Jeff Johnson Subject: [RFC 0/2] Kbuild: Support nested composite objects Date: Fri, 22 Jan 2021 11:27:16 -0800 Message-Id: <1611343638-28206-1-git-send-email-eberman@codeaurora.org> X-Mailer: git-send-email 2.7.4 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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