[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 05/10] roms/edk2-funcs.sh: add the qemu_edk2_get
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-devel] [PATCH 05/10] roms/edk2-funcs.sh: add the qemu_edk2_get_thread_count() function |
Date: |
Sun, 10 Mar 2019 16:13:30 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 |
On 3/9/19 1:48 AM, Laszlo Ersek wrote:
> The edk2 "build" utility natively supports building modules (that is, INF
> files) in parallel. The feature is not useful when building a single
> module (with the "-m" option), but it is useful for platform firmware
> builds (which include many modules). Add a function that determines the
> "-n" option argument for "build", from the MAKEFLAGS variable (i.e. based
> on the presence of a make job server).
>
> Signed-off-by: Laszlo Ersek <address@hidden>
> ---
> roms/edk2-funcs.sh | 25 ++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/roms/edk2-funcs.sh b/roms/edk2-funcs.sh
> index 22a5dc8f6ab6..7fc62f074c59 100644
> --- a/roms/edk2-funcs.sh
> +++ b/roms/edk2-funcs.sh
> @@ -226,3 +226,28 @@ qemu_edk2_set_cross_env()
>
> eval "export $cross_prefix_var=\$cross_prefix"
> }
> +
> +
> +# Determine the "-n" option argument (that is, the number of modules to build
> +# in parallel) for the edk2 "build" utility. Print the result to the standard
> +# output.
> +#
> +# Parameters:
> +# $1: the value of the MAKEFLAGS variable
> +qemu_edk2_get_thread_count()
> +{
> + local makeflags="$1"
> +
> + if [[ "$makeflags" == *--jobserver-auth=* ]] ||
> + [[ "$makeflags" == *--jobserver-fds=* ]]; then
> + # If there is a job server, allow the edk2 "build" utility to parallelize
> + # as many module builds as there are logical CPUs in the system. The
> "make"
> + # instances forked by "build" are supposed to limit themselves through
> the
> + # job server. The zero value below causes the edk2 "build" utility to
> fetch
> + # the logical CPU count with Python's multiprocessing.cpu_count() method.
> + printf '0\n'
Nice, it works smoothly :)
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
> + else
> + # Build a single module at a time.
> + printf '1\n'
> + fi
> +}
>
- Re: [Qemu-devel] [PATCH 01/10] roms: lift "edk2-funcs.sh" from "tests/uefi-test-tools/build.sh", (continued)
- [Qemu-devel] [PATCH 02/10] roms/edk2-funcs.sh: require gcc-4.8+ for building i386 and x86_64, Laszlo Ersek, 2019/03/08
- [Qemu-devel] [PATCH 03/10] tests/uefi-test-tools/build.sh: work around TianoCore#1607, Laszlo Ersek, 2019/03/08
- [Qemu-devel] [PATCH 04/10] roms/edk2: advance to tag edk2-stable201903, Laszlo Ersek, 2019/03/08
- [Qemu-devel] [PATCH 05/10] roms/edk2-funcs.sh: add the qemu_edk2_get_thread_count() function, Laszlo Ersek, 2019/03/08
- Re: [Qemu-devel] [PATCH 05/10] roms/edk2-funcs.sh: add the qemu_edk2_get_thread_count() function,
Philippe Mathieu-Daudé <=
- [Qemu-devel] [PATCH 06/10] roms/Makefile: replace the $(EFIROM) target with "edk2-basetools", Laszlo Ersek, 2019/03/08
[Qemu-devel] [PATCH 07/10] roms: build edk2 firmware binaries and variable store templates, Laszlo Ersek, 2019/03/08