<p>Patrick Georgi has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/29253">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">security/vboot: build vboot_fw20.a per stage<br><br>When used more widely across the tree, we don't want to have<br>to worry if all its users are on the same architecture<br>(eg. aarch32 vs aarch64), so just build their own library for<br>each stage.<br><br>Change-Id: Ib6807ff73c2713f3b23f43055325b2c40ff1a17d<br>Signed-off-by: Patrick Georgi <pgeorgi@google.com><br>---<br>M src/security/vboot/Makefile.inc<br>1 file changed, 22 insertions(+), 27 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/53/29253/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/security/vboot/Makefile.inc b/src/security/vboot/Makefile.inc</span><br><span>index 781aa5e..c9dd39f 100644</span><br><span>--- a/src/security/vboot/Makefile.inc</span><br><span>+++ b/src/security/vboot/Makefile.inc</span><br><span>@@ -80,44 +80,39 @@</span><br><span> </span><br><span> romstage-$(CONFIG_FSP2_0_USES_TPM_MRC_HASH) += mrc_cache_hash_tpm.c</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-ifeq ($(CONFIG_VBOOT_SEPARATE_VERSTAGE),y)</span><br><span style="color: hsl(0, 100%, 40%);">-VB_FIRMWARE_ARCH := $(ARCHDIR-$(ARCH-verstage-y))</span><br><span style="color: hsl(0, 100%, 40%);">-else</span><br><span style="color: hsl(0, 100%, 40%);">-ifeq ($(CONFIG_VBOOT_STARTS_IN_BOOTBLOCK),y)</span><br><span style="color: hsl(0, 100%, 40%);">-VB_FIRMWARE_ARCH := $(ARCHDIR-$(ARCH-bootblock-y))</span><br><span style="color: hsl(0, 100%, 40%);">-else</span><br><span style="color: hsl(0, 100%, 40%);">-VB_FIRMWARE_ARCH := $(ARCHDIR-$(ARCH-romstage-y))</span><br><span style="color: hsl(0, 100%, 40%);">-endif</span><br><span style="color: hsl(0, 100%, 40%);">-endif # CONFIG_VBOOT_SEPARATE_VERSTAGE</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-VB2_LIB = $(obj)/external/vboot_reference/vboot_fw20.a</span><br><span style="color: hsl(0, 100%, 40%);">-VBOOT_CFLAGS += $(patsubst -I%,-I$(top)/%,\</span><br><span style="color: hsl(0, 100%, 40%);">-                $(patsubst $(src)/%.h,$(top)/$(src)/%.h,\</span><br><span style="color: hsl(0, 100%, 40%);">-               $(filter-out -I$(obj), $(CPPFLAGS_verstage))))</span><br><span style="color: hsl(0, 100%, 40%);">-VBOOT_CFLAGS += $(CFLAGS_verstage)</span><br><span style="color: hsl(0, 100%, 40%);">-VBOOT_CFLAGS += $(verstage-c-ccopts)</span><br><span style="color: hsl(0, 100%, 40%);">-VBOOT_CFLAGS += -I$(abspath $(obj)) -Wno-missing-prototypes</span><br><span style="color: hsl(0, 100%, 40%);">-VBOOT_CFLAGS += -DVBOOT_DEBUG</span><br><span style="color: hsl(120, 100%, 40%);">+# call with $1 = stage name to create rules for building the library</span><br><span style="color: hsl(120, 100%, 40%);">+# for the stage and adding it to the stage's set of object files.</span><br><span style="color: hsl(120, 100%, 40%);">+define vboot-for-stage</span><br><span style="color: hsl(120, 100%, 40%);">+VB2_LIB_$(1) = $(obj)/external/vboot_reference-$(1)/vboot_fw20.a</span><br><span style="color: hsl(120, 100%, 40%);">+VBOOT_CFLAGS_$(1) += $$(patsubst -I%,-I$(top)/%,\</span><br><span style="color: hsl(120, 100%, 40%);">+                $$(patsubst $(src)/%.h,$(top)/$(src)/%.h,\</span><br><span style="color: hsl(120, 100%, 40%);">+            $$(filter-out -I$(obj), $$(CPPFLAGS_$(1)))))</span><br><span style="color: hsl(120, 100%, 40%);">+VBOOT_CFLAGS_$(1) += $$(CFLAGS_$(1))</span><br><span style="color: hsl(120, 100%, 40%);">+VBOOT_CFLAGS_$(1) += $$($(1)-c-ccopts)</span><br><span style="color: hsl(120, 100%, 40%);">+VBOOT_CFLAGS_$(1) += -I$(abspath $(obj)) -Wno-missing-prototypes</span><br><span style="color: hsl(120, 100%, 40%);">+VBOOT_CFLAGS_$(1) += -DVBOOT_DEBUG</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-$(VB2_LIB): $(obj)/config.h</span><br><span style="color: hsl(120, 100%, 40%);">+$$(VB2_LIB_$(1)): $(obj)/config.h</span><br><span>   printf "    MAKE       $(subst $(obj)/,,$(@))\n"</span><br><span style="color: hsl(0, 100%, 40%);">-      +FIRMWARE_ARCH=$(VB_FIRMWARE_ARCH) \</span><br><span style="color: hsl(0, 100%, 40%);">-    CC="$(CC_verstage)" \</span><br><span style="color: hsl(0, 100%, 40%);">- CFLAGS="$(VBOOT_CFLAGS)" VBOOT2="y" \</span><br><span style="color: hsl(120, 100%, 40%);">+     +FIRMWARE_ARCH=$$(ARCHDIR-$$(ARCH-$(1)-y)) \</span><br><span style="color: hsl(120, 100%, 40%);">+  CC="$$(CC_$(1))" \</span><br><span style="color: hsl(120, 100%, 40%);">+  CFLAGS="$$(VBOOT_CFLAGS_$(1))" VBOOT2="y" \</span><br><span>      $(MAKE) -C $(VBOOT_SOURCE) \</span><br><span style="color: hsl(0, 100%, 40%);">-            BUILD=$(abspath $(dir $(VB2_LIB))) \</span><br><span style="color: hsl(120, 100%, 40%);">+          BUILD=$$(abspath $$(dir $$(VB2_LIB_$(1)))) \</span><br><span>                 V=$(V) \</span><br><span>             fwlib20</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-verstage-srcs += $(VB2_LIB)</span><br><span style="color: hsl(120, 100%, 40%);">+$(1)-srcs += $$(VB2_LIB_$(1))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+endef # vboot-for-stage</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+$(eval $(call vboot-for-stage,verstage))</span><br><span> </span><br><span> ifeq ($(CONFIG_VBOOT_SEPARATE_VERSTAGE),y)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-# This works under the assumption that romstage and verstage use the same</span><br><span style="color: hsl(0, 100%, 40%);">-# architecture and thus CC_verstage is the same as CC_romstage. If this is not</span><br><span style="color: hsl(0, 100%, 40%);">-# true, VB2_LIB needs to ensure that correct CC is being used.</span><br><span> ifeq ($(CONFIG_VBOOT_HAS_REC_HASH_SPACE),y)</span><br><span style="color: hsl(0, 100%, 40%);">-romstage-srcs += $(VB2_LIB)</span><br><span style="color: hsl(120, 100%, 40%);">+$(eval $(call vboot-for-stage,romstage))</span><br><span> endif</span><br><span> </span><br><span> cbfs-files-$(CONFIG_VBOOT_SEPARATE_VERSTAGE) += $(CONFIG_CBFS_PREFIX)/verstage</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/29253">change 29253</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/29253"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Ib6807ff73c2713f3b23f43055325b2c40ff1a17d </div>
<div style="display:none"> Gerrit-Change-Number: 29253 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Patrick Georgi <pgeorgi@google.com> </div>