The edk2-build.sh script set the 'nounset' option: BASH(1)
set [arg ...] -u Treat unset variables and parameters other than the special parameters "@" and "*" as an error when performing parameter expansion. If expansion is attempted on an unset variable or parameter, the shell prints an error message, and, if not interactive, exits with a non-zero status. When running this script out of 'make', we get: $ cd roms $ ./edk2-build.sh aarch64 --arch=AARCH64 --platform=ArmVirtPkg/ArmVirtQemu.dsc > /dev/null ./edk2-build.sh: line 46: MAKEFLAGS: unbound variable Fix this by checking the variable is defined before using it, else use a default value. Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> --- roms/edk2-build.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/roms/edk2-build.sh b/roms/edk2-build.sh index 4f46f8a6a2..5390228b4e 100755 --- a/roms/edk2-build.sh +++ b/roms/edk2-build.sh @@ -43,7 +43,13 @@ fi # any), for the edk2 "build" utility. source ../edk2-funcs.sh edk2_toolchain=$(qemu_edk2_get_toolchain "$emulation_target") -edk2_thread_count=$(qemu_edk2_get_thread_count "$MAKEFLAGS") +if [ -v MAKEFLAGS ]; then + edk2_thread_count=$(qemu_edk2_get_thread_count "$MAKEFLAGS") +else + # We are not running within 'make', let the edk2 "build" utility to fetch + # the logical CPU count with Python's multiprocessing.cpu_count() method. + edk2_thread_count=0 +fi qemu_edk2_set_cross_env "$emulation_target" # Build the platform firmware. -- 2.20.1