Skip to content
  • Laszlo Ersek's avatar
    edk2 build scripts: work around TianoCore#1607 without forcing Python 2 · 037973bb
    Laszlo Ersek authored
    
    
    It turns out that forcing python2 for running the edk2 "build" utility is
    neither necessary nor sufficient.
    
    Forcing python2 is not sufficient for two reasons:
    
    - QEMU is moving away from python2, with python2 nearing EOL,
    
    - according to my most recent testing, the lacking dependency information
      in the makefiles that are generated by edk2's "build" utility can cause
      parallel build failures even when "build" is executed by python2.
    
    And forcing python2 is not necessary because we can still return to the
    original idea of filtering out jobserver-related options from MAKEFLAGS.
    So do that.
    
    While at it, cut short edk2's auto-detection of the python3.* minor
    version, by setting PYTHON_COMMAND to "python3" (which we expect to be
    available wherever we intend to build edk2).
    
    With this patch, the guest UEFI binaries that are used as part of the BIOS
    tables test, and the OVMF and ArmVirtQemu platform firmwares, will be
    built strictly in a single job, regardless of an outermost "-jN" make
    option. Alas, there appears to be no reliable way to build edk2 in an
    (outer make, inner make) environment, with a jobserver enabled.
    
    Cc: Eduardo Habkost <ehabkost@redhat.com>
    Cc: John Snow <jsnow@redhat.com>
    Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
    Reported-by: default avatarJohn Snow <jsnow@redhat.com>
    Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
    Tested-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
    Reviewed-by: default avatarJohn Snow <jsnow@redhat.com>
    Signed-off-by: default avatarLaszlo Ersek <lersek@redhat.com>
    Message-Id: <20190920083808.21399-3-lersek@redhat.com>
    Signed-off-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
    037973bb