• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revisión14d40ab1d55e54a87350d44769152dd7a59a7b42 (tree)
Tiempo2019-10-08 20:30:13
AutorPeter Maydell <peter.maydell@lina...>
CommiterPeter Maydell

Log Message

Improve scripts relying on the EDK2 submodule,
drop Python2 dependency in EDK2 build scripts.
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEicHnj2Ae6GyGdJXLoqP9bt6twN4FAl2bPjoACgkQoqP9bt6t
wN6fOhAAzJm5IDx6w8HFqLyMhdgfBh0q/6xCNKCpbiVIpkmZeetUPb8WsKizCQQ+
uhsl6KcKErrGTorBLPUcSDaeCdaCCPOoLEZqxbCYQ1xNDjiK6pXStm+7Ztyp9KBG
e92qQEXZMjKel0toWMNMLlVVR3yY6zNkKTqBXmIYIBb+qVGFoZdwCo/9f/8KlGv1
iyN1Bl4hGRaIw/qQ9ptjctuWeE1dOm1UawXdvAi7yBUs4kuJ1nLk7MaBEueOKZHh
3KdcroJw55N5kTbHiUonRbmGHikjxicOlmpKGi7x415iec4o3pGiXR5AGcQuoJNX
lhopEG/+Eiq2IzmVUp6mYFDmvCKzt4sTnFGFkPWVuPDmJ8ym8x+D12ESrCn/tbwj
eaYBPhSi2BcEkaIblk4pj7Bma7RntVt5ga2q/2chqhSWI5X85rmW/avMgBj9y4Xo
hQVhyWKIqTuw2cFdigL9OQFzRxhPaltFQO6e/5iyjbwNZnFKwzN1OoZ2PAOK1BtZ
veoyDWsD/6YjhcOogABVlUI13rSj+M9soR++fjmMe/n+DTqpvfjPUOOmZ6PvWS9Q
zodyctKkKZau0ecq5ZoE3JfMLMSPO0XIKk46bO/cRphn5VoxC4bnEjqQ+rMbnEp+
1arIEW3m7e3Ngmvb6zUrHIL7dTtvzri9kq4vFkAskwrg8t2R0Kg=
=BE2l
-----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/philmd-gitlab/tags/edk2-next-20191007' into staging

Improve scripts relying on the EDK2 submodule,
drop Python2 dependency in EDK2 build scripts.

# gpg: Signature made Mon 07 Oct 2019 14:31:38 BST
# gpg: using RSA key 89C1E78F601EE86C867495CBA2A3FD6EDEADC0DE
# gpg: Good signature from "Philippe Mathieu-Daudé (Phil) <philmd@redhat.com>" [marginal]
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg: It is not certain that the signature belongs to the owner.
# Primary key fingerprint: 89C1 E78F 601E E86C 8674 95CB A2A3 FD6E DEAD C0DE

* remotes/philmd-gitlab/tags/edk2-next-20191007:

edk2 build scripts: work around TianoCore#1607 without forcing Python 2
edk2 build scripts: honor external BaseTools flags with uefi-test-tools
roms: Add a 'make help' target alias
roms/Makefile.edk2: don't pull in submodules when building from tarball
make-release: pull in edk2 submodules so we can build it from tarballs

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Cambiar Resumen

Diferencia incremental

