mirror of https://github.com/xemu-project/xemu.git
edk2: update to edk2-stable202308
v2: include acpi test data updates -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEoDKM/7k6F6eZAf59TLbY7tPocTgFAmUIUYUACgkQTLbY7tPo cTiPgQ/9Hfn4ooawA2k7i4KB5mAdNMhG1TYmR05hjIPur8S+UBhfHx3Qdv/lojzr 9hRkXsi3CpV8E/t7sA/ZUVbc17ukBrJvL2VbW1nGqPZytiNqmU/2HOZEd88WByyg O1UYg9FZ1JbrqVbFkrE7Y0CHJmrr4EDWRxEGd7ITPDbR4UEuiQUm7+TeHIbQFCll T5vNxkCBP6smY9n/OEMZHX964D7906pBflHSjzpLPV/mXBrlM/rDNtPXA6dcIquh cCOndACPpenM8ngtgbW2gvDkkflXv4gtLozJR8XE8O434HmCviUjcxGW6L7nelcZ +madon48CZ/5AJUvC09R3xuzWHOBuLOn21O3ooprnCBFWAgCtaMEDWwNbgf1Pig3 PgwOd1HeiQTKRuNCFDwNX1GJRN7Cyq6tY+ALQal3glDmWEMiyihUHViSsqux3c01 RAkyyOJAMOZ6+MbZ4HMWNVI9pKRTYY7IDxg3NWSvlCD3KmDuDt8YBuQftZMN+T8X yMSa1wQda7ATlrsjUZL5LsEYO3qkho4ybffiFFDVz8QR/sO0TQg9uw6mggIghLAh GsSUE9SpVZmu+1lZYV/+/KomGeyNlhfchgIVPApMLQS3j0kDgVeNsrsjfbDgCqsn q3Ame+Roul54cv437F02ugt6JoxP76gNXXn8KdZPIDqOHWxMeS0= =Grjx -----END PGP SIGNATURE----- Merge tag 'firmware/edk2-20230918-pull-request' of https://gitlab.com/kraxel/qemu into staging edk2: update to edk2-stable202308 v2: include acpi test data updates # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCgAdFiEEoDKM/7k6F6eZAf59TLbY7tPocTgFAmUIUYUACgkQTLbY7tPo # cTiPgQ/9Hfn4ooawA2k7i4KB5mAdNMhG1TYmR05hjIPur8S+UBhfHx3Qdv/lojzr # 9hRkXsi3CpV8E/t7sA/ZUVbc17ukBrJvL2VbW1nGqPZytiNqmU/2HOZEd88WByyg # O1UYg9FZ1JbrqVbFkrE7Y0CHJmrr4EDWRxEGd7ITPDbR4UEuiQUm7+TeHIbQFCll # T5vNxkCBP6smY9n/OEMZHX964D7906pBflHSjzpLPV/mXBrlM/rDNtPXA6dcIquh # cCOndACPpenM8ngtgbW2gvDkkflXv4gtLozJR8XE8O434HmCviUjcxGW6L7nelcZ # +madon48CZ/5AJUvC09R3xuzWHOBuLOn21O3ooprnCBFWAgCtaMEDWwNbgf1Pig3 # PgwOd1HeiQTKRuNCFDwNX1GJRN7Cyq6tY+ALQal3glDmWEMiyihUHViSsqux3c01 # RAkyyOJAMOZ6+MbZ4HMWNVI9pKRTYY7IDxg3NWSvlCD3KmDuDt8YBuQftZMN+T8X # yMSa1wQda7ATlrsjUZL5LsEYO3qkho4ybffiFFDVz8QR/sO0TQg9uw6mggIghLAh # GsSUE9SpVZmu+1lZYV/+/KomGeyNlhfchgIVPApMLQS3j0kDgVeNsrsjfbDgCqsn # q3Ame+Roul54cv437F02ugt6JoxP76gNXXn8KdZPIDqOHWxMeS0= # =Grjx # -----END PGP SIGNATURE----- # gpg: Signature made Mon 18 Sep 2023 09:32:53 EDT # gpg: using RSA key A0328CFFB93A17A79901FE7D4CB6D8EED3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" [full] # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" [full] # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" [full] # Primary key fingerprint: A032 8CFF B93A 17A7 9901 FE7D 4CB6 D8EE D3E8 7138 * tag 'firmware/edk2-20230918-pull-request' of https://gitlab.com/kraxel/qemu: tests/acpi: disallow virt/SSDT.memhp updates tests/acpi: update virt/SSDT.memhp edk2: update binaries to edk2-stable202308 edk2: update submodule to edk2-stable202308 edk2: workaround edk-stable202308 bug edk2: update build config edk2: update build script tests/acpi: allow virt/SSDT.memhp updates Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
commit
1361bba536
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1 +1 @@
|
|||
Subproject commit f80f052277c88a67c55e107b550f504eeea947d3
|
||||
Subproject commit 819cfc6b42a68790a23509e4fcc58ceb70e1965e
|
|
@ -26,6 +26,9 @@ DEBUG_PRINT_ERROR_LEVEL = 0x80000000
|
|||
# grub.efi uses EfiLoaderData for code
|
||||
PcdDxeNxMemoryProtectionPolicy = 0xC000000000007FD1
|
||||
|
||||
[pcds.workaround.202308]
|
||||
PcdFirstTimeWakeUpAPsBySipi = FALSE
|
||||
|
||||
####################################################################################
|
||||
# i386
|
||||
|
||||
|
@ -57,6 +60,7 @@ desc = ovmf build (64-bit)
|
|||
conf = OvmfPkg/OvmfPkgX64.dsc
|
||||
arch = X64
|
||||
opts = common
|
||||
pcds = workaround.202308
|
||||
plat = OvmfX64
|
||||
dest = ../pc-bios
|
||||
cpy1 = FV/OVMF_CODE.fd edk2-x86_64-code.fd
|
||||
|
@ -67,6 +71,7 @@ conf = OvmfPkg/OvmfPkgIa32X64.dsc
|
|||
arch = IA32 X64
|
||||
opts = common
|
||||
ovmf.sb.smm
|
||||
pcds = workaround.202308
|
||||
plat = Ovmf3264
|
||||
dest = ../pc-bios
|
||||
cpy1 = FV/OVMF_CODE.fd edk2-x86_64-secure-code.fd
|
||||
|
@ -76,6 +81,7 @@ desc = ovmf build for microvm
|
|||
conf = OvmfPkg/Microvm/MicrovmX64.dsc
|
||||
arch = X64
|
||||
opts = common
|
||||
pcds = workaround.202308
|
||||
plat = MicrovmX64
|
||||
dest = ../pc-bios
|
||||
cpy1 = FV/MICROVM.fd edk2-x86_64-microvm.fd
|
||||
|
@ -120,5 +126,7 @@ conf = OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc
|
|||
arch = RISCV64
|
||||
plat = RiscVVirtQemu
|
||||
dest = ../pc-bios
|
||||
cpy1 = FV/RISCV_VIRT.fd edk2-riscv.fd
|
||||
pad1 = edk2-riscv.fd 32m
|
||||
cpy1 = FV/RISCV_VIRT_CODE.fd edk2-riscv-code.fd
|
||||
cpy2 = FV/RISCV_VIRT_VARS.fd edk2-riscv-vars.fd
|
||||
pad1 = edk2-riscv-code.fd 32m
|
||||
pad2 = edk2-riscv-vars.fd 32m
|
||||
|
|
|
@ -6,6 +6,7 @@ https://gitlab.com/kraxel/edk2-build-config
|
|||
"""
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
import shutil
|
||||
import argparse
|
||||
import subprocess
|
||||
|
@ -45,19 +46,28 @@ def get_coredir(cfg):
|
|||
return os.path.abspath(cfg['global']['core'])
|
||||
return os.getcwd()
|
||||
|
||||
def get_version(cfg):
|
||||
def get_toolchain(cfg, build):
|
||||
if cfg.has_option(build, 'tool'):
|
||||
return cfg[build]['tool']
|
||||
if cfg.has_option('global', 'tool'):
|
||||
return cfg['global']['tool']
|
||||
return 'GCC5'
|
||||
|
||||
def get_version(cfg, silent = False):
|
||||
coredir = get_coredir(cfg)
|
||||
if version_override:
|
||||
version = version_override
|
||||
print('')
|
||||
print(f'### version [override]: {version}')
|
||||
if not silent:
|
||||
print('')
|
||||
print(f'### version [override]: {version}')
|
||||
return version
|
||||
if os.environ.get('RPM_PACKAGE_NAME'):
|
||||
version = os.environ.get('RPM_PACKAGE_NAME')
|
||||
version += '-' + os.environ.get('RPM_PACKAGE_VERSION')
|
||||
version += '-' + os.environ.get('RPM_PACKAGE_RELEASE')
|
||||
print('')
|
||||
print(f'### version [rpmbuild]: {version}')
|
||||
if not silent:
|
||||
print('')
|
||||
print(f'### version [rpmbuild]: {version}')
|
||||
return version
|
||||
if os.path.exists(coredir + '/.git'):
|
||||
cmdline = [ 'git', 'describe', '--tags', '--abbrev=8',
|
||||
|
@ -66,16 +76,17 @@ def get_version(cfg):
|
|||
stdout = subprocess.PIPE,
|
||||
check = True)
|
||||
version = result.stdout.decode().strip()
|
||||
print('')
|
||||
print(f'### version [git]: {version}')
|
||||
if not silent:
|
||||
print('')
|
||||
print(f'### version [git]: {version}')
|
||||
return version
|
||||
return None
|
||||
|
||||
def pcd_string(name, value):
|
||||
return f'{name}=L{value}\\0'
|
||||
|
||||
def pcd_version(cfg):
|
||||
version = get_version(cfg)
|
||||
def pcd_version(cfg, silent = False):
|
||||
version = get_version(cfg, silent)
|
||||
if version is None:
|
||||
return []
|
||||
return [ '--pcd', pcd_string('PcdFirmwareVersionString', version) ]
|
||||
|
@ -85,49 +96,58 @@ def pcd_release_date():
|
|||
return []
|
||||
return [ '--pcd', pcd_string('PcdFirmwareReleaseDateString', release_date) ]
|
||||
|
||||
def build_message(line, line2 = None):
|
||||
def build_message(line, line2 = None, silent = False):
|
||||
if os.environ.get('TERM') in [ 'xterm', 'xterm-256color' ]:
|
||||
# setxterm title
|
||||
start = '\x1b]2;'
|
||||
end = '\x07'
|
||||
print(f'{start}{rebase_prefix}{line}{end}', end = '')
|
||||
|
||||
print('')
|
||||
print('###')
|
||||
print(f'### {rebase_prefix}{line}')
|
||||
if line2:
|
||||
print(f'### {line2}')
|
||||
print('###', flush = True)
|
||||
|
||||
def build_run(cmdline, name, section, silent = False):
|
||||
print(cmdline, flush = True)
|
||||
if silent:
|
||||
print('### building in silent mode ...', flush = True)
|
||||
print(f'### {rebase_prefix}{line}', flush = True)
|
||||
else:
|
||||
print('')
|
||||
print('###')
|
||||
print(f'### {rebase_prefix}{line}')
|
||||
if line2:
|
||||
print(f'### {line2}')
|
||||
print('###', flush = True)
|
||||
|
||||
def build_run(cmdline, name, section, silent = False, nologs = False):
|
||||
if silent:
|
||||
logfile = f'{section}.log'
|
||||
if nologs:
|
||||
print(f'### building in silent mode [no log] ...', flush = True)
|
||||
else:
|
||||
print(f'### building in silent mode [{logfile}] ...', flush = True)
|
||||
start = time.time()
|
||||
result = subprocess.run(cmdline, check = False,
|
||||
stdout = subprocess.PIPE,
|
||||
stderr = subprocess.STDOUT)
|
||||
|
||||
logfile = f'{section}.log'
|
||||
print(f'### writing log to {logfile} ...')
|
||||
with open(logfile, 'wb') as f:
|
||||
f.write(result.stdout)
|
||||
if not nologs:
|
||||
with open(logfile, 'wb') as f:
|
||||
f.write(result.stdout)
|
||||
|
||||
if result.returncode:
|
||||
print('### BUILD FAILURE')
|
||||
print('### cmdline')
|
||||
print(cmdline)
|
||||
print('### output')
|
||||
print(result.stdout.decode())
|
||||
print(f'### exit code: {result.returncode}')
|
||||
else:
|
||||
print('### OK')
|
||||
secs = int(time.time() - start)
|
||||
print(f'### OK ({int(secs/60)}:{secs%60:02d})')
|
||||
else:
|
||||
print(cmdline, flush = True)
|
||||
result = subprocess.run(cmdline, check = False)
|
||||
if result.returncode:
|
||||
print(f'ERROR: {cmdline[0]} exited with {result.returncode}'
|
||||
f' while building {name}')
|
||||
sys.exit(result.returncode)
|
||||
|
||||
def build_copy(plat, tgt, dstdir, copy):
|
||||
srcdir = f'Build/{plat}/{tgt}_GCC5'
|
||||
def build_copy(plat, tgt, toolchain, dstdir, copy):
|
||||
srcdir = f'Build/{plat}/{tgt}_{toolchain}'
|
||||
names = copy.split()
|
||||
srcfile = names[0]
|
||||
if len(names) > 1:
|
||||
|
@ -156,66 +176,68 @@ def pad_file(dstdir, pad):
|
|||
subprocess.run(cmdline, check = True)
|
||||
|
||||
# pylint: disable=too-many-branches
|
||||
def build_one(cfg, build, jobs = None, silent = False):
|
||||
cmdline = [ 'build' ]
|
||||
cmdline += [ '-t', 'GCC5' ]
|
||||
cmdline += [ '-p', cfg[build]['conf'] ]
|
||||
def build_one(cfg, build, jobs = None, silent = False, nologs = False):
|
||||
b = cfg[build]
|
||||
|
||||
if (cfg[build]['conf'].startswith('OvmfPkg/') or
|
||||
cfg[build]['conf'].startswith('ArmVirtPkg/')):
|
||||
cmdline += pcd_version(cfg)
|
||||
cmdline = [ 'build' ]
|
||||
cmdline += [ '-t', get_toolchain(cfg, build) ]
|
||||
cmdline += [ '-p', b['conf'] ]
|
||||
|
||||
if (b['conf'].startswith('OvmfPkg/') or
|
||||
b['conf'].startswith('ArmVirtPkg/')):
|
||||
cmdline += pcd_version(cfg, silent)
|
||||
cmdline += pcd_release_date()
|
||||
|
||||
if jobs:
|
||||
cmdline += [ '-n', jobs ]
|
||||
for arch in cfg[build]['arch'].split():
|
||||
for arch in b['arch'].split():
|
||||
cmdline += [ '-a', arch ]
|
||||
if 'opts' in cfg[build]:
|
||||
for name in cfg[build]['opts'].split():
|
||||
if 'opts' in b:
|
||||
for name in b['opts'].split():
|
||||
section = 'opts.' + name
|
||||
for opt in cfg[section]:
|
||||
cmdline += [ '-D', opt + '=' + cfg[section][opt] ]
|
||||
if 'pcds' in cfg[build]:
|
||||
for name in cfg[build]['pcds'].split():
|
||||
if 'pcds' in b:
|
||||
for name in b['pcds'].split():
|
||||
section = 'pcds.' + name
|
||||
for pcd in cfg[section]:
|
||||
cmdline += [ '--pcd', pcd + '=' + cfg[section][pcd] ]
|
||||
if 'tgts' in cfg[build]:
|
||||
tgts = cfg[build]['tgts'].split()
|
||||
if 'tgts' in b:
|
||||
tgts = b['tgts'].split()
|
||||
else:
|
||||
tgts = [ 'DEBUG' ]
|
||||
for tgt in tgts:
|
||||
desc = None
|
||||
if 'desc' in cfg[build]:
|
||||
desc = cfg[build]['desc']
|
||||
build_message(f'building: {cfg[build]["conf"]} ({cfg[build]["arch"]}, {tgt})',
|
||||
f'description: {desc}')
|
||||
if 'desc' in b:
|
||||
desc = b['desc']
|
||||
build_message(f'building: {b["conf"]} ({b["arch"]}, {tgt})',
|
||||
f'description: {desc}',
|
||||
silent = silent)
|
||||
build_run(cmdline + [ '-b', tgt ],
|
||||
cfg[build]['conf'],
|
||||
b['conf'],
|
||||
build + '.' + tgt,
|
||||
silent)
|
||||
silent,
|
||||
nologs)
|
||||
|
||||
if 'plat' in cfg[build]:
|
||||
if 'plat' in b:
|
||||
# copy files
|
||||
for cpy in cfg[build]:
|
||||
for cpy in b:
|
||||
if not cpy.startswith('cpy'):
|
||||
continue
|
||||
build_copy(cfg[build]['plat'],
|
||||
tgt,
|
||||
cfg[build]['dest'],
|
||||
cfg[build][cpy])
|
||||
build_copy(b['plat'], tgt,
|
||||
get_toolchain(cfg, build),
|
||||
b['dest'], b[cpy])
|
||||
# pad builds
|
||||
for pad in cfg[build]:
|
||||
for pad in b:
|
||||
if not pad.startswith('pad'):
|
||||
continue
|
||||
pad_file(cfg[build]['dest'],
|
||||
cfg[build][pad])
|
||||
pad_file(b['dest'], b[pad])
|
||||
|
||||
def build_basetools(silent = False):
|
||||
build_message('building: BaseTools')
|
||||
def build_basetools(silent = False, nologs = False):
|
||||
build_message('building: BaseTools', silent = silent)
|
||||
basedir = os.environ['EDK_TOOLS_PATH']
|
||||
cmdline = [ 'make', '-C', basedir ]
|
||||
build_run(cmdline, 'BaseTools', 'build.basetools', silent)
|
||||
build_run(cmdline, 'BaseTools', 'build.basetools', silent, nologs)
|
||||
|
||||
def binary_exists(name):
|
||||
for pdir in os.environ['PATH'].split(':'):
|
||||
|
@ -223,7 +245,7 @@ def binary_exists(name):
|
|||
return True
|
||||
return False
|
||||
|
||||
def prepare_env(cfg):
|
||||
def prepare_env(cfg, silent = False):
|
||||
""" mimic Conf/BuildEnv.sh """
|
||||
workspace = os.getcwd()
|
||||
packages = [ workspace, ]
|
||||
|
@ -253,7 +275,7 @@ def prepare_env(cfg):
|
|||
toolsdef = coredir + '/Conf/tools_def.txt'
|
||||
if not os.path.exists(toolsdef):
|
||||
os.makedirs(os.path.dirname(toolsdef), exist_ok = True)
|
||||
build_message('running BaseTools/BuildEnv')
|
||||
build_message('running BaseTools/BuildEnv', silent = silent)
|
||||
cmdline = [ 'bash', 'BaseTools/BuildEnv' ]
|
||||
subprocess.run(cmdline, cwd = coredir, check = True)
|
||||
|
||||
|
@ -267,20 +289,32 @@ def prepare_env(cfg):
|
|||
os.environ['PYTHONHASHSEED'] = '1'
|
||||
|
||||
# for cross builds
|
||||
if binary_exists('arm-linux-gnu-gcc'):
|
||||
if binary_exists('arm-linux-gnueabi-gcc'):
|
||||
# ubuntu
|
||||
os.environ['GCC5_ARM_PREFIX'] = 'arm-linux-gnueabi-'
|
||||
os.environ['GCC_ARM_PREFIX'] = 'arm-linux-gnueabi-'
|
||||
elif binary_exists('arm-linux-gnu-gcc'):
|
||||
# fedora
|
||||
os.environ['GCC5_ARM_PREFIX'] = 'arm-linux-gnu-'
|
||||
os.environ['GCC_ARM_PREFIX'] = 'arm-linux-gnu-'
|
||||
if binary_exists('loongarch64-linux-gnu-gcc'):
|
||||
os.environ['GCC5_LOONGARCH64_PREFIX'] = 'loongarch64-linux-gnu-'
|
||||
os.environ['GCC_LOONGARCH64_PREFIX'] = 'loongarch64-linux-gnu-'
|
||||
|
||||
hostarch = os.uname().machine
|
||||
if binary_exists('aarch64-linux-gnu-gcc') and hostarch != 'aarch64':
|
||||
os.environ['GCC5_AARCH64_PREFIX'] = 'aarch64-linux-gnu-'
|
||||
os.environ['GCC_AARCH64_PREFIX'] = 'aarch64-linux-gnu-'
|
||||
if binary_exists('riscv64-linux-gnu-gcc') and hostarch != 'riscv64':
|
||||
os.environ['GCC5_RISCV64_PREFIX'] = 'riscv64-linux-gnu-'
|
||||
os.environ['GCC_RISCV64_PREFIX'] = 'riscv64-linux-gnu-'
|
||||
if binary_exists('x86_64-linux-gnu-gcc') and hostarch != 'x86_64':
|
||||
os.environ['GCC5_IA32_PREFIX'] = 'x86_64-linux-gnu-'
|
||||
os.environ['GCC5_X64_PREFIX'] = 'x86_64-linux-gnu-'
|
||||
os.environ['GCC5_BIN'] = 'x86_64-linux-gnu-'
|
||||
os.environ['GCC_IA32_PREFIX'] = 'x86_64-linux-gnu-'
|
||||
os.environ['GCC_X64_PREFIX'] = 'x86_64-linux-gnu-'
|
||||
os.environ['GCC_BIN'] = 'x86_64-linux-gnu-'
|
||||
|
||||
def build_list(cfg):
|
||||
for build in cfg.sections():
|
||||
|
@ -303,10 +337,12 @@ def main():
|
|||
parser.add_argument('-j', '--jobs', dest = 'jobs', type = str,
|
||||
help = 'allow up to JOBS parallel build jobs',
|
||||
metavar = 'JOBS')
|
||||
parser.add_argument('-m', '--match', dest = 'match', type = str,
|
||||
parser.add_argument('-m', '--match', dest = 'match',
|
||||
type = str, action = 'append',
|
||||
help = 'only run builds matching INCLUDE (substring)',
|
||||
metavar = 'INCLUDE')
|
||||
parser.add_argument('-x', '--exclude', dest = 'exclude', type = str,
|
||||
parser.add_argument('-x', '--exclude', dest = 'exclude',
|
||||
type = str, action = 'append',
|
||||
help = 'skip builds matching EXCLUDE (substring)',
|
||||
metavar = 'EXCLUDE')
|
||||
parser.add_argument('-l', '--list', dest = 'list',
|
||||
|
@ -316,6 +352,9 @@ def main():
|
|||
action = 'store_true', default = False,
|
||||
help = 'write build output to logfiles, '
|
||||
'write to console only on errors')
|
||||
parser.add_argument('--no-logs', dest = 'nologs',
|
||||
action = 'store_true', default = False,
|
||||
help = 'do not write build log files (with --silent)')
|
||||
parser.add_argument('--core', dest = 'core', type = str, metavar = 'DIR',
|
||||
help = 'location of the core edk2 repository '
|
||||
'(i.e. where BuildTools are located)')
|
||||
|
@ -323,6 +362,9 @@ def main():
|
|||
type = str, action = 'append', metavar = 'DIR',
|
||||
help = 'location(s) of additional packages '
|
||||
'(can be specified multiple times)')
|
||||
parser.add_argument('-t', '--toolchain', dest = 'toolchain',
|
||||
type = str, metavar = 'NAME',
|
||||
help = 'tool chain to be used to build edk2')
|
||||
parser.add_argument('--version-override', dest = 'version_override',
|
||||
type = str, metavar = 'VERSION',
|
||||
help = 'set firmware build version')
|
||||
|
@ -335,7 +377,7 @@ def main():
|
|||
os.chdir(options.directory)
|
||||
|
||||
if not os.path.exists(options.configfile):
|
||||
print('config file "{options.configfile}" not found')
|
||||
print(f'config file "{options.configfile}" not found')
|
||||
return 1
|
||||
|
||||
cfg = configparser.ConfigParser()
|
||||
|
@ -344,7 +386,7 @@ def main():
|
|||
|
||||
if options.list:
|
||||
build_list(cfg)
|
||||
return
|
||||
return 0
|
||||
|
||||
if not cfg.has_section('global'):
|
||||
cfg.add_section('global')
|
||||
|
@ -352,6 +394,8 @@ def main():
|
|||
cfg.set('global', 'core', options.core)
|
||||
if options.pkgs:
|
||||
cfg.set('global', 'pkgs', ' '.join(options.pkgs))
|
||||
if options.toolchain:
|
||||
cfg.set('global', 'tool', options.toolchain)
|
||||
|
||||
global version_override
|
||||
global release_date
|
||||
|
@ -361,18 +405,28 @@ def main():
|
|||
if options.release_date:
|
||||
release_date = options.release_date
|
||||
|
||||
prepare_env(cfg)
|
||||
build_basetools(options.silent)
|
||||
prepare_env(cfg, options.silent)
|
||||
build_basetools(options.silent, options.nologs)
|
||||
for build in cfg.sections():
|
||||
if not build.startswith('build.'):
|
||||
continue
|
||||
if options.match and options.match not in build:
|
||||
print(f'# skipping "{build}" (not matching "{options.match}")')
|
||||
continue
|
||||
if options.exclude and options.exclude in build:
|
||||
print(f'# skipping "{build}" (matching "{options.exclude}")')
|
||||
continue
|
||||
build_one(cfg, build, options.jobs, options.silent)
|
||||
if options.match:
|
||||
matching = False
|
||||
for item in options.match:
|
||||
if item in build:
|
||||
matching = True
|
||||
if not matching:
|
||||
print(f'# skipping "{build}" (not matching "{"|".join(options.match)}")')
|
||||
continue
|
||||
if options.exclude:
|
||||
exclude = False
|
||||
for item in options.exclude:
|
||||
if item in build:
|
||||
print(f'# skipping "{build}" (matching "{item}")')
|
||||
exclude = True
|
||||
if exclude:
|
||||
continue
|
||||
build_one(cfg, build, options.jobs, options.silent, options.nologs)
|
||||
|
||||
return 0
|
||||
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue