Revisión | 14d40ab1d55e54a87350d44769152dd7a59a7b42 (tree) |
---|---|
Tiempo | 2019-10-08 20:30:13 |
Autor | Peter Maydell <peter.maydell@lina...> |
Commiter | Peter Maydell |
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:
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
@@ -51,7 +51,7 @@ SEABIOS_EXTRAVERSION="-prebuilt.qemu.org" | ||
51 | 51 | # |
52 | 52 | EDK2_EFIROM = edk2/BaseTools/Source/C/bin/EfiRom |
53 | 53 | |
54 | -default: | |
54 | +default help: | |
55 | 55 | @echo "nothing is build by default" |
56 | 56 | @echo "available build targets:" |
57 | 57 | @echo " bios -- update bios.bin (seabios)" |
@@ -141,6 +141,7 @@ build-efi-roms: build-pxe-roms | ||
141 | 141 | # |
142 | 142 | edk2-basetools: |
143 | 143 | $(MAKE) -C edk2/BaseTools \ |
144 | + PYTHON_COMMAND=$${EDK2_PYTHON_COMMAND:-python3} \ | |
144 | 145 | EXTRA_OPTFLAGS='$(EDK2_BASETOOLS_OPTFLAGS)' \ |
145 | 146 | EXTRA_LDFLAGS='$(EDK2_BASETOOLS_LDFLAGS)' |
146 | 147 |
@@ -46,8 +46,13 @@ all: $(foreach flashdev,$(flashdevs),../pc-bios/edk2-$(flashdev).fd.bz2) \ | ||
46 | 46 | # files. |
47 | 47 | .INTERMEDIATE: $(foreach flashdev,$(flashdevs),../pc-bios/edk2-$(flashdev).fd) |
48 | 48 | |
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. | |
49 | 52 | 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 | |
51 | 56 | |
52 | 57 | # See notes on the ".NOTPARALLEL" target and the "+" indicator in |
53 | 58 | # "tests/uefi-test-tools/Makefile". |
@@ -27,8 +27,7 @@ shift $num_args | ||
27 | 27 | |
28 | 28 | cd edk2 |
29 | 29 | |
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} | |
32 | 31 | |
33 | 32 | # Source "edksetup.sh" carefully. |
34 | 33 | set +e +u +C |
@@ -43,6 +42,7 @@ fi | ||
43 | 42 | # any), for the edk2 "build" utility. |
44 | 43 | source ../edk2-funcs.sh |
45 | 44 | edk2_toolchain=$(qemu_edk2_get_toolchain "$emulation_target") |
45 | +MAKEFLAGS=$(qemu_edk2_quirk_tianocore_1607 "$MAKEFLAGS") | |
46 | 46 | edk2_thread_count=$(qemu_edk2_get_thread_count "$MAKEFLAGS") |
47 | 47 | qemu_edk2_set_cross_env "$emulation_target" |
48 | 48 |
@@ -251,3 +251,20 @@ qemu_edk2_get_thread_count() | ||
251 | 251 | printf '1\n' |
252 | 252 | fi |
253 | 253 | } |
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 | +} |
@@ -20,6 +20,14 @@ git checkout "v${version}" | ||
20 | 20 | git submodule update --init |
21 | 21 | (cd roms/seabios && git describe --tags --long --dirty > .version) |
22 | 22 | (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) | |
23 | 31 | popd |
24 | 32 | tar --exclude=.git -cjf ${destination}.tar.bz2 ${destination} |
25 | 33 | rm -rf ${destination} |
@@ -99,7 +99,10 @@ Build/bios-tables-test.%.efi: build-edk2-tools | ||
99 | 99 | +./build.sh $(edk2_dir) BiosTablesTest $* $@ |
100 | 100 | |
101 | 101 | 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)' | |
103 | 106 | |
104 | 107 | clean: |
105 | 108 | rm -rf Build Conf log |
@@ -29,8 +29,7 @@ export PACKAGES_PATH=$(realpath -- "$edk2_dir") | ||
29 | 29 | export WORKSPACE=$PWD |
30 | 30 | mkdir -p Conf |
31 | 31 | |
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} | |
34 | 33 | |
35 | 34 | # Source "edksetup.sh" carefully. |
36 | 35 | set +e +u +C |
@@ -46,12 +45,15 @@ fi | ||
46 | 45 | source "$edk2_dir/../edk2-funcs.sh" |
47 | 46 | edk2_arch=$(qemu_edk2_get_arch "$emulation_target") |
48 | 47 | 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") | |
49 | 50 | qemu_edk2_set_cross_env "$emulation_target" |
50 | 51 | |
51 | 52 | # Build the UEFI binary |
52 | 53 | mkdir -p log |
53 | 54 | build \ |
54 | 55 | --arch="$edk2_arch" \ |
56 | + -n "$edk2_thread_count" \ | |
55 | 57 | --buildtarget=DEBUG \ |
56 | 58 | --platform=UefiTestToolsPkg/UefiTestToolsPkg.dsc \ |
57 | 59 | --tagname="$edk2_toolchain" \ |