--- a/roms/Makefile
+++ b/roms/Makefile
@@ -51,7 +51,7 @@ SEABIOS_EXTRAVERSION="-prebuilt.qemu.org"
5151 #
5252 EDK2_EFIROM = edk2/BaseTools/Source/C/bin/EfiRom
5353
54-default:
54+default help:
5555 @echo "nothing is build by default"
5656 @echo "available build targets:"
5757 @echo " bios -- update bios.bin (seabios)"
@@ -141,6 +141,7 @@ build-efi-roms: build-pxe-roms
141141 #
142142 edk2-basetools:
143143 $(MAKE) -C edk2/BaseTools \
144+ PYTHON_COMMAND=$${EDK2_PYTHON_COMMAND:-python3} \
144145 EXTRA_OPTFLAGS='$(EDK2_BASETOOLS_OPTFLAGS)' \
145146 EXTRA_LDFLAGS='$(EDK2_BASETOOLS_LDFLAGS)'
146147
--- a/roms/Makefile.edk2
+++ b/roms/Makefile.edk2
@@ -46,8 +46,13 @@ all: $(foreach flashdev,$(flashdevs),../pc-bios/edk2-$(flashdev).fd.bz2) \
4646 # files.
4747 .INTERMEDIATE: $(foreach flashdev,$(flashdevs),../pc-bios/edk2-$(flashdev).fd)
4848
49+# Fetch edk2 submodule's submodules. If it is not in a git tree, assume
50+# we're building from a tarball and that they've already been fetched by
51+# make-release/tarball scripts.
4952 submodules:
50- cd edk2 && git submodule update --init --force
53+ if test -d edk2/.git; then \
54+ cd edk2 && git submodule update --init --force; \
55+ fi
5156
5257 # See notes on the ".NOTPARALLEL" target and the "+" indicator in
5358 # "tests/uefi-test-tools/Makefile".
--- a/roms/edk2-build.sh
+++ b/roms/edk2-build.sh
@@ -27,8 +27,7 @@ shift $num_args
2727
2828 cd edk2
2929
30-# Work around <https://bugzilla.tianocore.org/show_bug.cgi?id=1607>.
31-export PYTHON_COMMAND=python2
30+export PYTHON_COMMAND=${EDK2_PYTHON_COMMAND:-python3}
3231
3332 # Source "edksetup.sh" carefully.
3433 set +e +u +C
@@ -43,6 +42,7 @@ fi
4342 # any), for the edk2 "build" utility.
4443 source ../edk2-funcs.sh
4544 edk2_toolchain=$(qemu_edk2_get_toolchain "$emulation_target")
45+MAKEFLAGS=$(qemu_edk2_quirk_tianocore_1607 "$MAKEFLAGS")
4646 edk2_thread_count=$(qemu_edk2_get_thread_count "$MAKEFLAGS")
4747 qemu_edk2_set_cross_env "$emulation_target"
4848
--- a/roms/edk2-funcs.sh
+++ b/roms/edk2-funcs.sh
@@ -251,3 +251,20 @@ qemu_edk2_get_thread_count()
251251 printf '1\n'
252252 fi
253253 }
254+
255+
256+# Work around <https://bugzilla.tianocore.org/show_bug.cgi?id=1607> by
257+# filtering jobserver-related flags out of MAKEFLAGS. Print the result to the
258+# standard output.
259+#
260+# Parameters:
261+# $1: the value of the MAKEFLAGS variable
262+qemu_edk2_quirk_tianocore_1607()
263+{
264+ local makeflags="$1"
265+
266+ printf %s "$makeflags" \
267+ | LC_ALL=C sed --regexp-extended \
268+ --expression='s/--jobserver-(auth|fds)=[0-9]+,[0-9]+//' \
269+ --expression='s/-j([0-9]+)?//'
270+}
--- a/scripts/make-release
+++ b/scripts/make-release
@@ -20,6 +20,14 @@ git checkout "v${version}"
2020 git submodule update --init
2121 (cd roms/seabios && git describe --tags --long --dirty > .version)
2222 (cd roms/skiboot && ./make_version.sh > .version)
23+# Fetch edk2 submodule's submodules, since it won't have access to them via
24+# the tarball later.
25+#
26+# A more uniform way to handle this sort of situation would be nice, but we
27+# don't necessarily have much control over how a submodule handles its
28+# submodule dependencies, so we continue to handle these on a case-by-case
29+# basis for now.
30+(cd roms/edk2 && git submodule update --init)
2331 popd
2432 tar --exclude=.git -cjf ${destination}.tar.bz2 ${destination}
2533 rm -rf ${destination}
--- a/tests/uefi-test-tools/Makefile
+++ b/tests/uefi-test-tools/Makefile
@@ -99,7 +99,10 @@ Build/bios-tables-test.%.efi: build-edk2-tools
9999 +./build.sh $(edk2_dir) BiosTablesTest $* $@
100100
101101 build-edk2-tools:
102- $(MAKE) -C $(edk2_dir)/BaseTools
102+ $(MAKE) -C $(edk2_dir)/BaseTools \
103+ PYTHON_COMMAND=$${EDK2_PYTHON_COMMAND:-python3} \
104+ EXTRA_OPTFLAGS='$(EDK2_BASETOOLS_OPTFLAGS)' \
105+ EXTRA_LDFLAGS='$(EDK2_BASETOOLS_LDFLAGS)'
103106
104107 clean:
105108 rm -rf Build Conf log
--- a/tests/uefi-test-tools/build.sh
+++ b/tests/uefi-test-tools/build.sh
@@ -29,8 +29,7 @@ export PACKAGES_PATH=$(realpath -- "$edk2_dir")
2929 export WORKSPACE=$PWD
3030 mkdir -p Conf
3131
32-# Work around <https://bugzilla.tianocore.org/show_bug.cgi?id=1607>.
33-export PYTHON_COMMAND=python2
32+export PYTHON_COMMAND=${EDK2_PYTHON_COMMAND:-python3}
3433
3534 # Source "edksetup.sh" carefully.
3635 set +e +u +C
@@ -46,12 +45,15 @@ fi
4645 source "$edk2_dir/../edk2-funcs.sh"
4746 edk2_arch=$(qemu_edk2_get_arch "$emulation_target")
4847 edk2_toolchain=$(qemu_edk2_get_toolchain "$emulation_target")
48+MAKEFLAGS=$(qemu_edk2_quirk_tianocore_1607 "$MAKEFLAGS")
49+edk2_thread_count=$(qemu_edk2_get_thread_count "$MAKEFLAGS")
4950 qemu_edk2_set_cross_env "$emulation_target"
5051
5152 # Build the UEFI binary
5253 mkdir -p log
5354 build \
5455 --arch="$edk2_arch" \
56+ -n "$edk2_thread_count" \
5557 --buildtarget=DEBUG \
5658 --platform=UefiTestToolsPkg/UefiTestToolsPkg.dsc \
5759 --tagname="$edk2_toolchain" \