From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Mon, 26 Jun 2023 17:35:19 +0200 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qDoFM-004fLp-Nz for lore@lore.pengutronix.de; Mon, 26 Jun 2023 17:35:19 +0200 Received: from bombadil.infradead.org ([2607:7c80:54:3::133]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qDoFK-0006Sw-Gw for lore@pengutronix.de; Mon, 26 Jun 2023 17:35:19 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id: Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-Id:Date :Subject:To:From:Reply-To:Content-Type:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=c08zw/FwHnbUXERcQTbmcm5xiWk+S3CZN3rI0Ien+YQ=; b=T3xsValfD1Pp0n JFagXe9EgieXW5DEs1hCyjb8Md1j7LeAX7eN8lQCmqe22Skk7JD8hQabBghWip49zh7noor04tW+L cDnAlB6m9rYIXAxNvWV901ZQwu5kbvNWO5/FDo9qns2steooXr7P1gzrgsxWAKLvs5N7xcvxgBhzs AdibnCM5By0sJQ0p1wtgn8qbFkl/ijCYG++c4H1EzmJrjGDHV1hgU6pzRaCZFm0mPsEUPrJd1xUV5 g75F21yT8afpMu4XlafCh52dUf/YlxwH6yPDILo/VOf547UHXwq3JeJ8CxW8YDVMBuSe6IL8dD18v 0+p2GZNPX5/dsg2IrCbg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qDoEE-00AV4r-0x; Mon, 26 Jun 2023 15:34:10 +0000 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qDoEB-00AV3C-1V for barebox@lists.infradead.org; Mon, 26 Jun 2023 15:34:08 +0000 Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qDoE9-0005zR-8n; Mon, 26 Jun 2023 17:34:05 +0200 Received: from [2a0a:edc0:0:1101:1d::54] (helo=dude05.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1qDoE8-00AF8L-KK; Mon, 26 Jun 2023 17:34:04 +0200 Received: from afa by dude05.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1qDoE7-00F5OB-39; Mon, 26 Jun 2023 17:34:03 +0200 From: Ahmad Fatoum To: barebox@lists.infradead.org Date: Mon, 26 Jun 2023 17:33:34 +0200 Message-Id: <20230626153335.3592017-3-a.fatoum@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230626153335.3592017-1-a.fatoum@pengutronix.de> References: <20230626153335.3592017-1-a.fatoum@pengutronix.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230626_083407_505623_B1D5E85F X-CRM114-Status: GOOD ( 11.58 ) X-BeenThere: barebox@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: uol@pengutronix.de, Ahmad Fatoum Sender: "barebox" X-SA-Exim-Connect-IP: 2607:7c80:54:3::133 X-SA-Exim-Mail-From: barebox-bounces+lore=pengutronix.de@lists.infradead.org X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on metis.ext.pengutronix.de X-Spam-Level: X-Spam-Status: No, score=-4.9 required=4.0 tests=AWL,BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Subject: [PATCH master v1 2/6] firmware: turn missing firmware into linker error X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on metis.ext.pengutronix.de) Appending to firmware-y results in an assembly file being generated that defines a section embedding the firmware in question verbatim via .incbin. To update the assembly file as required, the target has a dependency on the firmware. When the firmware is missing, the build will abort there. In preparation for deferring missing PBL firmware errors till the very end, let's remove the firmware dependency if the missing firmware file is built into PBL and replace the .incbin with a reference to an ultimately undefined variable. Signed-off-by: Ahmad Fatoum --- firmware/Makefile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/firmware/Makefile b/firmware/Makefile index 8050d0418d33..c66d19c677e8 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -41,6 +41,7 @@ obj-pbl-y := $(addsuffix .gen.o, $(firmware-y)) FWNAME = $(patsubst $(obj)/%.extgen.S,%,$(patsubst $(obj)/%.gen.S,%,$@)) FWSTR = $(subst /,_,$(subst .,_,$(subst -,_,$(FWNAME)))) +FWNAME_EXISTS = $(if $(wildcard $(fwdir)/$(FWNAME)),1,0) filechk_fwbin = { \ echo "/* Generated by $(src)/Makefile */" ;\ @@ -50,7 +51,11 @@ filechk_fwbin = { \ echo " .p2align $(ASM_LGPTR)" ;\ echo ".global _fw_$(FWSTR)_start" ;\ echo "_fw_$(FWSTR)_start:" ;\ + echo "\#if $(FWNAME_EXISTS)" ;\ echo " .incbin \"$(fwdir)/$(FWNAME)\"" ;\ + echo "\#else" ;\ + echo "ASM_PTR _fwname_$(FWSTR)" ;\ + echo "\#endif" ;\ echo ".global _fw_$(FWSTR)_end" ;\ echo "_fw_$(FWSTR)_end:" ;\ } @@ -88,7 +93,7 @@ clean-files += *.sha.bin *.sum $(patsubst %.gen.o,$(obj)/%.gen.o, $(obj-pbl-y)): $(obj)/%.gen.o: $(fwdir)/% # The same for pbl: -$(patsubst %.gen.o,$(obj)/%.gen.pbl.o, $(obj-pbl-y)): $(obj)/%.gen.pbl.o: $(fwdir)/% +$(patsubst %.gen.o,$(obj)/%.gen.pbl.o, $(obj-pbl-y)): $(obj)/%.gen.pbl.o: $(wildcard $(fwdir)/%) $(patsubst %.gen.o,$(obj)/%.extgen.pbl.o, $(pbl-y)): $(obj)/%.extgen.pbl.o: $(fwdir)/% pbl-y := $(addsuffix .extgen.o, $(fw-external-y)) -- 2.39.2