1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
7 SDESC[standard]= Fast CPU emulator and virtualizer for x86 platform
8 HOMEPAGE= https://www.qemu.org/
12 SITES[main]= https://download.qemu.org/
13 DISTFILE[1]= qemu-7.2.0.tar.xz:main
15 SPKGS[standard]= complete
20 OPTIONS_AVAILABLE= none
21 OPTIONS_STANDARD= none
23 BUILD_DEPENDS= texi2html:primary:standard
24 python-Sphinx:single:python_used
25 python-sphinx-rtd-theme:single:python_used
27 BUILDRUN_DEPENDS= nettle:primary:standard
28 freetype:primary:standard
29 gnutls:primary:standard
30 cyrus-sasl:primary:standard
33 libepoxy:single:standard
34 snappy:single:standard
36 USES= cpe gmake pkgconfig bison perl:build python:build
37 jpeg png mesa fontconfig ncurses makeinfo ninja zstd
39 GNOME_COMPONENTS= gdkpixbuf gtk2 vte
40 SDL_COMPONENTS= sdl2 image2
41 XORG_COMPONENTS= x11 xext
43 LICENSE= GPLv2:primary
44 LICENSE_TERMS= primary:{{WRKSRC}}/LICENSE
45 LICENSE_FILE= GPLv2:{{WRKSRC}}/COPYING
48 FPC_EQUIVALENT= emulators/qemu
51 CONFIGURE_ARGS= --disable-usb-redir
52 --disable-stack-protector
62 --python={{PYTHON_CMD}}
65 BUILD_WRKSRC= {{WRKSRC}}/build
66 MAKE_ENV= BSD_MAKE="{{MAKE}}"
69 INSTALL_WRKSRC= {{WRKSRC}}/build
70 PLIST_SUB= JQUERY=3.6.0
74 CFLAGS= -I{{NCURSESBASE}}/include/ncursesw
75 VAR_OPSYS[freebsd]= CONFIGURE_ARGS=--enable-netmap
76 CONFIGURE_ARGS=--disable-linux-user
77 CONFIGURE_ARGS=--disable-linux-aio
78 VAR_OPSYS[linux]= CONFIGURE_ARGS=--disable-netmap
79 CONFIGURE_ARGS=--disable-linux-user
80 VAR_OPSYS[dragonfly]= CONFIGURE_ARGS=--disable-netmap
81 CONFIGURE_ARGS=--disable-linux-user
82 CONFIGURE_ARGS=--disable-linux-aio
85 # silence some include warnings
86 ${MKDIR} ${WRKSRC}/bsd-user/dragonfly
89 ${INSTALL_SCRIPT} ${FILESDIR}/qemu-ifup.sample \
90 ${STAGEDIR}${PREFIX}/etc
91 ${INSTALL_SCRIPT} ${FILESDIR}/qemu-ifdown.sample \
92 ${STAGEDIR}${PREFIX}/etc
93 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/qemu-*
94 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/elf2dmp
95 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/share/qemu/palcode-clipper
96 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/share/qemu/hppa-firmware.img
97 (cd ${WRKSRC} && ${COPYTREE_SHARE} docs ${STAGEDIR}${STD_DOCDIR}/)
98 # remove sphinx leftovers
99 ${RM} -r ${STAGEDIR}${STD_DOCDIR}/docs/sphinx
100 # remove empty directories
101 ${RM} -r ${STAGEDIR}/var
103 pre-configure-dragonfly:
104 # On dragonfly, userland programs can't include <sys/disk.h>
105 ${REINPLACE_CMD} -e 's|sys/disk\.h|sys/skipdisk.h|' \
106 ${WRKSRC}/meson.build
108 [FILE:782:descriptions/desc.primary]
109 QEMU is a fast processor emulator using dynamic translation to achieve
110 good emulation speed. QEMU has two operating modes:
112 * Full system emulation. In this mode, QEMU emulates a full system (for
113 example a PC), including a processor and various peripherials. It can
114 be used to launch different Operating Systems without rebooting the PC
115 or to debug system code.
116 * User mode emulation (Linux host only). In this mode, QEMU can launch
117 Linux processes compiled for one CPU on another CPU. It can be used to
118 launch the Wine Windows API emulator or to ease cross-compilation and
121 As QEMU requires no host kernel patches to run, it is safe and easy to use.
123 See also the preconfigured system images on http://oszoo.org/
124 Many live cd isos also work.
128 5b49ce2687744dad494ae90a898c52204a3406e84d072482a1e1be854eeb2157 122408576 qemu-7.2.0.tar.xz
131 [FILE:3355:manifests/plist.primary]
132 @sample etc/qemu-ifdown.sample
133 @sample etc/qemu-ifup.sample
134 %%MAN%%share/man/man1/
136 qemu-storage-daemon.1.gz
138 %%MAN%%share/man/man7/
139 qemu-block-drivers.7.gz
142 qemu-storage-daemon-qmp-ref.7.gz
143 %%MAN%%share/man/man8/
146 %%ONLY-FREEBSD%%%%MAN%%share/man/man7/qemu-ga-ref.7.gz
147 %%ONLY-FREEBSD%%%%MAN%%share/man/man8/qemu-ga.8.gz
153 %%ONLY-LINUX%%%%MAN%%share/man/man7/qemu-ga-ref.7.gz
154 %%ONLY-LINUX%%%%MAN%%share/man/man8/qemu-ga.8.gz
158 %%ONLY-LINUX%%libexec/qemu-bridge-helper
173 qemu-system-loongarch64
175 qemu-system-microblaze
176 qemu-system-microblazeel
197 include/qemu-plugin.h
198 share/applications/qemu.desktop
199 share/icons/hicolor/128x128/apps/qemu.png
200 share/icons/hicolor/16x16/apps/qemu.png
201 share/icons/hicolor/24x24/apps/qemu.png
202 share/icons/hicolor/256x256/apps/qemu.png
203 share/icons/hicolor/32x32/apps/
206 share/icons/hicolor/48x48/apps/qemu.png
207 share/icons/hicolor/512x512/apps/qemu.png
208 share/icons/hicolor/64x64/apps/qemu.png
209 share/icons/hicolor/scalable/apps/qemu.svg
222 edk2-i386-secure-code.fd
226 edk2-x86_64-secure-code.fd
245 opensbi-riscv32-generic-fw_dynamic.bin
246 opensbi-riscv64-generic-fw_dynamic.bin
249 petalogix-s3adsp1800.dtb
266 u-boot-sam460-20100605.bin
269 vgabios-bochs-display.bin
280 50-edk2-i386-secure.json
281 50-edk2-x86_64-secure.json
323 [FILE:10336:manifests/plist.docs]
332 share/doc/qemu/_static/
336 documentation_options.js
347 share/doc/qemu/_static/css/
350 share/doc/qemu/_static/css/fonts/
351 Roboto-Slab-Bold.woff
352 Roboto-Slab-Bold.woff2
353 Roboto-Slab-Regular.woff
354 Roboto-Slab-Regular.woff2
355 fontawesome-webfont.eot
356 fontawesome-webfont.svg
357 fontawesome-webfont.ttf
358 fontawesome-webfont.woff
359 fontawesome-webfont.woff2
360 lato-bold-italic.woff
361 lato-bold-italic.woff2
364 lato-normal-italic.woff
365 lato-normal-italic.woff2
368 share/doc/qemu/_static/js/
370 html5shiv-printshiv.min.js
373 share/doc/qemu/about/
378 removed-features.html
379 share/doc/qemu/devel/
383 block-coroutine-wrapper.html
388 conflict-resolution.html
389 control-flow-integrity.html
406 multi-thread-tcg.html
414 secure-coding-practices.html
417 submitting-a-patch.html
418 submitting-a-pull-request.html
428 writing-monitor-commands.html
431 block-replication.txt
441 multi-thread-compression.txt
444 pci_expander_bridge.txt
451 qemu-option-trace.rst.inc
458 xen-save-devices-state.txt
459 share/doc/qemu/docs/_templates/footer.html
460 share/doc/qemu/docs/about/
466 share/doc/qemu/docs/config/
468 mach-virt-graphical.cfg
471 q35-virtio-graphical.cfg
472 q35-virtio-serial.cfg
473 share/doc/qemu/docs/devel/
479 block-coroutine-wrapper.rst
481 ci-definitions.rst.inc
487 conflict-resolution.rst
488 control-flow-integrity.rst
507 multiple-iothreads.txt
516 secure-coding-practices.rst
519 submitting-a-patch.rst
520 submitting-a-pull-request.rst
531 writing-monitor-commands.rst
532 share/doc/qemu/docs/interop/
540 live-block-operations.rst
550 qemu-storage-daemon-qmp-ref.rst
557 virtio-balloon-stats.rst
558 vnc-ledstate-Pseudo-encoding.txt
559 share/doc/qemu/docs/specs/
563 acpi_hw_reduced_hotplug.rst
575 ppc-spapr-hotplug.rst
577 ppc-spapr-uv-hcalls.rst
582 sev-guest-firmware.rst
589 share/doc/qemu/docs/sphinx-static/
592 share/doc/qemu/docs/spin/
594 aio_notify_accept.promela
595 aio_notify_bug.promela
596 tcg-exclusive.promela
597 win32-qemu-event.promela
598 share/doc/qemu/docs/system/
602 confidential-guest-support.rst
604 cpu-models-mips.rst.inc
605 cpu-models-x86-abi.csv
606 cpu-models-x86.rst.inc
608 device-url-syntax.rst.inc
624 qemu-block-drivers.rst
625 qemu-block-drivers.rst.inc
634 target-i386-desc.rst.inc
648 virtio-net-failover.rst
650 share/doc/qemu/docs/system/arm/
684 share/doc/qemu/docs/system/devices/
696 share/doc/qemu/docs/system/i386/
697 amd-memory-encryption.rst
704 share/doc/qemu/docs/system/loongarch/loongson3.rst
705 share/doc/qemu/docs/system/openrisc/
710 share/doc/qemu/docs/system/ppc/
717 share/doc/qemu/docs/system/riscv/
718 microchip-icicle-kit.rst
722 share/doc/qemu/docs/system/s390x/
729 share/doc/qemu/docs/tools/
734 qemu-storage-daemon.rst
736 virtfs-proxy-helper.rst
738 share/doc/qemu/docs/user/
741 share/doc/qemu/interop/
748 live-block-operations.html
753 qemu-storage-daemon-qmp-ref.html
757 virtio-balloon-stats.html
758 share/doc/qemu/specs/
759 acpi_cpu_hotplug.html
762 acpi_hw_reduced_hotplug.html
763 acpi_mem_hotplug.html
765 acpi_pci_hotplug.html
768 ppc-spapr-hcalls.html
769 ppc-spapr-hotplug.html
771 ppc-spapr-uv-hcalls.html
774 sev-guest-firmware.html
776 share/doc/qemu/system/
780 confidential-guest-support.html
782 device-emulation.html
796 qemu-block-drivers.html
818 virtio-net-failover.html
820 share/doc/qemu/system/arm/
852 xlnx-versal-virt.html
854 share/doc/qemu/system/devices/
866 share/doc/qemu/system/i386/
867 amd-memory-encryption.html
874 share/doc/qemu/system/loongarch/loongson3.html
875 share/doc/qemu/system/openrisc/
880 share/doc/qemu/system/ppc/
887 share/doc/qemu/system/riscv/
888 microchip-icicle-kit.html
892 share/doc/qemu/system/s390x/
899 share/doc/qemu/tools/
904 qemu-storage-daemon.html
906 virtfs-proxy-helper.html
913 [FILE:333:manifests/plist.nls]
914 share/locale/bg/LC_MESSAGES/qemu.mo
915 share/locale/de_DE/LC_MESSAGES/qemu.mo
916 share/locale/fr_FR/LC_MESSAGES/qemu.mo
917 share/locale/hu/LC_MESSAGES/qemu.mo
918 share/locale/it/LC_MESSAGES/qemu.mo
919 share/locale/sv/LC_MESSAGES/qemu.mo
920 share/locale/tr/LC_MESSAGES/qemu.mo
921 share/locale/uk/LC_MESSAGES/qemu.mo
922 share/locale/zh_CN/LC_MESSAGES/qemu.mo
925 [FILE:337:patches/patch-include_qemu_bswap.h]
926 --- include/qemu/bswap.h.orig 2022-12-14 16:28:45 UTC
927 +++ include/qemu/bswap.h
929 #ifdef CONFIG_MACHINE_BSWAP_H
930 # include <sys/endian.h>
931 # include <machine/bswap.h>
932 -#elif defined(__FreeBSD__)
933 +#elif defined(__FreeBSD__) || defined(__DragonFly__)
934 # include <sys/endian.h>
935 #elif defined(__HAIKU__)
939 [FILE:2368:patches/patch-meson.build]
940 --- meson.build.orig 2022-12-14 16:28:45 UTC
942 @@ -47,7 +47,7 @@ genh = []
943 qapi_trace_events = []
945 bsd_oses = ['gnu/kfreebsd', 'freebsd', 'netbsd', 'openbsd', 'dragonfly', 'darwin']
946 -supported_oses = ['windows', 'freebsd', 'netbsd', 'openbsd', 'darwin', 'sunos', 'linux']
947 +supported_oses = ['windows', 'freebsd', 'netbsd', 'openbsd', 'darwin', 'sunos', 'linux', 'dragonfly']
948 supported_cpus = ['ppc', 'ppc64', 's390x', 'riscv', 'x86', 'x86_64',
949 'arm', 'aarch64', 'loongarch64', 'mips', 'mips64', 'sparc64']
951 @@ -444,7 +444,7 @@ if get_option('hax').allowed()
952 accelerators += 'CONFIG_HAX'
955 -if targetos == 'netbsd'
956 +if targetos in [ 'netbsd', 'dragonfly' ]
957 nvmm = cc.find_library('nvmm', required: get_option('nvmm'))
959 accelerators += 'CONFIG_NVMM'
960 @@ -887,7 +887,7 @@ if have_system and get_option('curses').
964 - curses_dep_list = targetos == 'windows' ? ['ncurses', 'ncursesw'] : ['ncursesw']
965 + curses_dep_list = targetos == 'windows' ? ['ncurses', 'ncursesw'] : ['ncurses']
966 curses = dependency(curses_dep_list,
968 method: 'pkg-config',
969 @@ -910,15 +910,16 @@ if have_system and get_option('curses').
970 has_curses_h = cc.has_header('curses.h', args: curses_compile_args)
973 - curses_libname_list = (targetos == 'windows' ? ['pdcurses'] : ['ncursesw', 'cursesw'])
974 + libtinfo = cc.find_library('tinfo', required: false, static: enable_static)
975 + curses_libname_list = (targetos == 'windows' ? ['pdcurses'] : ['ncurses'])
976 foreach curses_libname : curses_libname_list
977 libcurses = cc.find_library(curses_libname,
979 kwargs: static_kwargs)
981 - if cc.links(curses_test, args: curses_compile_args, dependencies: libcurses)
982 + if cc.links(curses_test, args: curses_compile_args, dependencies: [libncurses,libtinfo])
983 curses = declare_dependency(compile_args: curses_compile_args,
984 - dependencies: [libcurses])
985 + dependencies: [libncurses, libtinfo])
988 msg = 'curses library not usable'
991 [FILE:454:patches/patch-net_tap-bsd.c]
992 --- net/tap-bsd.c.orig 2022-12-14 16:28:45 UTC
996 #if defined(__NetBSD__) || defined(__FreeBSD__)
997 #include <sys/ioctl.h>
998 +#include <sys/socket.h>
1000 #include <net/if_tap.h>
1002 +#if defined(__DragonFly)
1003 +#include <sys/ioctl.h>
1004 +#include <sys/socket.h>
1005 +#include <net/if.h>
1006 +#include <net/tap/if_tap.h>
1010 int tap_open(char *ifname, int ifname_size, int *vnet_hdr,
1013 [FILE:314:patches/patch-util_getauxval.c]
1014 --- util/getauxval.c.orig 2022-12-14 16:28:44 UTC
1015 +++ util/getauxval.c
1016 @@ -98,7 +98,7 @@ unsigned long qemu_getauxval(unsigned lo
1020 -#elif defined(__FreeBSD__)
1021 +#elif defined(__FreeBSD__) && __FreeBSD_version__ > 1200001
1022 #include <sys/auxv.h>
1024 unsigned long qemu_getauxval(unsigned long type)
1027 [FILE:7685:files/pkg-message-single]
1031 - Needs to set net.link.tap.user_open sysctl in order to use /dev/tap*
1032 networking as non-root. Don't forget to adjust device node permissions in
1035 - slirp (usermode networking) is fixed now in cvs, on FreeSBIE 1.0 guests you
1036 still have to manually do: echo nameserver 10.0.2.3 >/etc/resolv.conf but
1037 i've been told that that's normal. (fixed on FreeSBIE 1.1.) And you have
1038 to wait a bit for dhclient to do its thing; traffic to address 10.0.2.2 is
1039 routed to 127.1 on the host.
1041 - Expect timer problems when guest kernel HZ is > hosts, for example time
1042 sleep 1 takes 49 seconds and booting sleeps for minutes at the acd0 probe
1043 with a FreeSBIE 1.0 guest, thats because its kernel is built with HZ=5000,
1044 and FreeBSD's default is 100... (no longer a problem with FreeSBIE 1.1.)
1045 The linux 2.6 kernel uses 1000 by default btw. (changed to 250 later, and
1046 recent linux kernels now no longer have a fixed HZ, aka `tickless
1047 kernel'...) Enabling /dev/rtc doesn't seem to help either (not included
1048 since it needs a patch to emulators/rtc.)
1050 - Update: the above problem has gotten worse with FreeBSD guests
1051 somewhere before 8.0, mainly since the kernel now usually wants
1052 double or even quadruple number of timer irqs compared to HZ if
1053 it detects an apic (and at least early versions of FreeBSD 8 had
1054 a bug that essentially halved qemu's clock rate too); the only
1055 reason you usually don't see symptoms of this with FreeBSD 8
1056 guests is they automatically reduce their HZ to 100 when running
1057 in a VM while the default for the host kernel is still HZ=1000.
1058 Workaround: you can disable the apic clock in the guest by setting
1060 hint.apic.0.clock="0"
1062 in loader.conf(5) (or manually at the loader prompt), if that
1063 doesn't work the only things you can do is either reduce the
1064 guest's HZ to, say, 100 by setting e.g.
1068 from the loader as above (which usually is a good idea in a VM
1069 anyway and FreeBSD 8 now does by itself as mentioned), or otherwise
1070 increase the host's HZ to 2000 or even 4000 from the loader in
1073 - The -smb option (smb-export local dir to guest using the default
1074 slirp networking) needs the samba port/package installed
1075 in addition to qemu. (SAMBA knob.)
1077 - If you want to use usb devices connected to the host in the guest
1078 yot need either recent 10-current (not tested yet much) or you can
1079 use usbredir over the network (see below); also unless you are
1080 running qemu as root you then need to fix permissions for /dev/ugen*
1081 device nodes: if you are on 5.x or later (devfs) put a rule in
1082 /etc/devfs.rules, activate it in /etc/rc.conf and run /etc/rc.d/devfs
1083 restart. Example devfs.rules:
1086 add path 'ugen*' mode 660 group operator
1088 corresponding rc.conf line:
1090 devfs_system_ruleset="ugen_ruleset"
1092 - If you want to test the new (in 0.15.0) usb network redirection (USBREDIR
1093 option) see this thread by Hans de Goede <hdegoede <at> redhat.com>:
1095 http://thread.gmane.org/gmane.comp.emulators.qemu/110176/focus=110183
1101 1) Start usbredirserver for a usb device:
1102 sudo usbredirserver 045e:0772
1103 2) Start qemu with usb2 support + a chardev talking to usbredirserver +
1104 a usb-redir device using this chardev:
1106 -readconfig docs/ich9-ehci-uhci.cfg \
1107 -chardev socket,id=usbredirchardev,host=localhost,port=4000 \
1108 -device usb-redir,chardev=usbredirchardev,id=usbredirdev ...
1110 [you would replace docs/ich9-ehci-uhci.cfg with e.g.
1111 /raven/share/doc/qemu/docs/ich9-ehci-uhci.cfg, but turns out
1112 ehci was broken for me here with FreeBSD guests and the previous
1113 qemu version at least, I got:
1115 FETCHENTRY: entry at 22C5484 is of type 2 which is not supported yet processing error - resetting ehci HC
1116 Assertion failed: (0), function ehci_advance_state, file /data/ports/emulators/qemu-devel/work/qemu-0.15.0/hw/usb-ehci.c, line 2045.
1118 The new qemu version works better tho.]
1120 - Still usb: since the hub is no longer attached to the uchi controller and
1121 the wakeup mechanism, resume interrupt is not implemented yet linux guests
1122 will suspend the bus, i.e. they wont see devices usb_add'ed after its
1123 (linux') uhci module got loaded. Workaround: either add devices before
1124 linux loads the module or rmmod and modprobe it afterwards. [Not sure
1125 if this still applies to the new libusb host code used on recent
1128 - If you build qemu wihout SDL and then get crashes running it try passing it
1129 -nographic. This should probably be default in that case...
1131 - qemu's network boot roms (-boot n) have a bug when bootfiles sizes are a
1132 multiple of blksize, if this affects you (like with FreeBSD's /boot/pxeboot)
1135 cp /boot/pxeboot pxeboot-qemu && chmod +w pxeboot-qemu && echo >>pxeboot-qemu
1137 and then use pxeboot-qemu. Actually you need recent btx code
1138 (from after 7.0 was released) because of the real mode boot
1139 problem, so use at least pxeboot from there. And I just did that
1140 for the pxeboot extracted out of
1142 ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/200805/7.0-STABLE-200805-i386-bootonly.iso
1146 http://people.freebsd.org/~nox/qemu/pxeboot-qemu
1148 - If you use slirp (usernet, the default) and want to mount nfs into the guest
1149 and you are not running qemu as root, then mountd(8) on the exporting box
1150 needs to be run with -n in order to accept requests from ports >= 1024.
1152 - (not FreeBSD-specific:) There have been reports of qcow2 corruption with (at
1153 least) win2k guests on recent kvm (which uses similar qcow2 code than qemu
1154 now, see this thread:
1156 http://lists.gnu.org/archive/html/qemu-devel/2009-02/msg00713.html -
1158 the consensus on that thread seems to be that qcow(2) code has always been
1159 experimental and you should use raw images if you want reliability; raw is
1160 also usually faster.) You should be able to migrate existing images to raw
1161 using qemu-img(1)'s convert function; raw doesn't support advanced features
1162 like snapshots tho. [a few important qcow2 bugfixed have been committed in
1163 the meantime so this _might_ be less of an issue now; and meanwhile there
1164 also is the new qed format - I don't know how stable that one is.]
1166 - (also not FreeBSD-specific:) It is recommended to pass raw images using the
1167 new -drive syntax, specifying format=raw explicitly in order to avoid
1168 malicious guests being able to exploit the format autodetection thats
1169 otherwise getting used. (Not that you should run malicious guests anyway,
1170 but this eleminates at least a known attack vector.)
1172 - qemu now has improved physical cdrom support, but still there is at
1173 least one known problem: you need to have the guest eject the disc if you
1174 want to change it/take it out, or otherwise the guest may continue using
1175 state (like size) of the old disc. (You can also do like `change ide1-cd0
1176 /dev/acd0' in the monitor after taking out the disc if a guest cannot eject
1179 - The default configuration location (qemu-ifup script etc.) has been changed
1180 from /etc to PREFIX/etc (usually /raven/etc). Move your files accordingly.
1182 - The pcap code (-net nic... -net pcap,ifname=...) should work properly now,
1183 with only one exception: Advanced features like TSO used on the host
1184 interface can cause oversize packets which now do get truncated to avoid
1185 confusing/panicing guests but of course still will cause retransmissions.
1186 So if you see slow throughput and `pcap_send: packet size > ..., truncating'
1187 messages on qemu's tty try disabling TSO etc on the host interface at least
1191 [FILE:20:files/qemu-ifdown.sample]
1196 [FILE:20:files/qemu-ifup.sample]
1201 [FILE:323:dragonfly/patch-hw-ppc_newworld.c]
1202 --- hw/ppc/mac_newworld.c.orig 2022-12-14 16:28:45 UTC
1203 +++ hw/ppc/mac_newworld.c
1205 #include "hw/sysbus.h"
1208 +/* FreeBSD headers define this */
1213 #define MAX_IDE_BUS 2
1214 #define CFG_ADDR 0xf0000510
1215 #define TBFREQ (100UL * 1000UL * 1000UL)
1218 [FILE:334:dragonfly/patch-hw_ppc_mac__oldworld.c]
1219 --- hw/ppc/mac_oldworld.c.orig 2022-12-14 16:28:45 UTC
1220 +++ hw/ppc/mac_oldworld.c
1223 #define GRACKLE_BASE 0xfec00000
1225 +/* FreeBSD headers define this */
1230 static void fw_cfg_boot_set(void *opaque, const char *boot_device,
1235 [FILE:906:dragonfly/patch-util_coroutine-ucontext.c]
1236 --- util/coroutine-ucontext.c.orig 2022-12-14 16:28:45 UTC
1237 +++ util/coroutine-ucontext.c
1238 @@ -225,7 +225,15 @@ Coroutine *qemu_coroutine_new(void)
1239 2, arg.i[0], arg.i[1]);
1241 /* swapcontext() in, siglongjmp() back out */
1242 - if (!sigsetjmp(old_env, 0)) {
1243 + /* Save signal mask in this sigsetjmp, because makecontext on DragonFly
1244 + * leaves all signals blocked when entering the new context with
1246 + * Workaround this, by just having the signal mask restored by the
1247 + * siglongjmp that brings us back from qemu_coroutine_new().
1248 + * XXX Remove this workaround when the makecontext behaviour is fixed
1251 + if (!sigsetjmp(old_env, 1)) {
1252 start_switch_fiber_asan(COROUTINE_YIELD, &fake_stack_save, co->stack,
1254 start_switch_fiber_tsan(&fake_stack_save,