diff options
author | Jean-Philippe Brucker <jean-philippe@linaro.org> | 2024-07-24 18:27:07 +0100 |
---|---|---|
committer | Liming Gao <gaoliming@byosoft.com.cn> | 2025-06-25 14:37:58 +0800 |
commit | 7d4b9f5cb1ac68a1e680921ded77d67d5caf678f (patch) | |
tree | fc2737712a5da761a5132e1c8eeb5cf8d59436a9 /BaseTools/Source/Python/sitecustomize.py | |
parent | 5925977a4e713dcec3ad34f1ee5362fb1bf8ea18 (diff) | |
download | edk2-7d4b9f5cb1ac68a1e680921ded77d67d5caf678f.zip edk2-7d4b9f5cb1ac68a1e680921ded77d67d5caf678f.tar.gz edk2-7d4b9f5cb1ac68a1e680921ded77d67d5caf678f.tar.bz2 |
BaseTools: Declare $(DEBUG_DIR)/<module>.efi output
$(DEBUG_DIR)/<M>.efi is generated by the recipe of
$(OUTPUT_DIR)/<M>.efi: the .efi file is generated and then copied into
$(DEBUG_DIR). At the moment the generate GNUmakefile does not declare
the dependency between these two files, which can be a problem because
$(FFS_OUTPUT_DIR)/<M>.offset depends on $(DEBUG_DIR)/<M>.efi.
Normally $(DEBUG_DIR)/<M>.efi is generated first and there is no
problem, but when an external tool builds edk2 from a Makefile, like
OP-TEE build does for instance, the parallel '-j' flag passed to Make is
inherited by the edk2 GNUmakefile from the environment. As a result Make
might try to build the $(FFS_OUTPUT_DIR)/<M>.offset target in parallel
and fail to find the .efi file:
make[1]: *** No rule to make target 'Build/ArmVirtQemu-AARCH64/DEBUG_GCC5/AARCH64/NetworkPkg/VlanConfigDxe/VlanConfigDxe/DEBUG/VlanConfigDxe.efi', needed by 'Build/ArmVirtQemu-AARCH64/DEBUG_GCC5/FV/Ffs/E4F61863-FE2C-4b56-A8F4-08519BC439DFVlanConfigDxe/VlanConfigDxe.offset'. Stop.
If we declare the $(DEBUG_DIR) file as output of this rule, then the
generated GNUmakefile will contain the right dependency declaration:
$(DEBUG_DIR)/VlanConfigDxe.efi: $(OUTPUT_DIR)/VlanConfigDxe.efi
and the parallel build will succeed.
Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Diffstat (limited to 'BaseTools/Source/Python/sitecustomize.py')
0 files changed, 0 insertions, 0 deletions