aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--roms/Makefile1
-rwxr-xr-xroms/edk2-build.sh4
-rw-r--r--roms/edk2-funcs.sh17
-rw-r--r--tests/uefi-test-tools/Makefile1
-rwxr-xr-xtests/uefi-test-tools/build.sh6
5 files changed, 25 insertions, 4 deletions
diff --git a/roms/Makefile b/roms/Makefile
index 3ffd13cc7e..da4efa47a9 100644
--- a/roms/Makefile
+++ b/roms/Makefile
@@ -141,6 +141,7 @@ build-efi-roms: build-pxe-roms
#
edk2-basetools:
$(MAKE) -C edk2/BaseTools \
+ PYTHON_COMMAND=$${EDK2_PYTHON_COMMAND:-python3} \
EXTRA_OPTFLAGS='$(EDK2_BASETOOLS_OPTFLAGS)' \
EXTRA_LDFLAGS='$(EDK2_BASETOOLS_LDFLAGS)'
diff --git a/roms/edk2-build.sh b/roms/edk2-build.sh
index 4f46f8a6a2..d5391c7637 100755
--- a/roms/edk2-build.sh
+++ b/roms/edk2-build.sh
@@ -27,8 +27,7 @@ shift $num_args
cd edk2
-# Work around <https://bugzilla.tianocore.org/show_bug.cgi?id=1607>.
-export PYTHON_COMMAND=python2
+export PYTHON_COMMAND=${EDK2_PYTHON_COMMAND:-python3}
# Source "edksetup.sh" carefully.
set +e +u +C
@@ -43,6 +42,7 @@ fi
# any), for the edk2 "build" utility.
source ../edk2-funcs.sh
edk2_toolchain=$(qemu_edk2_get_toolchain "$emulation_target")
+MAKEFLAGS=$(qemu_edk2_quirk_tianocore_1607 "$MAKEFLAGS")
edk2_thread_count=$(qemu_edk2_get_thread_count "$MAKEFLAGS")
qemu_edk2_set_cross_env "$emulation_target"
diff --git a/roms/edk2-funcs.sh b/roms/edk2-funcs.sh
index a9fae7ee89..3f4485b201 100644
--- a/roms/edk2-funcs.sh
+++ b/roms/edk2-funcs.sh
@@ -251,3 +251,20 @@ qemu_edk2_get_thread_count()
printf '1\n'
fi
}
+
+
+# Work around <https://bugzilla.tianocore.org/show_bug.cgi?id=1607> by
+# filtering jobserver-related flags out of MAKEFLAGS. Print the result to the
+# standard output.
+#
+# Parameters:
+# $1: the value of the MAKEFLAGS variable
+qemu_edk2_quirk_tianocore_1607()
+{
+ local makeflags="$1"
+
+ printf %s "$makeflags" \
+ | LC_ALL=C sed --regexp-extended \
+ --expression='s/--jobserver-(auth|fds)=[0-9]+,[0-9]+//' \
+ --expression='s/-j([0-9]+)?//'
+}
diff --git a/tests/uefi-test-tools/Makefile b/tests/uefi-test-tools/Makefile
index 7e0177d733..1dcddcdbba 100644
--- a/tests/uefi-test-tools/Makefile
+++ b/tests/uefi-test-tools/Makefile
@@ -100,6 +100,7 @@ Build/bios-tables-test.%.efi: build-edk2-tools
build-edk2-tools:
$(MAKE) -C $(edk2_dir)/BaseTools \
+ PYTHON_COMMAND=$${EDK2_PYTHON_COMMAND:-python3} \
EXTRA_OPTFLAGS='$(EDK2_BASETOOLS_OPTFLAGS)' \
EXTRA_LDFLAGS='$(EDK2_BASETOOLS_LDFLAGS)'
diff --git a/tests/uefi-test-tools/build.sh b/tests/uefi-test-tools/build.sh
index 8aa7935c43..3b78f30840 100755
--- a/tests/uefi-test-tools/build.sh
+++ b/tests/uefi-test-tools/build.sh
@@ -29,8 +29,7 @@ export PACKAGES_PATH=$(realpath -- "$edk2_dir")
export WORKSPACE=$PWD
mkdir -p Conf
-# Work around <https://bugzilla.tianocore.org/show_bug.cgi?id=1607>.
-export PYTHON_COMMAND=python2
+export PYTHON_COMMAND=${EDK2_PYTHON_COMMAND:-python3}
# Source "edksetup.sh" carefully.
set +e +u +C
@@ -46,12 +45,15 @@ fi
source "$edk2_dir/../edk2-funcs.sh"
edk2_arch=$(qemu_edk2_get_arch "$emulation_target")
edk2_toolchain=$(qemu_edk2_get_toolchain "$emulation_target")
+MAKEFLAGS=$(qemu_edk2_quirk_tianocore_1607 "$MAKEFLAGS")
+edk2_thread_count=$(qemu_edk2_get_thread_count "$MAKEFLAGS")
qemu_edk2_set_cross_env "$emulation_target"
# Build the UEFI binary
mkdir -p log
build \
--arch="$edk2_arch" \
+ -n "$edk2_thread_count" \
--buildtarget=DEBUG \
--platform=UefiTestToolsPkg/UefiTestToolsPkg.dsc \
--tagname="$edk2_toolchain" \