linux/drivers/firmware
Masahiro Yamada 97ba4416d6 efi/libstub: zboot: do not use $(shell ...) in cmd_copy_and_pad
You do not need to use $(shell ...) in recipe lines, as they are already
executed in a shell. An alternative solution is $$(...), which is an
escaped sequence of the shell's command substituion, $(...).

For this case, there is a reason to avoid $(shell ...).

Kbuild detects command changes by using the if_changed macro, which
compares the previous command recorded in .*.cmd with the current
command from Makefile. If they differ, Kbuild re-runs the build rule.

To diff the commands, Make must expand $(shell ...) first. It means that
hexdump is executed every time, even when nothing needs rebuilding. If
Kbuild determines that vmlinux.bin needs rebuilding, hexdump will be
executed again to evaluate the 'cmd' macro, one more time to really
build vmlinux.bin, and finally yet again to record the expanded command
into .*.cmd.

Replace $(shell ...) with $$(...) to avoid multiple, unnecessay shell
evaluations. Since Make is agnostic about the shell code, $(...), the
if_changed macro compares the string "$(hexdump -s16 -n4 ...)" verbatim,
so hexdump is run only for building vmlinux.bin.

For the same reason, $(shell ...) in EFI_ZBOOT_OBJCOPY_FLAGS should be
eliminated.

While I was here, I replaced '&&' with ';' because a command for
if_changed is executed with 'set -e'.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20231218080127.907460-1-masahiroy@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
2023-12-19 10:02:40 +00:00
..
arm_ffa firmware: arm_ffa: Upgrade the driver version to v1.1 2023-10-08 21:18:48 +01:00
arm_scmi Arm SCMI updates for v6.7 2023-10-16 22:54:17 +02:00
broadcom MIPS: BCM47XX: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:51 -07:00
cirrus firmware: cirrus: cs_dsp: Only log list of algorithms in debug build 2023-09-13 18:50:32 +01:00
efi efi/libstub: zboot: do not use $(shell ...) in cmd_copy_and_pad 2023-12-19 10:02:40 +00:00
google firmware: coreboot: framebuffer: Allow building with simpledrm 2023-08-04 16:31:32 +02:00
imx - Move Kconfig files into the pmdomain subsystem 2023-11-01 13:09:46 -10:00
meson firmware: meson: Use device_get_match_data() 2023-10-09 10:48:15 +02:00
psci firmware/psci: demote suspend-mode warning to info level 2023-04-14 13:48:56 +02:00
qcom firmware: qcom: scm: remove unneeded 'extern' specifiers 2023-10-22 09:14:54 -07:00
smccc firmware: smccc: Fix use of uninitialised results structure 2023-07-18 10:08:05 +01:00
tegra SoC driver updates for 6.7 2023-11-01 14:46:51 -10:00
xilinx firmware: xilinx: Move EXPORT_SYMBOL_GPL next to zynqmp_pm_feature definition 2023-10-27 13:16:31 +02:00
arm_scpi.c firmware: arm_scpi: Use device_get_match_data() 2023-10-08 21:16:30 +01:00
arm_sdei.c arm64: sdei: abort running SDEI handlers during crash 2023-08-04 17:35:33 +01:00
dmi_scan.c
dmi-id.c
dmi-sysfs.c firmware: dmi-sysfs: handle HAS_IOPORT=n 2023-05-31 19:17:29 +01:00
edd.c edd: make kobj_type structure constant 2023-03-09 18:07:33 +01:00
iscsi_ibft_find.c iscsi_ibft: Fix finding the iBFT under Xen Dom 0 2023-06-26 07:47:11 +02:00
iscsi_ibft.c
Kconfig vhost,virtio,vdpa,firmware: bugfixes 2023-11-16 07:39:37 -05:00
Makefile asm-generic updates for v6.7 2023-11-01 15:28:33 -10:00
memmap.c
mtk-adsp-ipc.c firmware: Explicitly include correct DT includes 2023-08-12 10:31:01 +02:00
qemu_fw_cfg.c riscv, qemu_fw_cfg: Add support for RISC-V architecture 2023-11-01 09:31:16 -04:00
raspberrypi.c firmware: raspberrypi: Fix devm_rpi_firmware_get documentation 2023-10-09 11:51:00 -07:00
scpi_pm_domain.c firmware: Explicitly include correct DT includes 2023-08-12 10:31:01 +02:00
stratix10-rsu.c Char/Misc driver changes for 6.6-rc1 2023-09-01 09:53:54 -07:00
stratix10-svc.c firmware: stratix10-svc: Generic Mailbox Command 2023-08-04 16:31:37 +02:00
sysfb_simplefb.c firmware/sysfb: Fix VESA format selection 2023-04-21 14:27:31 +02:00
sysfb.c drivers/firmware: Move sysfb_init() from device_initcall to subsys_initcall_sync 2023-05-15 13:36:30 +02:00
ti_sci.c firmware: ti_sci: Use device_get_match_data() 2023-10-16 10:28:25 -05:00
ti_sci.h
trusted_foundations.c
turris-mox-rwtm.c firmware: turris-mox-rwtm: make kobj_type structure constant 2023-04-07 17:17:00 +02:00