Branch: refs/heads/master
  Home:   https://github.com/tianocore/edk2
  Commit: 7d4b9f5cb1ac68a1e680921ded77d67d5caf678f
      
https://github.com/tianocore/edk2/commit/7d4b9f5cb1ac68a1e680921ded77d67d5caf678f
  Author: Jean-Philippe Brucker <[email protected]>
  Date:   2025-06-25 (Wed, 25 Jun 2025)

  Changed paths:
    M BaseTools/Conf/build_rule.template

  Log Message:
  -----------
  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 <[email protected]>



To unsubscribe from these emails, change your notification settings at 
https://github.com/tianocore/edk2/settings/notifications


_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to