diff --git a/src/system/boot/Jamfile b/src/system/boot/Jamfile index c83002fbb5..728a1f11ab 100644 --- a/src/system/boot/Jamfile +++ b/src/system/boot/Jamfile @@ -104,7 +104,7 @@ rule BuildEFILoader { switch $(TARGET_ARCH) { case x86_64 : - OUTPUT_TARGET on $(efiLoader) = efi-app-x86_64 ; + OUTPUT_TARGET on $(efiLoader) = pei-x86-64 ; case arm : OUTPUT_TARGET on $(efiLoader) = binary ; case arm64 : @@ -119,9 +119,18 @@ rule BuildEFILoader { actions BuildEFILoader { rm -f $(1) - $(TARGET_OBJCOPY_$(TARGET_PACKAGING_ARCH)) -j .text -j .sdata -j .data \ - -j .dynamic -j .dynsym -j .rel -j .rela -j .reloc -j .dynstr \ - --output-target=$(OUTPUT_TARGET) $(2) $(1) + if [ "$(OUTPUT_TARGET)" = "binary" ]; then + # no bfd support, fake efi Pe header + $(TARGET_OBJCOPY_$(TARGET_PACKAGING_ARCH)) -j .text -j .sdata -j .data \ + -j .dynamic -j .dynsym -j .rel -j .rela -j .reloc -j .dynstr \ + --output-target=$(OUTPUT_TARGET) $(2) $(1) + else + # bfd supports pe + efi for arch + $(TARGET_OBJCOPY_$(TARGET_PACKAGING_ARCH)) -j .text -j .sdata -j .data \ + -j .dynamic -j .dynsym -j .rel -j .rela -j .reloc -j .dynstr \ + --output-target=$(OUTPUT_TARGET) \ + --subsystem=efi-app $(2) $(1) + fi }