mirror of
https://github.com/Motorhead1991/qemu.git
synced 2026-01-31 21:30:38 -07:00
* SCSI fuzzing fix (Mauro)
* pre-install data files in the build directory (Akihiko) * SCSI fixes for Mac OS (Mark) -----BEGIN PGP SIGNATURE----- iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmLO3bQUHHBib256aW5p QHJlZGhhdC5jb20ACgkQv/vSX3jHroNv5AgAgGe8hGOcqJSzmFgeUJ7UEaauap6E fF4zau8Xux7R6pnvPe2FeJ70AlvstFAUoU++7G3linQ+eqnFD7E18KQkfp9qX7jY xDFPJRf6JNhwDjxQ2Tp0ShOcm5HkDv4Z4cPlx0T+wfKTlUWCzNEkhVrjOhpDYnSe OldsdFjY0sUjZ1R/QNiuQ65aWwOr9gJ07KfakJQMX2YCMun6SO3kB/GtmyecTV3C uNAUIdqJLsEbR1ckdMVVmixhtzMPW2R7/vjJkxG8RXUAcDmDHkuKPhWKyZ9a7/hh CV8iMQMup6mgT8ndb5DWv551Y+C/rA1bH9U1NkaeQ9RP83CE4a6fpSMiiQ== =82zT -----END PGP SIGNATURE----- Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging * SCSI fuzzing fix (Mauro) * pre-install data files in the build directory (Akihiko) * SCSI fixes for Mac OS (Mark) # gpg: Signature made Wed 13 Jul 2022 15:59:00 BST # gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83 # gpg: issuer "pbonzini@redhat.com" # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full] # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" [full] # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1 # Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83 * tag 'for-upstream' of https://gitlab.com/bonzini/qemu: pc-bios/s390-ccw: add -Wno-array-bounds q800: add default vendor and product information for scsi-cd devices q800: add default vendor and product information for scsi-hd devices scsi-disk: allow MODE SELECT block descriptor to set the block size scsi-disk: allow the MODE_PAGE_R_W_ERROR AWRE bit to be changeable for CDROM drives q800: implement compat_props to enable quirk_mode_page_truncated for scsi-cd devices scsi-disk: add SCSI_DISK_QUIRK_MODE_PAGE_TRUNCATED quirk for Macintosh scsi-disk: add FORMAT UNIT command q800: implement compat_props to enable quirk_mode_page_vendor_specific_apple for scsi devices scsi-disk: add SCSI_DISK_QUIRK_MODE_PAGE_VENDOR_SPECIFIC_APPLE quirk for Macintosh q800: implement compat_props to enable quirk_mode_sense_rom_use_dbd for scsi-cd devices scsi-disk: add SCSI_DISK_QUIRK_MODE_SENSE_ROM_USE_DBD quirk for Macintosh q800: implement compat_props to enable quirk_mode_page_apple_vendor for scsi-cd devices scsi-disk: add MODE_PAGE_APPLE_VENDOR quirk for Macintosh scsi-disk: add new quirks bitmap to SCSIDiskState meson: Prefix each element of firmware path module: Use bundle mechanism datadir: Use bundle mechanism cutils: Introduce bundle mechanism scsi/lsi53c895a: really fix use-after-free in lsi_do_msgout (CVE-2022-0216) Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
285f64fcbf
26 changed files with 348 additions and 113 deletions
|
|
@ -156,7 +156,7 @@ def cli_metavar(opt):
|
|||
if opt["type"] == "string":
|
||||
return "VALUE"
|
||||
if opt["type"] == "array":
|
||||
return "CHOICES"
|
||||
return "CHOICES" if "choices" in opt else "VALUES"
|
||||
return "CHOICE"
|
||||
|
||||
|
||||
|
|
@ -199,7 +199,10 @@ def print_parse(options):
|
|||
key = cli_option(opt)
|
||||
name = opt["name"]
|
||||
if require_arg(opt):
|
||||
print(f' --{key}=*) quote_sh "-D{name}=$2" ;;')
|
||||
if opt["type"] == "array" and not "choices" in opt:
|
||||
print(f' --{key}=*) quote_sh "-D{name}=$(meson_option_build_array $2)" ;;')
|
||||
else:
|
||||
print(f' --{key}=*) quote_sh "-D{name}=$2" ;;')
|
||||
elif opt["type"] == "boolean":
|
||||
print(f' --enable-{key}) printf "%s" -D{name}=true ;;')
|
||||
print(f' --disable-{key}) printf "%s" -D{name}=false ;;')
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ meson_options_help() {
|
|||
printf "%s\n" ' --enable-trace-backends=CHOICES'
|
||||
printf "%s\n" ' Set available tracing backends [log] (choices:'
|
||||
printf "%s\n" ' dtrace/ftrace/log/nop/simple/syslog/ust)'
|
||||
printf "%s\n" ' --firmwarepath=VALUE search PATH for firmware files [share/qemu-firmware]'
|
||||
printf "%s\n" ' --firmwarepath=VALUES search PATH for firmware files [share/qemu-firmware]'
|
||||
printf "%s\n" ' --iasl=VALUE Path to ACPI disassembler'
|
||||
printf "%s\n" ' --includedir=VALUE Header file directory [include]'
|
||||
printf "%s\n" ' --interp-prefix=VALUE where to find shared libraries etc., use %M for'
|
||||
|
|
@ -363,7 +363,7 @@ _meson_option_parse() {
|
|||
--disable-qcow1) printf "%s" -Dqcow1=disabled ;;
|
||||
--enable-qed) printf "%s" -Dqed=enabled ;;
|
||||
--disable-qed) printf "%s" -Dqed=disabled ;;
|
||||
--firmwarepath=*) quote_sh "-Dqemu_firmwarepath=$2" ;;
|
||||
--firmwarepath=*) quote_sh "-Dqemu_firmwarepath=$(meson_option_build_array $2)" ;;
|
||||
--enable-qga-vss) printf "%s" -Dqga_vss=enabled ;;
|
||||
--disable-qga-vss) printf "%s" -Dqga_vss=disabled ;;
|
||||
--enable-qom-cast-debug) printf "%s" -Dqom_cast_debug=true ;;
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ mkdir -p "$DEST_DIR/lib/" # Copy the shared libraries here
|
|||
|
||||
# Build once to get the list of dynamic lib paths, and copy them over
|
||||
../configure --disable-werror --cc="$CC" --cxx="$CXX" --enable-fuzzing \
|
||||
--prefix="$DEST_DIR" --bindir="$DEST_DIR" --datadir="$DEST_DIR/data/" \
|
||||
--prefix="/opt/qemu-oss-fuzz" \
|
||||
--extra-cflags="$EXTRA_CFLAGS" --target-list="i386-softmmu"
|
||||
|
||||
if ! make "-j$(nproc)" qemu-fuzz-i386; then
|
||||
|
|
@ -81,14 +81,14 @@ if [ "$GITLAB_CI" != "true" ]; then
|
|||
|
||||
# Build a second time to build the final binary with correct rpath
|
||||
../configure --disable-werror --cc="$CC" --cxx="$CXX" --enable-fuzzing \
|
||||
--prefix="$DEST_DIR" --bindir="$DEST_DIR" --datadir="$DEST_DIR/data/" \
|
||||
--prefix="/opt/qemu-oss-fuzz" \
|
||||
--extra-cflags="$EXTRA_CFLAGS" --extra-ldflags="-Wl,-rpath,\$ORIGIN/lib" \
|
||||
--target-list="i386-softmmu"
|
||||
make "-j$(nproc)" qemu-fuzz-i386 V=1
|
||||
fi
|
||||
|
||||
# Copy over the datadir
|
||||
cp -r ../pc-bios/ "$DEST_DIR/pc-bios"
|
||||
# Prepare a preinstalled tree
|
||||
make install DESTDIR=$DEST_DIR/qemu-bundle
|
||||
|
||||
targets=$(./qemu-fuzz-i386 | awk '$1 ~ /\*/ {print $2}')
|
||||
base_copy="$DEST_DIR/qemu-fuzz-i386-target-$(echo "$targets" | head -n 1)"
|
||||
|
|
|
|||
33
scripts/symlink-install-tree.py
Normal file
33
scripts/symlink-install-tree.py
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from pathlib import PurePath
|
||||
import errno
|
||||
import json
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
def destdir_join(d1: str, d2: str) -> str:
|
||||
if not d1:
|
||||
return d2
|
||||
# c:\destdir + c:\prefix must produce c:\destdir\prefix
|
||||
return str(PurePath(d1, *PurePath(d2).parts[1:]))
|
||||
|
||||
introspect = os.environ.get('MESONINTROSPECT')
|
||||
out = subprocess.run([*introspect.split(' '), '--installed'],
|
||||
stdout=subprocess.PIPE, check=True).stdout
|
||||
for source, dest in json.loads(out).items():
|
||||
assert os.path.isabs(source)
|
||||
bundle_dest = destdir_join('qemu-bundle', dest)
|
||||
path = os.path.dirname(bundle_dest)
|
||||
try:
|
||||
os.makedirs(path, exist_ok=True)
|
||||
except BaseException as e:
|
||||
print(f'error making directory {path}', file=sys.stderr)
|
||||
raise e
|
||||
try:
|
||||
os.symlink(source, bundle_dest)
|
||||
except BaseException as e:
|
||||
if not isinstance(e, OSError) or e.errno != errno.EEXIST:
|
||||
print(f'error making symbolic link {dest}', file=sys.stderr)
|
||||
raise e
|
||||
Loading…
Add table
Add a link
Reference in a new issue